diff --git a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/DelegatingStreamConnectionProvider.java b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/DelegatingStreamConnectionProvider.java index 806b08896..d0055824c 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/DelegatingStreamConnectionProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/DelegatingStreamConnectionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017 Pivotal, Inc. + * Copyright (c) 2017, 2018 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -109,7 +109,8 @@ public class DelegatingStreamConnectionProvider implements StreamConnectionProvi // Add resource listener ResourcesPlugin.getWorkspace().addResourceChangeListener(fResourceListener = new ResourceListener(languageServer, Arrays.asList( FileSystems.getDefault().getPathMatcher("glob:**/pom.xml"), - FileSystems.getDefault().getPathMatcher("glob:**/*.gradle") + FileSystems.getDefault().getPathMatcher("glob:**/*.gradle"), + FileSystems.getDefault().getPathMatcher("glob:**/*.java") ))); } } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java index ac593e3a7..b79c2d4a7 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java @@ -189,6 +189,8 @@ public class BootJavaLanguageServer extends SimpleLanguageServer { RegistrationParams registrationParams = new RegistrationParams(Collections.singletonList(registration)); getClient().registerCapability(registrationParams); + this.indexer.serverInitialized(); + // TODO: due to a missing message from lsp4e this "initialized" is not called in // the LSP4E case // if this gets fixed, the code should move here (from "initialize" above) diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java index 0e1e34b5d..1ab8fa2fd 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java @@ -140,6 +140,13 @@ public class SpringIndexer { } } + public void serverInitialized() { + List globPattern = Arrays.asList("**/*.java"); + server.getWorkspaceService().getFileObserver().onFileDeleted(globPattern, (file) -> { + deleteDocument(new TextDocumentIdentifier(file).getUri()); + }); + } + public CompletableFuture initialize(Collection workspaceRoots) { synchronized(this) { try {