From bfca34e77d055a9714a52c7b96ee3c2062308012 Mon Sep 17 00:00:00 2001 From: BoykoAlex Date: Tue, 16 Apr 2019 18:09:33 -0400 Subject: [PATCH] PT #165285833: XML beans for VScode, Theia and Atom --- .../lib/spring-boot-language-client.ts | 2 +- .../commons/jandex/JandexClasspath.java | 3 ++- .../VscodeCompletionEngineAdapter.java | 5 ++++ .../protocol/java/JavaSearchParams.java | 18 ++++++------- .../commons/java/CachingFluxJavaSearch.java | 11 ++++---- .../jdt/ls/commons/java/FluxSearch.java | 5 ++-- .../ls/commons/java/PackageFluxSearch.java | 3 +-- .../jdt/ls/commons/java/SearchUtils.java | 26 +++++++++---------- .../jdt/ls/commons/java/TypeFluxSearch.java | 3 +-- .../BeanRefCompletionProposalProvider.java | 7 ++--- .../TypeCompletionProposalProvider.java | 9 ++++--- .../spring-boot/src/browser/java-data.ts | 1 + .../browser/language-client-contribution.ts | 6 +++-- .../spring-boot/src/common/index.ts | 2 ++ .../commons-vscode/src/java-data.ts | 1 + .../vscode-spring-boot/lib/Main.ts | 5 ++++ .../vscode-spring-boot/package.json | 3 ++- 17 files changed, 64 insertions(+), 46 deletions(-) diff --git a/atom-extensions/atom-spring-boot/lib/spring-boot-language-client.ts b/atom-extensions/atom-spring-boot/lib/spring-boot-language-client.ts index a3829243c..5933a09fa 100644 --- a/atom-extensions/atom-spring-boot/lib/spring-boot-language-client.ts +++ b/atom-extensions/atom-spring-boot/lib/spring-boot-language-client.ts @@ -26,7 +26,7 @@ export class SpringBootLanguageClient extends JavaProcessLanguageClient { } getGrammarScopes() { - return ['source.java', 'source.boot-properties', 'source.boot-properties-yaml']; + return ['source.java', 'source.boot-properties', 'source.boot-properties-yaml', 'text.xml']; } getLanguageName() { diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/JandexClasspath.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/JandexClasspath.java index f5f9c24ef..5a53065c4 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/JandexClasspath.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/JandexClasspath.java @@ -108,7 +108,8 @@ public final class JandexClasspath implements ClasspathIndex { @Override public Flux> camelcaseSearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) { - throw new UnsupportedOperationException("Not implemented for Jandex index!"); +// throw new UnsupportedOperationException("Not implemented for Jandex index!"); + return fuzzySearchTypes(searchTerm, includeBinaries, includeSystemLibs); } @Override diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java index bb325d05c..9ad0bfe57 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java @@ -29,6 +29,8 @@ import org.eclipse.lsp4j.TextEdit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits.TextReplace; +import org.springframework.ide.vscode.commons.languageserver.util.LspClient; +import org.springframework.ide.vscode.commons.languageserver.util.LspClient.Client; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService; import org.springframework.ide.vscode.commons.languageserver.util.SortKeys; @@ -266,6 +268,9 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine { if (isMagicIndentingClient()) { newText = vscodeIndentFix(doc, vscodeEdit.getRange().getStart(), replaceEdit.newText); } + if (LspClient.currentClient() == Client.THEIA || LspClient.currentClient() == Client.VSCODE) { + newText = newText.replace("$", "\\$"); + } vscodeEdit.setNewText(newText); return Optional.of(vscodeEdit); } diff --git a/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/java/JavaSearchParams.java b/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/java/JavaSearchParams.java index ef30ec3f9..8c5162316 100644 --- a/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/java/JavaSearchParams.java +++ b/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/java/JavaSearchParams.java @@ -12,9 +12,9 @@ package org.springframework.ide.vscode.commons.protocol.java; public class JavaSearchParams { - public enum SearchType { - FUZZY, - CAMELCASE + public final class SearchType { + public static final String FUZZY = "fuzzy"; + public static final String CAMELCASE = "camelcase"; } private String projectUri; @@ -22,13 +22,13 @@ public class JavaSearchParams { private boolean includeBinaries; private boolean includeSystemLibs; private long timeLimit = -1; - private SearchType searchType; + private String searchType; - public JavaSearchParams(String projectUri, String term, SearchType searchType) { + public JavaSearchParams(String projectUri, String term, String searchType) { this(projectUri, term, searchType, true, false); } - public JavaSearchParams(String projectUri, String term, SearchType searchType, boolean includeBinaries, boolean includeSystemLibs, long timeLimit) { + public JavaSearchParams(String projectUri, String term, String searchType, boolean includeBinaries, boolean includeSystemLibs, long timeLimit) { super(); this.projectUri = projectUri; this.term = term; @@ -38,7 +38,7 @@ public class JavaSearchParams { this.setTimeLimit(timeLimit); } - public JavaSearchParams(String projectUri, String term, SearchType searchType, boolean includeBinaries, boolean includeSystemLibs) { + public JavaSearchParams(String projectUri, String term, String searchType, boolean includeBinaries, boolean includeSystemLibs) { this(projectUri, term, searchType, includeBinaries, includeSystemLibs, -1); } @@ -82,11 +82,11 @@ public class JavaSearchParams { this.timeLimit = timeLimit; } - public SearchType getSearchType() { + public String getSearchType() { return searchType; } - public void setSearchType(SearchType searchType) { + public void setSearchType(String searchType) { this.searchType = searchType; } diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/CachingFluxJavaSearch.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/CachingFluxJavaSearch.java index 7cc96d98a..013ddad6e 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/CachingFluxJavaSearch.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/CachingFluxJavaSearch.java @@ -14,7 +14,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import org.eclipse.jdt.core.IJavaProject; -import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams.SearchType; import org.springframework.tooling.jdt.ls.commons.Logger; import com.google.common.cache.Cache; @@ -64,8 +63,8 @@ public abstract class CachingFluxJavaSearch implements FluxSearch { } @Override - public final Flux search(IJavaProject javaProject, String query, SearchType searchType) { - Tuple2 key = key(javaProject, query, searchType); + public final Flux search(IJavaProject javaProject, String query, String searchType) { + Tuple3 key = key(javaProject, query, searchType); CacheEntry cached = null; try { cached = cache.get(key, () -> new CacheEntry(query, getValuesIncremental(javaProject, query, searchType))); @@ -80,7 +79,7 @@ public abstract class CachingFluxJavaSearch implements FluxSearch { *

* Falls back on doing a full-blown search if there's no usable 'prefix-query' in the cache. */ - private Flux getValuesIncremental(IJavaProject javaProject, String query, SearchType searchType) { + private Flux getValuesIncremental(IJavaProject javaProject, String query, String searchType) { // debug("trying to solve "+query+" incrementally"); String subquery = query; while (subquery.length()>=1) { @@ -106,11 +105,11 @@ public abstract class CachingFluxJavaSearch implements FluxSearch { return getValuesAsync(javaProject, query, searchType); } - protected abstract Flux getValuesAsync(IJavaProject javaProject, String query, SearchType searchType); + protected abstract Flux getValuesAsync(IJavaProject javaProject, String query, String searchType); protected abstract String stringValue(T t); - private Tuple3 key(IJavaProject javaProject, String query, SearchType searchType) { + private Tuple3 key(IJavaProject javaProject, String query, String searchType) { return Tuples.of(javaProject==null?null:javaProject.getElementName(), query, searchType); } diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/FluxSearch.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/FluxSearch.java index 222714779..aff78af00 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/FluxSearch.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/FluxSearch.java @@ -14,15 +14,14 @@ import java.time.Duration; import java.util.List; import org.eclipse.jdt.core.IJavaProject; -import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams.SearchType; import reactor.core.publisher.Flux; public interface FluxSearch { - Flux search(IJavaProject project, String searchTerm, SearchType searchType); + Flux search(IJavaProject project, String searchTerm, String searchType); - default List searchWithLimits(IJavaProject javaProject, String searchTerm, SearchType searchType, long timeLimit) { + default List searchWithLimits(IJavaProject javaProject, String searchTerm, String searchType, long timeLimit) { Flux flux = this.search(javaProject, searchTerm, searchType); if (timeLimit > 0) { flux = flux.take(Duration.ofMillis(timeLimit)); diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/PackageFluxSearch.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/PackageFluxSearch.java index 2081488e6..44b0217c7 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/PackageFluxSearch.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/PackageFluxSearch.java @@ -16,7 +16,6 @@ import static org.springframework.tooling.jdt.ls.commons.java.SearchUtils.toPack import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.JavaModelException; -import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams.SearchType; import org.springframework.tooling.jdt.ls.commons.Logger; import reactor.core.publisher.Flux; @@ -28,7 +27,7 @@ public class PackageFluxSearch extends CachingFluxJavaSearch { } @Override - protected Flux getValuesAsync(IJavaProject javaProject, String searchTerm, SearchType searchType) { + protected Flux getValuesAsync(IJavaProject javaProject, String searchTerm, String searchType) { try { return new FluxJdtSearch(logger) .scope(searchScope(javaProject, includeBinaries, includeSystemLibs)) diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/SearchUtils.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/SearchUtils.java index e5e08f245..5f184953a 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/SearchUtils.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/SearchUtils.java @@ -17,7 +17,7 @@ import org.eclipse.jdt.core.search.IJavaSearchConstants; import org.eclipse.jdt.core.search.IJavaSearchScope; import org.eclipse.jdt.core.search.SearchEngine; import org.eclipse.jdt.core.search.SearchPattern; -import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams.SearchType; +import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams; public class SearchUtils { @@ -48,28 +48,28 @@ public class SearchUtils { return builder.toString(); } - public static String toSearchPattern(SearchType searchType, String query) { + public static String toSearchPattern(String searchType, String query) { switch(searchType) { - case FUZZY: + case JavaSearchParams.SearchType.FUZZY: return toWildCardPattern(query); - case CAMELCASE: + case JavaSearchParams.SearchType.CAMELCASE: return toCamelCasePattern(query); default: return query; } } - public static SearchPattern toPackagePattern(SearchType searchType, String query) { + public static SearchPattern toPackagePattern(String searchType, String query) { int searchFor = IJavaSearchConstants.PACKAGE; int limitTo = IJavaSearchConstants.DECLARATIONS; int matchRule = SearchPattern.R_EXACT_MATCH; String finalQuery = query; switch (searchType) { - case FUZZY: + case JavaSearchParams.SearchType.FUZZY: matchRule = SearchPattern.R_PATTERN_MATCH; finalQuery = toWildCardPattern(query); break; - case CAMELCASE: + case JavaSearchParams.SearchType.CAMELCASE: matchRule = SearchPattern.R_CAMELCASE_MATCH; finalQuery = query.isEmpty() ? WILDCARD : query; break; @@ -77,17 +77,17 @@ public class SearchUtils { return SearchPattern.createPattern(finalQuery, searchFor, limitTo, matchRule); } - public static SearchPattern toClassPattern(SearchType searchType, String query) { + public static SearchPattern toClassPattern(String searchType, String query) { int searchFor = IJavaSearchConstants.CLASS; int limitTo = IJavaSearchConstants.DECLARATIONS; int matchRule = SearchPattern.R_EXACT_MATCH; String finalQuery = query; switch (searchType) { - case FUZZY: + case JavaSearchParams.SearchType.FUZZY: matchRule = SearchPattern.R_PATTERN_MATCH; finalQuery = toWildCardPattern(query); break; - case CAMELCASE: + case JavaSearchParams.SearchType.CAMELCASE: matchRule = SearchPattern.R_CAMELCASE_MATCH; finalQuery = query.isEmpty() ? WILDCARD : query; break; @@ -95,17 +95,17 @@ public class SearchUtils { return SearchPattern.createPattern(finalQuery, searchFor, limitTo, matchRule); } - public static SearchPattern toTypePattern(SearchType searchType, String query) { + public static SearchPattern toTypePattern(String searchType, String query) { int searchFor = IJavaSearchConstants.TYPE; int limitTo = IJavaSearchConstants.DECLARATIONS; int matchRule = SearchPattern.R_EXACT_MATCH; String finalQuery = query; switch (searchType) { - case FUZZY: + case JavaSearchParams.SearchType.FUZZY: matchRule = SearchPattern.R_PATTERN_MATCH; finalQuery = toWildCardPattern(query); break; - case CAMELCASE: + case JavaSearchParams.SearchType.CAMELCASE: matchRule = SearchPattern.R_CAMELCASE_MATCH; finalQuery = query.isEmpty() ? WILDCARD : query; break; diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/TypeFluxSearch.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/TypeFluxSearch.java index 36ce8ef3a..cff321859 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/TypeFluxSearch.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/TypeFluxSearch.java @@ -15,7 +15,6 @@ import static org.springframework.tooling.jdt.ls.commons.java.SearchUtils.toType import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IType; -import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams.SearchType; import org.springframework.ide.vscode.commons.protocol.java.TypeDescriptorData; import org.springframework.tooling.jdt.ls.commons.Logger; @@ -31,7 +30,7 @@ public class TypeFluxSearch extends CachingFluxJavaSearch { } @Override - protected Flux getValuesAsync(IJavaProject javaProject, String searchTerm, SearchType searchType) { + protected Flux getValuesAsync(IJavaProject javaProject, String searchTerm, String searchType) { try { return new FluxJdtSearch(logger) .scope(searchScope(javaProject, includeBinaries, includeSystemLibs)) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/BeanRefCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/BeanRefCompletionProposalProvider.java index 194be8671..0c203fd70 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/BeanRefCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/BeanRefCompletionProposalProvider.java @@ -76,18 +76,19 @@ public class BeanRefCompletionProposalProvider implements XMLCompletionProvider .filter(beanID -> beanID != null && beanID.length() > 0) .map(beanID -> Tuples.of(beanID, FuzzyMatcher.matchScore(searchPrefix, beanID))) .filter(tuple -> tuple.getT2() != 0.0) - .map(tuple -> createProposal(tuple.getT1(), doc, offset, tokenOffset, tokenEnd, tuple.getT2())) + .map(tuple -> createProposal(tuple.getT1(), doc, offset, searchPrefix, tuple.getT2())) .collect(Collectors.toList()); }; return Collections.emptyList(); } - private ICompletionProposal createProposal(String beanID, TextDocument doc, int offset, int tokenStart, int tokenEnd, Double score) { + private ICompletionProposal createProposal(String beanID, TextDocument doc, int offset, String prefix, Double score) { CompletionItemKind kind = CompletionItemKind.Reference; DocumentEdits edits = new DocumentEdits(doc); - edits.replace(tokenStart, tokenEnd, "\"" + beanID + "\""); + edits.delete(offset - prefix.length(), offset); + edits.insert(offset, beanID); Renderable renderable = null; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java index cb21dc9e4..7192ef816 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java @@ -63,17 +63,19 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { // Flux> types = project.getIndex().fuzzySearchTypes(prefix, true, true); Flux> types = project.getIndex().camelcaseSearchTypes(prefix, true, true); + final String prefixStr = prefix; + return types .filter(result -> result.getT1() != null && result.getT1().getElementName() != null && result.getT1().getElementName().length() > 0) .filter(result -> classesOnly ? result.getT1().isClass() : true) - .map(t -> createProposal(t, doc, offset, tokenOffset, tokenEnd)) + .map(t -> createProposal(t, doc, offset, prefixStr)) .collectList().block(); }; return Collections.emptyList(); } - private ICompletionProposal createProposal(Tuple2 t, TextDocument doc, int offset, int tokenStart, int tokenEnd) { + private ICompletionProposal createProposal(Tuple2 t, TextDocument doc, int offset, String prefix) { IType type = t.getT1(); String label = type.getFullyQualifiedName(); @@ -98,7 +100,8 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { } DocumentEdits edits = new DocumentEdits(doc); - edits.replace(tokenStart, tokenEnd, "\"" + type.getFullyQualifiedName() + "\""); + edits.delete(offset - prefix.length(), offset); + edits.insert(offset, type.getFullyQualifiedName()); Renderable renderable = null; diff --git a/theia-extensions/theia-spring-boot/spring-boot/src/browser/java-data.ts b/theia-extensions/theia-spring-boot/spring-boot/src/browser/java-data.ts index 2529025c3..fe2af8796 100644 --- a/theia-extensions/theia-spring-boot/spring-boot/src/browser/java-data.ts +++ b/theia-extensions/theia-spring-boot/spring-boot/src/browser/java-data.ts @@ -51,6 +51,7 @@ interface JavaDataParams { interface JavaSearchParams { projectUri: string; term: string; + searchType: string; includeBinaries: boolean; includeSystemLibs: boolean; timeLimit: number diff --git a/theia-extensions/theia-spring-boot/spring-boot/src/browser/language-client-contribution.ts b/theia-extensions/theia-spring-boot/spring-boot/src/browser/language-client-contribution.ts index d9a24d452..0e9ecf35b 100644 --- a/theia-extensions/theia-spring-boot/spring-boot/src/browser/language-client-contribution.ts +++ b/theia-extensions/theia-spring-boot/spring-boot/src/browser/language-client-contribution.ts @@ -14,7 +14,8 @@ import { SPRING_BOOT_SERVER_ID, SPRING_BOOT_SERVER_NAME, BOOT_PROPERTIES_YAML_LANGUAGE_ID, - BOOT_PROPERTIES_LANGUAGE_ID + BOOT_PROPERTIES_LANGUAGE_ID, + XML_LANGUAGE_ID } from '../common'; import { DocumentSelector } from '@theia/languages/lib/browser'; import { JAVA_LANGUAGE_ID } from '@theia/java/lib/common'; @@ -90,12 +91,13 @@ export class SpringBootClientContribution extends StsLanguageClientContribution< } protected get documentSelector(): DocumentSelector | undefined { - return [JAVA_LANGUAGE_ID, BOOT_PROPERTIES_YAML_LANGUAGE_ID, BOOT_PROPERTIES_LANGUAGE_ID]; + return [JAVA_LANGUAGE_ID, BOOT_PROPERTIES_YAML_LANGUAGE_ID, BOOT_PROPERTIES_LANGUAGE_ID, XML_LANGUAGE_ID]; } protected get globPatterns() { return [ '**/*.java', + '**/*.xml', '**/application*.yml', '**/application*.yaml', '**/bootstrap*.yml', diff --git a/theia-extensions/theia-spring-boot/spring-boot/src/common/index.ts b/theia-extensions/theia-spring-boot/spring-boot/src/common/index.ts index 091082272..dc76dd74e 100644 --- a/theia-extensions/theia-spring-boot/spring-boot/src/common/index.ts +++ b/theia-extensions/theia-spring-boot/spring-boot/src/common/index.ts @@ -16,3 +16,5 @@ export const BOOT_PROPERTIES_YAML_LANGUAGE_NAME = 'Spring-Boot-Properties-YAML'; export const BOOT_PROPERTIES_LANGUAGE_ID = 'spring-boot-properties'; export const BOOT_PROPERTIES_LANGUAGE_NAME = 'Spring-Boot-Properties'; + +export const XML_LANGUAGE_ID = 'xml'; diff --git a/vscode-extensions/commons-vscode/src/java-data.ts b/vscode-extensions/commons-vscode/src/java-data.ts index b3a67b8b8..8d0d4c2c6 100644 --- a/vscode-extensions/commons-vscode/src/java-data.ts +++ b/vscode-extensions/commons-vscode/src/java-data.ts @@ -53,6 +53,7 @@ interface JavaDataParams { interface JavaSearchParams { projectUri: string; term: string; + searchType: string; includeBinaries: boolean; includeSystemLibs: boolean; timeLimit: number; diff --git a/vscode-extensions/vscode-spring-boot/lib/Main.ts b/vscode-extensions/vscode-spring-boot/lib/Main.ts index 4a8c0caae..cfb374414 100644 --- a/vscode-extensions/vscode-spring-boot/lib/Main.ts +++ b/vscode-extensions/vscode-spring-boot/lib/Main.ts @@ -11,6 +11,7 @@ import {LanguageClient} from "vscode-languageclient"; const PROPERTIES_LANGUAGE_ID = "spring-boot-properties"; const YAML_LANGUAGE_ID = "spring-boot-properties-yaml"; const JAVA_LANGUAGE_ID = "java"; +const XML_LANGUAGE_ID = "xml"; /** Called when extension is activated */ export function activate(context: VSCode.ExtensionContext): Thenable { @@ -42,6 +43,10 @@ export function activate(context: VSCode.ExtensionContext): Thenable