2012-04-18 2 views
3

特定の背景色でコードの一部を強調したいと思いますが、コードの残りの部分をそのまま残しておきたいと思います。つまり、キーワードはfont-lockによってキーワードとして強調表示され、背景のみが変更されるはずです。現時点で font-lock-keywordsのキーワードに新しい背景色のみを指定する

、私は正規表現の一致は、私が強調するために好きなフォント・ロック・アドオンキーワードとし、すべての試合にそれをやって、それはそうのように定義された顔を付加:

(:background "#d1eaff") 

しかし、この顔を追加すると、前景色のような以前の属性は保持されず、この背景色を持つデフォルトの顔が使用されます。

現在の顔を使用し、背景色のみを新しいものに置き換える方法はありますか?既存の顔に新しい属性を追加するのと同じですか?

答えて

2

あなたが探しているものはoverlaysです。

次のコードスニペットは、現在のバッファ内の文字1〜3に顔compilation-errorを追加します。代わりに数字の

(overlay-put (make-overlay 1 4) 
      'face 'compilation-error) 

をあなたが決定するために使用する正規表現検索か何かの結果を置くことができますあなたのオーバーレイの境界線。

+1

オーバーレイで行う方法を詳しく教えてください。回答は自己完結型であることが期待されます。 –

関連する問題