¿Cuál es la mejor manera de implementar el resaltado de sintaxis del código fuente en cacao? [cerrado

StackOverflow https://stackoverflow.com/questions/754591

Pregunta

Estoy trabajando en la aplicación Cocoa que debería poder analizar y resaltar un código fuente escrito en idiomas como Objective-C, SQL, JavaScript, Python, etc. El texto también debe ser editable (mediante el uso de NSTEXTVIEW, por ejemplo).

Aconseje cuál es la mejor manera de implementar dicha característica en Mac OS X 10.5.

No hay necesidad de admitir la completación automática y otras características extra. El formato simple por palabras clave, cadenas, #include y números, pero con un rendimiento genial está bien.

Además, sería genial si la configuración por lenguajes fuera compatible.

¡Gracias!

¿Fue útil?

Solución

Al preparar un proyecto que requerirá algo similar, he encontrado lo siguiente (pero no los evalué en profundidad):

  • /Developer/Ejemplos/OpenGL/Cocoa/GLSledItersample Implementa el resaltado de sintaxis.
  • Idekit, "Un marco de código abierto que proporciona edición de código fuente del programador, que incluye coloración de sintaxis, funciones emergentes y marcos divididos". Esto no se ha actualizado por un tiempo (promociona la compatibilidad 10.2 y 10.3 y viene con un proyecto de generador de proyectos, se puede convertir con Xcode 2.5).
  • UksyntaxcoloredTextDocument.

Otros consejos

Secundaría el consejo de Ahruman, particularmente mirando el documento de TecksyntaxColoredTextText de Uli, ya que eso te indicará en la dirección correcta sobre qué clases, etc. Tendrás que aprender sobre las que tendrás que aprender.

Esta es otra excelente fuente de información:

http://www.cocoadev.com/index.pl?implementSyntaxhighlighting

Buena suerte: el resaltado de sintaxis es difícil de hacer bien, ¡pero mucha diversión en el camino!

Tuve que buscar una solución de resaltado de sintaxis para el cacao recientemente y después de buscar en Stack Overflow, Google y Github no pudieron encontrar nada moderno, fácil de reutilizar y aún en desarrollo activo.

Parece que la mayoría de los resaltadores de sintaxis en estos días están escritos para la web. Afortunadamente, en realidad es bastante fácil insertarlos en una vista web para usar en cualquier aplicación de cacao. La comunicación con el editor se puede hacer a través de WebKit's Protocolo WebScriptObject.

Aquí hay un envoltorio de ejemplo para el popular editor de texto de JavaScript Codemirror Para el cacao:https://github.com/swisspol/codemirrorview

Puede usar Pygments, que se escribe en Python, para generar una representación HTML del código fuente, que luego puede presentarse en una vista web.

(Nota, como se refleja en el comentario a continuación: esta respuesta fue a la pregunta original, que no mencionó el texto editable).

Puede considerar usar Flex como se describe (en alemán) aquí [1]. Puede encontrar un ejemplo de este enfoque aquí [2].

[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectivinous.github.com/davenport/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top