2009-08-09 8 views
6

मेरा उल्लेख है कि मैं एक भाषा तैयार कर रहा हूं। योजना हमेशा इसे कार्यान्वित नहीं करने के लिए थी, लेकिन इसे डिजाइन करने के लिए, लेकिन अगर मैं सोचता हूं कि मैं इसे उचित समय में कर सकता हूं तो मैं इसे लागू करने पर विचार कर रहा हूं।मैं विजुअल स्टूडियो में अपनी भाषा के लिए इंटेलिजेंस कैसे कार्यान्वित करूं?

दृश्य स्टूडियो में मेरी भाषा का उपयोग इंटेलिजेंस कैसे होगा? BooLangStudio में http://www.codinginstinct.com/2008/05/boo-in-visual-studio.html, http://www.codeplex.com/BooLangStudio

उत्तर

1

This विजुअल स्टूडियो एक्सटेंसिबिलिटी देखने के लिए एक अच्छी जगह है।

इसके अलावा, here। लेकिन, पहले लिंक में आपकी भाषा सेवा में इंटेलिजेंस जोड़ने के लिए एक वीडियो विशिष्ट है।

24

यह सब इस बात पर निर्भर करता है कि आप कितना समय व्यतीत करना चाहते हैं। मेरे विजुअल स्टूडियो इंटेलिसेन्स परियोजनाओं में मेरे पास लगभग 2,000 घंटे का काम है जिसके परिणामस्वरूप वास्तव में एक पूरी तरह से पूर्ण भाषा सेवा है। उस ने कहा, यह विजुअल स्टूडियो में आपका "औसत" इंटेलिसेन्स एक्सटेंशन नहीं है - feature set for more info देखें।

यहां देखने के लिए कुछ अच्छे संसाधन हैं। मेरे पास एक धारणा के साथ लिखने की प्रवृत्ति है कि उपयोगकर्ता विजुअल स्टूडियो एक्सटेंसिबिलिटी बेसिक्स और एएनटीएलआर के साथ पार्सिंग दोनों से पहले ही परिचित हैं। यदि आप नहीं हैं, तो आपको शायद www.antlr.org पर और simple Visual Studio language service tutorials में से एक के "एएनटीएलआर पोर्ट" के साथ शुरू करना चाहिए।

यहां कुछ पोस्ट हैं जो दिखाती हैं कि मैं इस विषय के बारे में कितना गंभीर हूं। : डी

  • How does code completion work?
  • स्मार्ट कोड: पूर्ण करने original और revisited। स्पष्ट रूप से मैं बाद में अन्य लोगों की तुलना में अधिक गंभीरता से लेता हूं (वोट दिया गया और बंद करने के लिए वोट दिया ?!), लेकिन मुझे विश्वास है कि ऐसा करने से मेरे उपयोगकर्ताओं को बेहतर उत्पाद मिल जाता है। :)
  • original (under IScanner-friendly lexers), cleaned up (significantly - vastly preferable to the original) पर प्रकाश डालने वाले वाक्यविन्यास के लिए उच्च-गति वृद्धिशील लेक्सिंग, और yet again 6x faster in 1/4 the memory बनाया गया।
  • sane commenting/uncommenting और brace matching जैसी छोटी चीजें एक अंतर बनाती हैं। एक तरफ ध्यान दें, एक बार जब आप अच्छी तरह से व्यवहार करते हैं, तो दूसरों (विजुअल स्टूडियो में कुछ माइक्रोसॉफ्ट भाषाओं के लिए) सहित परेशान हैं।
  • यदि आप कर सकते हैं, तो मेरे ब्लॉग पर सभी IntelliSense- संबंधित पोस्ट पढ़ें।
  • स्मार्ट इंडेंट एक पिटा (मेरा मतलब वास्तव में स्मार्ट है, उदाहरण के लिए वीएस -2008 में सी # भाषा सेवा)। मेरे पास प्यार/घृणा संबंध है। मैं अब नाराज हूं क्योंकि इस बुलेट को लिखने से मुझे इसके बारे में सोचना पड़ा। अरे। मेरी अंतर्दृष्टि मुझे वीएस -2010 बीटा 1 के लिए इसे तोड़ने में थोड़ा माफ कर देती है, लेकिन यह मुझे अपनी उत्कृष्टता खोने से नहीं रोकती है।

पीएस: अब मैं 1 दिन में एक नई भाषा टिप्पणी/असम्बद्धता के लिए एक वाक्यविन्यास हाइलाइटर का निर्माण कर सकता हूं। उसी दिन मैं भी & सदस्य बार टाइप करने में सक्षम हूं।

+0

+1 संदर्भ/लिंक :-) – torial

+0

अगर तुम कभी एक ओएसएस वी.एस. में एक नई भाषा को एकीकृत तो मारविन fulloo.info/Examples/Marvin या GitHub पर एक नज़र डालें परियोजना में शामिल होने की तरह महसूस करने के लिए।कॉम/रनफ्स/मार्विन –

+1

@ 280Z28, मैं विजुअल स्टूडियो एक्स्टेंसिबिलिटी के साथ हैकिंग भी कर रहा हूं। जिस सवाल का मैं जवाब देने में सक्षम नहीं हूं, वह है: वीएस2012/वीएस -2010 के रूप में पूरी तरह से उड़ाए गए भाषा सेवा को लागू करने का "सही" तरीका क्या है? अभी मैं सबकुछ लागू करने के लिए एमईएफ का उपयोग कर रहा हूं (IWpfTextViewCreationListener, IClassifier, IQuickInfoSource, ISignatureHelpSource, ICompletionSource) आदि .. ऐसा लगता है कि काम कर रहा है, लेकिन मुझे आश्चर्य है कि ILanguageService को लागू करना बेहतर तरीका है? –

0

4-4-2017 तक: यह आलेख एक भाषा विस्तार बनाने के लिए सभी मूलभूत बातें प्रदान करता है, जिसमें शब्दों को हाइलाइट करना और इंटेलिजेंस (कोड पूर्णता) प्रदान करना शामिल है।

https://code.visualstudio.com/docs/extensions/example-language-server

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