Cpp Reader とは、LLMと一緒にCppのコードを読むためのツールです。
生成したJSONを可視化できる Playgroundを作成しました。 よかったら使ってみて下さい!
https://d1bn7mo12i1l5l.cloudfront.net/input
:::note alert BuiltinでないC/C++のVSCode拡張とは共存できません。 Linux Readerを使うときは、BuiltinでないC/C++のVSCode拡張はdisableにしてください。 :::
- 人がコードを読まずともLLMが関数探索してくれる
- 前に進んだ関数経路に戻れる
- 調べている関数経路のバグをLLMが見つけてくれる
- 調べている関数をLLMが図にしてくれる
- 調べた関数経路をLLMがレポートにしてくれる
- 調べた関数経路をJSONで保存・再現できる
- Cppコードをランダムウォークなしに読み進められる
- 土地勘がないと10分以上かかる数百行、数千行の関数のコードリーディングを、LLMが1分で終わらせてくれる
- Cppコードのバグを見つけられる機能がある
- 頭にいれるだけで暗黙知になりがちな関数経路や関数の説明をLLMがしてくれる
- 従来は頭にしか入っていなかったコードという暗黙知が形式知にできる
- エントリーポイントの把握
- LLMによる関数自動探索(人が判断した方が正確)
- コードベースを分割せず一括でLLMに調べさせること
clangd(14系以上), Cppのコード, Cppのcompile_commands.json, vscode(1.100.0以上)
OpenAIかAnthropicかPLaMoのAPIキー
- Cppコードベース、clangdの準備
git clone <your repository>
brew install clangd
- compile_commands.json の用意
https://zenn.dev/tmsn/articles/6317bdf591bc97
なども参考にする
make defconfig
bear -- make LLVM=1 -j16
など...
- vscode のインストール
1.100.0 以上をインストールしてください
- VSCode で CppReader をダウンロード
https://marketplace.visualstudio.com/items?itemName=coffeecupjapan.cpp-reader&ssr=false#overview
ダウンロード完了したら、「Command + Shift + p」でコマンドパレットを開き、「Open Cpp Tab」をクリック
クリック後に、右側にタブウィンドウが出てくれば成功です
-
設定の入力 clangdのパス、Cppのパス、compile_commands.json のディレクトリのパス、LLM(OpenAI・Claude・Plamo)を入力
-
チャット画面で探索を開始 最初に、「探索を開始するファイルパス」「探索を開始する関数」「探索の目的」を入力すれば、探索を開始できます。
-
探索を制御 しばらくすると、LLMが関数のステップを説明したのちに、関数の中から重要な関数を選ぶので、そこから内容を探索したい関数を選択します。
すると、またLLMが関数の中から重要な関数を選ぶので、そこから再度探索したい関数を選択します。
以上の流れを、自分がいいと思うまで続けます。
up rerun candidate limit
save tree when get cache
fix id regeneration bug
impl steps
fix normal task cache update bug
fix id bug
add runHistory update
try fix cache update
fix cache update
fix cache bug
fix children insertion
fix id generation
improve log at normal search cache add
fix bug
improve log for cache
filter cache result
fix cache add problem when start
fix cache search display
impl cache search
support gpt5.6
/usr/local/cuda/bin/nvcc support
g++, gcc support
Reference limit
Support h file
Support NVCC
Update Doc
.が間違って指定されるバグ修正
hpp探索時にhppも指せるようにしたい
hpp探索ミスのバグ修正21
hpp探索ミスのバグ修正20
hpp探索ミスのバグ修正19
hpp探索ミスのバグ修正18
hpp探索ミスのバグ修正17
hpp探索ミスのバグ修正16
hpp探索ミスのバグ修正15
hpp探索ミスのバグ修正14
hpp探索ミスのバグ修正13
hpp探索ミスのバグ修正12
hpp探索ミスのバグ修正11
hpp探索ミスのバグ修正10
hpp探索ミスのバグ修正9
hpp探索ミスのバグ修正8
hpp探索ミスのバグ修正7
hpp探索ミスのバグ修正6
hpp探索ミスのバグ修正5
hpp探索ミスのバグ修正4
hpp探索ミスのバグ修正3
hpp探索ミスのバグ修正2
hpp探索ミスのバグ修正
LSPのrestartのバグ修正
LSPのバグの修正
READMEの修正
CppReaderの最初のリリース