10

मैंने एक विजुअल स्टूडियो एक्सटेंशन बनाया है जो माइक्रोसॉफ्ट से विरासत में मेरे डोमेन विशिष्ट भाषा के लिए इंटेलिजेंस प्रदान करता है। VisualStudio.Language.Intellisense.ICompletionSource।इंटेलिजेंस सत्र को समय-समय पर बंद करने से रोकें

यह ठीक काम करता है, सिवाय इसके कि मेरी भाषा के कीवर्ड में एक वैध चरित्र अंडरस्कोर '_' है।

जब इंटेलिजेंस खुलता है तो आप टाइपिंग शुरू कर सकते हैं और इंटेलिसेंस बॉक्स की सामग्री को केवल उन वस्तुओं को दिखाने के लिए फ़िल्टर किया जाता है जो आपने टाइप किए हैं।

हालांकि, यदि उपयोगकर्ता अंडरस्कोर टाइप करता है, तो यह विशेष रूप से इलाज किया जाता है, उपलब्ध इंटेलिजेंस आइटमों की सूची को फ़िल्टर करने के बजाय, यह वर्तमान आइटम करता है और इंटेलिजेंस सत्र समाप्त करता है।

क्या इस व्यवहार को रोकने का कोई तरीका है ताकि अंडरस्कोर को नियमित अल्फान्यूमेरिक वर्णों के समान माना जा सके?

उत्तर

4

मुझे यकीन है कि आप किस भाषा का प्रयोग कर रहे हैं नहीं कर रहा हूँ, लेकिन आप की तरह (ग #) कुछ कर रहे की तरह अपने Exec विधि में यह लग रहा है:

if (nCmdID == (uint)VSConstants.VSStd2KCmdID.RETURN || nCmdID == (uint)VSConstants.VSStd2KCmdID.TAB || (char.IsWhiteSpace(typedChar) || char.IsPunctuation(typedChar)) 

कारण है कि यहाँ _ विराम चिह्न माना जाता है , इसलिए char.IsPunctuation(typedChar) वर्तमान आइटम को करने से सच हो जाता है।

ठीक - (char.IsPunctuation(typedChar) && typedChar != '_'):

if (nCmdID == (uint)VSConstants.VSStd2KCmdID.RETURN || nCmdID == (uint)VSConstants.VSStd2KCmdID.TAB || (char.IsWhiteSpace(typedChar) || (char.IsPunctuation(typedChar) && typedChar != '_') || typedChar == '=')) 

FYI करें: - https://github.com/kfmaurice/nla मैं इस विस्तार डिबगिंग द्वारा इस परीक्षण किया है। इस परिवर्तन के बिना अंडरस्कोर टाइप करते समय यह भी काम कर रहा था।

2

आप उपकरण> विकल्प> पाठ संपादक-> जावास्क्रिप्ट> IntelliSense-> संदर्भ में जाना तो एक बूंद संदर्भ समूह के लिए नीचे होना चाहिए (परियोजना आप किस प्रकार का आवश्यकता हो सकती है पर निर्भर करता है इसे बदलने के लिए)

एक बार आपके पास सही समूह होने के बाद आप देखेंगे कि कुछ डिफ़ॉल्ट इंटेलिजेंस संदर्भ फ़ाइलों को शामिल किया गया है। को हटाने underscorefilter.js

इस here पाया की कोशिश करो। मुझे बताना अगर ये आप के लिए काम करता है।

2

प्लगइन की श्रृंखला दृश्य स्टूडियो द्वारा उपयोग की जाती है, और कुछ अन्य प्लगइन आपकी प्लगइन से पहले अंडरस्कोर को संसाधित कर रहा है। destructi6n द्वारा सुझाव का प्रयास करें।

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