You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 1, 2024. It is now read-only.
Copy file name to clipboardExpand all lines: BRANCHNOTES.md
+39-19
Original file line number
Diff line number
Diff line change
@@ -14,14 +14,6 @@ The generator takes the parser's output and transforms it into a valid `c_cpp_pr
14
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
15
16
16
### Global Tasks in vscode-arduino
17
-
Places where `c_cpp_properties.json` gets altered (list in progress)
**2020-02-05** Currently I'm able to generate error free IntelliSense setups for AVR and ESP32 using the preliminary implementation. For ESP32 I just had to add the intrinsic compiler paths manually. A solution has to be found for these ... which there is, see [here](https://stackoverflow.com/a/6666338)
@@ -41,19 +33,21 @@ src/arduino/arduino.ts
41
33
||:white_check_mark: Merging of parsing result and existing file content |
42
34
||:white_check_mark: Handling inexistent files and folders |
43
35
||:white_check_mark: Write configuration on change only |
44
-
|**Configuration flags**|:heavy_check_mark: Disable flag for IntelliSense auto-config|
45
-
||:white_check_mark: Perhaps a general IntelliSense flag `{off/manual, auto, oldstyle}` whereas the old can be removed at some point|
46
-
||:white_check_mark:Fine grained IntelliSense control: Global en-/disable and project override. This is probably more useful since the most boards will hopefully work and for the very special cases the user can disable the feature for this single project but still can enjoy it within his regular projects.|
36
+
||:white_check_mark: Option to backup old configurations?|
37
+
|**Configuration flags**|:heavy_check_mark: Provide global disable flag for IntelliSense auto-config|
38
+
||:white_check_mark:Provide project specific override for the global flag - most users will likely use the default setup and disable auto-generation for very specific projects |
||:white_check_mark: Querying of compiler built-in includes |
49
41
||:white_check_mark: Throwing arbitrary data at parser engines |
50
42
||:white_check_mark: JSON input |
51
43
||:white_check_mark: JSON output |
52
44
||:white_check_mark: Configuration merging |
53
-
|**General**|:white_check_mark: Review and remove previous attempts messing with `c_cpp_properties.json`|
54
-
||:white_check_mark: Auto-run verify after setting a board to generate a valid `c_cpp_properties.json`, identify other occasions where this applies (usually when adding new libraries), hint the user to run *verify*? |
45
+
|**General**|:white_check_mark: Review and remove previous attempts messing with `c_cpp_properties.json`or IntelliSense. (Partially done - documented in the [General Tasks](#General-Tasks) section |
46
+
||:white_check_mark: Auto-run verify after setting a board to generate a valid `c_cpp_properties.json`, identify other occasions where this applies (usually when adding new libraries), hint the user to run *verify*? -> Good moment would be after the workbench initialization -> message in arduino channel |
55
47
||:white_check_mark: Document configuration settings in [README.md](README.md)|
56
48
||:white_check_mark: Document features in [README.md](README.md)|
49
+
||:white_check_mark: How to handle compilation failure? Only set if more comprehensive |
50
+
||:white_check_mark: Extract compiler command parser from vscode-arduino and [publish](https://itnext.io/step-by-step-building-and-publishing-an-npm-typescript-package-44fe7164964c) it as a separate package which will allow reusage and tests can be run without the heavy vscode-arduino rucksack |
57
51
||:white_check_mark: Finally: go through my code and look for TODOs |
58
52
59
53
`*` not committed to branch yet
@@ -85,27 +79,35 @@ I will list every supporter here, thanks!
* Problems with IntelliSense itself https://github.com/microsoft/vscode-cpptools/issues/1034
87
+
* Logging for IntelliSense https://code.visualstudio.com/docs/cpp/enable-logging-cpp
89
88
## Future Work
90
89
* Proper interactive serial terminal (this is the second major show stopper in my opinion)
91
90
* Lots of redundant code
92
91
* e.g. "upload is a superset of "verify"
93
92
* general lack of modularity - the above is the result
94
93
* It seems that this extension is pretty chaotic. Most probably some refactoring is necessary.
95
-
94
+
* Possibility to jump to compilation errors from compiler output and highlight compiler errors
96
95
----
97
96
98
97
## Implementation
98
+
**Note** Check this vscode feature:
99
+
```
100
+
Configuration provider
101
+
The ID of a VS Code extension that can provide IntelliSense configuration information for source files. For example, use the VS Code extension ID ms-vscode.cmake-tools to provide configuration information from the CMake Tools extension.
102
+
```
99
103
100
104
### Build Output Parser
101
105
#### Intrinsic Include Paths
102
-
Some include paths are built into gcc and don't have to be specified on the command line. This requires that we have to get them from the compiler.
103
-
104
-
Just searching the compiler installation directory with something like
106
+
Some include paths are built into gcc and don't have to be specified on the command line. Just searching the compiler installation directory with something like
won't do since not all include directories are named `include`. Fortunately gcc can be queried about its configuration ([source](https://stackoverflow.com/a/6666338)):
110
+
won't do since not all include directories are named `include`. Fortunately gcc can be queried about its configuration ([source](https://stackoverflow.com/a/6666338)) -- built-in include paths are part of it:
0 commit comments