Duplicar posible:
Syntax coloring for Cocoa appResaltado de sintaxis en Cocoa TextView? ¿Experiencias? Sugerencias? Ideas?
Estoy interesado en resaltado de sintaxis en un cacao TextView.
he encontrado varios recursos:
approach with flex, a través de un patrón flex compara con
textStorageDidProcessEditing
en un delegadoTextView
. En este enfoque, la secuencia completa se analiza en cada evento de entrada, por lo que el rendimiento se degrada.CocoaDev tiene una own page on the topic of syntax highlighting:
Uso
NSTextStorageDidProcessEditingNotification
, a continuación, obtener el rango editado, y sólo se aplica el colorante allí. El rango podría ser límites de palabras o cualquier cosa; esto definitivamente mejora el rendimiento.mencionado allí: Xcode, por ejemplo, solo colorea el texto que está actualmente en pantalla, y difiere el colorizar el resto del documento hasta que se desplace por él. ¿Cómo se implementaría esto?
Uso
NSLayoutManager
- a través de atributos temporales [que] sólo se utilizan para dibujar en pantalla y no son persistentes en cualquier forma ... como dicen los documentos, pero que no colorea la última gama editada , hasta que se ingrese un carácter de espacio en blanco.Ayuda personalizada como UKSyntaxColoredDocument - agradable, pero la definición del idioma se realiza a través de la lista de propiedades; cómo usar definiciones de idiomas adicionales/existentes?
Ninguno de los enfoques parece muy extensible o robusto para mí (excepto tal vez el 4. ..).
Soy consciente de las sólidas bibliotecas existentes para SH como pygments; y de PyObjC.
Pregunta: ¿Cómo sería posible utilizar alguna biblioteca existente, p. como pygments para tener un resaltado de sintaxis extensible y de rendimiento en un Cocoa TextView
?
Nota: Sé que esta pregunta es muy amplia (y demasiado larga). Se agradecen las experiencias y sugerencias, así como las soluciones. Gracias.
encontrado otro hilo similar en la que la materia: Syntax coloring for Cocoa app
Smultron ya no es de código abierto, por lo que el código fuente ya no está disponible. – zpasternack
La fuente todavía está disponible en el sitio web de soureforge. Vea aquí: http://sourceforge.net/projects/smultron/files/smultron/3.6b1/ – Daniel
¡Me corrijo, gracias! – zpasternack