Skip to content

fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers#21466

Merged
rekram1-node merged 1 commit intoanomalyco:devfrom
nonbanana:fix/clangd-root-markers
Apr 9, 2026
Merged

fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers#21466
rekram1-node merged 1 commit intoanomalyco:devfrom
nonbanana:fix/clangd-root-markers

Conversation

@nonbanana
Copy link
Copy Markdown
Contributor

Issue for this PR

Closes #21446

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

clangd does not read CMakeLists.txt or Makefile — they are irrelevant to it. Both also appear in every subdirectory by design, so NearestRoot returns a different root for each subdirectory, spawning a new clangd instance every time a file from a new module is opened. Each instance independently indexes the full project, wasting memory and CPU.

Tested with abseil-cpp (22 CMakeLists.txt): opening 3 modules spawns 3 clangd at ~330MB each (998MB total). With this fix, one clangd at ~330MB.

Removed both from the marker list. Also added root to the spawn log to make this easier to debug.

How did you verify your code works?

git clone --depth=1 https://github.com/abseil/abseil-cpp /tmp/abseil-cpp
cd /tmp/abseil-cpp
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DABSL_BUILD_TESTING=OFF
ln -s build/compile_commands.json .
opencode

In the opencode session, read files from different modules:

> read absl/strings/str_split.cc
> read absl/base/log_severity.cc
> read absl/time/clock.cc

Before: 3 clangd instances (~330MB each)
After: 1 clangd instance (~330MB)

Screenshots / recordings

N/A

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@nonbanana nonbanana force-pushed the fix/clangd-root-markers branch from ff38600 to e671f24 Compare April 8, 2026 06:47
@rekram1-node
Copy link
Copy Markdown
Collaborator

/review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

lgtm

@rekram1-node rekram1-node merged commit 9c1c061 into anomalyco:dev Apr 9, 2026
7 of 8 checks passed
NicholasDominici added a commit to jairad26/opencode that referenced this pull request Apr 9, 2026
* fix: bump openrouter ai sdk pkg to fix openrouter issues (anomalyco#21242)

* chore: update nix node_modules hashes

* chore: remove ai-sdk/provider-utils patch and update pkg (anomalyco#21245)

* chore: update nix node_modules hashes

* chore: bump anthropic ai sdk pkg, delete patch (anomalyco#21247)

* refactor(core): add full http proxy and change workspace adaptor interface (anomalyco#21239)

* go: add mimo

* feat: add --dangerously-skip-permissions flag to opencode run (anomalyco#21266)

* chore: update nix node_modules hashes

* feat(opencode): Add PDF attachment Drag and Drop (anomalyco#16926)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>

* feat(app): show full names on composer attachment chips (anomalyco#21306)

* style(app): redesign jump-to-bottom button per figma spec (anomalyco#21313)

* Move auto-accept permissions to settings (anomalyco#21308)

* go: support coupon

* fix(opencode): keep user message variants scoped to model (anomalyco#21332)

* chore: generate

* chore: update web stats

* feat(app): better subagent experience (anomalyco#20708)

* refactor(core): support multiple event streams in worker and remove workspaces from plugin api (anomalyco#21348)

* fix(tui): use sentence case for theme mode command palette items (anomalyco#21192)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>

* fix: ensure the alibaba provider errors are retried (anomalyco#21355)

* fix(opencode): improve console login transport errors (anomalyco#21350)

* chore: generate

* feat(tui): allow variant_list keybind for the "Switch model variant" command (anomalyco#21185)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>

* test: disable GPG signing in test fixtures (anomalyco#20386)

* fix(opencode): clear webfetch timeouts on failed fetches (anomalyco#21378)

* feat(opencode): add OTLP observability support (anomalyco#21387)

* zen: glm5.1 doc

* zen: glm5.1 doc

* go: glm5.1

* core: refactor tool system to remove agent context from initialization (anomalyco#21052)

* refactor(snapshot): store unified patches in file diffs (anomalyco#21244)

Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>

* chore: generate

* release: v1.4.0

* chore: update nix node_modules hashes

* fix(tui): simplify console org display (anomalyco#21339)

Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>

* ui: fix sticky session diffs header (anomalyco#21486)

* test: update webfetch test (anomalyco#21398)

Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>

* fix: ensure that /providers list and shell endpoints are correctly typed in sdk and openapi schema (anomalyco#21543)

* fix(app): patch tool diff rendering

* fix(app): diff list normalization

* fix: dont show invalid variants for BP (anomalyco#21555)

* tweak: separate ModelsDev.Model and Config model schemas (anomalyco#21561)

* refactor(effect): build task tool from agent services (anomalyco#21017)

* fix(app): skip url password setting for same-origin server and web app (anomalyco#19923)

* fix: propagate abort signal to inline read tool (anomalyco#21584)

* refactor(effect): inline session processor interrupt cleanup (anomalyco#21593)

* feat(llm): integrate GitLab DWS tool approval with permission system (anomalyco#19955)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>

* chore: update nix node_modules hashes

* fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers (anomalyco#21466)

* Remove CLI from electron app (anomalyco#17803)

Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com>

* chore: generate

* chore: update nix node_modules hashes

* feat: add opencode go upsell modal when limits are hit (anomalyco#21583)

Co-authored-by: Frank <frank@anoma.ly>

* release: v1.4.1

* app: remove min loading duration (anomalyco#21655)

* fix: preserve interrupted bash output in tool results (anomalyco#21598)

* fix: preserve text part timing in session processor (anomalyco#21691)

* refactor(effect): drop shell abort signals from runner (anomalyco#21599)

* refactor: fix tool call state handling and clean up imports (anomalyco#21709)

* release: v1.4.2

* feat(mcp): add OAuth redirect URI configuration for MCP servers (anomalyco#21385)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>

* chore: generate

* fix(tui): restore hidden session scrollbar default (anomalyco#20947)

* feat: add support for fast modes for claude and gpt models (that support it) (anomalyco#21706)

* opencode: lazy-load top-level CLI commands

The CLI imports every top-level command before argument parsing has
decided which handler will run. This makes simple invocations pay for
the full command graph up front and slows down the default startup path.

Parse the root argv first and load only the command module that matches
the selected top-level command. Keep falling back to the default TUI
path for non-command positionals, and preserve root help, version and
completion handling

* delete unused withALS method (anomalyco#21723)

* Revert "opencode: lazy-load top-level CLI commands" (anomalyco#21726)

* fix(effect): suspend agent default layer construction (anomalyco#21732)

---------

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: James Long <longster@gmail.com>
Co-authored-by: Frank <frank@anoma.ly>
Co-authored-by: gitpush-gitpaid <149759805+gitpush-gitpaid@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com>
Co-authored-by: Dax <mail@thdxr.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
Co-authored-by: Ariane Emory <97994360+ariane-emory@users.noreply.github.com>
Co-authored-by: Kit Langton <kit.langton@gmail.com>
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: opencode <opencode@sst.dev>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com>
Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com>
Co-authored-by: Cho HyeonJong <mbin96@gmail.com>
Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com>
Co-authored-by: Aleksandr Lossenko <aleksandr.lossenko@gmail.com>
Co-authored-by: Simon Klee <hello@simonklee.dk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

clangd spawns in wrong directory in CMake/Make projects

2 participants