Syntax Highlighting em Cocoa TextView? Experiências? Sugestões? Ideias? [duplicado]
-
13-09-2019 - |
Pergunta
Duplicate possíveis:
coloração de sintaxe para Cacau aplicativo
Estou interessado em destaque de sintaxe em Cocoa TextView.
Eu encontrei vários recursos:
-
com flexível, através de um padrão flexível comparado com
textStorageDidProcessEditing
em um delegadoTextView
. Nesta abordagem a seqüência inteira ter analisado em cada evento de entrada, portanto, degrada o desempenho. -
CocoaDev tem um própria página sobre o tema de destaque de sintaxe :
-
Use
NSTextStorageDidProcessEditingNotification
, em seguida, obter a gama editado, e apenas aplicar a coloração lá. A faixa pode ser wordboundaries ou qualquer coisa; isso definitivamente melhora o desempenho. -
mencionado lá:. Xcode, por exemplo, só coloriza texto que está atualmente na tela, e adia colorir o resto do documento até que você percorre-lo Como seria um implementar isso?
-
Use
NSLayoutManager
- via atributos temporários [que] são usados ??somente para o desenho na tela e não são persistentes de qualquer maneira ... como os docs dizer, mas que não colorir o último intervalo editado, até que um caractere de espaço em branco é inserido. -
auxiliar personalizado como UKSyntaxColoredDocument - agradável, mas definição de linguagem é feita através de lista de propriedades; como usar definições de idiomas adicionais / existentes?
-
Nenhuma das abordagens parecem realmente extensível ou robusta para mim (exceto a 4. talvez ..).
Estou ciente de bibliotecas robustos existentes para SH como pygments ; e da PyObjC .
Pergunta ??strong>: Como seria possível usar alguma biblioteca existente por exemplo como pygments ter uma sintaxe extensível e performance destacando em um TextView
cacau?
Nota ??em>: Eu sei que esta questão é muito ampla (e muito muito tempo). Experiências e sugestões, bem como soluções são bem vindas. Obrigado.
Encontrado outro segmento similar sobre esse assunto: coloração de sintaxe para Cacau aplicativo
Solução
Eu sugiro dar uma olhada no código fonte para Smultron . Ele tem muito agradável destaque de sintaxe. Ele usa uma subclasse de NSTextView para fazer a maior parte do trabalho pesado. O código usa o gerenciador de layout para adicionar atributos para o texto e usa alguns outros truques inteligentes para único destaque tanto o documento como necessário.