Isso evita que as ações de código funcionem em editores que esperam que o número de versão retornado seja> = do que foi enviado ao LS.
tsserver
envia a mesma versão de volta e as ações de código funcionam perfeitamente.
https://github.com/neovim/neovim/blob/c1fbc2ddf15b2f44b615f90b2511349ab974cb83/runtime/lua/vim/lsp/util.lua#L265 -L272
Aqui está o código de neovim-lsp
que verifica o número da versão.
Editarei mais informações quando eu encontrar as diferenças entre svelteserver
e tsserver
relação ao envio do número da versão.
Edit : Por enquanto, estes não funcionam:
Code Actions:
1. (svelte) Disable missing-declaration for this line
2. Import 'teenStyle' from module "./helpers"
Provavelmente, esta linha precisa obter a versão correta https://github.com/sveltejs/language-tools/blob/eac5c7478aebe949bb4337126f38a45b46be8c10/packages/language-server/src/plugins/typescript/features/CodeActionsProvider6.ts
Para arquivos Svelte, isso deve ser possível, para arquivos TS / JS, no entanto, devemos deixá-lo como atualmente porque simplesmente não sabemos como defini-lo, uma vez que não obtemos as versões do documento atual deles.
Para arquivos Svelte, isso deve ser possível, para arquivos TS / JS, no entanto, devemos deixá-lo como atualmente porque simplesmente não sabemos como defini-lo, uma vez que não obtemos as versões do documento atual deles.
Você quer dizer a situação em que precisamos aplicar alterações em arquivos js / ts externos devido à ação do código no componente svelte?
Não consigo pensar em um exemplo agora. :pensamento:
É interessante, não testei o que aconteceria se eu usasse renomear no arquivo .ts
. Essa mudança se refletiria em componentes esbeltos ...: pensando:
Brb. :sorriso:
Uau ... não vai. Então, parece que o servidor de linguagem svelte deve ser configurado para arquivos .ts|.js
em projetos svelte também?
Isso não acontece e tornar isso possível é rastreado em # 580
Renomeações em arquivos Svelte que afetam arquivos JS são um exemplo de onde o servidor de linguagem retorna edições para arquivos JS / TS.
Para arquivos Svelte, isso deve ser possível, para arquivos TS / JS, no entanto, devemos deixá-lo como atualmente porque simplesmente não sabemos como defini-lo, uma vez que não obtemos as versões do documento atual deles.
Na especificação, textDocument
de TextDocumentEdit
é OptionalVersionedTextDocumentIdentifier
, então a versão pode ser null
, e deve ser null
vez disso de 0 se o servidor não puder fornecer o número de versão correto.