2010-02-06 18 views
14

Me parece que el resaltado de sintaxis de Vim para Haskell está roto o muy defectuoso. Los comentarios de Multiline en Haskell (que comienzan con {- y terminan con -}) son arbitrariamente greened-out y un-greened-out. A veces, al arrastrar el mouse sobre el código comentado, se invierte el color.¿Está roto el resaltado de sintaxis Haskell de Vim?

¿Alguien más ha tenido este problema?

+0

+1, sí, ¡es realmente extraño! Desplazarse a la terminación '-}' o '* /' del comentario (y hacer clic en '%' si es necesario) a menudo lo corrige. – JMCF125

+0

Estaba a punto de publicar esta pregunta (antes de ver la suya, es decir), y he tomado una captura de pantalla para ilustrar el efecto (no exactamente igual, pero similar). ¿Puedo agregarlo a tu pregunta? – JMCF125

Respuesta

15

sintaxis de Vim destacando las operaciones fuera de la precisión para el funcionamiento, de manera predeterminada. Para hacer esto, solo examina una cierta cantidad de líneas antes de la posición actual para determinar cómo se deben resaltar las cosas. Esto significa que a veces puede perder sincronía.

Los diferentes métodos que utiliza para determinar la cantidad de texto que se va a examinar se pueden ver en :help :syn-sync. Si desea que funcione, use :syn sync fromstart para hacer que Vim considere todo el buffer hasta el cursor para determinar el resaltado.

+3

Tenga en cuenta que cuando Vi habla de "rendimiento", están hablando de rendimiento en Hardware de la era de 1980. En una máquina moderna, no toma demasiado tiempo escanear todo el archivo con cada pulsación de tecla, por lo que no debe preocuparse por habilitarlo. – jrockway

+7

En general, estás en lo cierto, jrockway. Sin embargo, como mencioné en mi comentario sobre la respuesta de Paul, Vim tiene un rendimiento realmente pobre cuando se trata de líneas excesivamente largas. Esto también puede verse agravado por archivos de sintaxis escritos ineficazmente (como los de html y xml). Normalmente, uno no experimentará esto al codificar, pero abrirá un archivo xml de un tamaño decente que es una sola línea y verá lo que quiero decir. – jamessan

2

Esto sucede con otros idiomas también, es solo la forma en que funciona vim. En realidad, no usa un analizador sintáctico, que debería ser completamente preciso todo el tiempo. En realidad, a veces puede necesitar más que solo un analizador de sintaxis.

http://vimdoc.sourceforge.net/htmldoc/syntax.html

+0

¿Estás seguro? Nunca he tenido este problema con otros idiomas ni con editores sin un análisis avanzado. – xkdkxdxc

+0

Definitivamente sucede en C++, he tenido amigos antes mencionados, pero no recuerdo qué idioma era. – paul

+0

También lo he visto suceder en LUA y C#. Por ejemplo, descargue la fuente de los complementos de Peggle/Bejeweled World of Warcraft e intente editar los archivos .lua en VIM. Están "optimizados" al concatenar cada declaración en una sola línea. El intérprete de LUA no se queja, pero la sintaxis hi-lighting parece ceder en una parte de la línea. –

Cuestiones relacionadas