You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by en...@apache.org on 2021/01/08 13:31:47 UTC
[netbeans] branch master updated: Refresh hints in VSCode editor.
This is an automated email from the ASF dual-hosted git repository.
entl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 8e7312e Refresh hints in VSCode editor.
new a6c0036 Merge pull request #2648 from entlicher/VSCodeEditorHintsRefresh
8e7312e is described below
commit 8e7312e1ed92773a3a38b2920ecd233dc7e139db
Author: Martin Entlicher <ma...@oracle.com>
AuthorDate: Thu Jan 7 17:52:34 2021 +0100
Refresh hints in VSCode editor.
---
.../server/protocol/TextDocumentServiceImpl.java | 38 ++++++++++++++++++++--
1 file changed, 35 insertions(+), 3 deletions(-)
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
index 1dac3d1..fc685e2 100644
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
@@ -33,6 +33,7 @@ import com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -123,8 +124,6 @@ import org.eclipse.lsp4j.jsonrpc.messages.Either;
import org.eclipse.lsp4j.services.LanguageClient;
import org.eclipse.lsp4j.services.LanguageClientAware;
import org.eclipse.lsp4j.services.TextDocumentService;
-import org.netbeans.api.editor.document.LineDocument;
-import org.netbeans.api.editor.document.LineDocumentUtils;
import org.netbeans.api.java.lexer.JavaTokenId;
import org.netbeans.api.java.source.CompilationController;
import org.netbeans.api.java.source.CompilationInfo;
@@ -169,6 +168,7 @@ import org.netbeans.modules.parsing.api.ParserManager;
import org.netbeans.modules.parsing.api.ResultIterator;
import org.netbeans.modules.parsing.api.Source;
import org.netbeans.modules.parsing.api.UserTask;
+import org.netbeans.modules.parsing.impl.indexing.implspi.ActiveDocumentProvider.IndexingAware;
import org.netbeans.modules.parsing.spi.ParseException;
import org.netbeans.modules.parsing.spi.SchedulerEvent;
import org.netbeans.modules.refactoring.api.Problem;
@@ -195,7 +195,9 @@ import org.openide.text.PositionBounds;
import org.openide.util.Exceptions;
import org.openide.util.Lookup;
import org.openide.util.RequestProcessor;
+import org.openide.util.WeakSet;
import org.openide.util.lookup.Lookups;
+import org.openide.util.lookup.ServiceProvider;
/**
*
@@ -211,6 +213,36 @@ public class TextDocumentServiceImpl implements TextDocumentService, LanguageCli
private NbCodeLanguageClient client;
public TextDocumentServiceImpl() {
+ Lookup.getDefault().lookup(RefreshDocument.class).register(this);
+ }
+
+ private void reRunDiagnostics() {
+ Set<String> documents = new HashSet<>(openedDocuments.keySet());
+
+ for (String doc : documents) {
+ runDiagnoticTasks(doc);
+ }
+ }
+
+ @ServiceProvider(service=IndexingAware.class, position=0)
+ public static final class RefreshDocument implements IndexingAware {
+
+ private final Set<TextDocumentServiceImpl> delegates = new WeakSet<>();
+
+ public synchronized void register(TextDocumentServiceImpl delegate) {
+ delegates.add(delegate);
+ }
+
+ @Override
+ public void indexingComplete(Set<URL> indexedRoots) {
+ TextDocumentServiceImpl[] delegates;
+ synchronized (this) {
+ delegates = this.delegates.toArray(new TextDocumentServiceImpl[this.delegates.size()]);
+ }
+ for (TextDocumentServiceImpl delegate : delegates) {
+ delegate.reRunDiagnostics();
+ }
+ }
}
@Override
@@ -254,8 +286,8 @@ public class TextDocumentServiceImpl implements TextDocumentService, LanguageCli
return CompletableFuture.completedFuture(Either.<List<CompletionItem>, CompletionList>forRight(completionList));
} catch (IOException | ParseException ex) {
throw new IllegalStateException(ex);
- }
}
+ }
public static final class CompletionData {
public String uri;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists