endpoint.nvim — APIエンドポイント探索プラグイン

Tool

概要

endpoint.nvimはNeovim用の強力なTelescopeピッカーで、プロジェクト内のWebフレームワークのAPIエンドポイントを素早く見つけ、対応するソースにジャンプできるプラグインです。現時点でSpring Boot(Java)、NestJS(TypeScript/JavaScript)、Symfony(PHP)、FastAPI(Python)をサポートし、DjangoやRails、Expressなども順次対応予定です。UIのカスタマイズや検索結果のキャッシュ機能を備え、ルーティング情報の抽出によって大規模プロジェクトでも効率的にエンドポイントを扱えます。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 3
  • ファイル数: 11
  • メインの言語: Lua

主な特徴

  • マルチフレームワーク対応:Spring Boot、NestJS、Symfony、FastAPIなどを自動検出して解析
  • Telescope統合:Neovim内で一覧表示・フィルタ・即時ジャンプが可能
  • カスタマイズ可能なUI:表示項目やフォーマットをユーザーが設定可能
  • スマートキャッシュ:解析結果をキャッシュして高速な再検索を実現

技術的なポイント

endpoint.nvimはNeovimプラグインとしてLuaで実装され、TelescopeのピッカーAPIを活用してインタラクティブな検索体験を提供します。キーとなる技術要素は次の通りです。

  1. フレームワーク固有の解析ルール 各フレームワークに対して、ソースコード(コントローラー、ルーティング定義、デコレータなど)を走査してエンドポイント情報(HTTPメソッド、パス、ハンドラ位置)を抽出するパーサーを備えています。言語やフレームワークごとに解析ロジックを分離しているため、新規フレームワークの追加が容易です。

  2. Telescopeとの連携 抽出したエンドポイントはTelescopeのFinder/Sorter/Previewerに渡され、一覧のフィルタリングや絞り込み、選択時の即時ジャンプ(ファイルを開いて該当行へ移動)を実現します。Telescopeのプラグインアーキテクチャを活用しているため、既存のTelescope設定や拡張と併用可能です。

  3. キャッシュ機構とパフォーマンス コードベース全体の静的解析はコストがかかるため、endpoint.nvimは解析結果のローカルキャッシュを保持し、ソース変更時のみ再解析を行う設計を採っています。これにより大規模プロジェクトでも高速にエンドポイントを検索できます。キャッシュの無効化や手動再スキャンも設定可能です。

  4. カスタマイズ性と拡張性 設定はLua側で細かく調整でき、表示フォーマットや優先順位、サポートするフレームワークの有効/無効切替などが可能です。さらに、フレームワークごとの解析モジュールを追加することで、新たな言語やフレームワークへ対応させることができます。

  5. 現状と今後の対応 現在はSpring Boot、NestJS、Symfony、FastAPIのサポートが明記されており、Django、Rails、Expressなどの対応が「Coming soon」とされています。オープンな設計のため、コミュニティによる解析ルールの寄稿や拡張も見込めます。

以上の構成により、endpoint.nvimはNeovimでの開発ワークフローに自然に溶け込み、API探索やリファクタ時のナビゲーションを効率化します。プラグイン自体が軽量なLua実装であるため、Neovimの起動や操作感に与える影響も最小化されています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • CHANGELOG.md: file
  • LICENSE: file
  • Makefile: file
  • README.md: file
  • lua/: dir (プラグイン本体のLuaコード)
  • plugin/: dir (Neovim用のエントリ)
  • tests/: dir(テスト類、存在する場合)
  • docs/: dir(ドキュメント、存在する場合)

…他 6 ファイル

まとめ

NeovimでAPIエンドポイント探索を高速化する実用的なTelescopeプラグインです。

リポジトリ情報:

READMEの抜粋:

endpoint.nvim

A powerful Telescope picker for quickly finding and navigating web framework API endpoints with customizable UI and smart caching.

Supported Frameworks:

  • 🍃 Spring Boot (Java)
  • 🐦 NestJS (TypeScript/JavaScript)
  • 🎼 Symfony (PHP)
  • ⚡ FastAPI (Python)
  • 🐍 Django (Python) - Coming soon
  • 💎 Rails (Ruby) - Coming soon
  • ⚡ Express (Node.js) - Coming soon

✨ Features

  • 🔍 Multi-Framework Support: Automatically detects and supports Spring Boot, NestJS, Symfony, FastAPI…