私は、アセンブラー、プログラマー、およびその他の外部プログラムへのさまざまな呼び出しを行うプログラムモードに取り組んでいます。私の狡猾な計画は、これらすべてを関数で処理し、実行中のプログラムに依存compile
する明示的なものを渡すことでした。compile-command
この種のものは機能しているようで、さまざまな外部プログラムに特定のエラー正規表現を追加したいと考えています。1 つのオプションは、メジャー モードを変更compilation-error-regexp-alist-alist
してから、メジャー モードを に追加することcompilation-error-regexp-alist
です。
ただし、私がやりたいことは、次のようなものです。
(let ((compilation-error-regexp-alist
(cons <my-regexp-and-numbers> compilation-error-regexp-alist))
(compile <my-compile-command>))
奇妙なことに、このバインディングは、コンパイル バッファーが解析/マークアップされる方法に影響を与えないようです。<my-regexp-and-numbers>
バッファの前に手動でプッシュしてcompilation-error-regexp-alist
から呼び出すと(compilation-mode t)
、すべてが期待どおりにフォント化されます(したがって、正規表現が間違っていません)。ただし、上記のよう(compilation-mode t)
にフォーム内に呼び出しを貼り付けてlet
も、何の影響もありません。
再現しやすいテストケースとして、これは惨めに失敗することを私は認識しています。誰もアイデアを持っていない場合は、例をハックしようとしますが、誰かが「ああ、そうです。それは評価されないからです」など.. .