private IReadOnlyList <SymbolReference> GetOccurrences(ScriptRegion scriptRegion) { return(SymbolsService.FindOccurrencesInFile( GetScriptFile(scriptRegion), scriptRegion.StartLineNumber, scriptRegion.StartColumnNumber)); }
public Task <DocumentHighlightContainer> Handle( DocumentHighlightParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri); IReadOnlyList <SymbolReference> symbolOccurrences = _symbolsService.FindOccurrencesInFile( scriptFile, (int)request.Position.Line + 1, (int)request.Position.Character + 1); if (symbolOccurrences == null) { return(Task.FromResult(s_emptyHighlightContainer)); } var highlights = new DocumentHighlight[symbolOccurrences.Count]; for (int i = 0; i < symbolOccurrences.Count; i++) { highlights[i] = new DocumentHighlight { Kind = DocumentHighlightKind.Write, // TODO: Which symbol types are writable? Range = symbolOccurrences[i].ScriptRegion.ToRange() }; } return(Task.FromResult(new DocumentHighlightContainer(highlights))); }