🔖
Lem Advent Calendar 2023 - Lisp Mode - Find definitionsとUtopian
これは Lem Advent Calendar の記事です。
Find definitions Command
Lisp Modeではカーソル位置にあるシンボル上でM-. (M-x find-definitions)
を実行することでシンボルの定義位置に移動することが出来ます。
この機能は変数 lem-lisp-mode:*find-definitions*
に新しい関数を加えることで拡張可能です。
Lemではこの拡張を使ってWebフレームワークのUtopianのコントローラの定義への移動に対応しています。
以下はその拡張の定義です。
Utopian
Utopianではconfig/routes.lisp
でroute
関数の第三引数にcontrollerの定義を指定します。
controllerを表す引数が文字列の場合、ファイル名:関数名
という意味になります、ここからコントローラの関数の定義位置が分かります。
例えばentries:listing
の場合は、../controllers/entries.lisp
の位置の(defun listing ...)
を探すと見つかります。
地味な機能ですが業務でwebアプリケーションを開発してる時は便利でよく使います。
ドッグフーディングをしていると、こういう点で便利になってくるのが楽しいところです。
Discussion