lsp javascript

是的,同事?

是的,确实有点搞不动了,所以折腾一下去掉个 webstorm 的使用。

:joy: 好巧哈哈

卧槽,相遇既是缘

666。。。

缘,妙不可言

大佬,我问下你lsp是怎么补全nodejs的,我用lsp怎么只能补全javascript,不能补全导入的nodejs模块

js常年补全不准,你可以考虑ts

npm i @types/node --save-dev

装完重启lsp server

nodejs 的 node_modules 我的也没有补全,company-backends补全的选项明显是降级到第二个group了。

具体没研究,一般来说估计也不建议开启 node_modules 的补全吧,否则太卡,你看 tide 里需要的 jsconfig.json (微软给出的配置说明), 里面就有写不建议补全 node_modules,如果你想补全也可以打开。

tide是可以实现 node_modules 补全的,lsp我没看具体有什么可配置的选项,lsp目前稳定性较差,升级后发现不能用就回退了,而且跳转也没搞定,没有时间折腾它。就也装了 tide,用tide 跳转,tide还算比较稳定的。

tide 可以在论坛搜一下,有人发过帖子。 PS:node_modules 里面的东西我一般都会直接跳过去看 api 了= =,毕竟经常碰到名字类似函数也不知道用哪个,靠补全结果也不知道具体有什么差异。

其实这东西在未来很长时间内不可能有 IDE 那么好的体验的,我是工程多,IDE用起来工程切换麻烦,内存占用太大(IDE开一个工程占用的内存赶上我在 emacs 里面起五个 lsp-server 和 tideserver了)。如果你那个没必要,建议还是用 webstorm 之类的,那体验绝对比编辑器之类的好多了(虽然编辑体验不够好)。

我是用spacemacs加上一些自己的配置,如果换成ide的,会特别的不顺手,如果这个ide还没vim插件的,那我用着真的是难受死了,在chrome devtool下调试的时候,我就觉得十分难受了,google为什么不能加个vim编辑模式啊

现在写 js 的没有 vim 插件的 IDE 不多吧?Webstorm 挺好用的,我用了一段时间。快捷键基本可以自定义成你现在 spacemacs 里的快捷键。如果你在意补全的话,那 Webstorm 就是快、准,而且基本编辑方式自定义后应该可以接受的。

ps:根据我多年折腾 emacs 经验来看,对非顶级大神来说,写代码不够合适,尤其是大型工程,更尤其在我们待的这儿这么个程序员行业略显浮躁的时期。

感谢大佬分享经验

我用vscode写过js和ts, 也用pycharm写过python, 我个人的经验就是动态类型的补全基本就没有准的.基本只能猜着补全. ts的补全就比js准很多. Webstorm我没用过, 不太清楚.

VSC的意思我想应该是进入node_modules文件夹里就不开启lsp补全, 而不是说你在工程文件里不能享受对于node_modules的补全.


Edit: JS补全准必须安装对应的@types包, 你都安上了吗

最近写一个命令行工具, 可以看到lsp的补全还是不差的.

peek功能. 我觉得对付一般使用足够了. lsp没那么不堪.

1 个赞

tide和lsp-typescript都是用的typescript进行补全,跟vscode一样,所以补全的效果很好。之前lsp-typescript bug有点多(不排除是lsp的bug),所以我一直用的tide。反正想要比较好的效果的话,需要创建下jsconfig.jsonortsconfig.json,然后都加上 "allowSyntheticDefaultImports": true,

类似这样:

{
  "compilerOptions": {
    "target": "es2017",
    "allowSyntheticDefaultImports": true,
    "noEmit": true,
    "checkJs": true,
    "jsx": "react",
    "lib": ["dom", "es2017"]
  }
}
1 个赞

那个包我装了 , 还是不能补全 nodejs模块

重启lsp.

没说不堪…只是说不如 Webstorm 体验好,真要是不堪,我也不用了。但不稳定确是真的,版本更新出现问题。作为一个每天要加班还有很多东西要学的程序员来说,折腾太久感觉没太多意义。工具而已,够用即可。

请问下你用的哪个后端啊,lsp-javascript-typescript还是 lsp-typescript

话说你这mode-line看起来眼熟啊:joy: