Skip to content

Commit 2e548fc

Browse files
committed
Fix Issues introduced by PR #2051
Fixes #2600
1 parent 78615b8 commit 2e548fc

File tree

3 files changed

+10
-16
lines changed

3 files changed

+10
-16
lines changed

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/SurroundWithBracketsStrategy.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public SurroundWithBracketsStrategy(ISourceViewer sourceViewer) {
3636

3737
@Override
3838
public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
39-
if (bracketsMap.containsKey(command.text)) {
39+
if (command.text != null && bracketsMap.containsKey(command.text)) {
4040
try {
4141
ITextSelection selection= (ITextSelection) sourceViewer.getSelectionProvider().getSelection();
4242
if (selection != null && selection.getLength() > 0) {
@@ -51,12 +51,7 @@ public void customizeDocumentCommand(IDocument document, DocumentCommand command
5151
command.shiftsCaret= false;
5252

5353
// Run this in a UI thread asynchronously to ensure the selection is updated correctly
54-
sourceViewer.getTextWidget().getDisplay().asyncExec(new Runnable() {
55-
@Override
56-
public void run() {
57-
sourceViewer.setSelectedRange(command.offset + 1, selectedText.length());
58-
}
59-
});
54+
sourceViewer.getTextWidget().getDisplay().asyncExec(() -> sourceViewer.setSelectedRange(command.offset + 1, selectedText.length()));
6055
}
6156
} catch (BadLocationException e) {
6257
SWT.error(SWT.ERROR_INVALID_ARGUMENT);

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.eclipse.jface.text.source;
2020

2121
import java.util.ArrayList;
22-
import java.util.Arrays;
2322
import java.util.Iterator;
2423
import java.util.List;
2524
import java.util.Stack;
@@ -59,7 +58,6 @@
5958
import org.eclipse.jface.text.ITextViewerLifecycle;
6059
import org.eclipse.jface.text.Position;
6160
import org.eclipse.jface.text.Region;
62-
import org.eclipse.jface.text.SurroundWithBracketsStrategy;
6361
import org.eclipse.jface.text.TextViewer;
6462
import org.eclipse.jface.text.codemining.ICodeMiningProvider;
6563
import org.eclipse.jface.text.contentassist.IContentAssistant;
@@ -546,12 +544,7 @@ public void configure(SourceViewerConfiguration configuration) {
546544
String[] types= configuration.getConfiguredContentTypes(this);
547545
for (String t : types) {
548546

549-
IAutoEditStrategy[] autoEditStrategies= configuration.getAutoEditStrategies(this, t);
550-
List<IAutoEditStrategy> autoEditStrategiesList= new ArrayList<>(Arrays.asList(autoEditStrategies));
551-
autoEditStrategiesList.add(new SurroundWithBracketsStrategy(this));
552-
IAutoEditStrategy[] newStrategies= autoEditStrategiesList.toArray(new IAutoEditStrategy[0]);
553-
554-
doSetAutoEditStrategies(newStrategies, t);
547+
doSetAutoEditStrategies(configuration.getAutoEditStrategies(this, t), t);
555548
setTextDoubleClickStrategy(configuration.getDoubleClickStrategy(this, t), t);
556549

557550
int[] stateMasks= configuration.getConfiguredTextHoverStateMasks(this, t);

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewerConfiguration.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package org.eclipse.jface.text.source;
1616

1717

18+
import java.util.ArrayList;
1819
import java.util.Arrays;
1920

2021
import org.eclipse.swt.SWT;
@@ -30,6 +31,7 @@
3031
import org.eclipse.jface.text.ITextHover;
3132
import org.eclipse.jface.text.ITextViewerExtension2;
3233
import org.eclipse.jface.text.IUndoManager;
34+
import org.eclipse.jface.text.SurroundWithBracketsStrategy;
3335
import org.eclipse.jface.text.TextViewerUndoManager;
3436
import org.eclipse.jface.text.codemining.ICodeMiningProvider;
3537
import org.eclipse.jface.text.contentassist.IContentAssistant;
@@ -190,7 +192,11 @@ public org.eclipse.jface.text.IAutoIndentStrategy getAutoIndentStrategy(ISourceV
190192
* @since 3.1
191193
*/
192194
public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
193-
return new IAutoEditStrategy[] { getAutoIndentStrategy(sourceViewer, contentType) };
195+
196+
IAutoEditStrategy[] autoEditStrategies= new IAutoEditStrategy[] { getAutoIndentStrategy(sourceViewer, contentType) };
197+
ArrayList<IAutoEditStrategy> autoEditStrategiesList= new ArrayList<>(Arrays.asList(autoEditStrategies));
198+
autoEditStrategiesList.add(new SurroundWithBracketsStrategy(sourceViewer));
199+
return autoEditStrategiesList.toArray(new IAutoEditStrategy[0]);
194200
}
195201

196202
/**

0 commit comments

Comments
 (0)