2015-05-15 11 views
8

को गतिशील रूप से पूरा करने के शब्दों को कैसे जोड़ना है यह बहुत संभव है कि मुझे समस्या स्थान को समझ में नहीं आ रहा है, लेकिन मुझे एमईएफ (संपादक वर्गीकरण प्रोजेक्ट) को समझने में परेशानी हो रही है।वीएस2013 सिंटेक्स एक्सटेंशन (एमईएफ)

मैंने बनाया है (एमएसडीएन https://msdn.microsoft.com/en-us/library/ee197665.aspx से वॉकथ्रू मार्गदर्शिकाओं को एक साथ जोड़ना) इनफॉर्मिक्स संग्रहीत प्रक्रिया भाषा के लिए एक वाक्यविन्यास हाइलाइगर।

मेरे पास एक बड़ी समस्या है - मैं कीवर्ड "डेफिन" के सभी उदाहरण ढूंढने में सक्षम होना चाहता हूं और सीधे मेरे द्वारा स्टेटमेंट पूर्णता विस्तार में इसका अनुसरण करने के लिए शब्द को पॉप्युलेट करना चाहता हूं (वर्तमान में यह शब्दों की परिभाषित सूची से पॉप्युलेट है)।

सी # के मूल समर्थन की तरह - जब आप एक चर परिभाषित करते हैं, तो यह स्वत: पूर्णता ड्रॉपडाउन में उपलब्ध हो जाता है।

मैं (पूर्वाभ्यास से) कक्षा में hardcoding से छुटकारा मिला है और इस तरह मेरे पूरा होने के शब्द परिभाषित कर रहे हैं:

वर्ग CompletionTags { सार्वजनिक:

List<Completion> completions = new List<Completion>(); 

CompletionTags completionTags = new CompletionTags(); 

foreach (string completionTag in completionTags.completionTags) 
{ 
    completions.Add(new Completion(completionTag)); 
}; 

मेरे CompletionTags वर्ग बहुत सरल है सूची पूर्णता टैग;

public CompletionTags() 
{ 
    this.completionTags = new List<string> { 
     // SQL keywords 
     "COUNT", 
     "FROM", 
     "HAVING", 
    }; 
} 

मुझे पता है मुझे क्या करना है। जब भी यह बदलता है और 'DEFINE ([a-zA-Z0-9 _] {1,}) की सभी घटनाओं को ढूंढता है और पूरा करने के लिए \ 1 जोड़ता है तो मुझे बफर को हाइजैक करने की आवश्यकता होती है।

मुझे नहीं पता कि यह कैसे करें। इस बिंदु पर दाएं (या किसी भी) दिशा में किसी भी पॉइंटर्स की सराहना की जाएगी।

तरह हो - हम सब किसी चरण में हमारी गहराई से बाहर किया गया है (मैं सी # में अब 3 दिनों के लिए प्रोग्रामिंग किया गया है) ...

+0

मैं एक सिंगलटन में CompletionTags वर्ग करके इसे कभी काम कर पाने में कामयाब रहे है - और उसके बाद मैं परिभाषित करता है के लिए जाँच करने के लिए वाक्य रचना हाइलाइटर classifer का अपहरण कर लिया गया है और पूरा करने के लिए जोड़ें सूची सूची। मुझे पता है कि यह करने का सही तरीका नहीं है, इसलिए प्रश्न अभी भी खड़ा है। – Trent

उत्तर

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