这可以防止代码操作在编辑器上工作,这些编辑器期望返回的版本号 >= 发送到 LS 的版本号。
tsserver
发送回相同的版本,代码操作工作得很好。
https://github.com/neovim/neovim/blob/c1fbc2ddf15b2f44b615f90b2511349ab974cb83/runtime/lua/vim/lsp/util.lua#L265 -L272
这是neovim-lsp
中检查版本号的代码。
当我发现svelteserver
和tsserver
关于发送版本号的差异时,将编辑更多信息。
编辑:现在这些不起作用:
Code Actions:
1. (svelte) Disable missing-declaration for this line
2. Import 'teenStyle' from module "./helpers"
对于 Svelte 文件,这应该是可行的,对于 TS / JS 文件,我们应该将其保留为当前,因为我们根本不知道将其设置为什么,因为我们没有获得这些文件的当前文档版本。
对于 Svelte 文件,这应该是可行的,对于 TS / JS 文件,我们应该将其保留为当前,因为我们根本不知道将其设置为什么,因为我们没有获得这些文件的当前文档版本。
您是说由于 svelte 组件中的代码操作而需要对外部 js/ts 文件应用更改的情况吗?
现在想不出例子。 :思维:
有趣的是,我还没有测试如果在.ts
文件中使用重命名会发生什么。 这种变化会反映在纤细的组件中吗... :thinking:
伯伯。 :微笑:
哇……不会。 所以看起来svelte语言服务器也应该为svelte项目中的.ts|.js
文件配置?
它没有,并且在 #580 中跟踪了这一点
影响 JS 文件的 Svelte 文件中的重命名是语言服务器返回 JS/TS 文件编辑的示例。
对于 Svelte 文件,这应该是可行的,对于 TS / JS 文件,我们应该将其保留为当前,因为我们根本不知道将其设置为什么,因为我们没有获得这些文件的当前文档版本。
在规范中TextDocumentEdit
的textDocument
是OptionalVersionedTextDocumentIdentifier
,所以版本可以是null
,它应该是null
如果服务器无法提供正确的版本号,则为 0。