में TabExpansion2 को ओवरराइड करने का तरीका दिखाता है क्या किसी के पास Windows PowerShell 3.0 में TabExpansion2 फ़ंक्शन को ओवरराइड करने का एक उदाहरण है? मुझे पता है कि पुराने TabExpansion फ़ंक्शन को ओवरराइड कैसे करें, लेकिन मैं PowerShell ISE में इंटेलिजेंस के लिए आइटम्स की एक सूची प्रदान करना चाहता हूं। मैंने TabExpansion2 की परिभाषा को देखा और यह आसानी से समझ में नहीं आया कि मैं टैब विस्तार प्रक्रिया में अपना कोड कैसे इंजेक्ट करता हूं।उदाहरण दिखा रहा है कि Windows PowerShell 3.0
उत्तर
मुझे लगता है कि इस उदाहरण से आपको एक अच्छा प्रारंभिक बिंदु देना चाहिए: Windows Powershell Cookbook: Sample implementation of TabExpansion2। उदाहरण कोड दिखाता है कि आप [CommandCompletion]::CompleteInput
पर डिफ़ॉल्ट कॉल के पहले और बाद में दोनों कोड जोड़ सकते हैं।
उदाहरण के लिए, आप कमांड तर्कों के लिए कस्टम समापन प्राप्त करने के लिए $options
हैशटेबल में कस्टम एर्ग्यूमेंट कॉम्प्लेटर्स में एक प्रविष्टि जोड़ सकते हैं। प्रविष्टि एक हैशटेबल होना चाहिए जहां कुंजी तर्क नाम हैं (उदा। "कंप्यूटर नाम" या "गेट-चाइल्डइटम: फ़िल्टर") और मान मानों के सरणी हैं जिनका उपयोग पैरामीटर को पूरा करने के लिए किया जा सकता है। Powertheshell.com के बारे में भी एक लेख है: Dynamic Argument Completion। आप मूल निष्पादन योग्य विकल्पों के लिए मूल निष्पादन के लिए कस्टम समापन भी निर्दिष्ट कर सकते हैं, फिर से, कुंजी कमांड नाम हैं और मान संभावित समापन के सरणी हैं)।
एक बार CompleteInput
वापस आ गया है, तो आप परिणाम को आगे विश्लेषण के लिए $result
में संग्रहीत कर सकते हैं। नतीजा CommandCompletion
वर्ग का एक उदाहरण है। डिफ़ॉल्ट पूरा होने के कोई भी मैच नहीं मिला है, तो आप मैचों की सूची में अपने स्वयं CompletionResult
प्रविष्टियों जोड़ सकते हैं:
$result.CompletionMatches.Add(
(New-Object Management.Automation.CompletionResult "my completion string"))
समारोह से $result
वापस जाने के लिए तो पूरा होने वास्तव में होता है मत भूलना।
अंत में, समस्या निवारण पर एक नोट: TabCompletion2
पर कॉल करने वाला कोड सभी कंसोल-आधारित आउटपुट (आश्चर्य की बात नहीं) को घुमाता है, इसलिए यदि आप अपने लिए डिबगिंग संदेश लिखना चाहते हैं, तो आप उन्हें एक अलग टेक्स्ट फ़ाइल में लिखने का प्रयास कर सकते हैं । उदाहरण के लिए, आप इस तरह देखने के लिए TabCopmletion2
में End
समारोह को बदल सकता है:
$result = [System.Management.Automation.CommandCompletion]::CompleteInput(
$inputScript, $cursorColumn, $options)
$result | Get-Member | Add-Content "c:\TabCompletionLog.txt"
$result
यहाँ ओवरराइड TabExpansion2
का एक उदाहरण है - TabExpansion2.ps1 और कई इसके लिए completers साथ अभ्यास प्रोफाइल में प्रयोग किया है:
- Invoke-Build.ArgumentCompleters.ps1 के लिए Invoke-Build
- Mdbc.ArgumentCompleters.ps1 Argu तर्क completers के लिए Mdbc
- ArgumentCompleters.ps1 तर्क, इनपुट, और परिणाम completers
दिलचस्पी की बात जाहिर completers:
- TabExpansion2.ps1 लोड हो रहा है पर कम से कम काम करता है। संभावित रूप से महंगा होने पर संभावित रूप से महंगा प्रारंभिकता एक बार किया जाता है।
- ओवरराइड
TabExpansion2
पथ में एक या अधिक प्रोफाइल*ArgumentCompleters.ps1
के माध्यम से विस्तार तंत्र प्रदान करता है।TabExpansion2
की पहली कॉल पर प्रोफ़ाइल पर एक बार लागू की जाती है।कई प्रोफ़ाइल विभिन्न स्वतंत्र मॉड्यूल, उपकरण, आदि के साथ आ सकती हैं और साथ ही साथ उपयोग की जाती हैं। - मानक कस्टम तर्क completers और देशी तर्क completers इस कस्टम
TabExpansion2
के अलावा परिणाम प्रोसेसर है जहाँ से परिणाम tweak का समर्थन करता है निर्मित में पूरा करने और इनपुट प्रोसेसर जो रोकना और निर्मित में पूरा करने की जगह ले सकता। - यह कुछ मामलों में केवल खाली अंतर्निहित परिणामों को पढ़ने के आसपास काम करता है।
- ArgumentCompleters.ps1 एक इनपुट प्रोसेसर डायन का एक उदाहरण में निर्मित एक विकल्प के साथ प्रकार और नामस्थान के पूरा होने, और अधिक उपयोगी की जगह कभी कभी होता है। , मदद टैग (.Synopsis, .Description, आदि) और बाहर टिप्पणी की कोड के पूरा क्यों नहीं:
- एक और Completer टिप्पणी में पूरा होने प्रदान करता है?
- 1. कैसे Windows PowerShell
- 2. दिखा रहा है कि UIMenuController कीबोर्ड
- 3. PowerShell में यूएसी शीघ्र दिखा कार्रवाई ऊंचाई
- 4. क्या F # के साथ Windows PowerShell Cmdlets बनाना संभव है?
- 5. दिखा रहा है, छिपा रहा है, फिर लेआउट ब्रेक को फिर से दिखा रहा है घटनाक्रम
- 6. दिखा रहा है कि ट्विटर के अनुयायियों को पाइथन/Django
- 7. दिखा रहा है कि ग्राहक कौन सा समूह Magento
- 8. मैं कैसे बता सकता हूं कि कोई उदाहरण एक्शनस्क्रिप्ट 3.0
- 9. प्राप्त कर रहा है Powershell
- 10. डायलॉगफ्रैगमेंट्स दिखा रहा है आईसीएस
- 11. तस्वीरें दिखा रहा है मेमोरी
- 12. क्या PowerShell से Windows Explorer विंडो खोलना संभव है?
- 13. सेटअप.exe ARPCOMMENTS और WIXUIBanner.bmp क्यों नहीं दिखा रहा है लेकिन setup.msi यह सामान दिखा रहा है?
- 14. एंड्रॉइड ब्लूटूथ जोड़ना नहीं दिखा रहा है
- 15. PowerShell को लगता है कि कोई ऑब्जेक्ट
- 16. Google मानचित्र पर टेक्स्ट दिखा रहा है
- 17. ग्रहण एंड्रॉइड लॉककैट सबकुछ दिखा रहा है
- 18. UILabel में इमोजी दिखा रहा है?
- 19. दिखा रहा है (सिर। Init) = अंगडा
- 20. एक छिपी QTableView कॉलम दिखा रहा है
- 21. जीटीके डीबग लॉग संदेश दिखा रहा है
- 22. एपीसी 100% विखंडन दिखा रहा है
- 23. सेलुलर डेटा दिखा रहा है अलर्ट
- 24. awesome_print संबंधित ऑब्जेक्ट्स नहीं दिखा रहा है
- 25. matplotlib किंवदंती डबल errorbars दिखा रहा है
- 26. आईफोन: छुपाएं/टूलबार दिखा रहा है
- 27. जावा- जेटीबल ग्रिडलाइन नहीं दिखा रहा है
- 28. छुपाएं/दिखा रहा है स्टेटस बार
- 29. NuGet कोई पैकेज नहीं दिखा रहा है
- 30. एसडब्ल्यूटी - एक व्यस्त कर्सर दिखा रहा है
क्या यह औपचारिक रूप से कहीं भी दस्तावेज है? यह जानकारी मूल रूप से कैसे निकली? –
अफसोस की बात है कि मैंने कोई औपचारिक दस्तावेज नहीं देखा है, लेकिन अगर यह मौजूद है तो मुझे इसे देखना अच्छा लगेगा। – Charlie