|
| 1 | +# IntelliSense Autoconfiguration Branch |
| 2 | +## Problem |
| 3 | +This branch more or less adresses [these](https://github.com/microsoft/vscode-arduino/issues?utf8=%E2%9C%93&q=intellisense+is%3Aopen) issues. |
| 4 | + |
| 5 | +It implements a parser which parses the output from Arduino's build process to generate a very precise `c_cpp_properties.json` which in turn hopefully renders any user interaction with this file obsolete |
| 6 | + |
| 7 | +## Branch Goals |
| 8 | +### Build Output Parser |
| 9 | +The parser which parses the relevant includes, defines, compiler paths and flags from Arduino's build output |
| 10 | +### `c_cpp_properties.json` Generator |
| 11 | +The generator takes the parser's output and transforms it into a valid `c_cpp_properties.json` file. |
| 12 | + |
| 13 | +### Configuration Flags |
| 14 | +Provide a configuration flag which allows the user to turn this feature off - this is useful for the cases in which this magic fails or the user has a very specific setup. Although this branch tries to eliminate most of the latter cases. |
| 15 | + |
| 16 | +### Status |
| 17 | +| | Tasks | |
| 18 | +|-----:|:--------| |
| 19 | +| **Build output parser** | :heavy_check_mark: Basic parser working (not committed yet) | |
| 20 | +| | :white_check_mark: Support for different boards | |
| 21 | +| | :white_check_mark: X-platform support | |
| 22 | +| **`c_cpp_properties.json` generator** | :white_check_mark: | |
| 23 | +| **Configuration flags** | :white_check_mark: | |
| 24 | +| **Unit tests** | :white_check_mark: Basic parser | |
| 25 | + |
| 26 | +## Motivation |
| 27 | +I write a lot of code for Arduino, especially libraries. The Arduino IDE is not suited for more complex projects and I tried several alternatives. The old and dysfunctional Arduino CDT extension for eclipse somehow stalled (even if it was promising), Sloeber could be an option but the maintainer is disillusioned and the project is more or less dead. Platform IO IDE's license is very [restrictive](https://community.platformio.org/t/what-part-of-platformio-is-open-source-licenced/1447/2). |
| 28 | + |
| 29 | +Then remains vscode-arduino. It seems that it isn't completely dead - but almost. Most of the core functionality seems to work (I used it a few days now). But the biggest show stopper is the bad IntelliSense support. |
| 30 | + |
| 31 | +## Beer Money |
| 32 | +You can chip in some beer money to keep me motivated - this is really appreciated. |
| 33 | + |
| 34 | +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PVLCSRZHBJ28G&source=url) |
| 35 | + |
| 36 | +<!-- https://github.com/patharanordev/donate-in-git --> |
| 37 | + |
| 38 | +## Useful Links |
| 39 | +* [IntelliSense issues on vscode-arduino](https://github.com/microsoft/vscode-arduino/issues?utf8=%E2%9C%93&q=intellisense+is%3Aopen) |
| 40 | +* [`c_cpp_properties.json` reference](https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference) |
| 41 | +* [Interactive regex debugger](https://regex101.com/) |
0 commit comments