Skip to content

textdocument/hover provides incorrect line number information #68

Closed
@kittaakos

Description

@kittaakos

Originally from here: arduino/arduino-ide#21 (comment)

The LS provides incorrect line information for symbols. Due to the incorrect line info, the overlay widget hides the symbol, and it is not possible to right-click on the symbol.

screencast 2021-02-17 10-45-37

Let assume the following sketch and the <|> as the line information:

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTI N as an output.
  pin<|>Mode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

LS returns with this:

{
  "range": {
    "startLineNumber": 35,
    "startColumn": 3,
    "endLineNumber": 35,
    "endColumn": 10
  },
  "contents": [
    {
      "value": "### function `pinMode`  \n\n---\n→ `void`  \nParameters:  \n- `uint8_t pin`\n- `uint8_t mode`\n\n---\n```cpp\nvoid pinMode(uint8_t pin, uint8_t mode)\n```"
    }
  ]
}

"startLineNumber": 35 is incorrect, it should be 28.

Activity

ubidefeo

ubidefeo commented on Feb 17, 2021

@ubidefeo

@kittaakos this gets even worse when you include files.
Look how far down the page the macro information box is

Screenshot 2021-02-16 at 13 42 40

kittaakos

kittaakos commented on Feb 17, 2021

@kittaakos
ContributorAuthor

"startLineNumber": 35 is incorrect, it should be 28.

These are ☝️ monaco positions, at the LSP level, they're 34 and 27.

kittaakos

kittaakos commented on Mar 1, 2021

@kittaakos
ContributorAuthor
added a commit that references this issue on Sep 15, 2021
9924544
added and removed
priority: highResolution is a high priority
on Nov 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @kittaakos@ubidefeo@rsora

        Issue actions

          textdocument/hover provides incorrect line number information · Issue #68 · arduino/arduino-language-server