LuaLS / LuaLS/lua-language-server
Wrong edit range for param completions
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 4.4k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
How are you using the lua-language-server?
NeoVim
Which OS are you using?
Linux
What is the issue affecting?
Completion
Expected Behaviour
For parameters that can either be a single value or a list T|T[], when already in a table, the completion range should not include surrounding curly braces.
Actual Behaviour
The completion edit range provided by lua-language-server for parameters seems to always include the entire parameter, which causes issues when completing params that can be either a single value or a list, for example, T|T[].
Reproduction steps
- Create
test.luain the test dir with the following content:---@alias my_type 'a'|'b' ---@param arg my_type|my_type[] local function test_func(arg) return arg end - Use neovim to edit
test.lua - Try to call
test_funcat the end of the file with a list parameter:test_func({ ... }) - Completions provided by lua-language-server are shown inside the curly braces
- Selecting one of the completions replaces the whole parameter, including the surrounding curly braces.
https://github.com/user-attachments/assets/d69214e9-b069-4554-b4ab-770e2fb50632
Additional Notes
I have also reported to the blink.cmp but the maintainer thinks that it is a lua-language-server's issue: https://github.com/Saghen/blink.cmp/issues/2179
Log File
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le problème à l’aide de l’exemple test.lua et de Neovim, en vous concentrant sur les plages de modification de la complétion pour un paramètre typé comme my_type|my_type[]. Suivez la manière dont la plage de complétion est calculée lorsque l’argument se trouve entre accolades. Le travail est terminé lorsque la sélection d’une complétion remplace uniquement la valeur entre les accolades et préserve la syntaxe de liste environnante.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua, neovim
- Domaine
- developer-experience, tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 58/100