AOT gen data query codelens preference
This commit is contained in:
@@ -56,4 +56,6 @@ public class Constants {
|
||||
|
||||
public static final String PREF_SYMBOLS_FROM_NEW_INDEX = "boot-java.java.symbols-from-new-index";
|
||||
|
||||
public static final String PREF_CODELENS_QUERY_METHODS = "boot-java.java.codelens-over-query-methods";
|
||||
|
||||
}
|
||||
|
||||
@@ -203,6 +203,7 @@ public class DelegatingStreamConnectionProvider implements StreamConnectionProvi
|
||||
javaSettings.put("symbols-from-new-index", preferenceStore.getBoolean(Constants.PREF_SYMBOLS_FROM_NEW_INDEX));
|
||||
javaSettings.put("completions", javaCompletionSettings);
|
||||
javaSettings.put("reconcilers", preferenceStore.getBoolean(Constants.PREF_JAVA_RECONCILE));
|
||||
javaSettings.put("codelens-over-query-methods", preferenceStore.getBoolean(Constants.PREF_CODELENS_QUERY_METHODS));
|
||||
|
||||
bootJavaObj.put("jpql", preferenceStore.getBoolean(Constants.PREF_JPQL));
|
||||
bootJavaObj.put("live-information", liveInformation);
|
||||
|
||||
@@ -56,6 +56,9 @@ public class BootJavaPreferencesPage extends FieldEditorPreferencePage implement
|
||||
// Experimental Bean Injections completion in Java editor
|
||||
addField(new BooleanFieldEditor(Constants.PREF_COMPLETION_JAVA_INJECT_BEAN, "Inject Bean completion proposals in Java editor", fieldEditorParent));
|
||||
|
||||
// Show AOT generated query over Data Query methods
|
||||
addField(new BooleanFieldEditor(Constants.PREF_CODELENS_QUERY_METHODS, "Show CodeLens with AOT generated query over Data Query methods", fieldEditorParent));
|
||||
|
||||
// Experimental Beans tree
|
||||
addField(new BooleanFieldEditor(Constants.PREF_BEANS_STRUCTURE_TREE, "Beans structure tree in the outline view (experimental)", fieldEditorParent));
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ public class PrefsInitializer extends AbstractPreferenceInitializer {
|
||||
preferenceStore.setDefault(Constants.PREF_COMPLETION_JAVA_INJECT_BEAN, true);
|
||||
preferenceStore.setDefault(Constants.PREF_BEANS_STRUCTURE_TREE, true);
|
||||
preferenceStore.setDefault(Constants.PREF_SYMBOLS_FROM_NEW_INDEX, true);
|
||||
preferenceStore.setDefault(Constants.PREF_CODELENS_QUERY_METHODS, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -224,6 +224,11 @@ public class BootJavaConfig implements InitializingBean {
|
||||
return Boolean.TRUE.equals(b);
|
||||
}
|
||||
|
||||
public boolean isEnabledCodeLensOverDataQueryMethods() {
|
||||
Boolean b = settings.getBoolean("boot-java", "java", "codelens-over-query-methods");
|
||||
return Boolean.TRUE.equals(b);
|
||||
}
|
||||
|
||||
public Settings getRawSettings() {
|
||||
return settings;
|
||||
}
|
||||
|
||||
@@ -182,7 +182,8 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent
|
||||
|
||||
spelSemanticTokens = appContext.getBean(SpelSemanticTokens.class);
|
||||
dataRepositoryAotMetadataService = appContext.getBean(DataRepositoryAotMetadataService.class);
|
||||
codeLensHandler = createCodeLensEngine(springIndex, projectFinder, server, spelSemanticTokens, dataRepositoryAotMetadataService, appContext.getBean(RewriteRefactorings.class));
|
||||
codeLensHandler = createCodeLensEngine(springIndex, projectFinder, server, spelSemanticTokens, dataRepositoryAotMetadataService,
|
||||
appContext.getBean(RewriteRefactorings.class), config);
|
||||
|
||||
highlightsEngine = createDocumentHighlightEngine(appContext);
|
||||
documents.onDocumentHighlight(highlightsEngine);
|
||||
@@ -317,12 +318,13 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent
|
||||
}
|
||||
|
||||
protected BootJavaCodeLensEngine createCodeLensEngine(SpringMetamodelIndex springIndex, JavaProjectFinder projectFinder, SimpleLanguageServer server,
|
||||
SpelSemanticTokens spelSemanticTokens, DataRepositoryAotMetadataService repositoryAotMetadataService, RewriteRefactorings refactorings) {
|
||||
SpelSemanticTokens spelSemanticTokens, DataRepositoryAotMetadataService repositoryAotMetadataService, RewriteRefactorings refactorings,
|
||||
BootJavaConfig config) {
|
||||
|
||||
Collection<CodeLensProvider> codeLensProvider = new ArrayList<>();
|
||||
codeLensProvider.add(new WebfluxHandlerCodeLensProvider(springIndex));
|
||||
codeLensProvider.add(new CopilotCodeLensProvider(projectFinder, server, spelSemanticTokens));
|
||||
codeLensProvider.add(new DataRepositoryAotMetadataCodeLensProvider(projectFinder, repositoryAotMetadataService, refactorings));
|
||||
codeLensProvider.add(new DataRepositoryAotMetadataCodeLensProvider(projectFinder, repositoryAotMetadataService, refactorings, config));
|
||||
|
||||
return new BootJavaCodeLensEngine(this, codeLensProvider);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.eclipse.lsp4j.Range;
|
||||
import org.eclipse.lsp4j.jsonrpc.CancelChecker;
|
||||
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.annotations.AnnotationHierarchies;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.CodeLensProvider;
|
||||
@@ -54,15 +55,21 @@ public class DataRepositoryAotMetadataCodeLensProvider implements CodeLensProvid
|
||||
private final DataRepositoryAotMetadataService repositoryMetadataService;
|
||||
private final JavaProjectFinder projectFinder;
|
||||
private final RewriteRefactorings refactorings;
|
||||
private final BootJavaConfig config;
|
||||
|
||||
public DataRepositoryAotMetadataCodeLensProvider(JavaProjectFinder projectFinder, DataRepositoryAotMetadataService repositoryMetadataService, RewriteRefactorings refactorings) {
|
||||
public DataRepositoryAotMetadataCodeLensProvider(JavaProjectFinder projectFinder, DataRepositoryAotMetadataService repositoryMetadataService,
|
||||
RewriteRefactorings refactorings, BootJavaConfig config) {
|
||||
this.projectFinder = projectFinder;
|
||||
this.repositoryMetadataService = repositoryMetadataService;
|
||||
this.refactorings = refactorings;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideCodeLenses(CancelChecker cancelToken, TextDocument document, CompilationUnit cu, List<CodeLens> resultAccumulator) {
|
||||
if (!config.isEnabledCodeLensOverDataQueryMethods()) {
|
||||
return;
|
||||
}
|
||||
cu.accept(new ASTVisitor() {
|
||||
@Override
|
||||
public boolean visit(MethodDeclaration node) {
|
||||
@@ -158,9 +165,12 @@ public class DataRepositoryAotMetadataCodeLensProvider implements CodeLensProvid
|
||||
codeLenses.add(new CodeLens(range, impl, null));
|
||||
|
||||
if (!isQueryAnnotated) {
|
||||
Command queryTitle = new Command();
|
||||
queryTitle.setTitle(methodMetadata.get().getQueryStatement(metadata));
|
||||
codeLenses.add(new CodeLens(range, queryTitle, null));
|
||||
String queryStatement = methodMetadata.get().getQueryStatement(metadata);
|
||||
if (queryStatement != null) {
|
||||
Command queryTitle = new Command();
|
||||
queryTitle.setTitle(queryStatement);
|
||||
codeLenses.add(new CodeLens(range, queryTitle, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (BadLocationException e) {
|
||||
|
||||
@@ -383,6 +383,11 @@
|
||||
"default": true,
|
||||
"description": "Generate workspace symbols from index (experimental)"
|
||||
},
|
||||
"boot-java.java.codelens-over-query-methods": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Show CodeLens with AOT generated query over Data Query methods"
|
||||
},
|
||||
"boot-java.remote-apps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
|
||||
Reference in New Issue
Block a user