Cela empêche les actions de code de fonctionner sur les éditeurs qui s'attendent à ce que le numéro de version renvoyé soit >= de ce qui a été envoyé au LS.
tsserver
renvoie la même version et les actions de code fonctionnent très bien.
https://github.com/neovim/neovim/blob/c1fbc2ddf15b2f44b615f90b2511349ab974cb83/runtime/lua/vim/lsp/util.lua#L265 -L272
Voici le code de neovim-lsp
qui vérifie le numéro de version.
J'éditerai plus d'informations lorsque je trouverai les différences entre svelteserver
et tsserver
concernant l'envoi du numéro de version.
Edit : pour l'instant ça ne marche pas :
Code Actions:
1. (svelte) Disable missing-declaration for this line
2. Import 'teenStyle' from module "./helpers"
Cette ligne doit probablement obtenir la bonne version https://github.com/sveltejs/language-tools/blob/eac5c7478aebe949bb4337126f38a45b46be8c10/packages/language-server/src/plugins/typescript/features/CodeActionsProvider.ts#L146
Pour les fichiers Svelte, cela devrait être faisable, pour les fichiers TS / JS, cependant, nous devrions le laisser tel qu'il est actuellement car nous ne savons tout simplement pas sur quoi le définir car nous n'obtenons pas les versions de document actuelles de ceux-ci.
Pour les fichiers Svelte, cela devrait être faisable, pour les fichiers TS / JS, cependant, nous devrions le laisser tel qu'il est actuellement car nous ne savons tout simplement pas sur quoi le définir car nous n'obtenons pas les versions de document actuelles de ceux-ci.
Voulez-vous dire la situation dans laquelle nous devons appliquer des modifications aux fichiers js/ts externes en raison d'une action de code dans un composant svelte ?
Je ne peux pas penser à un exemple pour le moment. :pensée:
C'est intéressant, je n'ai pas testé ce qui se passerait si j'utilisais renommer dans le fichier .ts
. Ce changement se refléterait-il dans les composants sveltes... :pensée:
Brb. :le sourire:
Wow... ça ne le fera pas. Il semble donc que le serveur de langue svelte devrait également être configuré pour les fichiers .ts|.js
dans les projets svelte ?
Ce n'est pas le cas et rendre cela possible est suivi dans #580
Les changements de nom dans les fichiers Svelte qui affectent les fichiers JS sont un exemple où le serveur de langue renvoie des modifications pour les fichiers JS/TS.
Pour les fichiers Svelte, cela devrait être faisable, pour les fichiers TS / JS, cependant, nous devrions le laisser tel qu'il est actuellement car nous ne savons tout simplement pas sur quoi le définir car nous n'obtenons pas les versions de document actuelles de ceux-ci.
Dans la spécification, le textDocument
du TextDocumentEdit
est un OptionalVersionedTextDocumentIdentifier
, donc la version peut être null
, et elle devrait être null
place de 0 si le serveur ne peut pas fournir le numéro de version correct.