ITSUKI.
技術716 文字2 分

Day 18|小さな改造 — alias は既存の処理へつなぐ

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

新あたらしい名前なまえを既存きぞんのコマンドへ解決かいけつし、処理しょりを重複ちょうふくさせない。

原稿げんこうの演習えんしゅうは /where を /pwd の別名べつめいにする小ちいさな変更へんこうです。目的もくてきは機能きのうを増ふやすことより、入力にゅうりょくの解釈かいしゃくと実際じっさいの処理しょりを分わけ、既存きぞんの抽象化ちゅうしょうかを再利用さいりようする練習れんしゅうにあります。

01|図でつかむ

図18|小さな改造

演習えんしゅうの設計図せっけいず。/where が配布はいふ版はんに標準搭載ひょうじゅんとうさいされているという説明せつめいではない。

02|3つのポイントで理解する

1. どこで文字列を解釈するか

SlashCommand の定義ていぎと find_builtin_command 周辺しゅうへんを探さがします。文字列もじれつからコマンド型かたへ変かわる場所ばしょが分わかれば、別名べつめいを受け付うけつける責務せきむを絞しぼれます。

2. 実行処理を増やさない

/where 専用せんようの cwd 表示ひょうじを新あたらしく書かくと、/pwd と挙動きょどうがずれる原因げんいんになります。同おなじコマンド型かたへ解決かいけつし、既存きぞんの dispatch に流ながす設計せっけいを考かんがえます。

3. RED と GREEN を確認する

追加ついか前まえに alias の解決かいけつテストが失敗しっぱいし、追加ついか後のちに通とおることを確たしかめます。候補こうほ表示ひょうじやヘルプまで変更へんこうする必要ひつようがあるかは、検索けんさく・解決かいけつ・表示ひょうじの責務せきむを分わけて判断はんだんします。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

git rev-parse --short HEAD
rg -n "Pwd|find_builtin_command" codex-rs

読よむ入口いりぐち: codex-rs/tui/src/slash_command.rs 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

まず /pwd の解決かいけつ経路けいろを調しらべ、別名べつめいをどの一箇所いっかしょに加くわえるのが自然しぜんかを説明せつめいします。実装じっそうする場合ばあいは練習用れんしゅうようの作業場所さぎょうばしょで行おこないます。

04|30秒で復習

  • alias は入力にゅうりょくの解決かいけつに関かんする変更へんこう。
  • 既存きぞんのコマンド処理しょりを再利用さいりようする。
  • 追加ついか前まえの失敗しっぱいと追加ついか後のちの成功せいこうを確認かくにんする。

全ぜん30章しょうの目次もくじへ