Выделение цитируемых / обратных кавычек - PullRequest
4 голосов
/ 29 октября 2009

В Emacs есть способ выделить синтаксис в скобках цитируемых и обратных кавычек по-разному, чем в скобках других полов, чтобы они выделялись? например Я хочу, чтобы эти парены были другого цвета, чем другие парни:

(foo `(bar (baz)) quux)
      ^         ^

Ответы [ 2 ]

1 голос
/ 12 ноября 2009

Вы можете применить следующий патч к mic-paren (перейдите по ссылке для последней версии 3.8), чтобы получить то, что вы хотите. Настройте только что созданное лицо paren-face-quoted-match, которое явно настроено на зеленый и оранжевый фон для тестирования.

Теперь, когда вы находитесь рядом с подходящим набором скобок, перед которым стоит одна открытая кавычка `, вы получите процитированное лицо. В этом примере используется оранжевый фон и зеленый передний план - наиболее вероятные цвета, которые вы хотите изменить.

Вот изображение этого в действии: альтернативный текст http://img262.imageshack.us/img262/8866/quoted.png

--- orig-mic-paren.el   2009-11-11 17:02:42.000000000 -0800
+++ mic-paren.el    2009-11-11 17:05:35.306263000 -0800
@@ -561,4 +561,16 @@
   :group 'mic-paren-matching)

+(defface paren-face-quoted-match
+  '((((class color)) (:foreground "green" :background "orange"))
+    (t (:reverse-video t)))
+  ""
+  :group 'faces
+  :group 'mic-paren-matching)
+
+(defcustom paren-quoted-match-face 'paren-face-quoted-match
+  "Mic-paren face used for a quoted paren"
+  :type 'face
+  :group 'mic-paren-matching)
+
 ;;; End of User Options
 ;;; ======================================================================
@@ -1052,5 +1064,9 @@
                   face (if mismatch
                            paren-mismatch-face
-                         paren-match-face)
+                         (save-excursion
+                          (if (progn (goto-char (- (min (point) opos) 1))
+                                     (looking-at "`"))
+                              paren-quoted-match-face
+                            paren-match-face)))
                   visible (when (pos-visible-in-window-p opos)
                             (save-excursion

Чтобы применить исправление, вырежьте / вставьте фрагмент исправления в файл с именем mic.patch и выполните следующее:

patch mic-paren.el mic.patch
1 голос
/ 29 октября 2009

Посмотрите на mic-paren , второстепенный режим, созданный как расширение пакетов paren.el и stig-paren.el для Emacs. Имеет распознавание «сбежавших» сексов.

Теперь для особого выделения: если вы посмотрите на код , поведение сопоставления по полам в кавычках определяется переменной paren-match-quoted-paren. При нахождении пары совпадений по полу, изменение шрифта выполняется с помощью таких выражений, как:

(mic-overlay-put mic-paren-backw-overlay 'face paren-mismatch-face)

(с аналогичными альтернативами для совпавших, непревзойденных). Не должно быть слишком сложно определить альтернативный шрифт (аналогично тому, что делается с paren-mismatch-face) и заменить эти операторы, изменяющие шрифт, функциями, которые используют ваш альтернативный шрифт, если paren-match-quoted-paren - true.

Примечание: обновлены ссылки на последнюю версию

...