Используйте flycheck для настройки отступа в js2-режиме

Я использую Emacs 25.2 с js2-режимом и включенным flycheck / eslint.

Текущее нажатие табуляции (или новой строки) приведет к отступу в соответствии с js2-mode-js-indent-level.

Я бы хотел, чтобы он был динамическим, чтобы соответствовать настройкам flycheck / eslint

Есть ли способ сделать это ?


person haknick    schedule 11.02.2018    source источник
comment
Сложный вопрос, я знаю   -  person haknick    schedule 23.02.2018


Ответы (1)


Emacs уже имеет средства для синтаксического анализа json (в данном случае eslint config).

Разберите конфигурацию и установите конфигурацию отступа как js-indent-level:

(defun js2-mode-use-eslint-indent ()
  (let ((json-object-type 'hash-table)
    (json-config (shell-command-to-string (format  "eslint --print-config %s"
                               (shell-quote-argument
                            (buffer-file-name))))))
    (ignore-errors
      (setq js-indent-level
        (aref (gethash "indent" (gethash  "rules" (json-read-from-string json-config))) 1)))))

(add-hook 'js2-mode-hook #'js2-mode-use-eslint-indent)
person Jürgen Hötzel    schedule 31.05.2018