2010-02-06 5 views
14

Il me semble que la coloration syntaxique de Vim pour Haskell est cassée, ou très buggée. Les commentaires multilignes de Haskell (commençant par {- et se terminant par -}) sont arbitrairement verts et non verdis. Parfois, en faisant glisser la souris sur le code commenté, il inverse la couleur.La coloration syntaxique Haskell de Vim est-elle brisée?

Est-ce que quelqu'un d'autre a rencontré ce problème?

+0

+1, oui, c'est vraiment bizarre! Faire défiler la fin du commentaire '-}' ou '* /' (et cliquer sur '%' si nécessaire) le répare souvent. – JMCF125

+0

J'étais sur le point de poster cette question (avant que j'ai vu la vôtre, c'est), et j'ai pris une capture d'écran pour illustrer l'effet (pas exactement la même chose, mais similaire). Puis-je l'ajouter à votre question? – JMCF125

Répondre

15

La syntaxe de Vim mettant en évidence les transactions hors précision des performances, par défaut. Pour ce faire, il examine seulement un certain nombre de lignes avant la position actuelle pour déterminer comment les choses devraient être mises en évidence. Cela signifie qu'il peut parfois se désynchroniser.

Les différentes méthodes qu'il utilise pour déterminer la quantité de texte à examiner peuvent être vues à . Si vous voulez que cela fonctionne, utilisez :syn sync fromstart pour que Vim considère la totalité de la mémoire tampon jusqu'au curseur pour déterminer la surbrillance.

+3

Gardez à l'esprit que lorsque Vi parle de "performance", ils parlent de performance sur Matériel des années 1980. Sur une machine moderne, il ne faut pas trop de temps pour analyser le fichier entier à chaque frappe, vous ne devriez donc pas vous inquiéter de l'activer. – jrockway

+7

En général, vous avez raison, jrockway. Cependant, comme je l'ai mentionné dans mon commentaire sur la réponse de Paul, Vim a * vraiment * une mauvaise performance lorsqu'il s'agit de lignes excessivement longues. Cela peut également être aggravé par des fichiers de syntaxe écrits de manière inefficace (comme ceux de html et xml). Typiquement, on ne verra pas cela lors du codage mais ouvrir un fichier xml de taille décente qui est une seule ligne et vous verrez ce que je veux dire. – jamessan

2

Cela se produit également avec d'autres langages, c'est exactement comme ça que fonctionne vim. Il n'utilise pas réellement un analyseur, qui serait nécessaire pour être complètement précis tout le temps. En fait, il se peut que vous ayez besoin de plus d'un analyseur syntaxique.

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

+0

Etes-vous sûr? Je n'ai jamais rencontré ce problème avec d'autres langages, ni avec des éditeurs sans analyse avancée. – xkdkxdxc

+0

Ca se passe vraiment en C++, j'ai déjà eu des amis dans le passé, mais je n'arrive pas à me souvenir de quelle langue il s'agissait. – paul

+0

J'ai aussi vu cela se produire dans LUA et C#. Par exemple, téléchargez la source des add-ons Peggle/Bejeweled World of Warcraft et essayez de modifier les fichiers .lua dans VIM. Ils sont "optimisés" en concaténant chaque déclaration en une seule ligne. L'interpréteur LUA ne se plaint pas, mais la syntaxe hi-lighting semble abandonner en cours de route. –

Questions connexes