リージョンの顔を `show-paren-mode`の顔よりも優先させる方法は?


7

show-paren-mode式の強調表示で使用して、背景の顔をデフォルトの背景よりも明るい色調に変更します。それは大好きです。

問題は、マークを付けると、括弧式の背景面がマークされた領域の背景面を上書きするため、奇妙で一貫性がないように見え、領域全体が一目で何であるかを視覚的に判別することが難しいことです。

リージョンのフェースをshow-paren-matchフェースよりも「優先度」が高くなるように構成する方法はありますか?


これは、いくつかの理由で見た目よりも難しいですがshow-paren-mode、領域がアクティブな場合は、何かを表示しないようにアドバイスしても大丈夫ですか?
wasamasa 2015年

@wasamasa-カバーする必要があるオーバーレイの優先度を低く設定してみませんか?で定義されている地域の優先度の値simple.el'(nil . 100)-を参照してくださいredisplay-highlight-region-function
法律家、2015年

@wasamasa確かに、それは私が想定している許容できる一時的なギャップになるでしょう。
levand

@lawlistドキュメントには、優先順位は数値のみであり、それ以外は内部での使用のみを目的としていると記載されています。しかし、この地域では、文書化されていない二次優先事項と思われるものを使用しています。100未満の値を試してみましたが、show-parenの優先度を設定して、nil別の副作用があった(反転表示で強調表示された式を表示する)まで、効果はありませんでした。
wasamasa

@lawlistこれはもちろん、リージョンフェースのリバースビデオ以外の何かを指定する私のテーマである可能性がありますが、それでも、そのようなグリッチが最初に発生することはありません。したがって、なぜ私が代替アプローチを提案しているのか。
wasamasa

回答:


9

オプションshow-paren-priorityをカスタマイズして、マイナスの値を設定します(例:-50)

いいえ、これはどこにも文書化されていません。はい、バグが報告されました。いいえ、バグレポートは返答されませんでした。

参照Emacsのバグ#20253、#15899、および#16192


涼しい。これは、希望どおりに機能します。文書化されていない機能の万歳。
levand

2

不要な視覚的な不具合を発生させることなく、関連するそれぞれのオーバーレイの優先順位を変更する信頼できる文書化された方法を見つけられなかったので、私は助言に頼りましたshow-paren-function

(defadvice show-paren-function (around inhibit-in-region activate)
  (if (region-active-p)
      (progn
        (delete-overlay show-paren--overlay)
        (delete-overlay show-paren--overlay-1))
    ad-do-it))

リージョンがたまたまアクティブな場合、これは単にハイライトを無効にするだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.