Skip to content

IDE support: CLion/IntelliJ via the new JetBrains Bazel plugin #37

Description

@aaylward

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions