Skip to content

Commit 0ee781a

Browse files
react on toolbar action or general switch-on/off
1 parent 8395552 commit 0ee781a

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/codemining/ZeroWidthCharactersLineContentCodeMining.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313
*******************************************************************************/
1414
package org.eclipse.ui.internal.texteditor.codemining;
1515

16+
import org.eclipse.swt.SWT;
17+
import org.eclipse.swt.custom.StyledText;
18+
import org.eclipse.swt.graphics.Color;
19+
import org.eclipse.swt.graphics.GC;
20+
import org.eclipse.swt.graphics.Point;
21+
import org.eclipse.swt.widgets.Display;
22+
1623
import org.eclipse.jface.text.Position;
1724
import org.eclipse.jface.text.codemining.ICodeMiningProvider;
1825
import org.eclipse.jface.text.codemining.LineContentCodeMining;
@@ -26,9 +33,11 @@
2633
class ZeroWidthCharactersLineContentCodeMining extends LineContentCodeMining {
2734

2835
private static final String ZW_CHARACTERS_MINING = "ZWSP"; //$NON-NLS-1$
36+
private Color fgColor;
2937

3038
public ZeroWidthCharactersLineContentCodeMining(int offset, ICodeMiningProvider provider) {
3139
super(new Position(offset, 1), true, provider);
40+
fgColor = Display.getCurrent().getSystemColor(SWT.COLOR_LIST_FOREGROUND);
3241
}
3342

3443
@Override
@@ -40,4 +49,12 @@ public boolean isResolved() {
4049
public String getLabel() {
4150
return ZW_CHARACTERS_MINING;
4251
}
52+
53+
@Override
54+
public Point draw(GC gc, StyledText textWidget, Color color, int x, int y) {
55+
gc.setForeground(fgColor);
56+
Point point = super.draw(gc, textWidget, fgColor, x, y);
57+
gc.setForeground(color);
58+
return point;
59+
}
4360
}

bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/codemining/ZeroWidthCharactersLineContentCodeMiningProvider.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
*******************************************************************************/
1414
package org.eclipse.ui.internal.texteditor.codemining;
1515

16+
import static org.eclipse.ui.texteditor.AbstractTextEditor.PREFERENCE_SHOW_WHITESPACE_CHARACTERS;
17+
import static org.eclipse.ui.texteditor.AbstractTextEditor.PREFERENCE_SHOW_ZW_CHARACTERS;
18+
1619
import java.util.ArrayList;
1720
import java.util.Collections;
1821
import java.util.List;
@@ -30,8 +33,6 @@
3033
import org.eclipse.jface.text.codemining.ICodeMining;
3134
import org.eclipse.jface.text.source.ISourceViewerExtension5;
3235

33-
import org.eclipse.ui.texteditor.AbstractTextEditor;
34-
3536
/**
3637
* A code mining provider that draws zero-width characters (like zero-width
3738
* spaces) as line content code minings.
@@ -76,7 +77,8 @@ public CompletableFuture<List<? extends ICodeMining>> provideCodeMinings(ITextVi
7677

7778
@Override
7879
public void propertyChange(PropertyChangeEvent event) {
79-
if (event.getProperty().equals(AbstractTextEditor.PREFERENCE_SHOW_ZW_CHARACTERS)) {
80+
if (PREFERENCE_SHOW_ZW_CHARACTERS.equals(event.getProperty())
81+
|| PREFERENCE_SHOW_WHITESPACE_CHARACTERS.equals(event.getProperty())) {
8082
readShowZwspFromStore();
8183
updateCodeMinings();
8284
}
@@ -89,6 +91,7 @@ private void updateCodeMinings() {
8991
}
9092
}
9193

94+
9295
@Override
9396
public void dispose() {
9497
store.removePropertyChangeListener(this);
@@ -106,6 +109,7 @@ private ICodeMining createCodeMining(int offset) {
106109
}
107110

108111
private void readShowZwspFromStore() {
109-
showZwsp = store.getBoolean(AbstractTextEditor.PREFERENCE_SHOW_ZW_CHARACTERS);
112+
showZwsp = store.getBoolean(PREFERENCE_SHOW_ZW_CHARACTERS)
113+
&& store.getBoolean(PREFERENCE_SHOW_WHITESPACE_CHARACTERS);
110114
}
111115
}

0 commit comments

Comments
 (0)