Skip to content

Commit 4ba405e

Browse files
authoredAug 8, 2024··
lsp: Generate correct rule name when during Eval (#975)
Signed-off-by: Charlie Egan <charlie@styra.com>
1 parent f6e2e14 commit 4ba405e

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed
 

‎internal/lsp/server.go

+17-8
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,16 @@ func (l *LanguageServer) StartCommandWorker(ctx context.Context) {
485485
if err != nil {
486486
fmt.Fprintf(os.Stderr, "failed to evaluate workspace path: %v\n", err)
487487

488+
err := l.conn.Notify(ctx, "window/showMessage", types.ShowMessageParams{
489+
Type: 1, // error
490+
Message: err.Error(),
491+
})
492+
if err != nil {
493+
l.logError(fmt.Errorf("failed to notify client of eval error: %w", err))
494+
495+
break
496+
}
497+
488498
break
489499
}
490500

@@ -1079,17 +1089,16 @@ func (l *LanguageServer) handleTextDocumentCodeLens(
10791089
}
10801090

10811091
func getRuleName(rule *ast.Rule) string {
1082-
parts := make([]string, 0, len(rule.Head.Ref()))
1083-
1084-
for i, part := range rule.Head.Ref() {
1085-
if !part.Value.IsGround() && i > 0 {
1086-
break
1087-
}
1092+
result := rule.Head.Ref().String()
10881093

1089-
parts = append(parts, part.Value.String())
1094+
// only evaluate the top level rule name if there are refs
1095+
// e.g. my[foo].bar -> my
1096+
// bar.bar.bar -> bar.bar.bar
1097+
if i := strings.Index(result, "["); i > 0 {
1098+
return result[:i]
10901099
}
10911100

1092-
return strings.Join(parts, ".")
1101+
return result
10931102
}
10941103

10951104
func (l *LanguageServer) handleTextDocumentCompletion(

0 commit comments

Comments
 (0)
Please sign in to comment.