Skip to content

Commit

Permalink
Fix code lens issue with ref head rules (StyraInc#973)
Browse files Browse the repository at this point in the history
Signed-off-by: Anders Eknert <anders@styra.com>
  • Loading branch information
anderseknert authored and srenatus committed Oct 1, 2024
1 parent a4927c8 commit 72870c3
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions internal/lsp/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -451,8 +451,6 @@ func (l *LanguageServer) StartCommandWorker(ctx context.Context) {
params,
)
case "regal.eval":
fmt.Fprintf(os.Stderr, "regal.eval called with params: %v\n", params)

if len(params.Arguments) != 3 {
l.logError(fmt.Errorf("expected three arguments, got %d", len(params.Arguments)))

Expand Down Expand Up @@ -1068,7 +1066,7 @@ func (l *LanguageServer) handleTextDocumentCodeLens(
Command: "regal.eval",
Arguments: &[]any{
module.Package.Location.File,
module.Package.Path.String() + "." + string(rule.Head.Name),
module.Package.Path.String() + "." + getRuleName(rule),
rule.Head.Location.Row,
},
},
Expand All @@ -1080,6 +1078,20 @@ func (l *LanguageServer) handleTextDocumentCodeLens(
return codeLenses, nil
}

func getRuleName(rule *ast.Rule) string {
parts := make([]string, 0, len(rule.Head.Ref()))

for i, part := range rule.Head.Ref() {
if !part.Value.IsGround() && i > 0 {
break
}

parts = append(parts, part.Value.String())
}

return strings.Join(parts, ".")
}

func (l *LanguageServer) handleTextDocumentCompletion(
_ context.Context,
_ *jsonrpc2.Conn,
Expand Down

0 comments on commit 72870c3

Please sign in to comment.