コンテンツにスキップ

はじめに

5分以内にcodeknitを使い始めましょう。

以下が必要です:

  • Go 1.26+
  • Cコンパイラ(tree-sitter用にCGoが必要)
Terminal window
git clone https://github.com/awslabs/codeknit.git
cd codeknit
make build
# バイナリは ./bin/codeknit にあります

バイナリをシェルのPATHに追加します:

Terminal window
# bash (~/.bashrc)
export PATH="$PATH:$(pwd)/bin"
# zsh (~/.zshrc)
export PATH="$PATH:$(pwd)/bin"
# fish (~/.config/fish/config.fish)
fish_add_path $(pwd)/bin

変更を反映させるためにシェルを再読み込みするか、source ~/.bashrc(または~/.zshrc)を実行してください。

codeknitが動作しているか確認します:

Terminal window
codeknit --version

コードベースで最初のパースを実行します:

Terminal window
codeknit parse ./myproject

このコマンドは:

  • ./myproject内のすべてのソースファイルをパースします
  • 構造情報(関数、クラス、関係性)を抽出します
  • チャンク化された.sktファイルを./skeleton/(デフォルトの出力ディレクトリ)に書き込みます

このコマンドを再実行する場合は、--cleanを使用して以前の出力を削除します:

Terminal window
codeknit parse ./myproject --clean

.sktファイルには構造化されたコード情報が含まれています。以下は小さな例です:

[symbols]
## src/main.go
S1 module/package L1-L1 main {}
S2 type/struct L5-L8 Server {exported}
S3 callable/function L10-L12 NewServer(addr: string) -> *S2 {exported}
S4 callable/method L14-L19 Start() {receiver=*Server}
[edges]
S2 --contains--> S4
S3 --returns--> S2

主なセクション:

  • [symbols]:ファイルごとにグループ化された定義。名前、行範囲、メタデータを表示
  • [edges]containscallsinheritsreturnsなどの関係性

最初のパースを実行したので、次は: