]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/MatchingBracketsEditStrategy.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor / MatchingBracketsEditStrategy.java
1 package org.simantics.scl.ui.editor;\r
2 \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
6 \r
7 public class MatchingBracketsEditStrategy implements IAutoEditStrategy {\r
8 \r
9         char justAddedClosingBracket = (char)0;\r
10         \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
14                                 c.text = "()";\r
15                                 justAddedClosingBracket = ')';\r
16                         }\r
17                         else if(c.text.equals("[")) {\r
18                                 c.text = "[]";\r
19                                 justAddedClosingBracket = ']';\r
20                         }\r
21                         else {\r
22                                 if(c.text.length() == 1 && c.text.charAt(0) == justAddedClosingBracket) {\r
23                                         c.text = "";\r
24                                         c.shiftsCaret = false;\r
25                                         c.caretOffset = c.offset+1;\r
26                                 }\r
27                                 justAddedClosingBracket = (char)0;\r
28                                 return;\r
29                         }\r
30                         \r
31                         // Puts caret between brackets\r
32                         c.caretOffset = c.offset+1;\r
33                         c.shiftsCaret = false;                  \r
34                 }               \r
35                 else\r
36                         justAddedClosingBracket = (char)0;\r
37         }\r
38         \r
39 }\r