Fix IDE include paths / Intellisense #615
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Arduino IDE /
platform.txt
builds this core by using a-iprefix <framework path>
directive followed by the file in https://github.com/earlephilhower/arduino-pico/blob/master/lib/platform_inc.txt.This however causes problems in PlatformIO because for the Intellisense of IDEs, since only what is in
env["CPPPATH"]
is exported as to be searched include path for headers is exported by PlatformIO. It's not smart enough to scan the compiler invocations foriprefix
etc lines and reconstruct the paths from that for the IDE.This restructures the build script to read the contents of the
platform_inc.txt
file, reconstruct the full path and then add them toenv["CPPPATH"]
. This fixes IntelliSense issues on Mac and Linux. Most interestingly, this did not affect Windows intellisense.See platformio/platform-raspberrypi#36 (comment).
The compilation should be equivalent (
-I<paths>
vsiprefix
+-iwithprefixbefore
) and still works for me. I also read the same in the documentation.Note: Mac users also complain that this core doesn't play nice with Arduino IDE 2 intellisense, very likely because of this very reason, it can't figure out the exact include paths. This could be looked into as a separate issue.
Before:
After: