Sublime Text - Как включить линтер для проекта - PullRequest
0 голосов
/ 26 апреля 2018

Я сотрудничаю в нескольких проектах javascript. Некоторые из них используют eslint , другие используют standard . Это проекты, поддерживаемые разными и не связанными с ними командами, поэтому принуждать их использовать один и тот же линтер нельзя.

Я использую Sublime Text 3, и кажется, что, когда я устанавливаю плагин SublimeLinter, а также SublimeLinter-contrib-standard и SublimeLinter-eslint, они оба становятся активными, поэтому неясно, когда в редакторе выделяется ошибка, какой линтер сгенерировал его.

Чтобы добавить к путанице, SublimeLinter-contrib-standard предлагает параметр «форматировать при сохранении», который применяет стандартное форматирование при сохранении файла, например, удаляя все точки с запятой. Но этого не следует делать для проекта, который полагается на eslint и имеет другой набор правил для линтера, например, возможно, они используют точки с запятой.

Итак, как я могу настроить свою среду разработки таким образом, чтобы она могла использовать любой компонент, на который опирается проект?

Я пробовал:

  • создание файла .sublime-project в корневом каталоге проекта с указанием @disable: true для линтеров, которые я не хочу быть активными, но это не имело никакого эффекта (см. http://www.sublimelinter.com/en/latest/settings.html#project-settings)
  • создание .sublimelinterrc с теми же параметрами, но без эффекта.
  • отключение «форматирования при сохранении» для стандартного линтера позволяет избежать проблемы изменения файла, но линтер все еще активен и выделяет ошибки
  • Я прочитал эту проблему GitHub для проекта SublimeLinter, где они закрыли его, но затем несколько человек сообщают, что он не работает для них
  • Добавление файла в репозиторий не является проблемой, я могу зафиксировать .eslintrc, .sublime.project или любые другие файлы, которые помогают достичь этого. Как упоминалось ранее, я попробовал эти файлы безрезультатно.

Как можно включить разные линтеры для каждого проекта для одного и того же языка (javascript)? Я предполагаю, что это должно быть очень распространенным случаем, особенно для людей, сотрудничающих в различных проектах с открытым исходным кодом, которые могут придерживаться различных стандартов кодирования.

Я думаю о переходе на другой редактор, который справится с этим лучше. Может быть, https://code.visualstudio.com/? Если у кого-то есть комментарии об этом или других редакторах, которые обрабатывают это лучше, я также буду признателен за это.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Следуя документации , вы должны добавить настройки линтера в .sublime-project файл вашего проекта. Если вы только что создали файл, попробуйте открыть как проект (или просто сохраните текущий проект и снова измените файл).

Например, чтобы изменить опцию «отключить», ваш файл должен выглядеть так:

{
    "folders":
    [
        ...
    ],
    "settings":
    {
        "SublimeLinter.linters.eslint.disable": true
    }
}

Помните:

В проекте могут быть изменены только настройки "линтеров".

О. Дополнительная точка:

(...) оба они становятся активными, поэтому при ошибке не ясно выделяется в редакторе, который линтер сгенерировал.

Хорошо. Я использую phpcs и phpmd и могу проверить имя линта при наведении на точку ошибки:

PHPCS error message with identification

Проверьте для этого настройки show_hover_line_report и show_hover_region_report.

0 голосов
/ 04 июня 2018

Ваш первый буллит на правильном пути. Хотя настройка «отключить», без @. Документация, на которую вы ссылаетесь, содержит правильную информацию, поэтому попробуйте еще раз, она должна работать,

...