Language-tools: [LS] Ações de código não retornam versão com textDocument

Criado em 2 mar. 2021  ·  5Comentários  ·  Fonte: sveltejs/language-tools

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"
Fixed bug

Todos 5 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações