/// <summary> /// Finds all the symbols in a file. /// </summary> /// <param name="scriptFile">The ScriptFile in which the symbol can be located.</param> /// <returns></returns> public FindOccurrencesResult FindSymbolsInFile(ScriptFile scriptFile) { Validate.IsNotNull("scriptFile", scriptFile); return(new FindOccurrencesResult { FoundOccurrences = documentSymbolProviders .SelectMany(p => p.ProvideDocumentSymbols(scriptFile)) .Select(reference => { reference.SourceLine = scriptFile.GetLine(reference.ScriptRegion.StartLineNumber); reference.FilePath = scriptFile.FilePath; return reference; }) }); }
/// <summary> /// Finds all the symbols in a file. /// </summary> /// <param name="scriptFile">The ScriptFile in which the symbol can be located.</param> /// <returns></returns> public FindOccurrencesResult FindSymbolsInFile(ScriptFile scriptFile) { Validate.IsNotNull("scriptFile", scriptFile); IEnumerable <SymbolReference> symbolReferencesinFile = AstOperations .FindSymbolsInDocument(scriptFile.ScriptAst) .Select( reference => { reference.SourceLine = scriptFile.GetLine(reference.ScriptRegion.StartLineNumber); reference.FilePath = scriptFile.FilePath; return(reference); }); return (new FindOccurrencesResult { FoundOccurrences = symbolReferencesinFile }); }
/// <summary> /// Finds all the symbols in a file. /// </summary> /// <param name="scriptFile">The ScriptFile in which the symbol can be located.</param> /// <returns></returns> public FindOccurrencesResult FindSymbolsInFile(ScriptFile scriptFile) { Validate.IsNotNull(nameof(scriptFile), scriptFile); var foundOccurrences = new List <SymbolReference>(); foreach (IDocumentSymbolProvider symbolProvider in _documentSymbolProviders) { foreach (SymbolReference reference in symbolProvider.ProvideDocumentSymbols(scriptFile)) { reference.SourceLine = scriptFile.GetLine(reference.ScriptRegion.StartLineNumber); reference.FilePath = scriptFile.FilePath; foundOccurrences.Add(reference); } } return(new FindOccurrencesResult { FoundOccurrences = foundOccurrences }); }
protected override IEnumerable <SymbolReference> GetSymbolsImpl(ScriptFile scriptFile, Version psVersion) { var commandAsts = scriptFile.ScriptAst.FindAll(ast => { switch ((ast as CommandAst)?.GetCommandName().ToLower()) { case "describe": case "context": case "it": return(true); default: return(false); } }, true); return(commandAsts.Select(ast => new SymbolReference( SymbolType.Function, ast.Extent, scriptFile.FilePath, scriptFile.GetLine(ast.Extent.StartLineNumber)))); }
/// <summary> /// Finds all the symbols in a file. /// </summary> /// <param name="scriptFile">The ScriptFile in which the symbol can be located.</param> /// <returns></returns> public FindOccurrencesResult FindSymbolsInFile(ScriptFile scriptFile) { Validate.IsNotNull("scriptFile", scriptFile); IEnumerable<SymbolReference> symbolReferencesinFile = AstOperations .FindSymbolsInDocument(scriptFile.ScriptAst, this.powerShellContext.PowerShellVersion) .Select( reference => { reference.SourceLine = scriptFile.GetLine(reference.ScriptRegion.StartLineNumber); reference.FilePath = scriptFile.FilePath; return reference; }); return new FindOccurrencesResult { FoundOccurrences = symbolReferencesinFile }; }