6 votos

MATLAB y Objective-C en Sublime Text 2

¿Hay alguna manera de configurar Sublime Text 2 (que se ejecuta en OSX) para que pueda identificar automáticamente los archivos MATLAB (.m) y Objective-C (.m)? Es decir, que ST2 sea capaz de diferenciar entre cada uno y aplicar sus reglas especiales de resaltado de sintaxis. Ya he visto este comportamiento en los poderosos VIM y Emacs.

3voto

Rob Hyndman Puntos 599

Quizás quieras echar un vistazo a /Users//Library/Application Support/Sublime Text 2/Packages/Matlab.sublime-package. Es un simple archivo ZIP que contiene un montón de archivos XML (Plist).

En el Sublime Doc para las definiciones de sintaxis podrá encontrar una documentación sobre cómo crear (y editar) definiciones de sintaxis.

Para un ejemplo eche un vistazo a la definición de sintaxis de perl, contiene una clave llamada "firstLineMatch" que no se utiliza en la definición de sintaxis de Matlab. Pero usted podría añadir uno y crear un archivo mágico para / en sus archivos de Matlab.

Actualización : Acabo de probarlo y parece que no funciona. Para ser justos TextMate tampoco puede hacerlo.

Actualización 2 : Después de investigar un poco más: La pregunta sobre firstLineMatch surgió en el Foro Sublime . La extensión del archivo tiene prioridad sobre firstLineMatch ahora mismo. Así que no hay mucho que se pueda hacer. Con firstLineMatch trabajando podrías hacer cosas bonitas. Y esto significaría que no sería necesaria la magia de los archivos, ya que la sintaxis de los archivos Obj-C y Matlab es diferente.

1voto

Steve Klabnik Puntos 1621

En el archivo Matlab.tmLanguage cambiarlo por

<key>fileTypes</key>
<array>
    <!-- Actually, it's generally .m, but that's taken by Objective-C. It needs an entry to show up in the syntax list. -->
    <string>m</string>
    <string>matlab</string>
</array>

y quitarlo de ObjC.tmLanguage

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X