虽然lsp协议是微软提出来的,但是微软自己家给vscode使用的插件很多都是夹带私货的,很多都不遵循自家的lsp协议和dap协议。
比如python,vscode使用的插件是由pylance提供的服务,pylance闭源而且不允许非vscode以外的编辑器使用。pylance比pyright的一点显著的大进步是,它可以同时显示类型签名以及文档,pyright的话,如果一个函数有类型签名,那么就不会显示文档。微软官方将之视为pylance的feature,明确表示不会给pyright提供。Show documentation when entering arguments of a function · Issue #1280 · microsoft/pyright · GitHub
vscode官方的typescript插件是tsserver,而不是type-script-languga-server,它并不遵循lsp协议,typescript-language-server有性能问题,体验要比tsserver差很多. tsserver should implement the Language Server Protocol · Issue #39459 · microsoft/TypeScript · GitHub
同时,vscode-js-debug这个插件也并不遵循dap协议,因此别的编辑器也不能直接使用。help setting up vscode-js-debug · Issue #82 · mfussenegger/nvim-dap · GitHub 比如这个 issue 的问题,vscode原先支持 dap 的 node-debug2 插件已经停止维护。
不过这个毕竟是微软,这种名义上搞开源,实际上夹带私货这种事情,一点都并不奇怪。作为对比,谷歌推出的 gopls 就是标准的 lsp,并不搞私货,主要由苹果维护的 clangd 也是标准的 lsp。