किसी दिए गए मोड के लिए सिंटैक्स हाइलाइट को कैसे अनुकूलित करें


10

मैं lua-mode.elअन्य प्रमुख मोड को प्रभावित किए बिना अपने में हाइलाइटिंग सिंटैक्स को बदलना चाहूंगा ।

बस एक उदाहरण के रूप में, मैं "कुंजी शब्द" की तरह की तरह होगा if, then, elseजब में बोल्ड और नीले टाइपफेस में होने की lua-modeएक संपादित करते समय एक ही हाइलाइटिंग शैली बिना (डिफ़ॉल्ट गुलाबी के बजाय) .texAUCTeX के साथ फ़ाइल।

अब तक मैंने निम्नलिखित कोड अपने .emacsऔर फिर अपने में भी डालने की कोशिश की है lua-mode.el:

(custom-set-faces
  '(font-lock-builtin-face ((t (:foreground "maroon3"))))
  '(font-lock-comment-face ((t (:foreground "green4"))))
  '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold))))
  '(font-lock-string-face ((t (:foreground "dark cyan")))))

लेकिन इस तरह से मैं अपने साथ काम करने वाले हर मोड के लिए एक ही वाक्य रचना हाइलाइटिंग प्राप्त करता हूं।

यह प्रश्न संबंधित हो सकता है: प्रमुख मोड को बदले बिना सिंटैक्स हाइलाइटिंग बदलें?

क्या ऐसा करने का एक (उम्मीद के मुताबिक सरल और सामान्य) तरीका है?

जवाबों:


8

चेहरे वैश्विक हैं, इसलिए इसकी विशेषताओं को कहीं भी बदलना हर जगह इसे बदल देता है, जैसा कि आपने देखा है। इसे स्थानीय रूप से बदलने के लिए, चेहरे की एक प्रति बनाएं, कॉपी में विशेषताओं को बदलें और फिर प्रति-बफर आधार पर पुराने चेहरे को कॉपी में स्थानीय रूप से सेट करने के लिए एक मोड हुक का उपयोग करें। नीचे का नमूना इसके लिए करता है font-lock-comment-face, लेकिन वही भस्मीकरण किसी भी चेहरे के लिए काम करेगा।

(make-variable-buffer-local 'font-lock-comment-face)
(copy-face 'font-lock-comment-face 'lua-comment-face)
(set-face-foreground 'lua-comment-face "green4")

(add-hook 'lua-mode-hook
          (lambda ()
            (setq font-lock-comment-face 'lua-comment-face)            
            ))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.