Skip to content

Windows and Linux issues collection #46

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

Closed
silvanocerza opened this issue Jan 7, 2021 · 6 comments
Closed

Windows and Linux issues collection #46

silvanocerza opened this issue Jan 7, 2021 · 6 comments
Assignees
Labels
conclusion: duplicate Has already been submitted conclusion: resolved Issue was resolved topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project

Comments

@silvanocerza
Copy link
Contributor

silvanocerza commented Jan 7, 2021

Windows specific issues:

  • Problems window shows outdated errors even after they have been solved
  • Autoformat doesn't work
  • Problems windows shows error in not-ino file:
In included file: 'vcruntime.h' file not found

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt\corecrt.h:10:10:
note: error occurred here
  • Including a new library doesn't restart the LS so definition in that header are not shown on autocomplete, selecting another board solves that since it forces a restart of the LS

  • The LS crashes often even with minimal output, this is probably caused by the fact that paths are escaped multiple times, see last lines of following log: inols-err.log

  • Symbols like pinMode, digitalWrite and delay are not recognized by the LS, probably caused by escaping paths multiple times.
    image

  • Often errors are highlighted in the text editor but are shown in the Problems window, this might be caused by the escaping paths multiple times too.

Both in Linux and Windows:

  • No output from the Arduino Language Server is shown but logs are still written to file in the sketch folder. After triggering output for some other reason, like installing a core, the LS output is shown.

  • Serial is never autocompleted and not recognized as a known symbol.

@silvanocerza
Copy link
Contributor Author

silvanocerza commented Jan 13, 2021

I've tested the new build and updated the issue, those that have been solved are marked clearly.

These are new issues on Windows:

  • Often problems are reported on / even after issue is solved
    image

  • LS is often slow, declaring a function and writing an invocation fast enough doesn't show that function in the autocomplete window right away

@per1234
Copy link
Contributor

per1234 commented Feb 3, 2021

Version: 0.1.3-snapshot.907828d
Date: 2021-02-02T10:50:14.243Z
CLI Version: 0.15.0-rc1 alpha [d92816b5]

Windows 10

  • When doing the "Autocomplete function from installed library" test, the "Verify WiFi class is shown in autocomplete window" "Verify WiFi101.h is shown in autocomplete window" step fails. I never get any autocomplete for header files in #include directives.

@silvanocerza
Copy link
Contributor Author

Version: 0.1.3-snapshot.907828d
Date: 2021-02-02T10:50:14.243Z
CLI Version: 0.15.0-rc1 alpha [d92816b5]

Windows 10

* When doing the ["Autocomplete function from installed library" test](https://arduino.atlassian.net/wiki/spaces/ATL/pages/1606058020/Significant+test+to+run+to+manually+test+a+RC+of+the+PRO+IDE#Autocomplete-function-from-installed-library%3A), the "Verify WiFi class is shown in autocomplete window" step fails. I never get  any autocomplete for header files in `#include` directives.

I reported that one in the issues above, it's this one:

Including a new library doesn't restart the LS so definition in that header are not shown on autocomplete, selecting another board solves that since it forces a restart of the LS

This happens because the LS must be restarted after adding includes otherwise they're ignored.

@per1234
Copy link
Contributor

per1234 commented Feb 3, 2021

Oops, I copy/pasted the wrong step text. The step that fails is "Verify WiFi101.h is shown in autocomplete window". I edited my comment above to show the correct text.

The "Verify WiFi class is shown in autocomplete window" step works fine for me.

@silvanocerza
Copy link
Contributor Author

silvanocerza commented Feb 3, 2021

If I declare a function

void        foo(int i, float x, void* ptr) {}

inside an .ino fail that is not the main it gets formatted to

void foo(int i, float x, v od *ptr) {}

This happens both on Linux and Windows.

@per1234
Copy link
Contributor

per1234 commented Feb 13, 2022

I'm closing this in favor of dedicated issues in order to facilitate the maintenance, tracking, and support for these issues.

Including a new library doesn't restart the LS so definition in that header are not shown on autocomplete, selecting another board solves that since it forces a restart of the LS

Now tracked in the dedicated issue: arduino/arduino-ide#670

No output from the Arduino Language Server is shown but logs are still written to file in the sketch folder. After triggering output for some other reason, like installing a core, the LS output is shown.

The significant work done on the Arduino Language Server since the time this issue was created have fixed issues that caused these symptoms. It is possible there are still some that remain. If anyone is able to still reproduce the problem, please open an issue with instructions we can follow to reproduce it.

LS is often slow, declaring a function and writing an invocation fast enough doesn't show that function in the autocomplete window right away

Now tracked in the dedicated issue: #98

"Verify WiFi101.h is shown in autocomplete window" step fails. I never get any autocomplete for header files in #include directives.

I do get them now for files in the include search paths. The old manual testing test case still fails because the file is not in the include path due to requiring library discovery.

For example, you won't get a suggestion for Ethernet.h with this code:

#include <Ethern
void setup() {}
void loop() {}

Because the source folder of the Ethernet library is not in the default include search paths.

However, you will get it for EthernetClient.h here:

#include <Ethernet.h>
#include <EthernetCli
void setup() {}
void loop() {}

The reason is that the #include directive for Ethernet.h caused the "Ethernet" library source folder to be added to the include search paths by library discovery.

I think the current capabilities for #include directives are sufficient, so will consider this one resolved.

inside an .ino fail that is not the main it gets formatted to

I suspect it is the same issue that causes the symptom described here: arduino/arduino-ide#543

@per1234 per1234 closed this as completed Feb 13, 2022
@per1234 per1234 added conclusion: duplicate Has already been submitted conclusion: resolved Issue was resolved topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project labels Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: duplicate Has already been submitted conclusion: resolved Issue was resolved topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project
Projects
None yet
Development

No branches or pull requests

3 participants