Skip to content

Commit

Permalink
decoder: Implement reference targets for Reference
Browse files Browse the repository at this point in the history
  • Loading branch information
radeksimko committed Jan 29, 2023
1 parent c81eee4 commit 705f3b6
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 9 deletions.
9 changes: 0 additions & 9 deletions decoder/expr_reference.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package decoder

import (
"context"

"github.com/hashicorp/hcl-lang/lang"
"github.com/hashicorp/hcl-lang/reference"
"github.com/hashicorp/hcl-lang/schema"
"github.com/hashicorp/hcl/v2"
)
Expand All @@ -14,8 +10,3 @@ type Reference struct {
cons schema.Reference
pathCtx *PathContext
}

func (ref Reference) ReferenceTargets(ctx context.Context, addr lang.Address, addrCtx AddressContext) reference.Targets {
// TODO
return nil
}
30 changes: 30 additions & 0 deletions decoder/expr_reference_ref_targets.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package decoder

import (
"context"

"github.com/hashicorp/hcl-lang/lang"
"github.com/hashicorp/hcl-lang/reference"
"github.com/hashicorp/hcl/v2/hclsyntax"
)

func (ref Reference) ReferenceTargets(ctx context.Context, addr lang.Address, addrCtx AddressContext) reference.Targets {
if ref.cons.Address == nil {
return reference.Targets{}
}

eType, ok := ref.expr.(*hclsyntax.ScopeTraversalExpr)
if !ok {
return reference.Targets{}
}

targets := make(reference.Targets, 0)
targets = append(targets, reference.Target{
Addr: addr,
ScopeId: ref.cons.Address.ScopeId,
RangePtr: eType.SrcRange.Ptr(),
Name: ref.cons.Name,
})

return targets
}

0 comments on commit 705f3b6

Please sign in to comment.