mcpp projects: no root compile_commands.json by default; read mcpp's result record for fallback and refresh
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- cpp
調査の方向性
Read src/project/mcpp.cppm at McppProvider::describe and the referenced mcpp design sections §7 and §5.2. Trace how the fallback selects a compilation database and how build refresh is forwarded by the editor extension; check the CLion e2e coverage. Done means the result record pointer is preferred, the root database remains a compatibility fallback, and the proposed refresh and CLion behavior are covered.
索引モデルが issue の本文から書いたものです。
説明
Context
The next mcpp release changes two things mcppls touches on mcpp projects (design: mcpp/.agents/docs/2026-10-26-control-contract-runtime-and-ide-ecosystem-design.md, §7 and §5.2):
- The project-root
compile_commands.jsonis no longer written by default. It becomes opt-in through[build] compile_commands = "<path>"inmcpp.toml(or a default in~/.mcpp/config.toml). An existing root copy is no longer updated, and mcpp prints a one-time note. The per-configuration database (target/<triple>/<fp>/compile_commands.json) stays. - mcpp writes a result record after every build (
target/<triple>/<fp>/result.json, kindmcpp.result), plus a project-level pointertarget/.last-result.jsonnaming the most recent configuration. The record carries the configuration's compile database path, the diagnostics, and the artifacts.
What this means for mcppls
- Fallback path.
McppProvider::describefalls back to a leftover rootcompile_commands.jsonwhen mcpp cannot be asked (src/project/mcpp.cppm:41). After the change, that file is usually absent. The fallback should read the database named bytarget/.last-result.jsonfirst, and the root file only when the pointer is missing (older mcpp). - Refresh after a build. Watching
target/.last-result.json(written by atomic rename) tells mcppls that a build finished, whoever ran it: a terminal, an agent's shell, or an IDE. Today the refresh is forwarded by the editor extension. - CLion. Without a root
compile_commands.json, CLion no longer loads an mcpp project as a Compilation Database workspace, soClionModelno longer treats it as CLion's and mcppls starts by default. No code change is expected; an e2e assertion would pin it.
Nothing breaks immediately: the primary path (mcpp emit build-database) is unchanged. This issue tracks adopting the result record when that mcpp release ships.
- 主要言語
- C++
- スター
- 25
- フォーク
- 2
- 平均マージ
- 21時間 5分
- マージ済み PR(30日)
- 13
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Sunrisepeak/mcpp-language-server のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Sunrisepeak/mcpp-language-server#80 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Sunrisepeak/mcpp-language-server#66 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 1/100
Sunrisepeak/mcpp-language-server#77 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
Sunrisepeak/mcpp-language-server#59 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
Sunrisepeak/mcpp-language-server#52 ·
メンテナーはふだん 1 日以内に返信
Sunrisepeak/mcpp-language-server の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
xiaoyifang/goldendict-ng#3148 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
triton-inference-server/server#9069 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 4 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100