रंग घोषित चर


11

मैं emacs को C / C ++ में किसी एकल फ़ंक्शन में घोषित चर को याद करने का एक सरल तरीका खोज रहा हूं। "सरल" से मेरा मतलब है कि किसी भी बाहरी पैकेज के बिना, विन्यास फाइल में कुछ विशिष्ट लाइनों के साथ।

मेरा डिफ़ॉल्ट Emacs कॉन्फ़िगरेशन रंग घोषणा पर पीले रंग में नाम चरता है, लेकिन उन्हें उपयोग करने पर सफेद होने दें।

char toto; // 'char' is green, 'toto' is yellow

toto = 42; // 'toto' is white

मैं एक ही फ़ंक्शन / गुंजाइश के हर "टोटो" को पीले रंग में भी रंगना चाहता हूं।

मैंने पहले ही इस प्रश्न पर ध्यान दिया है, लेकिन मैं कुछ सरल करना चाहूंगा। मैंने फ़ॉन्ट-लॉक मोड के साथ भी कुछ करने की कोशिश की , लेकिन मैं चर नामों के लिए कुछ अनुकूल बनाने में सफल नहीं हुआ।

मुझे पहले से ही C ++ वर्ग के सदस्य नामों (एक नाम पैटर्न का उपयोग करके) के लिए एक विचार है, इसलिए मैं यहां एक स्थानीय चर मैच चाहता हूं।


3
यह शायद जितना दिखता है उससे कहीं ज्यादा कठिन है। nobugs.org/developer/parsingcpp
wasamasa

8
आप किसी भी पैकेज का उपयोग क्यों नहीं करना चाहते हैं? यदि कोई ऐसा पैकेज है जो इस सुविधा को प्रदान करता है, तो इसे स्थापित करने से खरोंच से सुविधा को फिर से बनाने की तुलना में आपके विन्यास में लगभग निश्चित रूप से कम समय की आवश्यकता होगी।
टायलर

11
यह color-identifiers-modeपैकेज की तरह लग रहा है । (इसे एक टिप्पणी के रूप में पोस्ट करते हुए क्योंकि आपने कहा कि आप बाहरी पैकेजों पर विचार नहीं करना चाहते थे।)
हारून हैरिस

7
प्रत्येक "बाहरी पैकेज" को "कॉन्फ़िगरेशन फ़ाइलों में कुछ विशिष्ट लाइनें" के रूप में भी वर्णित किया जा सकता है। इस आधार पर पहले से मौजूद कोड से बचना कि किसी ने इसे पैकेज के रूप में प्रदान किया है वह बेतुका है।
फिल्स

Emacs का आपके पास क्या संस्करण है?
डीए विंसेंट

जवाबों:


1

आप अपनी परिवर्तनशील योजना के लिए एक regexp जुटा सकते हैं, जो कुछ मेल खाता है (छद्म regexp कोड) [char|other|types] [a-z];और [a-z] =*;इसे अपने मोड के लिए फ़ॉन्ट-लॉक कीवर्ड सूची में जोड़ें; कस्टमाइज़िंग-कीवर्ड पेज पर मैनुअल से :

उदाहरण के लिए, निम्न कोड C मोड के लिए दो फॉन्टिफिकेशन पैटर्न जोड़ता है: एक शब्द 'FIXME' को फ़ॉन्ट करने के लिए, यहां तक ​​कि टिप्पणियों में भी, और दूसरे को शब्द 'और', 'या' और 'नहीं' को कीवर्ड के रूप में सूचित करने के लिए।

 (font-lock-add-keywords 'c-mode
  '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
    ("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))

यह उदाहरण केवल C मोड को उचित रूप से प्रभावित करता है। C मोड और उसी से प्राप्त सभी मोड्स में समान पैटर्न जोड़ने के लिए, इसके बजाय यह करें:

 (add-hook 'c-mode-hook
  (lambda ()
   (font-lock-add-keywords nil
    '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
      ("\\<\\(and\\|or\\|not\\)\\>" .
       font-lock-keyword-face)))))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.