10

Microsoft.VisualStudio.Language.Intellisense.ICompletionSource kaynağından devralırken etki alanıma özgü dil için intellisense sağlayan bir Visual Studio uzantısı oluşturdum.intellisense oturumu erken kapanmadan durdurma

Bu, tamam, dilimin anahtar sözcüklerindeki geçerli bir karakterin '_' altını çizmek dışında.

intellisense açıldığında yazmayı başlatabilirsiniz ve intellisense kutusunun içeriği, yazdıklarınızla başlayan öğeler için filtrelenir. Ancak, kullanıcı bir alt çizgi yazıyorsa, bu durum özel bir şekilde ele alınmış gibi görünüyorsa, mevcut intellisense öğelerinin listesini filtrelemeye devam etmek yerine, geçerli öğeyi taahhüt eder ve intellisense oturumunu sonlandırır. Üste |

Bu davranışı durdurmanın bir yolu var mı? Böylece alt çizgi normal bir alfanümerik karakterle aynı şekilde ele alınabilir mi?

cevap

4

Ne Kullandığınız dili emin değilim, ama (C#) gibi bir şey yapıyoruz gibi Exec yönteminde bu sesler:

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

burada neden _ noktalama kabul ediliyor Bu nedenle char.IsPunctuation(typedChar) geçerli öğeyi taahhüt ederek doğru döner.

düzeltme - (char.IsPunctuation(typedChar) && typedChar != '_'):

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

Bilginize: - https://github.com/kfmaurice/nla Bu hata ayıklama uzantısı ile test ettik. Bu değişiklik olmadan, bir alt çizgi yazarken de işliyordu.

2

aşağı referans grubu için bir damla olmalıdır Araçlar-> Seçenekler> Metin Editör-> JavaScript'e> IntelliSense-> Referanslar içine giderseniz (eğer gerekebilir projenin türüne bağlı olarak Bunu değiştirmek için)

Doğru gruba sahip olduğunuzda, bazı varsayılan dahil intellisense referans dosyalarının olduğunu fark edeceksiniz.

underscorefilter.js

bu here bulundu kaldırmayı deneyin. senin işine yarar mı bileyim.

2

Görsel stüdyo tarafından kullanılan eklentileri zinciri ve diğer eklentiler eklentinizden önce altçizgi işleniyor. destructi6n tarafından öneri deneyin.