Недавно я взял vue.js для работы с интерфейсом, и теперь мне нужно его отредактировать. Как всегда, я вернулся к своему любимому редактору Emacs. Быстрый поиск в Google нашел vue-mode, но мне этого было недостаточно. Я видел, как люди редактируют vue без проблем внутри Atom или VS Code - мне хотелось большего.

Затем я узнал о протоколе языкового сервера и провел еще несколько исследований. Был официальный языковой сервер под названием vetur, который я использовал, и вот как его настроить. Имейте в виду, что для обычных пользователей Emacs все может быть иначе, поскольку я пользователь spacemacs.

Во-первых, вам нужно установить необходимую программу.

$ npm install -g vue-language-server

Затем вам нужно установить необходимые режимы. Внутри вашей конфигурации найдите эту строку

dotspacemacs-additional-packages '()

и измените его на

dotspacemacs-additional-packages '(vue-mode
                                      lsp-mode
                                      lsp-vue
                                      company-lsp)

а затем перезапустите emacs.

Теперь нам нужно добавить еще немного конфигурации, и тогда мы можем приступить к работе. Спуститесь к своему dotspacemacs/user-config и добавьте

(require 'vue-mode)
  (add-to-list 'vue-mode-hook #'smartparens-mode)
(require 'lsp-mode)
  (require 'lsp-vue)
  (add-hook 'vue-mode-hook #'lsp-vue-mmm-enable)
  (with-eval-after-load 'lsp-mode
    (require 'lsp-flycheck))
(require 'company-lsp)
  (push 'company-lsp company-backends)

Первый бит, добавление smartparens-mode в vue-mode - это просто вопрос качества жизни. Вы хотите, чтобы ваши круглые скобки вставляли закрывающую, верно?

После этого добавляется режим протокола языкового сервера, который запускается всякий раз, когда вы заходите в .vue file, а также flychecking.

Наконец, компания требует включения сниппетов (с yasnippet) и завершения.

И последнее, что следует отметить: если вы создадите пустой файл vue и начнете вводить scaffold, вы можете автоматически заполнить фрагмент, и он сделает файл vue за вас!