0.15.1 (2026-09-28)
- lsp: propagate bazel.workspace.path to external LSP client root URI (#705) (f1d29c8)
- stop rewriting settings.json for renamed settings (#707) (d70e199), closes #706
0.15.0 (2026-09-23)
- Allow to deactivate CodeLens dynamically (#496) (6a9383a)
- Allow to deactivate WorkspaceTree dynamically (#613) (6ecb45c)
- Buildifier: Allow enabling /disabling buildifier functionality (#629) (d61fddc)
- config: support manual Bazel workspace root selection (#687) (bfb8a70)
- LanguageSupport: Allow enabling/disabling language support functionality (#636) (666b123)
- TestExplorer: Allow enabling/disabling TestExplorer functionality dynamically (#685) (5c8a6de)
- definition: resolve package-relative labels in Go to Definition (#697) (9c57c5b), closes #696
- deps: update dependency protobufjs-cli to v2 (#612) (eb8cd50)
- don't prompt when all workspace folders share one Bazel workspace (#666) (8c13513)
- go-to-definition fails on load() with multiple arguments (#667) (69da690), closes #633
- silence workspace error in non-Bazel repos (#638) (84484e6)
- update serialize-javascript to 7.0.3 to resolve GHSA-5c6j-r48x-rmvq (#586) (ba37137)
- use Bazel workspace root as cwd instead of VS Code folder path (#608) (ca98b99)
- window path issues for go to commands (#617) (cfd2282)
- workspace-tree: make bazel.commandLine.queryExpression behave more similarly to bazel query (#619) (89664f7)
0.14.0 (2026-03-30)
- debug: improve Starlark debugger experience (#558) (7e5d8d7)
- logging: Add proper VSCode Logging Output (#557) (11c1f8b)
- navigation: Improve "Go to BUILD file" command (#506) (1a559fe)
- quickpick: Prepopulate quickpick with current package path (#543) (bfae85d)
- buildifier: Make buildifier robust against bzl files outside a workspace. (7e5d8d7)
- lsp: Allow manual restarts of the lsp client after initialization error. (#498) (f311f41)
0.13.2 (2026-01-20)
- config: Make default values for executables user-visible (#489) (529f5ad)
- deps: update dependency which to v6 (#536) (a7af391)
0.13.1 (2025-12-11)
0.13.0 (2025-12-09)
- codelens: Show picker for multiple targets (#477) (7aa2304)
- codelens: Sort Bazel build targets by name length in codelens (#464) (3c48c7a)
- navigation: Add 'Copy Label To Clipboard' to command palette (#467) (edbdffc)
- navigation: Add "Go to BUILD file" command (66f699c)
- navigation: Add "Go to Label" command (bc2abea)
- quickpick: Introduce dynamic quickpick for targets/packages. (#465) (b00a658)
- workspace-tree: sync open editor with workspace tree (#461) (4c7438e)
- buildifier: specify --lint=off in case buildifer config has different value (#483) (d488d74)
- buildifier: Support linting & formatting MODULE.bazel files (#487) (babb1f6), closes #471
- quickpick: improve loading state management in dynamic quickpick (67bbd95)
- quickpick: Respect config settings for inital query scope. (#488) (c97d158)
- Use "go to" instead of "jump" (#468) (30bf975)
0.12.0 (2025-07-13)
- Add URI handler for jumping to targets (#431) (7e5ee8f)
- lsp: Allow passing environment variables to the language server (#438) (0dc2684)
- Don't instantiate CompletionItemProvider when using a language server (#440) (7b6f85f)
- fix starlark debugger broken in release 0.11.0 (#432) (#433) (b83b99c)
0.11.0 (2024-11-28)
- Cmd-click to jump to a source file from a build rule (#380) (fa38d08)
- codelens: Add a copy target command (da62c67)
- codelens: Don't add target names for one line targets (#407) (4f02dc5)
- codelens: Extend CodeLens to build and run more targets (00d9971)
- coverage: Basic test coverage support (#366) (0d293b8)
- coverage: Demangling C++ & Rust function names in coverage results (#398) (d28c294)
- coverage: Demangling of Java function names in coverage results (#388) (7084368)
- coverage: Load branch coverage from coverage files #389 (e5c95e4)
- lsp: Add option to trace LSP communication (#425) (583fb65)
- syntax highlighting for .bazelrc (#379) (2aea27e), closes #259
- buildifier: Handle relative buildifier path without warning #387 (60051c5)
- Change explorer UI label to "Bazel Targets" (#409) (dba3102)
- codelens: Apply commandArgs to run targets (#408) (9c77c18)
- coverage: Do not emit error on BRDA:0 entries (#417) (7f62f0e)
- coverage: Expand external local repo in coverage report (#418) (c115a86)
- Default to Python syntax highlighting theme (#397) (2614f19)
- Link the full label / file name instead of individual components (#382) (2e207c9)
0.10.0 (2024-04-09)
- Add
bazel.info.workspacecommand variable (#351) (8ae24cf) - Add buildifier Json File Configuration (#357) (afc3aed)
- Introduce
pickTargetandpickPackagecommand variables (#354) (2ef6d2a) - Pick up
.buildifier.jsonconfiguration from the Bazel workspace root (#350) (c2f3f8c) - Support bazel tasks from tasks.json (#346) (f2426e4)
- Support relative paths for bazel.buildifierExecutable (#350) (c2f3f8c)
- Support running buildifier through Bazel (#350) (c2f3f8c)
- Activate the extension automatically (#344) (085262e)
- Add a welcome view to the Bazel Build Targets tree view (#372) (1cbdfd6)
- Don't wait on the "Buildifier not found" notification (#368) (8b659a2)
- Enable the "Restart LSP" command only if the language server is enabled (#345) (15793a4)
- Hide commands which are intended to be command variables (#347) (6d3e988)
- Support relative target completion (@kon72)
- Add support for launching an LSP (@cameron-martin)
- Make queries share the same server by default (@limdor)
- Fix regressions caused by
bazel queryoptimization in 0.8.0 (@daivinhtran) - Add new and upcoming files names to the list of files marking the root of a repo / workspace (@hypdeb)
- Migrate to eslint (@hypdeb)
- Upgrade typescript (@cameron-martin)
-
Add codelens support for running binary targets (@avx-rchung)
-
WORKSPACE.bazel is now identified as starlark (@lalten)
-
Add bazel.runTarget command for running targets (@romannikov)
-
Add bazel.queryOutputBase configuration setting (@sheldonneuberger-sc)
Changes where output_base is placed. This is convenient for when someone wants bazel using something other than TMPDIR. This is useful if you use a ramdisk for faster builds, or if your TMPDIR has space or security constraints.
-
Add bazel.info.* commands (@jfirebaugh)
This command can be used in launch configurations to embed the results of
bazel infovalues. For example:"initCommands": [ "platform settings -w ${command:bazel.info.execution_root}", ]
- Target completion no longer requires leading quotation mark (@kon72)
- Optimized performance of
bazel queryoperations (@iamricard) - CI updated to Node 20 (@jfirebaugh)
-
Add bazel.commandLine.queryExpression configuration setting (@maximMalofeev)
A query language expression which determines the packages displayed in the workspace tree and quick picker. The default inspects the entire workspace, but you could narrow it. For example:
//part/you/want/...:* -
Make executable and buildifierExecutable settings
machine-overridable(@jfirebaugh)This allows them to be set in workspace or folder settings.
-
Starlark syntax highlighting now applies to any file with a
.bazelextension (@dierksen)
-
Fix and document providing flags to
getTargetOutput(@jfirebaugh)Additional Bazel flags can be provided to the
bazel.getTargetOutputcommand:"inputs": [ { "id": "debugOutputLocation", "type": "command", "command": "bazel.getTargetOutput", "args": ["//my/binary:target", ["--compilation_mode", "dbg"]], } ]
-
Add bazel.getTargetOutput command.
This command can be used in launch configurations to obtain the path to an executable built by Bazel. For example, you can set the "program" attribute of a launch configuration to an input variable:
"program": "${input:binaryOutputLocation}"Then define a command input variable:
"inputs": [ { "id": "binaryOutputLocation", "type": "command", "command": "bazel.getTargetOutput", "args": ["//my/binary:target"], } ]
- return
defaultfor .sky files in getBuildifierFileType (@arahatashun)
- Implemented IntelliSense code completion for targets and packages in BUILD files.
- Added rudimentary goto definition handling for BUILD files.
- Fixed problems with CodeLens on Windows.
- Added support for "no-floating-promises" lint check and fixed violations.
- Made sure that multiple targets in CodeLens are sorted.
We would like to thank Alex Frasson, Chi Wang, ericisko, hensom, Jonathan Dierksen and Neil Ding for their great contributions.
- Fix CVE-2021-22539: Malicious project can cause vscode-bazel to run arbitrary executable when linting a *.bzl file.
- CodeLens has been disabled by default, but can be enabled via a new option.
- WORKSPACE.bazel files are now properly recognized.
- We made multiple improvements to Windows support.
- This extension now requires Visual Studio Code 1.30 or higher.
- This extension now requires buildifier version 0.25.1 or higher.
- Buildifier diagnostics have been refined. For example, now only the violating range of text is highlighted instead of the entire line.
- Added the "Copy Label to Clipboard" context menu option to the Bazel Build Targets view.
- The
.starfile extension is now recognized as Starlark for syntax highlighting.
- Formatting a BUILD or Starlark file no longer deletes the editor's content if the file contains syntax errors.
- BUILD files named
BUILD.bazelare now correctly treated as BUILD files, notbzlfiles, for the purposes of formatting and linting.
- Support formatting of
*.BUILDfiles. - Bazel Build Targets view and Command Palette QuickPicks results are now sorted making them easy to scan.
- Targets rooted in the directory opened are also included in the TreeView and Command Palette QuickPicks.
- Support in the Bazel Build Targets view and Command Palette QuickPicks for
building the whole package or the package recursively (
:alland/...).
- On Windows, clicking a target in the Bazel Build Targets view should now navigate to the BUILD file where that target is defined.
- The "Bazel: Build Target with Debugging" command has been renamed to "Bazel: Build Target with Starlark Debugger" to clarify that this command debugs the Starlark build rules themselves and not the binary/executable being built.
- Handle cases where
buildifierexists with a non zero result, but did successfully run. - Fix case where the Bazel executable wasn't properly defaulting.
- Packages created by otherwise empty
BUILDfiles are now properly detected so the Bazel Build Targets matches the on-disk layout more closely. - Fixed issue where VS Code would hang when the Bazel Build Targets view was opened and a workspace folder was not part of a Bazel workspace.
- CodeLens adds build/test commands to targets in the editor for BUILD files.
- If Buildifier is installed, it will be used as the formatter for BUILD,
.bzl, and other Starlark files, and lint warnings will be annotated in the editor and problems panel. - Targets in BUILD files are now treated as "symbols" so they appear in the Outline view, can be navigated to using the "Go to Symbol" command, and so forth.
- The "Bazel: Clean" command has been added to the command palette.
- The "Bazel Build Targets" explorer view now has an explicit refresh control to requery the workspace if there are changes that cannot be auto-detected.
- Improve path resolution for breakpoints in local/external workspaces, which should solve some issues with the debugger not stopping when a breakpoint is reached.
- When a Bazel command is invoked from the command palette, a quick pick panel is now presented that allows the user to type or select which target should be built or tested.
- Fix an issue where runtime dependencies were listed as development dependencies.
- Initial release.