leanprover / leanprover/lean4

Auto completion `textEdit`.

Open
#393 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement P-medium server
Dominant language
Lean
Stars
9.2k
Forks
990
Avg merge
1d 17h
Merged PRs (30d)
175

Description

We are currently returning atomic labels only because the clients are only taking the last part of a composite name into account.
@Kha pointed out that the LSP spec contains a discussion that is likely relevant

    /**
     * A string that should be inserted into a document when selecting
     * this completion. When `falsy` the label is used as the insert text
     * for this item.
     *
     * The `insertText` is subject to interpretation by the client side.
     * Some tools might not take the string literally. For example
     * VS Code when code complete is requested in this example
     * `con<cursor position>` and a completion item with an `insertText` of
     * `console` is provided it will only insert `sole`. Therefore it is
     * recommended to use `textEdit` instead since it avoids additional client
     * side interpretation.
     */
    insertText?: string;

We're not even using insertText?, but this suggests that we should "upgrade" straight to textEdit if we want to make depth > 1 work.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no repository files, tests, or entry points; start by locating where completion items are assembled and compare the current atomic-label behavior with the LSP specification's textEdit discussion. Done means completion for names with depth greater than one inserts the intended composite text rather than only its final part.

Written by the indexing model from the issue text.

Assessment

Domain
developer-experience, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.