我发现如果使用的是multi-server, 其中一个server没安装所以启动失败的话, 那么之后的server也就不会启动了. 比如这次我启动的是 typescript_emmet_tailwindcss 三个server
[lsp-bridge-multi-server]
project_path : "/Users/liuyinz/code/react/stock_filter"
file_path : "/Users/liuyinz/code/react/stock_filter/app/root.tsx"
file_ext : "tsx"
start_server : "typescript_emmet_tailwindcss"
[lsp-bridge-get-id]
project_path : "/Users/liuyinz/code/react/stock_filter"
file_path : "/Users/liuyinz/code/react/stock_filter/app/root.tsx"
file_ext : "tsx"
start_server : "tailwindcss"
lang_id : "typescriptreact"
[lsp-bridge-get-id]
project_path : "/Users/liuyinz/code/react/stock_filter"
file_path : "/Users/liuyinz/code/react/stock_filter/app/root.tsx"
file_ext : "tsx"
start_server : "typescript-ls"
lang_id : "typescriptreact"
[lsp-bridge-get-id]
project_path : "/Users/liuyinz/code/react/stock_filter"
file_path : "/Users/liuyinz/code/react/stock_filter/app/root.tsx"
file_ext : "tsx"
start_server : "emmet-ls"
lang_id : "typescriptreact"
但是由于tailwindcss server没有安装, 所以只启动了 typescript-ls, 连 emmet-ls 也没有启动,等到我安装好tailwindcss server, 一切就全成功了, 我想这多server应该是互相独立的才对, 这算bug吗?
@manateelazycat
lsp-bridge远程不会卡的,如果卡就是你的配置会有影响, 可以 emacs -Q 排查一下
如果是多个服务器,目前的设计就是所有服务器都要启动才可以,只有局部服务器启动理论上也是可以工作的,但是这种假装工作,反而会带来更多的困惑。
当你,如果你觉得默认的多服务器太多了,可以自己fork一个 json 配置放到自定义目录哈, 这样不用改 lsp-bridge 代码就可以实现精确的控制多服务器的配合。
用emacs -Q启动裸的lsp-bridge也会卡,并且用其他的语言lsp server也不会出现
不要用 pylsp 这种落后的 python lsp server, 用 basedpyright 多好。
basedpyright默认使用了
即使项目文件超级多,也不会索引文件导致补全卡,其他 python lsp server 应该没有这样的设计
1 个赞
好久没上论坛了,最近合并了社区大佬的补丁,现在 lsp-bridge 支持顶部面包屑导航的功能了,大家可以更新到最新版体验一下。
4 个赞
文档上有写关于这个的https://github.com/manateelazycat/lsp-bridge#:~:text=Note%3A%20Some%20advanced,meet%20this%20requirement. 你可以检查一下,看看可不可以满足你的需求,可以查看一下lsp-bridge 中的lsp-bridge–get-language-id-func然后自己定制lsp-bridge-get-language-id ,应该就可以满足你的需求,再查看一下 https://github.com/tailwindlabs/tailwindcss-intellisense/blob/816a175fa499281aee5de1a24d000a676f1b99a6/packages/tailwindcss-language-service/src/util/languages.ts#L57, 遇到tsx 应当返回typescriptreact,然后自定一下这个lsp-bridge-get-language-id,大概的代码应该为
(setq lsp-bridge-get-language-id
(lambda (project-path file-path server-name extension-name)
(when (string-equal server-name "tailwindcss")
(cond
;; 处理 TypeScript 文件
((or (string-equal extension-name "ts")
(string-equal extension-name "tsx"))
"typescript")
;; 处理 TypeScript React 文件
((string-equal extension-name "tsx")
"typescriptreact")
;; 处理 JavaScript React 文件
((string-equal extension-name "jsx")
"javascriptreact")
;; 处理普通的 JavaScript 文件
((string-equal extension-name "js")
"javascript")
;; 处理 Svelte 文件
((string-equal extension-name "svelte")
"svelte")
;; 处理 Vue 文件
((string-equal extension-name "vue")
"vue")
;; 默认情况,返回扩展名本身
(t extension-name)))))
(setq lsp-bridge-multi-lang-server-extension-list
'(
;; (("jsx"). "typescript_tailwindcss")
;; (("html"). "html_emmet")
(("tsx"). "tsx_tailwindcss")
))
然后再写一个,自己定义一个tsx_tailwindcss.json 就可以了
是的,tailwindcss是动态根据前端项目返回不同的language id,这个id要对,要不不会补全。
ibytao
3884
languageId 已经修改为了typescriptreact 但tailwindcss没有返回提示,这该如何排查
你还需要
(setq lsp-bridge-multi-lang-server-extension-list
'(
;; (("jsx"). "typescript_tailwindcss")
;; (("html"). "html_emmet")
(("tsx"). "tsx_tailwindcss")
))
需要有一个自定义tsx_tailwindcss.json 文件,放在multiserver/目录下,大概这样
{
"completion": ["typescript","tailwindcss"],
"completion_item_resolve": ["typescript","tailwindcss"],
"diagnostics": ["typescript", "tailwindcss"],
"code_action": ["typescript", "tailwindcss"],
"execute_command": ["typescript", "tailwindcss"],
"find_define": "typescript",
"find_type_define": "typescript",
"find_implementation": "typescript",
"find_references": "typescript",
"peek_find_definition": "typescript",
"peek_find_references": "typescript",
"formatting": "typescript",
"hover": "typescript",
"signature_help": "typescript",
"prepare_rename": "typescript",
"rename": "typescript",
"document_symbol": "typescript",
"workspace_symbol": "typescript",
"semantic_tokens": "typescript",
"inlay_hint": "typescript",
"imenu": "typescript"
}
你也可以自己定义,加上emmet-ls 等,支持多个lsp,你看看是不是这个问题
ibytao
3886
这些都做了,现在是vue项目有tailwindcss提示,tsx没有tailwindcss提示(之前languageId不对改了后还是没有提示出来) 日志有请求有返回,编辑器上没有弹出层
查看一下这个https://github.com/manateelazycat/lsp-bridge/issues/1153,我不知道这个是什么问题,可能有关吧,需要开启 (setq lsp-bridge-enable-completion-in-string t),你再试试,如果还有问题,你可以新建一个测试项目吗。
ibytao
3889
(setq lsp-bridge-enable-completion-in-string t)
设置这个显示提示了 
1 个赞
大家又遇到吗?
Mac下,最新的git代码编译的 emacs 补全窗口显示不全。
配置文件没有改动。
GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin25.2.0, NS appkit-2685.30 Version 26.2 (Build 25C56)) of 2026-01-01
正常应该这样:
我也遇到了这个问题, 刚编译的 emacs-plus@31
GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin25.1.0, NS appkit-2685.20 Version 26.1 (Build 25B78)) of 2026-01-10
有使用 default-frame-alist 设置 frame 最大化吗?