Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 2.64 KB

File metadata and controls

59 lines (39 loc) · 2.64 KB

GEMINI.md

プロジェクト概要

このプロジェクトは、構造的なコード検索・置換ツールである comby を Neovim からインタラクティブに利用するための Lua 製プラグインです。

ユーザーがビジュアルモードで選択したコード範囲を match テンプレートとして利用し、rewrite テンプレートを入力することで、コードの書き換えをリアルタイムに実行できます。

主な機能

  • Comby ユーザーコマンド: ビジュアルモードで選択した範囲に対して comby を実行します。
  • インタラクティブな入力ウィンドウ: matchrewrite のテンプレートを入力するための分割ウィンドウを提供します。
  • comby コマンドの実行: 内部で comby コマンドをシェル実行し、結果をバッファに反映させます。

ファイル構成

  • lua/comby.lua: プラグインのメインファイル。:Comby コマンドの定義や comby の実行ロジックが含まれています。
  • lua/comby/window.lua: match/rewrite テンプレートを入力するためのUI(分割ウィンドウ)を管理するモジュールです。
  • test/: テスト関連のファイルが格納されています。
    • spec/: plenary.nvimbusted を利用したユニットテスト。
    • Makefile: テストや依存関係のセットアップを行うための makefile。
  • .github/workflows/integration.yml: GitHub Actions の設定ファイル。CI/CD パイプラインが定義されており、リンターとテストが自動実行されます。
  • .gitmodules: テスト用の依存ライブラリ (plenary.nvim など) を Git Submodule として管理しています。

開発セットアップ

開発を開始する前に、テスト用の依存関係をセットアップする必要があります。

# Git Submodule を初期化・更新
git submodule update --init

# luacheck などのテスト依存関係をインストール
make -C ./test prepare

ビルドとテスト

このプロジェクトでは、コードの品質を保つためにリンターとユニットテストが用意されています。

リンター

コードの静的解析には luacheck を使用します。

luacheck lua/ test/spec/

テスト

ユニットテストは plenary.nvimbusted を使って書かれています。

# すべてのテストを実行
make -C ./test test

# 特定のテストファイルのみを実行
make -C ./test test SPEC=spec/comby/my_cool_module_spec.lua