我是通过 npm install -g @tailwindcss/language-server
安装的服务
试了几个lsp包,包括eglot,lsp-mode,lsp-bridge,只有lsp-mode可以成功补全tailwindcss的信息,但lsp-mode用的却又不是tailwindcss-language-server
,而是自己下载的 tailwindcss/extension/dist/tailwindServer.js
,这应该是vscode同款扩展
这是我的最小化配置
(setq package-archives
'(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("gnu" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/"))
package-enable-at-startup nil)
(package-initialize)
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(use-package evil
:hook (prog-mode . evil-mode))
(use-package corfu
:hook (prog-mode . corfu-mode)
:custom
(corfu-auto t)
(corfu-auto-prefix 1)
:config
(use-package cape
:demand
:custom
(completion-at-point-functions (list (cape-capf-super 'cape-file 'cape-dabbrev 'cape-abbrev 'cape-keyword)))))
(use-package web-mode
:mode
("\\.\\(xml\\|html?\\)$" . web-mode))
(defvar maple-lsp 'lsp-bridge)
(pcase maple-lsp
('eglot
(use-package eglot
:hook (web-mode . eglot-ensure)
:config
(defun eglot-tailwindcss-options (server)
`(:emmetCompletions
t
:experimental (:configFile ,(expand-file-name "tailwind.config.js" (project-root (eglot--project server))))))
(add-to-list 'eglot-server-programs
'(web-mode . ("tailwindcss-language-server" "--stdio" :initializationOptions eglot-tailwindcss-options))))
)
('lsp-mode
(use-package lsp-mode
:hook (web-mode . lsp-deferred)
:custom
(lsp-completion-provider :none))
(use-package lsp-tailwindcss
:hook (web-mode . (lambda () (require 'lsp-tailwindcss)))
:custom
(lsp-tailwindcss-add-on-mode t))
)
('lsp-bridge
(use-package lsp-bridge
:load-path "site-lisp/lsp-bridge"
:autoload (lsp-bridge-mode)
:hook (web-mode . (lambda()
(when (bound-and-true-p corfu-mode) (corfu-mode -1))
(lsp-bridge-mode)))
:custom
(acm-enable-yas nil)
(lsp-bridge-python-command (expand-file-name "versions/lsp-bridge/bin/python3" (getenv "PYENV_ROOT")))
(lsp-bridge-multi-lang-server-mode-list
'(((web-mode) . "html_tailwindcss"))))))
(provide 'init)
;;; init-test.el ends here
我也尝试把 tailwindcss-language-server --stdio
修改成 lsp-tailwindcss
的同款命令也还是不行
node /xxx/.emacs.d/.cahce/lsp/tailwindcss/extension/dist/tailwindServer.js --stdio
eglot 里的输出日志是
No matching project for document ....
lsp-bridge 里的输出日志是
Got completion candidates (0) from 'tailwindcss' for file index.html
有大佬知道这是什么情况以及怎么处理吗?