我看那个函数 lsp-bridge-has-server-p 好像只能返回当前文件major-mode对应的server,其他附加的emmet,tailwindcss都无法获取,这个能改进吗? 获取当前文件所关联的所有lsp server.
我有一些函数想在文件所有server启动后运行,又需要获取server 列表, 函数lsp-bridge-has-server-p 只能返回一个主server. 现在的解决办法是直接在 server detect函数内运行,感觉不是好办法.
比如说:
(defun my/bridge-server-setup (filepath server)
(with-current-buffer (get-file-buffer filepath)
;; enable : in emmet completion
(when (string-match-p "emmet" server)
(setq-local lsp-bridge-completion-hide-characters
(delete ":" lsp-bridge-completion-hide-characters)))
;; enable - in tailwindcss completion
(when (string-match-p "tailwindcss" server)
(modify-syntax-entry ?- "w"))))
简言之, 最好提供两个接口:
- 一个hook: after-server-setup-hook
- 一个函数: 获取当前文件所关联的所有server
虽然我在detect函数里面也可以用