在Visual Studio文本编辑器扩展

时间:2017-07-18 16:12:41

标签: c# visual-studio-extensions

我尝试为Visual Studio编写扩展程序,但我无法找到有关我的问题的文档。在SDK示例中仅针对某些内容,例如文本hightliting,但没有任何示例说明如何直接使用Intelliscense。来自MSDN的文档 - 也不好。 有可能 - 如果我有IWpfTextView,从当前打开的源文件中获取所有方法的列表?

1 个答案:

答案 0 :(得分:2)

  

有可能 - 如果我有IWpfTextView,从当前打开的源文件中获取所有方法的列表?

您可以通过CodeElement获取所有方法的列表,并检查它是否是CodeFunction对象。以下代码供您参考。

您可以通过DTE.ActiveDocument

获取当前打开的源文件
DTE2 dte = this.ServiceProvider.GetService(typeof(DTE)) as DTE2;
            FileCodeModel fcm = dte.ActiveDocument.ProjectItem.FileCodeModel as FileCodeModel;
            foreach (CodeElement element in fcm.CodeElements)
            {
                if (element is CodeNamespace)
                {
                    CodeNamespace nsp = element as CodeNamespace;

                    foreach (CodeElement subElement in nsp.Children)
                    {
                        if (subElement is CodeClass)
                        {
                            CodeClass c2 = subElement as CodeClass;
                            foreach (CodeElement item in c2.Children)
                            {
                                if (item is CodeFunction)
                                {
                                    CodeFunction cf = item as CodeFunction;
                                    MessageBox.Show(cf.Name);
                                }
                            }
                        }
                    }
                }
            }
相关问题