Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

textdocument/hover provides incorrect line number information #68

Closed
kittaakos opened this issue Feb 17, 2021 · 3 comments
Closed

textdocument/hover provides incorrect line number information #68

kittaakos opened this issue Feb 17, 2021 · 3 comments
Labels
criticality: high Of high impact type: imperfection Perceived defect in any part of project

Comments

@kittaakos
Copy link
Contributor

kittaakos commented Feb 17, 2021

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.

@kittaakos kittaakos added the bug label Feb 17, 2021
@ubidefeo
Copy link

@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
Copy link
Contributor Author

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

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

@kittaakos
Copy link
Contributor Author

kittaakos commented Mar 1, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
criticality: high Of high impact type: imperfection Perceived defect in any part of project
Projects
None yet
Development

No branches or pull requests

3 participants