public override async Task <LocationOrLocationLinks> Handle(DefinitionParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri); SymbolReference foundSymbol = SymbolsService.FindSymbolAtLocation( scriptFile, request.Position.Line + 1, request.Position.Character + 1); List <LocationOrLocationLink> definitionLocations = new List <LocationOrLocationLink>(); if (foundSymbol != null) { SymbolReference foundDefinition = await _symbolsService.GetDefinitionOfSymbolAsync( scriptFile, foundSymbol).ConfigureAwait(false); if (foundDefinition != null) { definitionLocations.Add( new LocationOrLocationLink( new Location { Uri = DocumentUri.From(foundDefinition.FilePath), Range = GetRangeFromScriptRegion(foundDefinition.ScriptRegion) })); } } return(new LocationOrLocationLinks(definitionLocations)); }
public override Task <LocationContainer> Handle(ReferenceParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri); SymbolReference foundSymbol = _symbolsService.FindSymbolAtLocation( scriptFile, request.Position.Line + 1, request.Position.Character + 1); List <SymbolReference> referencesResult = _symbolsService.FindReferencesOfSymbol( foundSymbol, _workspaceService.ExpandScriptReferences(scriptFile), _workspaceService); var locations = new List <Location>(); if (referencesResult != null) { foreach (SymbolReference foundReference in referencesResult) { locations.Add(new Location { Uri = DocumentUri.From(foundReference.FilePath), Range = GetRangeFromScriptRegion(foundReference.ScriptRegion) }); } } return(Task.FromResult(new LocationContainer(locations))); }
public async Task <LocationOrLocationLinks> Handle(DefinitionParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile( request.TextDocument.Uri.ToString()); SymbolReference foundSymbol = _symbolsService.FindSymbolAtLocation( scriptFile, (int)request.Position.Line + 1, (int)request.Position.Character + 1); List <LocationOrLocationLink> definitionLocations = new List <LocationOrLocationLink>(); if (foundSymbol != null) { SymbolReference foundDefinition = await _symbolsService.GetDefinitionOfSymbolAsync( scriptFile, foundSymbol); if (foundDefinition != null) { definitionLocations.Add( new LocationOrLocationLink( new Location { Uri = PathUtils.ToUri(foundDefinition.FilePath), Range = GetRangeFromScriptRegion(foundDefinition.ScriptRegion) })); } } return(new LocationOrLocationLinks(definitionLocations)); }
private Task <SymbolReference> GetDefinition(ScriptRegion scriptRegion) { ScriptFile scriptFile = GetScriptFile(scriptRegion); SymbolReference symbolReference = SymbolsService.FindSymbolAtLocation( scriptFile, scriptRegion.StartLineNumber, scriptRegion.StartColumnNumber); Assert.NotNull(symbolReference); return(symbolsService.GetDefinitionOfSymbolAsync(scriptFile, symbolReference)); }
private Task <List <SymbolReference> > GetReferences(ScriptRegion scriptRegion) { ScriptFile scriptFile = GetScriptFile(scriptRegion); SymbolReference symbolReference = SymbolsService.FindSymbolAtLocation( scriptFile, scriptRegion.StartLineNumber, scriptRegion.StartColumnNumber); Assert.NotNull(symbolReference); return(symbolsService.FindReferencesOfSymbol( symbolReference, workspace.ExpandScriptReferences(scriptFile), workspace)); }