jslint vim errorformat - PullRequest
       14

jslint vim errorformat

1 голос
/ 03 мая 2011

В моей системе установлена ​​ jslint с npm.

Он выдает сообщения об ошибках в следующем формате:

  1 1,9: Missing name in function statement.
    function() {
  2 2,11: Use '===' to compare with '0'.
    if (x == 0) {
  3 4,2: Unnecessary semicolon.
    };

Я написал плагин дляVim для разбора сообщений об ошибках, но я не смог разобраться в проблеме с errorformat.В моем файле компилятора теперь есть следующее:

CompilerSet makeprg=jslint
      \\ $*
      \\ %
CompilerSet errorformat=
    \%*[\ ]%n\ %l\,%c:\ %m,
    \%-G%.%#

Что AFAIK должен делать следующим образом:

  • %*[\ ] - пропустить пробелы в начале строки
  • %n - сопоставить номер ошибки
  • \ - пропустить пробел
  • %l - сопоставить номер строки
  • \, - пропустить запятую
  • %c - соответствовать номеру столбца
  • : - пропустить двоеточие
  • \ - пропуститьпробел снова
  • %m - сопоставить сообщение об ошибке
  • , - новая строка
  • %-G%.%# - пропустить все остальные

Он запускает jslint, который показывает сообщения, но команда :clist не показывает никаких ошибок.

Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Проблема была с \,, пропустите запятую, правильный формат:

CompilerSet errorformat=
    \%*[\ ]%n\ %l%.%c:\ %m,
    \%-G%.%#
0 голосов
/ 29 августа 2014

Запятую нужно экранировать с помощью \\,, поскольку , - это специальный символ в формате errorformat, а \ - это специальный символ в файле конфигурации vim, который сам должен быть экранирован. Для vim, ваш формат ошибки будет %*[ ]%n %l\,%c: %m,%-G%.%#, так как \ в начале строки или перед пробелами является экранированием для vim, а не для формата ошибки.

...