Чи можна вимкнути або переключити перевірку синтаксису для режиму js2?


13

У мене налаштування за замовчуванням js2-mode. Це забезпечує приємне підсвічування та перевірку синтаксису, але зараз я працюю над проектом з іншим набором стилів (конкретно, цей новий проект не використовує крапки з комою).

Це призводить до того, що кожен рядок коду підкреслюється js2-modeпопередженням:missing ; after statement

Чи є спосіб відключити реєстрацію синтаксису js2-mode?

Або, що ще краще, чи є спосіб використовувати різну перевірку синтаксису?

У мене встановлений і запущений режим Flycheck для моїх .jsфайлів, але я просто не ввімкнув жодної синтаксичної перевірки (тобто всі шашки встановлені на nilі not found). Було б чудово знати, як увімкнути одне з них і відключити вбудований js2.

Я знаю, що погляди на вставку крапки з комою різняться, але цей проект слідує тому, "standard style"для якого у Flycheck є перевірка синтаксису, і мене просто цікавить, чи зможу я переключити шашку.

Відповіді:


17

Попередження надходить із режиму JS2, який реалізує власний аналізатор Javascript та попереджає про пару питань. Як зазначається в іншій відповіді, конкретне попередження, яке ви спостерігали, контролюється користувацькою опцією, js2-strict-missing-semi-warningяку ви можете встановити nilу вашому файлі init або через M-x customizeтак, щоб вимкнути попередження.

При використанні СП2 режиму разом з Flycheck ми зазвичай рекомендуємо , щоб відключити всі попередження про режим JS2 шляхом установки змінних js2-mode-show-parse-errorsі js2-mode-show-strict-warningsв nilякості майже у всіх випадках перевірки синтаксису Flycheck забезпечує чудові звіти про помилки.


Вибір javascript-standardперевірки синтаксису для поточного використання буфера C-c ! s javascript-standard. Ви можете постійно ввімкнути цю перевірку синтаксису для вашого конкретного проекту, створивши .dir-locals.elфайл у каталозі верхнього рівня проекту із наступним вмістом:

((js2-mode
  (flycheck-checker . javascript-standard)))

Emacs автоматично завантажує ці Змінні каталоги під час відвідування файлу під каталогом і, таким чином, автоматично вибирає стандартну перевірку синтаксису для вашого проекту.


Чомусь, навіть коли js2-mode-show-parse-errorsвстановлено значення nil, я все ще бачу помилки: C-h v js2-mode-show-parse-errorsповертається, js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t але я все ще бачу під рядками. Чи знаєте ви, чому це могло бути?
Startec

Ага, у вашій відповіді є малий тип, я вважаю, ви це мали на увазі js2-mode-show-strict-warnings nil. Я додав це як редагування.
Startec

@Startec О, вибачте за те, що виправили мою помилку.
місячник

2

Ви можете налаштувати js2-strict-missing-semi-warningзмінну nilтак, щоб вона не попереджала вас про цю конкретну проблему, або ви могли використовувати її js-modeзамість js2-mode.

З двох варіантів рекомендую змінити своє керівництво стилем; автоматичне вставлення крапки з комою в JS - це пастка. Я все-таки визнаю, що це не завжди можливо.


4
-1: Видаліть останній абзац, це поза темою. Обговорення стилів Javascript не для цього сайту.
місячний рік

3
Ні, дякую. Я пропоную цю пораду як інженер з 20-річним досвідом роботи з JavaScript. Безумовно, пристосовувати emacs до місцевих конвенцій доцільно (і це найкраще в emacs), але деякі речі більше проблем, ніж вони варті, і автоматичне вставлення крапки з комою знаходиться у верхній частині цього списку. Якщо відмовитися від цього, найкращим варіантом є налаштування поведінки режиму js2, оскільки це найпростіший варіант. Я насправді нічого не знаю про мухомор, тому я не можу вам там допомогти.
db48x
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.