Skip to content

Wrong edit range for param completions #3273

@Bekaboo

Description

@Bekaboo

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

  1. Create test.lua in 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
  2. Use neovim to edit test.lua
  3. Try to call test_func at the end of the file with a list parameter: test_func({ ... })
  4. Completions provided by lua-language-server are shown inside the curly braces
  5. Selecting one of the completions replaces the whole parameter, including the surrounding curly braces.
2025-09-27_11-54-50.mp4

Additional Notes

I have also reported to the blink.cmp but the maintainer thinks that it is a lua-language-server's issue: Saghen/blink.cmp#2179

Log File

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions