Skip to content

Commit 5debfb4

Browse files
elektronikworkshopadiazulay
authored andcommitted
Update documentation
* More documentation on this project * Tried to identify most of the tasks * Added beer money support option
1 parent 0291850 commit 5debfb4

File tree

1 file changed

+68
-5
lines changed

1 file changed

+68
-5
lines changed

BRANCHNOTES.md

+68-5
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,92 @@ The generator takes the parser's output and transforms it into a valid `c_cpp_pr
1313
### Configuration Flags
1414
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.
1515

16+
### Global Tasks in vscode-arduino
17+
Places where `c_cpp_properties.json` gets altered (list in progress)
18+
```
19+
src/extension.ts
20+
260, 53: arduinoContextModule.default.arduinoApp.tryToUpdateIncludePaths();
21+
src/arduino/arduino.ts
22+
328, 12: public tryToUpdateIncludePaths() {
23+
24+
```
25+
1626
### Status
27+
1728
| | Tasks |
1829
|-----:|:--------|
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: |
30+
| **Build output parser** | :heavy_check_mark: Basic parser working* |
31+
| | :white_check_mark: Support for different boards |
32+
| | :white_check_mark: X-platform support |
33+
| **`c_cpp_properties.json` generator** | :heavy_check_mark: Basic objects* |
34+
| | :heavy_check_mark: Basic setting of parsing result* |
35+
| | :heavy_check_mark: Basic file input* |
36+
| | :heavy_check_mark: Basic file output* |
37+
| | :white_check_mark: Merging of parsing result and existing file content |
2338
| **Configuration flags** | :white_check_mark: |
2439
| **Unit tests** | :white_check_mark: Basic parser |
40+
| | :white_check_mark: JSON input |
41+
| | :white_check_mark: JSON output |
42+
| | :white_check_mark: Configuration merging |
43+
| **General** | :white_check_mark: Review and remove previous attempts messing with `c_cpp_properties.json` |
44+
* not committed to branch yet
2545

2646
## Motivation
2747
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).
2848

2949
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.
3050

31-
## Beer Money
51+
## Beer Money :beers:
3252
You can chip in some beer money to keep me motivated - this is really appreciated.
3353

3454
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PVLCSRZHBJ28G&source=url)
3555

3656
<!-- https://github.com/patharanordev/donate-in-git -->
57+
I will list every supporter here, thanks!
58+
59+
### Supporters
60+
5$ -> 1 :beer:
61+
1h coding -> 20$ -> 4 :beers:
62+
2020-02-04 Elektronik Workshop: 32 :beers: (8h coding)
63+
2020-02-05 Elektronik Workshop: 40 :beers: (10h coding)
64+
65+
<!-- https://github.com/StylishThemes/GitHub-Dark/wiki/Emoji -->
3766

3867
## Useful Links
3968
* [IntelliSense issues on vscode-arduino](https://github.com/microsoft/vscode-arduino/issues?utf8=%E2%9C%93&q=intellisense+is%3Aopen)
4069
* [`c_cpp_properties.json` reference](https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference)
4170
* [Interactive regex debugger](https://regex101.com/)
71+
* [Git branch management](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/)
72+
73+
## Future Work
74+
* Proper interactive serial terminal (this is the second major show stopper in my opinion)
75+
* Lots of redundant code
76+
* e.g. "upload is a superset of "verify"
77+
* general lack of modularity - the above is the result
78+
* It seems that this extension is pretty chaotic. Most probably some refactoring is necessary.
79+
80+
----
81+
82+
## Implementation
83+
84+
### Settings
85+
Global user settings, on linux under `~/.config/Code/User/settings.json`, for instance:
86+
```json
87+
{
88+
"arduino.additionalUrls": "",
89+
"arduino.logLevel": "verbose",
90+
"C_Cpp.default.cppStandard": "c++11",
91+
"C_Cpp.default.cStandard": "c11",
92+
"arduino.disableTestingOpen": true,
93+
"workbench.editor.enablePreview": false
94+
}
95+
```
96+
Project settings in `.vscode/arduino.json`
97+
```
98+
{
99+
"board": "arduino:avr:nano",
100+
"configuration": "cpu=atmega328old",
101+
"sketch": "examples/lcdpong-butenc/lcdpong-butenc.ino",
102+
"port": "/dev/ttyUSB0"
103+
}
104+
```

0 commit comments

Comments
 (0)