diff options
-rw-r--r-- | docs/ide-support.md | 46 | ||||
-rw-r--r-- | docs/sitemap.md | 1 |
2 files changed, 47 insertions, 0 deletions
diff --git a/docs/ide-support.md b/docs/ide-support.md new file mode 100644 index 0000000000..1ab807a3d5 --- /dev/null +++ b/docs/ide-support.md @@ -0,0 +1,46 @@ +# IDE Support + +[TOC] + +## Odd File Types + +EC uses a few odd file types/names. Some are included from other header files +and used to generate data structures, thus it is important for your IDE to index +them. + +Patterns | Vague Type +----------------------------------------------------- | ---------- +`README.*` | Text +`Makefile.rules`, `Makefile.toolchain` | Makefile +`gpio.wrap` | C Header +`gpio.inc` | C Header +`*.tasklist`, `*.irqlist`, `*.mocklist`, `*.testlist` | C Header + +## IDE Configuration Primitives + +Due to the way most EC code has been structured, you can typically only safely +inspect a configuration for a single image (RO or RW) for a single board. Thus, +you need to specify the specific board/image pair when requesting defines and +includes. + +Command | Description +-------------------------------------------- | ------------------------------ +`make print-defines BOARD=$BOARD BLD=RW/RO` | List compiler injected defines +`make print-includes BOARD=$BOARD BLD=RW/RO` | List compiler include paths + +## VSCode + +You can use the `ide-config.sh` tool to generate a VSCode configuration that +includes selectable sub-configurations for every board/image pair. + +1. From the root `ec` directory, do the following: + ```bash + mkdir -p .vscode + ./util/ide-config.sh vscode all:RW all:RO | tee .vscode/c_cpp_properties.json + ``` +2. Open VSCode and navigate to some C source file. +3. Run `C/C++ Reset IntelliSense Database` from the `Ctrl-Shift-P` menu +4. Select the config in the bottom right, next to the `Select Language Mode`. + You will only see this option when a C/C++ file is open. Additionally, you + can select a configuration by pressing `Ctrl-Shift-P` and selecting the + `C/C++ Select a Configuration...` option. diff --git a/docs/sitemap.md b/docs/sitemap.md index 387e1be5f0..b430c69e2e 100644 --- a/docs/sitemap.md +++ b/docs/sitemap.md @@ -48,3 +48,4 @@ * [I2C tracing via console commands](./i2c-debugging.md) * [Application Processor to EC communication](./ap-ec-comm.md) * [Code Reviews](./code_reviews.md) +* [IDE Support](./ide-support.md) |