Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lsp4e-cpp/org.eclipse.lsp4e.cpp.language/META-INF/MANIFEST.MF1
-rw-r--r--lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.java2
-rw-r--r--lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.properties4
-rw-r--r--lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Server2ClientProtocolExtension.java30
-rw-r--r--lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/cquery/IndexingProgressStats.java5
5 files changed, 39 insertions, 3 deletions
diff --git a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/META-INF/MANIFEST.MF b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/META-INF/MANIFEST.MF
index eda7dd83d96..b8162722ac0 100644
--- a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/META-INF/MANIFEST.MF
+++ b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/META-INF/MANIFEST.MF
@@ -24,3 +24,4 @@ Export-Package: org.eclipse.lsp4e.cpp.language,
org.eclipse.lsp4e.cpp.language.cquery
Bundle-Activator: org.eclipse.lsp4e.cpp.language.Activator
Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.ui.texteditor
diff --git a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.java b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.java
index 925db4ef1ca..a7b2fb894c2 100644
--- a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.java
+++ b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.java
@@ -15,6 +15,8 @@ public class Messages extends NLS {
public static String ServerChoiceLabel;
public static String ServerPathLabel;
public static String ServerOptionsLabel;
+ public static String CqueryStateIdle;
+ public static String CqueryStateBusy;
static {
NLS.initializeMessages(Messages.class.getName(), Messages.class);
diff --git a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.properties b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.properties
index b671b9824d8..fe78024a026 100644
--- a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.properties
+++ b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Messages.properties
@@ -9,4 +9,6 @@
PreferencePageDescription=Preferences for the C/C++ Language Server\n\n
ServerChoiceLabel=Please select the C/C++ Language Server you want to use in Eclipse :
ServerPathLabel=Browse path to the server executable
-ServerOptionsLabel=Enter any command-line options for the server \ No newline at end of file
+ServerOptionsLabel=Enter any command-line options for the server
+CqueryStateIdle=CQuery : Idle
+CqueryStateBusy=CQuery : Busy | {0} Jobs \ No newline at end of file
diff --git a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Server2ClientProtocolExtension.java b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Server2ClientProtocolExtension.java
index 80550f9fc37..239aef54fc3 100644
--- a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Server2ClientProtocolExtension.java
+++ b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/Server2ClientProtocolExtension.java
@@ -8,17 +8,44 @@
package org.eclipse.lsp4e.cpp.language;
+import org.eclipse.jface.action.StatusLineContributionItem;
+import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.lsp4e.LanguageClientImpl;
import org.eclipse.lsp4e.cpp.language.cquery.CqueryInactiveRegions;
import org.eclipse.lsp4e.cpp.language.cquery.CquerySemanticHighlights;
import org.eclipse.lsp4e.cpp.language.cquery.IndexingProgressStats;
import org.eclipse.lsp4j.jsonrpc.services.JsonNotification;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.WorkbenchWindow;
+@SuppressWarnings("restriction")
public class Server2ClientProtocolExtension extends LanguageClientImpl {
@JsonNotification("$cquery/progress")
public final void indexingProgress(IndexingProgressStats stats) {
- // TODO: Implement
+
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ final String cqueryStatusFieldId = "org.eclipse.lsp4e.cpp.status"; //$NON-NLS-1$
+ final int width = 28;
+ IWorkbenchWindow[] workbenchWindows = PlatformUI.getWorkbench().getWorkbenchWindows();
+ for (IWorkbenchWindow window : workbenchWindows) {
+ StatusLineManager statusLine = ((WorkbenchWindow) window).getStatusLineManager();
+ StatusLineContributionItem cqueryStatusField = (StatusLineContributionItem) statusLine.find(cqueryStatusFieldId);
+ if (cqueryStatusField == null) {
+ cqueryStatusField = new StatusLineContributionItem(cqueryStatusFieldId, width);
+ statusLine.add(cqueryStatusField);
+ }
+ String msg = stats.getTotalJobs() > 0 ? NLS.bind(Messages.CqueryStateBusy, stats.getTotalJobs())
+ : Messages.CqueryStateIdle;
+ cqueryStatusField.setText(msg);
+ }
+ }
+ });
}
@JsonNotification("$cquery/setInactiveRegions")
@@ -26,7 +53,6 @@ public class Server2ClientProtocolExtension extends LanguageClientImpl {
// TODO: Implement
}
-
@JsonNotification("$cquery/publishSemanticHighlighting")
public final void semanticHighlights(CquerySemanticHighlights highlights) {
// TODO: Implement
diff --git a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/cquery/IndexingProgressStats.java b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/cquery/IndexingProgressStats.java
index 6a3a9baf485..61688827fcb 100644
--- a/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/cquery/IndexingProgressStats.java
+++ b/lsp4e-cpp/org.eclipse.lsp4e.cpp.language/src/org/eclipse/lsp4e/cpp/language/cquery/IndexingProgressStats.java
@@ -26,6 +26,11 @@ public class IndexingProgressStats {
this.activeThreads = activeThreads;
}
+ public int getTotalJobs() {
+ int sum = indexRequestCount + doIdMapCount + loadPreviousIndexCount + onIdMappedCount + onIndexedCount;
+ return sum;
+ }
+
public int getIndexRequestCount() {
return indexRequestCount;
}

Back to the top