6

मैं एक नए टेम्पलेट सी-जैसी भाषा के लिए एक नया emacs मोड लिखने की कोशिश कर रहा हूं, जिसे मुझे कुछ अकादमिक शोध के लिए उपयोग करना है।सी-जैसी भाषा के लिए Emacs मोड

मैं कोड रंग और सी मोड में तरह इंडेंट निम्नलिखित अपवादों के साथ करना चाहते हैं:

  • '%' संचालक के रूप में इस्तेमाल नहीं किया है, लेकिन कुछ विशिष्ट खोजशब्दों में पहले वर्ण के रूप में (जैसे: "% p", "% action", आदि)
  • कोड लाइन अर्धविराम से समाप्त नहीं होती हैं।

यह (ग मोड से) एक व्युत्पन्न मोड बनाने के लिए और यह '%' और के मूल उद्देश्यों की अनदेखी करने के लिए सेट संभव है ';'? क्या 'आरईटी दबाए जाने के बाद स्वचालित इंडेंटेशन' की सुविधा को ';' के बिना बनाना संभव है?

समान भाषाओं के लिए समान तरीके हैं ('{}' ब्रैकेट के साथ, लेकिन अर्धविराम के बिना) कि मैं पैच करने की कोशिश कर सकता हूं?

क्या मुझे स्क्रैच से एक प्रमुख मोड लिखने की कोशिश करनी चाहिए?

मैंने http://ess.r-project.org/ से आर-मोड को पैच करने के बारे में सोचा, लेकिन यह मोड "/ * टिप्पणी * /" फ़ॉर्म की टिप्पणियों का समर्थन नहीं करता है।

सबसे महत्वपूर्ण विशेषता जो मैं खोज रहा हूं वह ब्रैकेट-इंडेंटेशन है, यानी आरईटी दबाकर '{}' ब्लॉक के अंदर कोड को इंडेंट करना (और उन पंक्तियों के बाद अतिरिक्त इंडेंटेशन के बिना ';')। आंशिक समाधान भी मदद करेंगे।

उत्तर

2

यदि आपको वास्तव में सरल कुछ नहीं लगता है, तो आप Gosu mode पर देख सकते हैं। गोसु एक ऐसी भाषा है जिसमें घुंघराले ब्रेसिज़ और अर्ध-कॉलन नहीं हैं, इसलिए आपको अपने न्यूनतम के लिए सेट होना चाहिए। यह सी

के लिए मोड का कार्यान्वयन वास्तव में सरल और जेनेरिक मोड पर आधारित है, इसलिए जिस तरीके से आप चाहते हैं उसे काम करने के लिए इसे संशोधित करना आसान है। यह सी-मोड के आधार पर नहीं है।

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

+0

गोसु मोड का उपयोग करने के बजाय, मैंने [Google Go] (http://golang.org) मोड का उपयोग किया और इसे पैच किया। – Oren

2

चेक बाहर arduino मोड: https://github.com/bookest/arduino-mode/blob/master/arduino-mode.el

यह एक सी आधारित मोड जल्दी से बहुत ही उपयोगी और अद्वितीय प्रोग्रामिंग Arduino के लिए कुछ बनाने के लिए सीसी मोड सुविधाओं का उपयोग करता है है। इसे एक साधारण टेम्पलेट के रूप में उपयोग करने में बहुत मदद करनी चाहिए।

3

अधिक आम तौर पर, सीसी-मोड को और अधिक भाषाओं को समायोजित करने के लिए समय के साथ बढ़ाया गया है और सामान्यीकृत किया गया है, और नवीनतम सीसी-मोड भाषा-विशिष्ट कोड से जेनेरिक कोड को अलग करने के लिए उचित रूप से अच्छा माना जाता है। तो सीसी-मोड (उदा। अजीब-मोड) का उपयोग करने वाले कुछ प्रमुख तरीकों पर नज़र डालें, और सीसी-मोड के रखरखाव के संपर्क में रहें जो आपको जो चाहते हैं उसे करने के लिए hwo को समझने में आपकी सहायता करने में सक्षम होंगे।

+0

मैंने अजीब-मोड के अनुसार सीसी-मोड को पैच करने की कोशिश की (जिसमें लाइनों को ';' के साथ समाप्त नहीं होना चाहिए) लेकिन यह समझने और ठीक करने के लिए बहुत अधिक कोड था। – Oren

संबंधित मुद्दे