Skip to content

Commit fb072bf

Browse files
committed
Enhancement to data queries inlay hints
1 parent ada7d7f commit fb072bf

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JdtDataQueriesInlayHintsProvider.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package org.springframework.ide.vscode.boot.java.data.jpa.queries;
1212

1313
import java.util.List;
14+
import java.util.function.Predicate;
1415

1516
import org.eclipse.jdt.core.dom.ASTVisitor;
1617
import org.eclipse.jdt.core.dom.CompilationUnit;
@@ -87,7 +88,8 @@ private void processQuery(IJavaProject project, TextDocument doc, Collector<Inla
8788
hint.setKind(InlayHintKind.Parameter);
8889
hint.setLabel(Either.forLeft(paramName));
8990
hint.setPaddingLeft(true);
90-
hint.setPosition(doc.toPosition(t.end()));
91+
hint.setPaddingRight(true);
92+
hint.setPosition(doc.toPosition(firstNonSkippedChar(doc, t.end(), c -> '%' != c)));
9193

9294
collector.accept(hint);
9395
}
@@ -100,5 +102,16 @@ private void processQuery(IJavaProject project, TextDocument doc, Collector<Inla
100102
}
101103
}
102104
}
105+
106+
private static int firstNonSkippedChar(TextDocument doc, int offset, Predicate<Character> skip) {
107+
try {
108+
int i = offset;
109+
for (; i < doc.getLength() && !skip.test(doc.getChar(i)); i++) {}
110+
return i;
111+
} catch (BadLocationException e) {
112+
// ignore - shouldn't happen
113+
}
114+
return doc.getLength();
115+
}
103116

104117
}

0 commit comments

Comments
 (0)