#:g1: MCLのエディタコマンドの対話的ヘルプ機能

Posted 2021-12-16 19:09:06 GMT

Lisp一人 Advent Calendar 2021 18日目の記事です。

MCLのエディタヘルプ

Emacs系エディタにはコマンドのaproposがあり、対話的にドキュメントを参照することが可能ですが、MCL(Macintosh Common Lisp)は一歩先を進んでいて、コマンド名でインクリメンタル検索ができたり、押下したキーの組み合わせで発火するコマンドを表示する機能がありました。

mcl-ed-help

おもいのほかこれが知らないコマンドを見付けたりするのに重宝します。

LispWorksだとこういうちょっとしたGUIツールを作成するのが簡単なので、練習のお題として真似して作ってみたりしています。
今回の場合は、キーの押下の検知の挙動がGUIプラットフォーム間で共通かは怪しいのですが、こういうのは大体150行くらいで書けます。
(なお、LispWorksのCAPIは共通のコードでGtk/Windows/Cocoa/Motifのマルチプラットフォームで動く筈です)

コマンド名からのインクリメンタル検索

Screenshot from 2021-12-17 04-14-25

キー組み合わせ押下での検索

Screenshot from 2021-12-17 04-13-50

そして、昨日の記事にも書きましたが、12/14日に発売となったLispWorks 8.0では似たような機能が標準装備となり、検索した結果をコマンドリストに保存できます。

LispWorks 8.0 のコマンドリスト

Screenshot from 2021-12-17 04-15-21

まとめ

最近はGUIといえば、ほとんどウェブ系技術ですが、昔ながらのGUIツールキットを使ってのGUIアプリ作成も結構面白いかなと思います。
LispWorksだとマルチプラットフォームなアプリが作成できるのでそういう用途にはお勧めです(あまりないでしょうけれど)


HTML generated by 3bmd in LispWorks 8.0.0

comments powered by Disqus