有沒有辦法在Visual Studio代碼編輯器(C/C++或C#)中以編程方式確定當前插入符的位置是在註釋塊內(在「//」之後還是在/ * * /之間)?我試圖用IContentType這樣的:如何在Visual Studio中確定當前脫字符位置是否在註釋塊中?
if (m_textView.TextBuffer.ContentType.TypeName == "comment")
但似乎ContentType.BaseTypes只包含與整個文件更一般的內容類型(如「文本」,「代碼」,「C/C++」)。
@JaredPar - 謝謝你的回答。我認爲,只要語言服務包正確突出顯示註釋,就可以從某些語言服務接口(IVsProvideColorableItems或其他)獲取所需的信息。 –
@ 280Z28 - 我發現一個看起來與問題相關的界面,但仍不知道如何使用它:IStandardClassificationService –
@ 280Z28 - 謝謝。使用此類並調用GetClassifier(),然後調用GetClassificationSpans(),當插入符號位於註釋塊中時,將獲得跨度類型「註釋」。 –