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 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)); }