/// <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
            });
        }
Example #3
0
        /// <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
                };
        }