Goal
Make the repo (and downstream consumer modules) pleasant to work on in JetBrains IDEs — CLion for the C++ runtime/generated code, IntelliJ IDEA for the Gradle codegen tree — using the new-generation JetBrains Bazel plugin (the Bazel-BSP-based plugin that replaces the retired Google intellij-bazel plugin, and which supports Bazel 9 / bzlmod).
Scope
- Verify the runtime and generated targets import cleanly (compile commands,
#include resolution into runtime/include/smithy/** and generated include/<ns>/**, gtest run configurations for //runtime:*_test and the generated tests/ suites).
- Project-view / plugin configuration checked in where it helps (e.g. a
.bazelproject file or the plugin's equivalent), covering the two build trees (Bazel for C++, Gradle for codegen/).
- Confirm the out-of-tree consumer flow (
examples/bazel-consumer/, docs/quickstart.md) imports as its own module — including targets whose sources are generated inside the build graph by smithy_cpp_{types,client,server}_library (bazel/defs.bzl), which is the case IDE indexers typically struggle with.
- Document the setup in
docs/development.md (or a short docs/ide.md): recommended plugin, import steps, known limitations. Note anything that needs upstream plugin fixes.
- Non-goals for the first pass: VS Code / clangd guidance can be a follow-up if wanted (a
compile_commands.json exporter like hedron_compile_commands would serve both).
Broken out of the developer-experience backlog at the owner's request.
Goal
Make the repo (and downstream consumer modules) pleasant to work on in JetBrains IDEs — CLion for the C++ runtime/generated code, IntelliJ IDEA for the Gradle codegen tree — using the new-generation JetBrains Bazel plugin (the Bazel-BSP-based plugin that replaces the retired Google
intellij-bazelplugin, and which supports Bazel 9 / bzlmod).Scope
#includeresolution intoruntime/include/smithy/**and generatedinclude/<ns>/**, gtest run configurations for//runtime:*_testand the generatedtests/suites)..bazelprojectfile or the plugin's equivalent), covering the two build trees (Bazel for C++, Gradle forcodegen/).examples/bazel-consumer/, docs/quickstart.md) imports as its own module — including targets whose sources are generated inside the build graph bysmithy_cpp_{types,client,server}_library(bazel/defs.bzl), which is the case IDE indexers typically struggle with.docs/development.md(or a shortdocs/ide.md): recommended plugin, import steps, known limitations. Note anything that needs upstream plugin fixes.compile_commands.jsonexporter like hedron_compile_commands would serve both).Broken out of the developer-experience backlog at the owner's request.