Skip to content

Commit fdfa994

Browse files
committed
Workaround CodeMining issue with Big Sur
1 parent 609fc2d commit fdfa994

File tree

1 file changed

+23
-0
lines changed
  • eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons

1 file changed

+23
-0
lines changed

eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.eclipse.jface.preference.IPreferenceStore;
4040
import org.eclipse.jface.text.BadLocationException;
4141
import org.eclipse.jface.text.IDocument;
42+
import org.eclipse.jface.text.IRegion;
4243
import org.eclipse.jface.text.ITextViewer;
4344
import org.eclipse.jface.text.Position;
4445
import org.eclipse.jface.text.TextSelection;
@@ -55,6 +56,7 @@
5556
import org.eclipse.lsp4j.MarkupKind;
5657
import org.eclipse.lsp4j.Range;
5758
import org.eclipse.lsp4j.jsonrpc.messages.Either;
59+
import org.eclipse.swt.custom.StyledText;
5860
import org.eclipse.swt.widgets.Display;
5961
import org.eclipse.ui.IEditorPart;
6062
import org.eclipse.ui.IEditorReference;
@@ -246,6 +248,27 @@ private static void updateHighlightAnnotations(IEditorPart editor, ISourceViewer
246248
} else {
247249
((ISourceViewerExtension5) sourceViewer).updateCodeMinings();
248250
}
251+
252+
/*
253+
* Hack for Big Sur CodeMining layout issues when toggle CodeMinings on/off
254+
* After 100ms emulate resize editor visible region
255+
*/
256+
final StyledText textWidget = sourceViewer.getTextWidget();
257+
if (textWidget != null && !textWidget.isDisposed()) {
258+
textWidget.getDisplay().timerExec(100, () -> {
259+
if (!textWidget.isDisposed()) {
260+
IRegion visibleRegion = sourceViewer.getVisibleRegion();
261+
int offset = visibleRegion.getOffset();
262+
int length = visibleRegion.getLength();
263+
if (length > 1) {
264+
sourceViewer.setVisibleRegion(offset, length - 1);
265+
sourceViewer.setVisibleRegion(offset, length);
266+
} else {
267+
sourceViewer.resetVisibleRegion();
268+
}
269+
}
270+
});
271+
}
249272
}
250273
}
251274

0 commit comments

Comments
 (0)