1

テーマtangotango.elで Emacs 24.3 と ESS 13.05 を使用しています。テーマは目に優しいですが、R の変数名は強調表示されていないようです。次tangotango-theme.elの行を見つけることができます:

 `(font-lock-variable-name-face ((t (:foreground "tomato"))))

しかし、これは何の効果もないようです。たとえば、下のスクリーンショットでは、変数orlが赤の色合いで強調表示されていると思います。代わりに、このテーマの標準のテキストの色です。

タンゴタンゴのテーマ

ESS を詳しく調べてみるとess-font-lock.el、次のような変数名 face への参照がいくつか含まれているという名前のファイルがあります。

  (set-face-foreground 'font-lock-variable-name-face "Black"))

font-lock-variable-name-faceそのため、競合する定義があるように見えます。Emacs テーマとこれらの ESS 定義の間の相互作用がわかりません。ESS は tangotango テーマを上書きしていますか? もしそうなら、ess-font-lock.el復元変数名の強調表示で上記の行を変更しますか? それとも、まったく別の場所を探す必要がありますか?

Cperl編集:モードはフォントロックを尊重しているように見えることに注意してください:

パール

4

2 に答える 2

0

はい、そのように聞こえます。そのモードでのみ問題が発生し、そのモードが顔を明示的に変更する場合、それが原因のように聞こえます。ただし、ソース コードを変更する必要はありません。このようなことをしてください(テストされていません):

 (add-hook 'ess-mode (lambda () (set-face-foreground "tomato")))

(それが正しいモード名だと思います。そうでない場合は修正してください。)

しかし、これは見苦しい回避策です。そうする必要はありません。ess-mode.elコードに対してバグを報告することを検討してください。そのように顔などのユーザー設定を踏みにじるべきではありません。デフォルトで外観を変更したい場合は、ハードコーディングされた方法で既存の顔を単純にねじ込むのではなく、ユーザーがカスタマイズできる新しい顔を提供する必要があります。

于 2013-10-27T15:39:09.233 に答える