public AnalyzeWebPageForWordsForm(IHtmlPageTextExtractor webPageTextExtractor,
            IDocumentAnalyzer documentAnalyzer, Func<AnalysisResultsForm> analysisResultsFormFactory)
        {
            this.webPageTextExtractor = webPageTextExtractor;
            this.documentAnalyzer = documentAnalyzer;
            this.analysisResultsFormFactory = analysisResultsFormFactory;

            InitializeComponent();
        }
 public TypableRetrieverTests()
 {
     this.retriever = RetrieverFactory.GetTypablesRetriever();
     var code = TestUtil.GetFakeSourceFolder() + "MethodAnalyzerExample.cs";
     var converter = new String2IDocumentConverter();
     this.document = (IDocument)converter.Convert(FileUtil.ReadAllText(code), null, null, null);
     this.logger = NLoggerUtil.GetNLogger(typeof (TypableRetrieverTests));
     this.analyzer = AnalyzerFactory.GetDocumentAnalyzer();
     retriever.SetDocument(document);
     analyzer.SetDocument(document);
 }
Пример #3
0
        public MainForm(IAppInstance app, Func<AnalysisResultsForm> analysisResultsFormFactory,
            Func<AnalyzeWebPageForWordsForm> analyzeWebPageForWordsFormFactory,
            Func<ResolveReplaceAmbiguityForm> resolveAmbiguityFormFactory, IDocumentAnalyzer documentAnalyzer,
            IDocumentProcessor documentProcessor)
        {
            this.app = app;
            this.analysisResultsFormFactory = analysisResultsFormFactory;
            this.analyzeWebPageForWordsFormFactory = analyzeWebPageForWordsFormFactory;
            this.resolveAmbiguityFormFactory = resolveAmbiguityFormFactory;
            this.documentAnalyzer = documentAnalyzer;
            this.documentProcessor = documentProcessor;

            InitializeComponent();
        }
Пример #4
0
        public async Task <AnalyzerOutput> GetXamlAsync(IAsyncServiceProvider serviceProvider)
        {
            AnalyzerOutput result = null;

            if (AnalyzerBase.GetSettings().Profiles.Any())
            {
                var dte = await serviceProvider.GetServiceAsync(typeof(EnvDTE.DTE)) as EnvDTE.DTE;

                var activeDocument = dte.ActiveDocument;

                var textView = await GetTextViewAsync(serviceProvider);

                var selection = textView.Selection;

                bool isSelection = selection.Start.Position != selection.End.Position;

                var caretPosition = textView.Caret.Position.BufferPosition;

                var document = caretPosition.Snapshot.GetOpenDocumentInCurrentContextWithChanges();

                var semanticModel = await document.GetSemanticModelAsync();

                var vs         = new VisualStudioAbstraction(this.Logger, this.ServiceProvider, dte);
                var xamlIndent = await vs.GetXamlIndentAsync();

                IDocumentAnalyzer analyzer = null;

                if (activeDocument.Language == "CSharp")
                {
                    analyzer = new CSharpAnalyzer(this.Logger);
                }
                else if (activeDocument.Language == "Basic")
                {
                    analyzer = new VisualBasicAnalyzer(this.Logger);
                }

                result = isSelection
                    ? analyzer?.GetSelectionOutput(await document.GetSyntaxRootAsync(), semanticModel, selection.Start.Position, selection.End.Position, xamlIndent)
                    : analyzer?.GetSingleItemOutput(await document.GetSyntaxRootAsync(), semanticModel, caretPosition.Position, xamlIndent);
            }
            else
            {
                await ShowStatusBarMessageAsync(serviceProvider, StringRes.UI_NoXamlCopiedNoProfilesConfigured);
            }

            return(result);
        }
Пример #5
0
        public AnalyzerOutput GetXaml(IAsyncServiceProvider serviceProvider)
        {
            AnalyzerOutput result = null;

            if (AnalyzerBase.GetSettings().Profiles.Any())
            {
                var dte            = (EnvDTE.DTE)serviceProvider.GetServiceAsync(typeof(EnvDTE.DTE)).Result;
                var activeDocument = dte.ActiveDocument;

                var textView = GetTextView(serviceProvider);

                var selection = textView.Selection;

                bool isSelection = selection.Start.Position != selection.End.Position;

                var caretPosition = textView.Caret.Position.BufferPosition;

                var document = caretPosition.Snapshot.GetOpenDocumentInCurrentContextWithChanges();

                var semanticModel = document.GetSemanticModelAsync().Result;

                IDocumentAnalyzer analyzer = null;

                if (activeDocument.Language == "CSharp")
                {
                    analyzer = new CSharpAnalyzer(this.Logger);
                }
                else if (activeDocument.Language == "Basic")
                {
                    analyzer = new VisualBasicAnalyzer(this.Logger);
                }

                result = isSelection
                    ? analyzer?.GetSelectionOutput(document.GetSyntaxRootAsync().Result, semanticModel, selection.Start.Position, selection.End.Position)
                    : analyzer?.GetSingleItemOutput(document.GetSyntaxRootAsync().Result, semanticModel, caretPosition.Position);
            }
            else
            {
                ShowStatusBarMessage(serviceProvider, "No XAML copied. No profiles configured.");
            }

            return(result);
        }
        /* Get all the method declarations in the document and group them by scope, i.e., namespace + class.*/
        private Dictionary<String, IEnumerable<SyntaxNode>> GetMethodInSameScope(IDocumentAnalyzer analyzer)
        {
            // Dictionary for using namespace name + class name to get all the methods.
            var dictionary = new Dictionary<String, IEnumerable<SyntaxNode>>();

            // Get all the namespace
            var namespaces = analyzer.GetNamespaceDecalarations();
            foreach (NamespaceDeclarationSyntax space in namespaces)
            {
                string namespaceName = space.Name.GetText();

                // In each namespace, get all the class declarations.
                var classes = analyzer.GetClassDeclarations(space);
                foreach (ClassDeclarationSyntax cla in classes)
                {
                    string className = cla.Identifier.ValueText;

                    // In each class declaration, get all the method delcarations, they are in the same
                    // scope.
                    dictionary.Add(namespaceName + className, analyzer.GetMethodDeclarations(cla));
                }
            }
            return dictionary;
        }