1 package org.simantics.scl.ui.editor;
\r
3 import org.eclipse.jface.text.DocumentCommand;
\r
4 import org.eclipse.jface.text.IAutoEditStrategy;
\r
5 import org.eclipse.jface.text.IDocument;
\r
7 public class MatchingBracketsEditStrategy implements IAutoEditStrategy {
\r
9 char justAddedClosingBracket = (char)0;
\r
11 public void customizeDocumentCommand(IDocument d, DocumentCommand c) {
\r
12 if (c.length == 0 && c.text != null) {
\r
13 if(c.text.equals("(")) {
\r
15 justAddedClosingBracket = ')';
\r
17 else if(c.text.equals("[")) {
\r
19 justAddedClosingBracket = ']';
\r
22 if(c.text.length() == 1 && c.text.charAt(0) == justAddedClosingBracket) {
\r
24 c.shiftsCaret = false;
\r
25 c.caretOffset = c.offset+1;
\r
27 justAddedClosingBracket = (char)0;
\r
31 // Puts caret between brackets
\r
32 c.caretOffset = c.offset+1;
\r
33 c.shiftsCaret = false;
\r
36 justAddedClosingBracket = (char)0;
\r