विज़ुअल स्टूडियो में उपयोग के लिए एक नई भाषा कैसे बनाएं


102

मैं एक नई टेम्प्लेटिंग भाषा लिखना चाहता हूं, और मैं चाहता हूं कि विजुअल स्टूडियो इसे "सपोर्ट" करे। मुझे क्या जानना चाहिए:

  1. मैं अपनी नई भाषा को कैसे पार्स करूं?
    मेरी नई टेम्पलेट भाषा में कुछ कोड को देखते हुए, मैं इसे HTML में कैसे अनुवाद करूं? अभी मैं टोकन द्वारा इसे पार्स करने के लिए नियमित अभिव्यक्तियों का उपयोग कर रहा हूं, लेकिन मुझे नहीं लगता कि यह बहुत अच्छी तरह से पैमाने पर जा रहा है क्योंकि भाषा अधिक जटिल हो गई है, और कोई त्रुटि जांच नहीं है। मैंने ANTLR के बारे में सुना है, लेकिन इसका इस्तेमाल कभी नहीं किया। क्या यह इस काम के लिए सही उपकरण होगा, या शायद कुछ सरल है? आदर्श रूप से मैं किसी भी वाक्यविन्यास त्रुटियों को त्रुटि विंडो में भेजना चाहता हूं, अन्य भाषाओं की तरह अधिक से अधिक जानकारी (पंक्ति #, त्रुटि का प्रकार)।
  2. मैं विज़ुअल स्टूडियो के लिए एक नई फ़ाइल प्रकार कैसे बनाऊं?
  3. मैं सिंटैक्स हाइलाइटिंग कैसे प्राप्त करूं?
    क्या मैं उसी पार्सर का उपयोग कर सकता हूं जिसे मैंने चरण 1 में बनाया था, या क्या यह पूरी तरह से अलग है?
  4. मुझे इंटेलीजेंस कैसे मिलता है?

मैं अपने पार्सर को C # में लिखना पसंद करूंगा।

जवाबों:


62

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

VS2010 के लिए बू सिंटैक्स हाइलाइटिंग में इसके होमपेज पर कुछ अनुशंसित लिंक शामिल हैं, जिन्हें मैं आसान संदर्भ के लिए कॉपी करूंगा:


29

विज़ुअल स्टूडियो पहलुओं के बारे में, आपको जो चाहिए वह एक "भाषा सेवा" है, जो कि एक फ़ाइल एक्सटेंशन / प्रकार के लिए colorizing, intellisense आदि को संभालने वाली इकाई है।

एक परिचय के लिए, इस लेख
और कोड नमूने के लिए यहां देखें

पार्सिंग के बारे में, बहुत सारी प्रौद्योगिकियां हैं, और मैं एक राय / सलाह नहीं दूंगा।

खबरदार, इसमें उचित मात्रा में काम शामिल है, हालांकि मेरी राय में यह इस तरह के विस्तार प्रदान करने के लिए विजुअल स्टूडियो के पिछले संस्करणों की तुलना में वीएस2010 में बहुत अधिक सीधा है।

यह सभी देखें

विजुअल स्टूडियो 2010 एक्स्टेंसिबिलिटी, एमपीएफ और भाषा सेवाएं


9

मैंने इस लेख का उपयोग करके अपने आधार के रूप में एक वीएस भाषा सेवा लिखी: http://www.codeproject.com/KB/recipes/VSLanguageService.aspx

यह बहुत बुरा नहीं था अगर आपके पास ग्रामर पर एक मूल हैंडल है।


यह शर्म की बात है कि उन्होंने उस ट्यूटोरियल को जारी नहीं रखा ... जो वास्तव में अच्छा था। धन्यवाद!
मप्र

1
पैकेज को स्थापित करते हुए यह सब वास्तव में गायब है अगला चरण है। stackoverflow.com/questions/4160391/…
कॉलिनक्रैन

2

वीएस एसडीके में एक नमूना है जो उन सभी विशेषताओं को दिखाता है जिनकी आप तलाश कर रहे हैं।


2

मैं अपनी भाषा के साथ वीएस का उपयोग कर रहा था और सख्त रूप से वाक्य रचना हाइलाइट की जरूरत थी । मैंने इस ट्यूटोरियल के आधार पर मेरा निर्माण किया: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

मुझे पता है कि ट्यूटोरियल VS2010 में है। मैंने VS2012 में बिना किसी या बहुत छोटी हिचकी के अपना खान बनाया। (VS2013 में भी काम किया) हाल ही में मैं VS2015 में बदल गया और समाधान को संपादित किया जा सकता है, बिना किसी समस्या के।


2

मुझे विजुअल स्टूडियो 2013 एसडीके के लिए हाल के नमूनों का यह बहुत उपयोगी संग्रह मिला: http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

इसमें OokLanguage का हालिया संस्करण भी शामिल है जो आशाजनक लगता है।

हमने अपनी भाषा को पार्स करने के लिए ANTLR 4 का उपयोग किया जो एक आकर्षण की तरह काम करता है और सी # कोड के साथ सीधे संपर्क की अनुमति देता है। पूरी तरह से सिफारिश कर सकते हैं।


0

जैसा कि अन्य उत्तरों में उल्लेख किया गया है, सबसे दिलचस्प कोड नमूना विज़ुअल स्टूडियो (लेखन के समय 2017) के नवीनतम संस्करण के लिए ओओक भाषा एक्सटेंशन है

VS 2015 के लिए VS2015 शाखा में नमूना देखें ।

2015 या बाद के लिए एसडीके को स्थापित करने के लिए, आपको वीएस सेटअप को फिर से चलाना होगा। 2015 में इसे "विजुअल स्टूडियो एक्स्टेंसिबिलिटी टूल अपडेट 3" कहा जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.