1

Clojure プラグインである vim-clojure-static を使用しています。たとえば、次のようにして、独自の関数とマクロを構文グループに追加できます。 syntax keyword clojureMacro defsystem

しかし、Clojure では、他の名前空間からコードを要求 (インポート) した後、関数とマクロを名前空間で修飾する必要があります。たとえば、名前空間が必要で にあった場合、my-namespacedefsystem参照my-namespaceする必要がありますny-namespace/defsystem。ただし、別の名前空間が必要な場合は、名前空間名を短縮 (実際には名前を変更) して、たとえばmy/defsystem.

したがって、問題: のように名前空間が修飾されてsyntax keyword clojureMacro defsystemいる場合、 は機能しません。また、名前空間修飾子は何でもかまいません。どうすれば修正できますか?正規表現は名前空間修飾子に一致します。したがって、基本的には、一致するコードの直後に clojureMacro が続き、全体が clojureMacro であるかのように強調表示されるようにしたいと考えています。defsystemmy/defsystem'\m[a-z.+\-*_!?]\+\/''\m[a-z.+\-*_!?]\+\/'

4

2 に答える 2

2

それはあなたの質問に実際には答えませんが、とにかく。

昔、VimClojure はいわゆる「動的強調表示」を提供していました。必要な名前空間 (およびそのエイリアス) を検査し、参照された名前空間のシンボルを強調表示に動的に追加します。したがって、「m/defsystem」と入力すると強調表示されますが、「m/non-exist」または「not-m/defsystem」は強調表示されません。強調表示は、マクロや関数などであることを尊重しました。名前空間のエイリアスを「m」から別のものに変更したことはありますか?強調表示は (ほぼ) 自動的に適応します。ただし、バックエンド サーバーを実行する必要がありました。

たぶん、 vimclojure google groupの人たちに ping したいでしょう。それはすべてvimとclojureに関するものです。誰かが手を貸して、この機能を暖炉の延長として引き継いでくれるかもしれません.

于 2013-07-10T05:46:22.483 に答える