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.

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

    Issue actions