CRON inlay-hints on/off setting
This commit is contained in:
@@ -84,6 +84,10 @@ public class BootJavaConfig implements InitializingBean {
|
||||
return enabled != null && enabled.booleanValue();
|
||||
}
|
||||
|
||||
public boolean isCronInlayHintsEnabled() {
|
||||
return Boolean.TRUE.equals(settings.getBoolean("boot-java", "cron", "inlay-hints"));
|
||||
}
|
||||
|
||||
public boolean isShowingAllJvmProcesses() {
|
||||
Boolean isAll = settings.getBoolean("boot-java", "live-information", "all-local-java-processes");
|
||||
return isAll != null && isAll.booleanValue();
|
||||
|
||||
@@ -163,7 +163,7 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
components.getSemanticTokensHandler().ifPresent(documents::onSemanticTokens);
|
||||
|
||||
startListeningToPerformReconcile();
|
||||
startListening();
|
||||
|
||||
server.onCommand("sts/show/document", p -> {
|
||||
ShowDocumentParams showDocParams = new Gson().fromJson((JsonElement)p.getArguments().get(0), ShowDocumentParams.class);
|
||||
@@ -184,7 +184,7 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
}
|
||||
|
||||
private void startListeningToPerformReconcile() {
|
||||
private void startListening() {
|
||||
components.getReconcileEngine().ifPresent(reconcileEngine -> {
|
||||
server.getTextDocumentService().onDidChangeContent(params -> {
|
||||
TextDocument doc = params.getDocument();
|
||||
@@ -193,7 +193,10 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
// ServerUtils.listenToClassFileChanges(server.getWorkspaceService().getFileObserver(), projectFinder, project -> validateAll(components, server, project));
|
||||
});
|
||||
config.addListener(evt -> reconcile());
|
||||
config.addListener(evt -> {
|
||||
server.getClient().refreshInlayHints();
|
||||
reconcile();
|
||||
});
|
||||
params.projectObserver.addListener(reconcileDocumentsForProjectChange(server, components, params.projectFinder));
|
||||
|
||||
// // TODO: index update even happens on every file save. Very expensive to blindly reconcile all projects.
|
||||
|
||||
@@ -140,8 +140,8 @@ public class JdtConfig {
|
||||
return new JdtDataQueriesInlayHintsProvider(semanticTokensProvider);
|
||||
}
|
||||
|
||||
@Bean CronExpressionsInlayHintsProvider cronExpressionsInlayHintsProvider() {
|
||||
return new CronExpressionsInlayHintsProvider();
|
||||
@Bean CronExpressionsInlayHintsProvider cronExpressionsInlayHintsProvider(BootJavaConfig config) {
|
||||
return new CronExpressionsInlayHintsProvider(config);
|
||||
}
|
||||
|
||||
@Bean JdtQueryDocHighlightsProvider jdtDocHighlightsProvider(JdtDataQuerySemanticTokensProvider semanticTokensProvider) {
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.eclipse.lsp4j.InlayHintKind;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.boot.app.BootJavaConfig;
|
||||
import org.springframework.ide.vscode.boot.java.Annotations;
|
||||
import org.springframework.ide.vscode.boot.java.JdtInlayHintsProvider;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
@@ -46,12 +47,18 @@ public class CronExpressionsInlayHintsProvider implements JdtInlayHintsProvider
|
||||
|
||||
private static final String SCHEDULED = "Scheduled";
|
||||
|
||||
private final BootJavaConfig config;
|
||||
|
||||
public record EmbeddedCronExpression(Expression expression, String text, int offset) {
|
||||
};
|
||||
|
||||
public CronExpressionsInlayHintsProvider(BootJavaConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(IJavaProject project) {
|
||||
return true;
|
||||
return config.isCronInlayHintsEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user