Skip to content
This repository was archived by the owner on Oct 1, 2024. It is now read-only.

Autogenerate c_cpp_properties.json #1183

Merged
Show file tree
Hide file tree
Changes from 119 commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
7ad5f1c
Fixed misspelled function name
elektronikworkshop Feb 8, 2020
e9b91c2
Fixed spelling.
elektronikworkshop Feb 7, 2020
33eecf9
Fix @property
elektronikworkshop Feb 22, 2020
0d90c9b
Add missing return values
hlovdal Dec 11, 2020
e020d6f
Removed unused import
elektronikworkshop Feb 23, 2020
ef77a27
Branch for the implementation of the automagical IntelliSense configu…
elektronikworkshop Feb 5, 2020
6d7711c
Update documentation
elektronikworkshop Feb 5, 2020
b5383b9
More documentation update
elektronikworkshop Feb 6, 2020
e91760f
Added IntelliSense compiler parsing engine code
elektronikworkshop Feb 6, 2020
39583e9
Improved line splitting of built-in include parser after commenting o…
elektronikworkshop Feb 6, 2020
8f1bcd0
Pre-build command updates
elektronikworkshop Feb 6, 2020
4ab6ec2
Documentation updates
elektronikworkshop Feb 6, 2020
c82a11a
IntelliSense on/off configuration and compiler parser injection prepa…
elektronikworkshop Feb 7, 2020
2984188
Added two more TODOs to branch documentation
elektronikworkshop Feb 7, 2020
da9c9de
Added even more TODOs to branch documentation
elektronikworkshop Feb 7, 2020
1129ec4
Moved TODO in branch documentation
elektronikworkshop Feb 7, 2020
229eee6
Documenting ...
elektronikworkshop Feb 8, 2020
8a54177
Moved compiler parser to cocopa package for better testability and ma…
elektronikworkshop Feb 8, 2020
805b434
Updated earned :beers:
elektronikworkshop Feb 8, 2020
4490443
Added IntelliSense setup auto-generation project (sketch-context) con…
elektronikworkshop Feb 8, 2020
a5c0b23
Try to generate IntelliSense configuration even when the compilation …
elektronikworkshop Feb 8, 2020
974c4fc
Incorporated the latest progress from cocopa development
elektronikworkshop Feb 9, 2020
c5bf8b9
Fix issue 771
elektronikworkshop Feb 9, 2020
9fc8e45
Fix regression and improve regex matching
elektronikworkshop Feb 9, 2020
f053064
Notes about serial monitor
elektronikworkshop Feb 9, 2020
55b2b66
Moved arduino specifics from cocopa to vscode-arduino
elektronikworkshop Feb 9, 2020
dad0277
Merge c_cpp_properties results with existing configuration
elektronikworkshop Feb 10, 2020
2f8a558
Minor documentation rub
elektronikworkshop Feb 10, 2020
cca9220
Moved intellisense function to a separate file
elektronikworkshop Feb 10, 2020
7b14c61
Added instructions how to run development code
elektronikworkshop Feb 12, 2020
c687012
More on beta testing, added link to chat room
elektronikworkshop Feb 12, 2020
23d805e
Note how to run vscode without having gulp on your user path
elektronikworkshop Feb 12, 2020
9dbd0e6
Updated beer money log
elektronikworkshop Feb 15, 2020
c9d078e
Updated branch notes -- documented changes not committed though.
elektronikworkshop Feb 15, 2020
eaf33ab
Rename Logger to logger
hlovdal Dec 8, 2020
dfe8caa
Rename verifyResult to success
hlovdal Dec 8, 2020
6ddbc88
Move args variable till top of upload, uploadUsingProgrammer and verify
hlovdal Dec 10, 2020
74699ee
Introduce verbose variable
hlovdal Dec 10, 2020
f8b3a21
Unify util.spawn invocation
hlovdal Dec 10, 2020
ee69097
Unify exit error message
hlovdal Dec 10, 2020
c764537
Add cleanup expression
hlovdal Dec 10, 2020
12340b3
Add selectSerial expression
hlovdal Dec 10, 2020
7f723cc
Inline and move appPath later
hlovdal Dec 10, 2020
eb7a28c
Move arg buildup earlier in functions
hlovdal Dec 10, 2020
e857503
Move selectProgrammer down
hlovdal Dec 10, 2020
e115af8
Spelling correction
hlovdal Jan 5, 2021
eb3a634
Add buildMode argument to upload and uploadUsingProgrammer
hlovdal Dec 10, 2020
a7588ee
Make upload and uploadUsingProgrammer identical
hlovdal Dec 10, 2020
610d23e
Merge upload and uploadUsingProgrammer into one build function
hlovdal Dec 10, 2020
c7d4d6b
Add buildMode argument to verify
hlovdal Dec 10, 2020
798772a
Add stdoutCallback expression
hlovdal Dec 10, 2020
0e54ffa
Rename output to buildDir
hlovdal Dec 10, 2020
913c6a8
Use cocopa and add Analyze build mode
hlovdal Dec 11, 2020
1b19dbd
Make build return boolean
hlovdal Dec 11, 2020
4451abc
Make build and verify identical
hlovdal Dec 11, 2020
27766d1
Merge build and verify
hlovdal Dec 11, 2020
06c7ddb
Add arduino.rebuildIntelliSenseConfig
hlovdal Dec 11, 2020
e968dbb
Fix whitespace
hlovdal Dec 11, 2020
695a478
Disabled and marked all previous implementations of IntelliSense supp…
elektronikworkshop Feb 17, 2020
7efcab7
Updated project log
elektronikworkshop Feb 18, 2020
0e2f2e7
Don't use hard coded paths when possible.
elektronikworkshop Feb 18, 2020
bb9c5e2
New classes which will improve the device settings management and eve…
elektronikworkshop Feb 18, 2020
f61640f
Updated log and issues
elektronikworkshop Feb 18, 2020
a9e2f46
Updated project log and status
elektronikworkshop Feb 19, 2020
c3425fe
Updated and completed documentation of the current state within READM…
elektronikworkshop Feb 19, 2020
509716c
IntelliSense auto-analysis integration
elektronikworkshop Feb 19, 2020
a0b7040
Updated log and beers.
elektronikworkshop Feb 19, 2020
3bc2b55
Added "some" additional issues -- currently I've found 28!
elektronikworkshop Feb 19, 2020
d423b9e
Updated log, status and beers
elektronikworkshop Feb 20, 2020
208d120
Removed obsolete doc folder as all this is now part of cocopa
elektronikworkshop Feb 21, 2020
6edafc7
Fixed handling of invalid manual configurations. Improved code locali…
elektronikworkshop Feb 22, 2020
1583578
Updated log and beers
elektronikworkshop Feb 22, 2020
77bde99
Updated to latest cocopa which features X-platform support and better…
elektronikworkshop Feb 22, 2020
d620f3d
IntelliSense config generator
elektronikworkshop Feb 22, 2020
3fa1da7
Updated log
elektronikworkshop Feb 22, 2020
8ad370e
Forceinclude Arduino.h
elektronikworkshop Feb 23, 2020
8881fa3
Updated log and beers
elektronikworkshop Feb 23, 2020
9361af3
Updated cocopa to version 0.0.12
elektronikworkshop Feb 25, 2020
d4a6acd
Removed IS-REMOVE code
elektronikworkshop Feb 26, 2020
98b9a26
Reworked util.spawn to mergable version
elektronikworkshop Feb 26, 2020
b111518
Added/reviewed some notes
elektronikworkshop Feb 26, 2020
52e6630
Changed Serial.updatePortListStatus to make use of optional argument …
elektronikworkshop Feb 26, 2020
431402b
Refined some documentation comment
elektronikworkshop Feb 26, 2020
f5841ff
Updated log
elektronikworkshop Feb 26, 2020
472f799
Final pull request dependency style for cocopa
elektronikworkshop Feb 26, 2020
184a47b
Updated beers
elektronikworkshop Feb 26, 2020
5b7533c
Added link to alpha releases to top of document
elektronikworkshop Feb 26, 2020
86019cf
Run IntelliSense analysis for every build
elektronikworkshop Feb 27, 2020
350f863
Build/analysis logging improvements
elektronikworkshop Feb 27, 2020
429de09
Fixed bug in board.ts: Conceptual flaw when checking if configuration…
elektronikworkshop Feb 27, 2020
ea54a6c
Fixed exception which occurs if one of the include directories doesn'…
elektronikworkshop Feb 27, 2020
16d6ed8
Filter out invalid include directories
elektronikworkshop Feb 27, 2020
03bf0b0
Make upload verbosity be conditional and extend filtering
elektronikworkshop Feb 27, 2020
52a57ce
Collapsing multiple consecutive newlines into a single newline for no…
elektronikworkshop Feb 27, 2020
6e3a303
IntelliSense auto gen respected global and project specific dis-/enab…
elektronikworkshop Feb 27, 2020
98a4a4f
Added post build command support
elektronikworkshop Feb 27, 2020
698a26f
C++ standard is now parsed from compiler arguments
elektronikworkshop Feb 28, 2020
ee7cbd8
Section which outlines additional features this branch addresses
elektronikworkshop Feb 28, 2020
61e67bc
Logging and post-build commands
elektronikworkshop Feb 28, 2020
3224ae8
Pre-/post-build command improvements
elektronikworkshop Feb 28, 2020
5bfd7cb
Full cmd support for pre-/post-build commands on Windows
elektronikworkshop Feb 28, 2020
cd4b099
Documentation for pre-/post-build commands and their environment vari…
elektronikworkshop Feb 28, 2020
8e8eecc
Updated log, status and beers
elektronikworkshop Feb 29, 2020
62b5e10
Fix too early initialization of cocopa
elektronikworkshop Feb 29, 2020
cdd6231
Support for Arduino preferences in `arduino.json`. These preferences …
elektronikworkshop Feb 29, 2020
22da5d3
Add and document buildPreferences setting
elektronikworkshop Feb 29, 2020
4f8be5c
Fixed security issue
elektronikworkshop Feb 29, 2020
5dec708
Updated log, additional stuff and beers
elektronikworkshop Feb 29, 2020
e4629c5
Move the _build to the end and make private
hlovdal Jan 4, 2021
964f7a8
Consolidate all boardDescriptor argument pushing
hlovdal Jan 5, 2021
8bcf64a
Remove compile argument and expand BuildMode with CliUpload and CliUp…
hlovdal Jan 5, 2021
728088a
Reverse and merge tests
hlovdal Jan 6, 2021
7aca8f5
Replace "upload" with "compile --upload"
hlovdal Jan 6, 2021
6cd1636
Join args.push statements
hlovdal Jan 6, 2021
46d8633
Remove arrow-head anti-pattern
hlovdal Jan 6, 2021
16231f4
add support for cli
adiazulay Dec 10, 2020
3fff495
fix cli analyze mode
adiazulay Dec 10, 2020
9b544b1
fix verbose setting and cli programmer upload
adiazulay Jan 12, 2021
6d35980
remove redundant prebuild check
adiazulay Jan 12, 2021
dc77de7
update travis
adiazulay Jan 19, 2021
603cda2
fix missing "
adiazulay Jan 19, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
456 changes: 456 additions & 0 deletions BRANCHNOTES.md

Large diffs are not rendered by default.

74 changes: 70 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,12 @@ This extension provides several commands in the Command Palette (<kbd>F1</kbd> o
- **Arduino: Upload**: Build sketch and upload to Arduino board.
- **Arduino: Upload Using Programmer**: Upload using an external programmer.
- **Arduino: Verify**: Build sketch.
- **Arduino: Rebuild IntelliSense Configuration**: Forced/manual rebuild of the IntelliSense configuration. The extension analyzes Arduino's build output and sets the Intellisense include paths, defines, compiler arguments accordingly.

## Keybindings
- **Arduino: Upload** <kbd>Alt</kbd> + <kbd>Cmd</kbd> + <kbd>U</kbd> *or* <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>U</kbd>
- **Arduino: Verify** <kbd>Alt</kbd> + <kbd>Cmd</kbd> + <kbd>R</kbd> *or* <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>R</kbd>
- **Arduino: Rebuild IntelliSense Configuration** <kbd>Alt</kbd> + <kbd>Cmd</kbd> + <kbd>I</kbd> *or* <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>I</kbd>

## Options
| Option | Description |
Expand All @@ -62,11 +64,12 @@ This extension provides several commands in the Command Palette (<kbd>F1</kbd> o
| `arduino.commandPath` | Path to an executable (or script) relative to `arduino.path`. The default value is `arduino_debug.exe` for windows,`Contents/MacOS/Arduino` for Mac and `arduino` for Linux, You also can use a custom launch script to run Arduino by modifying this setting. (Requires a restart after change) Example: `run-arduino.bat` for Windows, `Contents/MacOS/run-arduino.sh` for Mac and `bin/run-arduino.sh` for Linux. |
| `arduino.additionalUrls` | Additional Boards Manager URLs for 3rd party packages. You can have multiple URLs in one string with a comma(`,`) as separator, or have a string array. The default value is empty. |
| `arduino.logLevel` | CLI output log level. Could be info or verbose. The default value is `"info"`. |
| `arduino.allowPDEFiletype` | Allow the VSCode Arduino extension to open .pde files from pre-1.0.0 versions of Ardiuno. Note that this will break Processing code. Default value is `false`. |
| `arduino.allowPDEFiletype` | Allow the VSCode Arduino extension to open .pde files from pre-1.0.0 versions of Ardiuno. Note that this will break Processing code. Default value is `false`. |
| `arduino.enableUSBDetection` | Enable/disable USB detection from the VSCode Arduino extension. The default value is `true`. When your device is plugged in to your computer, it will pop up a message "`Detected board ****, Would you like to switch to this board type`". After clicking the `Yes` button, it will automatically detect which serial port (COM) is connected a USB device. If your device does not support this feature, please provide us with the PID/VID of your device; the code format is defined in `misc/usbmapping.json`.To learn more about how to list the vid/pid, use the following tools: https://github.com/EmergingTechnologyAdvisors/node-serialport `npm install -g serialport` `serialport-list -f jsonline`|
| `arduino.disableTestingOpen` | Enable/disable automatic sending of a test message to the serial port for checking the open status. The default value is `false` (a test message will be sent). |
| `arduino.skipHeaderProvider` | Enable/disable the extension providing completion items for headers. This functionality is included in newer versions of the C++ extension. The default value is `false`.|
| `arduino.defaultBaudRate` | Default baud rate for the serial port monitor. The default value is 115200. Supported values are 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400 and 250000 |
| `arduino.disableIntelliSenseAutoGen` | When `true` vscode-arduino will not auto-generate an IntelliSense configuration (i.e. `.vscode/c_cpp_properties.json`) by analyzing Arduino's compiler output. |

The following Visual Studio Code settings are available for the Arduino extension. These can be set in global user preferences <kbd>Ctrl</kbd> + <kbd>,</kbd> or workspace settings (`.vscode/settings.json`). The latter overrides the former.

Expand All @@ -75,7 +78,7 @@ The following Visual Studio Code settings are available for the Arduino extensio
"arduino.path": "C:/Program Files (x86)/Arduino",
"arduino.commandPath": "arduino_debug.exe",
"arduino.logLevel": "info",
"arduino.allowPDEFiletype": false,
"arduino.allowPDEFiletype": false,
"arduino.enableUSBDetection": true,
"arduino.disableTestingOpen": false,
"arduino.skipHeaderProvider": false,
Expand All @@ -98,15 +101,78 @@ The following settings are as per sketch settings of the Arduino extension. You
"board": "adafruit:samd:adafruit_feather_m0",
"output": "../build",
"debugger": "jlink",
"prebuild": "bash prebuild.sh"
"prebuild": "./prebuild.sh",
"postbuild": "./postbuild.sh",
"intelliSenseGen": "global"
}
```
- `sketch` - The main sketch file name of Arduino.
- `port` - Name of the serial port connected to the device. Can be set by the `Arduino: Select Serial Port` command. For Mac users could be "/dev/cu.wchusbserial1420".
- `board` - Currently selected Arduino board alias. Can be set by the `Arduino: Change Board Type` command. Also, you can find the board list there.
- `output` - Arduino build output path. If not set, Arduino will create a new temporary output folder each time, which means it cannot reuse the intermediate result of the previous build leading to long verify/upload time, so it is recommended to set the field. Arduino requires that the output path should not be the workspace itself or in a subfolder of the workspace, otherwise, it may not work correctly. By default, this option is not set. It's worth noting that the contents of this file could be deleted during the build process, so pick (or create) a directory that will not store files you want to keep.
- `debugger` - The short name of the debugger that will be used when the board itself does not have a debugger and there is more than one debugger available. You can find the list of debuggers [here](https://github.com/Microsoft/vscode-arduino/blob/master/misc/debuggerUsbMapping.json). By default, this option is not set.
- `prebuild` - External command before building the sketch file. You should only set one `prebuild` command. `command1 && command2` does not work. If you need to run multiple commands before the build, then create a script.
- `prebuild` - External command which will be invoked before any sketch build (verify, upload, ...). For details see the [Pre- and Post-Build Commands](#Pre--and-Post-Build-Commands) section.
- `postbuild` - External command to be run after the sketch has been built successfully. See the afore mentioned section for more details.
- `intelliSenseGen` - Override the global setting for auto-generation of the IntelliSense configuration (i.e. `.vscode/c_cpp_properties.json`). Three options are available:
- `"global"`: Use the global settings (default)
- `"disable"`: Disable the auto-generation even if globally enabled
- `"enable"`: Enable the auto-generation even if globally disabled
- `buildPreferences` - Set Arduino preferences which then are used during any build (verify, upload, ...). This allows for extra defines, compiler options or includes. The preference key-value pairs must be set as follows:
```json
"buildPreferences": [
["build.extra_flags", "-DMY_DEFINE=666 -DANOTHER_DEFINE=3.14 -Wall"],
["compiler.cpp.extra_flags", "-DYET_ANOTER=\"hello\""]
]
}
```

## Pre- and Post-Build Commands
On Windows the commands run within a `cmd`-, on Linux and OSX within a `bash`-instance. Therefore your command can be anything what you can run within those shells. Instead of running a command you can invoke a script. This makes writing more complex pre-/post-build mechanisms much easier and opens up the possibility to run python or other scripting languages.
The commands run within the workspace root directory and vscode-arduino sets the following environment variables:
**`VSCA_BUILD_MODE`** The current build mode, one of `Verifying`, `Uploading`, `Uploading (programmer)` or `Analyzing`. This allows you to run your script on certain build modes only.
**`VSCA_SKETCH`** The sketch file relative to your workspace root directory.
**`VSCA_BOARD`** Your board and configuration, e.g. `arduino:avr:nano:cpu=atmega328`.
**`VSCA_WORKSPACE_DIR`** The absolute path of your workspace root directory.
**`VSCA_LOG_LEVEL`** The current log level. This allows you to control the verbosity of your scripts.
**`VSCA_SERIAL`** The serial port used for uploading. Not set if you haven't set one in your `arduino.json`.
**`VSCA_BUILD_DIR`** The build directory. Not set if you haven't set one in your `arduino.json`.

For example under Windows the following `arduino.json` setup
```json
{
"board": "arduino:avr:nano",
"sketch": "test.ino",
"configuration": "cpu=atmega328",
"prebuild": "IF \"%VSCA_BUILD_MODE%\"==\"Verifying\" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% && echo VSCA_BOARD=%VSCA_BOARD%)"
}
```
will produce
```
[Starting] Verifying sketch 'test.ino'
Running pre-build command: "IF "%VSCA_BUILD_MODE%"=="Verifying" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% && echo VSCA_BOARD=%VSCA_BOARD%)"
VSCA_BUILD_MODE=Verifying
VSCA_BOARD=arduino:avr:nano:cpu=atmega328
Loading configuration...
<...>
```
when verifying.

## IntelliSense
vscode-arduino auto-configures IntelliSense by default. vscode-arduino analyzes Arduino's compiler output by running a separate build and generates the corresponding configuration file at `.vscode/c_cpp_properties.json`. vscode-arduino tries as hard as possible to keep things up to date, e.g. it runs the analysis when switching the board or the sketch.

It doesn't makes sense though to run the analysis repeatedly. Therefore if the workspace reports problems ("squiggles") - for instance after adding new includes from a new library - run the analysis manually:

Manual rebuild: **Arduino: Rebuild IntelliSense Configuration**,
Keybindings: <kbd>Alt</kbd> + <kbd>Cmd</kbd> + <kbd>I</kbd> *or* <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>I</kbd>

When the analysis is invoked manually it ignores any global and project specific disable.

### IntelliSense Configurations
vscode-arduino's analysis stores the result as a dedicated IntelliSense-configuration named `Arduino`. You have to select it from the far right of the status bar when you're in one of your source files as shown here:

![74001156-cfce8280-496a-11ea-9b9d-7d30c83765c1](https://user-images.githubusercontent.com/21954933/74351237-2696ea80-4db7-11ea-9f7a-1bfc652ad5f5.png)

This system allows you to setup and use own IntelliSense configurations in parallel to the automatically generated configurations provided through vscode-arduino. Just add your configuration to `c_cpp_properties.json` and name it differently from the default configuration (`Arduino`), e.g. `My awesome configuration` and select it from the status bar or via the command palette command **C/C++: Select a Configuration...**

## Debugging Arduino Code <sup>preview</sup>
Before you start to debug your Arduino code, please read [this document](https://code.visualstudio.com/docs/editor/debugging) to learn about the basic mechanisms of debugging in Visual Studio Code. Also see [debugging for C++ in VSCode](https://code.visualstudio.com/docs/languages/cpp#_debugging) for further reference.
Expand Down
29 changes: 28 additions & 1 deletion ThirdPartyNotices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Visual Studio Code Extension for Arduino incorporates third party material from
18. vscode-extension-telemetry (https://github.com/Microsoft/vscode-extension-telemetry)
19. winreg (https://github.com/fresc81/node-winreg)
20. Winston (https://github.com/winstonjs/winston)

21. cocopa (https://github.com/elektronikworkshop/cocopa)

%% body-parser NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Expand Down Expand Up @@ -532,4 +532,31 @@ THE SOFTWARE.
=========================================
END OF Winston NOTICES, INFORMATION, AND LICENSE

%% cocopa NOTICES, INFORMATION, AND LICENSE BEGIN HERE
=========================================
Copyright (C) 2020 Uli Franke - Elektronik Workshop

All rights reserved.

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=========================================
END OF cocopa NOTICES, INFORMATION, AND LICENSE

34 changes: 33 additions & 1 deletion misc/arduinoValidator.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,38 @@
"description": "Arduino Debugger Settings",
"type": "string",
"minLength": 1
},
"intelliSenseGen": {
"description": "Disable/enable the automatic generation of the IntelliSense configuration file (c_cpp_properties.json) for this project (overrides the global setting). When set to \"global\" the global extension settings will be used.",
"type": "string",
"default": "global",
"enum": [
"global",
"disable",
"enable"
]
},
"prebuild": {
"description": "Command to be run before every build",
"type": "string",
"minLength": 1
},
"postbuild": {
"description": "Command to be run after every build",
"type": "string",
"minLength": 1
},
"buildPreferences": {
"description": "Arduino preferences which are passed to the Arduino back-end during build",
"type": "array",
"items": {
"type":"array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "string"
}
}
}
}
}
}
Loading