TAB が Emacs でスマートになりたいと思っていることは知っています。しかし、それは私の好みには十分ではありません。そして「賢い」からこそ、伸ばすのは難しそうです。
Clojure モードの TAB が、列 0 にあるa などの最初の括弧にいる場合を除いて、動作するのとまったく同じように動作することを望みます。defn, defmacro
そこにある場合は、代わりにhs-minor-modeからhs -toggle-hidingを呼び出すようにします。
しかし、私はそれを機能させようとして夢中になっています。
最初に TAB に割り当てられたショートカットを変更して、Clojure モードでのみ、最初に関数を呼び出し、次にindent-for-tab-command を呼び出すようにしましたが、TAB ショートカットの変更は驚くほど複雑に思えます。Emacs はモードが Lisp-indent-function に TAB 関数を登録できるケースをすでに計画していたので、私はclojure-indent-functionを変更したいと思っていました。
(defun clojure-indent-function (indent-point state)
"This function is the normal value of the variable `lisp-indent-function'.
ただし、この関数は、カーソルが関数内にある場合にのみ呼び出されるようです。カーソルが "(defn ...") の最初の '(' にあるときではありません。
hs-toggle-hiding
Clojure モードのときにTAB を呼び出すにはどうすればよいですか?
これが org-mode やその他のモードに影響を与えたくありません。ただのClojureモード。