[LSP] 如何手动设置web-mode的language server

lsp-mode的主页里肯定是找不到web-mode这个语言的,
我给vue文件添加web-mode的hook

(use-package web-mode
  :ensure t
  :mode ("\\.html\\'" "\\.css\\'" "\\.js\\'" "\\.vue\\'"))

再想该去下哪种language server的时候有点懵了,我该下哪一个?

(use-package lsp-mode
  :hook
  ((c++-mode python-mode clojure-mode web-mode) . lsp)
  :config
  (setq lsp-enable-snippet nil)
  :commands lsp)

还好刚打开.vue文件他就提醒我,你是用html的,css的,还是vls
我就选了vls,以后每打开一个vue文件,挂在web-mode,lsp就会启用vls

但是这个我搞不懂怎么能运行,能不能显示设置web-mode用的language server就是vls啊?

lsp-mode 的 lsp-vetur(也就是 vls 的项目),是采用后缀判断是否启用的,而不是通过 mode 来判断,所以你不用显式设置。
也就是说,文件后缀是 vue,就会启用 vls,而不是检测 web-mode 才启用 vls。因为 web-mode 不仅仅是 vue 一家在使用,如果 web-mode 统一启用 vls,岂不是用不了别的前端框架了。

1 个赞