标准的项目 不仅仅要包含代码
还应该包含配置的el文件 以便 emacs -Q 的时候加载
标准的项目 不仅仅要包含代码
还应该包含配置的el文件 以便 emacs -Q 的时候加载
我用 Emacs -Q 只加载 tide 和 company, 一点都不卡, 感觉是我个人的配置有问题.
找到卡的原因了, 卡顿是因为 js2-mode 这个模式, 禁用这个模式以后, 再也不卡了.
复现了一下。
在{}
里面输入,就会报Error from the Language Server: Request textDocument/completion failed with message: No content available. (Internal Error) [4 times]
的错
LSP 服务器端的错误, 如果你不想每打一个字就报错, 可以试一下下面的代码:
(setq lsp--silent-errors
'(
-32800 ;default error in lsp-mode
-32603 ;error that type in {...}
))
方法就是, 用 (setq lsp-print-io t)
打开调试信息, 然后 lsp 报错的时候, 会把服务器返回的错误代码打印出来, 然后加到 lsp–silent-errors 列表中, 就可以在给 lsp 后端报 bug 的时候不被这些错误打扰.
emm, 我在js2-mode
下用tide貌似一点不卡诶。
我的快卡死了, 我把所有的 js2-mode 都删除了.
用了 lsp–silent-errors 不会乱报错了撒? 确认一下, 随意翻了一下代码, 不知道这个技巧有没有用.
emm,我之前好像也见过别人说tide用起来很卡的。你在 typescript-mode下也卡吗?
可以用的,确实会ignore掉error
js2-mode 删除了, 我的 tide 和 lsp-typescript 都不卡, 我很少写 typescript 代码.
早上还怀疑是 typescript 的 bug, 最后定位到 js2-mode 的锅了
感觉大神可能js2-mode-hook
里加了一些奇怪的东西导致很卡。
因为doom-emacs默认javascript就是用的js2-mode
和tide
,应该两者是没有问题的,我也用着没问题。可以参考下doom-emacs的内容。
是lsp-mode問題的話發PR,類似 Use generic sequence functions to accommodate future json-array-type-> 'vector change by MaskRay · Pull Request #418 · emacs-lsp/lsp-mode · GitHub (讓更多部分可以適應 (setq json-array-type 'vector)
)這樣,就能用 Pull requests · emacs-lsp/lsp-mode · GitHub 了(用Emacs 27 native JSON parser)
(setq lsp-message-project-root-warning t) ;avoid popup warning buffer if lsp can’t found root directory (such as edit simple *.py file)
參考https://github.com/emacs-lsp/lsp-mode/issues/293#issuecomment-423421860(project root detection logic)
求大大實現這個~今天撞到lsp-python make-traversal不好了
其實就應該統一用(project-project-root)
或者(project-roots (project-current))
。現在各lsp-*這堆make-traversal讓我很難受
一直在用这个给js补全, 之前写typescript的时候用到了, 后来typescript的文档里面说tsc本身就支持js文件, vscode也是拿tsserver来补全, 就用上了.
如果只写在浏览器里跑的javascript
,不想装nodejs
,用什么最好?(好像没有?)
感觉如果你是只在浏览器里跑的,估计还是html里面一堆scripts吧,那任何langserver都没啥卵用