Files
numscript/internal/analysis/goto_definition.go
Alessandro ScandoneandGitHub 58dbd73a15 Prepare for ledger integration (#10)
Refactored modules and exposed a public API so that it can be consumed by the ledger
2024-10-03 19:06:10 +02:00

25 lines
538 B
Go

package analysis
import "github.com/formancehq/numscript/internal/parser"
type GotoDefinitionResult struct {
Range parser.Range
}
func GotoDefinition(program parser.Program, position parser.Position, checkResult CheckResult) *GotoDefinitionResult {
hover := HoverOn(program, position)
if variableHover, ok := hover.(*VariableHover); ok {
resolvedVar := checkResult.ResolveVar(variableHover.Node)
if resolvedVar == nil {
return nil
}
return &GotoDefinitionResult{
Range: resolvedVar.Name.Range,
}
}
return nil
}