2016-09-22 44 views
0

我最近跟着演練上https://msdn.microsoft.com/en-us/library/ee372314.aspx併成功設法得到它附帶的名單會因此我能夠添加簡單的字符串值,以讓它完成任何我鍵入是字符串中。MSDN聲明完成特殊字符

void ICompletionSource.AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets) 
    { 
     List<string> strList = new List<string>(); 

        strList.Add("addition_test"); 
        strList.Add("adaptation"); 
        strList.Add("subtraction"); 
     m_compList = new List<Completion>(); 
     foreach (string str in strList) 
      m_compList.Add(new Completion(str, str, str, null, null)); 

如圖我有示出, 「addition_test」, 「適應」 和 「減法」 的標準字符串。他們都工作。

不過,我想知道是否可以讓我把特殊字符盈它。如

  • strList.Add(「#adapt」);

  • strList.Add( 「adapt_nation?」);

  • strList.Add( 「/#@ adapt_entity」);

我無法讓它顯示特殊字符infront的聲明,我想知道是否有辦法做到這一點,以及如何?

乾杯

+1

嘗試把一個'@'符號的字符串,例如'strList.Add(@ 「#適應」)之前;'等等。這象徵強制字符串是逐字,和默認情況下不會轉義。 [2.4.4.5字符串文字](https://msdn.microsoft.com/en-us/library/aa691090(v = vs.71).aspx) –

+0

@keyurPatel嗨!我試圖做到這一點,是的,它通過並將「@」符號添加到列表中,但它沒有顯示在完成中。例如,當我鍵入「廣告」時,「添加」會顯示,我可以使用空格/輸入/選擇它來選擇它。 隨着字符串的@ infront,我無法完成例如「@ad」沒有給我完成「@addition」的選項 –

+0

那麼這似乎與你如何編寫'autocorrect'特性有關,而不是c#如何存儲字符串。 –

回答

0

回答@Keyur PATEL

我從來沒有碰到過這樣的,所以我只能猜測,但嘗試改變

&& char.IsLetterOrDigit(typedChar) 

&& (char.IsLetterOrDigit(typedChar) || char.IsPunctuation(typedChar)) 

public int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) function.