private SearchResultsViewModel CreateViewModel() { var errors = from error in _state.ModuleExceptions let declaration = FindModuleDeclaration(error.Item1) where declaration != null select new SearchResultItem(declaration, error.Item2.GetNavigateCodeEventArgs(declaration), error.Item2.Message); var searchResultItems = errors as IList<SearchResultItem> ?? errors.ToList(); var viewModel = new SearchResultsViewModel(_navigateCommand, "Parser Errors", null, searchResultItems); return viewModel; }
private void RemoveTab(SearchResultsViewModel viewModel) { if (viewModel != null) { _tabs.Remove(viewModel); } if (!_tabs.Any()) { OnLastTabClosed(); } }
private SearchResultsViewModel CreateViewModel(ProjectDeclaration project, ProjectDeclaration reference, IEnumerable <IdentifierReference> usages) { var results = usages.Select(usage => new SearchResultItem(usage.ParentNonScoping, new NavigateCodeEventArgs(usage.QualifiedModuleName, usage.Selection), GetModuleLine(usage.QualifiedModuleName, usage.Selection.StartLine))); var viewModel = new SearchResultsViewModel(_navigateCommand, string.Format(RubberduckUI.SearchResults_AllReferencesTabFormat, reference.IdentifierName), project, results); return(viewModel); }
private SearchResultsViewModel CreateViewModel(Declaration declaration) { var results = declaration.References.Distinct().Select(reference => new SearchResultItem( reference.ParentNonScoping, new NavigateCodeEventArgs(reference.QualifiedModuleName, reference.Selection), GetModuleLine(reference.QualifiedModuleName, reference.Selection.StartLine))); var accessor = declaration.DeclarationType.HasFlag(DeclarationType.PropertyGet) ? "(get)" : declaration.DeclarationType.HasFlag(DeclarationType.PropertyLet) ? "(let)" : declaration.DeclarationType.HasFlag(DeclarationType.PropertySet) ? "(set)" : string.Empty; var tabCaption = $"{declaration.IdentifierName} {accessor}".Trim(); var viewModel = new SearchResultsViewModel(_navigateCommand, string.Format(RubberduckUI.SearchResults_AllReferencesTabFormat, tabCaption), declaration, results); return(viewModel); }
private void ShowResults(SearchResultsViewModel viewModel) { if (viewModel.SearchResults.Count == 1) { viewModel.NavigateCommand.Execute(viewModel.SearchResults[0].GetNavigationArgs()); return; } try { _viewModel.AddTab(viewModel); _viewModel.SelectedTab = viewModel; var presenter = _presenterService.Presenter(_viewModel); presenter.Show(); } catch (Exception e) { _logger.Error(e); } }
public void AddTab(SearchResultsViewModel viewModel) { viewModel.Close += viewModel_Close; _tabs.Add(viewModel); }
private SearchResultsViewModel CreateViewModel(Declaration declaration) { var results = declaration.References.Select(reference => new SearchResultItem( reference.ParentNonScoping, new NavigateCodeEventArgs(reference.QualifiedModuleName, reference.Selection), reference.QualifiedModuleName.Component.CodeModule.Lines[reference.Selection.StartLine, 1].Trim())); var viewModel = new SearchResultsViewModel(_navigateCommand, string.Format(RubberduckUI.SearchResults_AllReferencesTabFormat, declaration.IdentifierName), declaration, results); return viewModel; }
public void AddTab(SearchResultsViewModel viewModel) { viewModel.Close += viewModel_Close; Tabs.Add(viewModel); }
private SearchResultsViewModel CreateViewModel(Declaration declaration, string identifier = null, IEnumerable <IdentifierReference> references = null) { var nameRefs = (references ?? declaration.References) .Where(reference => !reference.IsArrayAccess) .Distinct() .GroupBy(reference => reference.QualifiedModuleName) .ToDictionary(group => group.Key); var argRefs = (declaration is ParameterDeclaration parameter ? parameter.ArgumentReferences : Enumerable.Empty <ArgumentReference>()) .Distinct() .GroupBy(argRef => argRef.QualifiedModuleName) .ToDictionary(group => group.Key); var results = new List <SearchResultItem>(); var modules = nameRefs.Keys.Concat(argRefs.Keys).Distinct(); foreach (var qualifiedModuleName in modules) { var component = _state.ProjectsProvider.Component(qualifiedModuleName); if (component == null) { _logger.Warn($"Could not retrieve the IVBComponent for module '{qualifiedModuleName}'."); continue; } var module = component.CodeModule; if (nameRefs.TryGetValue(qualifiedModuleName, out var identifierReferences)) { foreach (var identifierReference in identifierReferences) { var(context, selection) = identifierReference.HighlightSelection(module); var result = new SearchResultItem( identifierReference.ParentNonScoping, new NavigateCodeEventArgs(qualifiedModuleName, identifierReference.Selection), context, selection); results.Add(result); } } if (argRefs.TryGetValue(qualifiedModuleName, out var argReferences)) { foreach (var argumentReference in argReferences) { var(context, selection) = argumentReference.HighlightSelection(module); var result = new SearchResultItem( argumentReference.ParentNonScoping, new NavigateCodeEventArgs(qualifiedModuleName, argumentReference.Selection), context, selection); results.Add(result); } } } var accessor = declaration.DeclarationType.HasFlag(DeclarationType.PropertyGet) ? "(get)" : declaration.DeclarationType.HasFlag(DeclarationType.PropertyLet) ? "(let)" : declaration.DeclarationType.HasFlag(DeclarationType.PropertySet) ? "(set)" : string.Empty; var tabCaption = $"{identifier ?? declaration.IdentifierName} {accessor}".Trim(); var viewModel = new SearchResultsViewModel(_navigateCommand, string.Format(RubberduckUI.SearchResults_AllReferencesTabFormat, tabCaption), declaration, results.OrderBy(item => item.ParentScope.QualifiedModuleName.ToString()) .ThenBy(item => item.Selection) .ToList()); return(viewModel); }
private SearchResultsViewModel CreateViewModel(Declaration target) { var results = FindImplementations(target).Select(declaration => new SearchResultItem( declaration.ParentScopeDeclaration, new NavigateCodeEventArgs(declaration.QualifiedName.QualifiedModuleName, declaration.Selection), declaration.QualifiedName.QualifiedModuleName.Component.CodeModule.Lines[declaration.Selection.StartLine, 1].Trim())); var viewModel = new SearchResultsViewModel(_navigateCommand, string.Format(RubberduckUI.SearchResults_AllImplementationsTabFormat, target.IdentifierName), target, results); return viewModel; }