## What changed
This PR moves the shared VS Code development workflow to the repository
root.
It adds repo-level `.vscode/launch.json` and `.vscode/tasks.json` so
contributors can debug `clice` and the VS Code extension from the root
workspace with relative paths.
The checked-in tasks are intentionally limited to extension-side `pnpm`
workflows such as installing dependencies and running the extension
watcher. They do not build the `clice` executable or unit tests.
It also updates `.gitignore` to allow only those two shared VS Code
config files to be committed, while continuing to ignore other local
`.vscode` files.
Finally, it removes the duplicate `editors/vscode/.vscode` folder so
there is a single supported VS Code setup in the repo.
## Why
The previous setup split VS Code configs between local-only root files
and tracked configs under `editors/vscode/.vscode`, which made the
development/debug flow less consistent.
Keeping only extension-side tasks avoids baking a specific native build
workflow into committed editor config while still making extension
development usable out of the box.
## Developer impact
Contributors can now open the repository root in VS Code and use the
checked-in launch/tasks configs directly.
The extension debug configs only disable competing C/C++ language
extensions (`clangd` and `cpptools`) instead of disabling every
extension.
All committed paths remain relative to `${workspaceFolder}`.
## Validation
- Ran `python3 -m json.tool .vscode/launch.json`
- Ran `python3 -m json.tool .vscode/tasks.json`
84 lines
2.5 KiB
JSON
84 lines
2.5 KiB
JSON
{
|
|
"version": "0.2.0",
|
|
"configurations": [
|
|
{
|
|
"type": "lldb",
|
|
"request": "launch",
|
|
"name": "Debug clice",
|
|
"program": "${workspaceFolder}/build/Debug/bin/clice",
|
|
"args": ["--mode=socket", "--port=50051"],
|
|
"cwd": "${workspaceFolder}"
|
|
},
|
|
{
|
|
"type": "lldb",
|
|
"request": "launch",
|
|
"name": "Debug clice (socket, RelWithDebInfo)",
|
|
"program": "${workspaceFolder}/build/RelWithDebInfo/bin/clice",
|
|
"args": ["--mode=socket", "--port=50051"],
|
|
"cwd": "${workspaceFolder}"
|
|
},
|
|
{
|
|
"name": "VSCode Extension (pipe)",
|
|
"type": "extensionHost",
|
|
"request": "launch",
|
|
"args": [
|
|
"--disable-extension=llvm-vs-code-extensions.vscode-clangd",
|
|
"--disable-extension=ms-vscode.cpptools",
|
|
"--disable-extension=ms-vscode.cpptools-extension-pack",
|
|
"--extensionDevelopmentPath=${workspaceFolder}/editors/vscode"
|
|
],
|
|
"env": {
|
|
"CLICE_MODE": "pipe"
|
|
},
|
|
"outFiles": ["${workspaceFolder}/editors/vscode/dist/**/*.js"],
|
|
"preLaunchTask": "npm: watch vscode ext"
|
|
},
|
|
{
|
|
"name": "VSCode Extension (socket)",
|
|
"type": "extensionHost",
|
|
"request": "launch",
|
|
"args": [
|
|
"--disable-extension=llvm-vs-code-extensions.vscode-clangd",
|
|
"--disable-extension=ms-vscode.cpptools",
|
|
"--disable-extension=ms-vscode.cpptools-extension-pack",
|
|
"--extensionDevelopmentPath=${workspaceFolder}/editors/vscode"
|
|
],
|
|
"env": {
|
|
"CLICE_MODE": "socket"
|
|
},
|
|
"outFiles": ["${workspaceFolder}/editors/vscode/dist/**/*.js"],
|
|
"preLaunchTask": "npm: watch vscode ext"
|
|
},
|
|
{
|
|
"type": "lldb",
|
|
"request": "launch",
|
|
"name": "Unit Test",
|
|
"program": "${workspaceFolder}/build/Debug/bin/unit_tests",
|
|
"args": ["--test-dir=./tests/data", "--test-filter=${input:filter}"],
|
|
"cwd": "${workspaceFolder}"
|
|
},
|
|
{
|
|
"type": "lldb",
|
|
"request": "launch",
|
|
"name": "Release Unit Test",
|
|
"program": "${workspaceFolder}/build/RelWithDebInfo/bin/unit_tests",
|
|
"args": ["--test-dir=./tests/data", "--test-filter=${input:filter}"],
|
|
"cwd": "${workspaceFolder}"
|
|
}
|
|
],
|
|
"compounds": [
|
|
{
|
|
"name": "clice + VSCode Extension (socket)",
|
|
"configurations": ["Debug clice", "VSCode Extension (socket)"],
|
|
"stopAll": true
|
|
}
|
|
],
|
|
"inputs": [
|
|
{
|
|
"id": "filter",
|
|
"type": "promptString",
|
|
"description": "Unit Test Filter"
|
|
}
|
|
]
|
|
}
|