Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2003-10-06 17:28:35 +0000
committerDani Megert2003-10-06 17:28:35 +0000
commit94fc937790fd97256344971b5e979af5a2c3f193 (patch)
tree487d6286e152251e585be015a95c83198a0ae928 /org.eclipse.ui.workbench.texteditor
parent307095c68510a301bdb50e314631ae66de221b9c (diff)
downloadeclipse.platform.text-94fc937790fd97256344971b5e979af5a2c3f193.tar.gz
eclipse.platform.text-94fc937790fd97256344971b5e979af5a2c3f193.tar.xz
eclipse.platform.text-94fc937790fd97256344971b5e979af5a2c3f193.zip
Firs cut of strings for regex content assist
Diffstat (limited to 'org.eclipse.ui.workbench.texteditor')
-rw-r--r--org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/EditorMessages.properties112
-rw-r--r--org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/RegExContentAssistProcessor.java205
2 files changed, 246 insertions, 71 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/EditorMessages.properties b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/EditorMessages.properties
index f76b0d5bb53..dcdfa642bfb 100644
--- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/EditorMessages.properties
+++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/EditorMessages.properties
@@ -344,3 +344,115 @@ AbstractDocumentProvider.error=ERROR
FindReplaceDialog.read_only=Replace can not be performed because of read only state.
MarkRegionTarget.markNotSet=mark not set
MarkRegionTarget.markNotVisible=mark not in visible region
+
+## Content Assist for regular expressions ##
+FindReplace.regExContentAssist.displayString.\\\\= Backslash
+FindReplace.regExContentAssist.additionalInfo.\\\\= \\\\
+FindReplace.regExContentAssist.displayString.\\0= Octal charcter code
+FindReplace.regExContentAssist.additionalInfo.\\0= \\0
+FindReplace.regExContentAssist.displayString.\\x= Hex character code
+FindReplace.regExContentAssist.additionalInfo.\\x= \\x
+FindReplace.regExContentAssist.displayString.\\u= Hex code of double-byte character
+FindReplace.regExContentAssist.additionalInfo.\\u= \\u
+FindReplace.regExContentAssist.displayString.\\t= Tab
+FindReplace.regExContentAssist.additionalInfo.\\t= \\t
+FindReplace.regExContentAssist.displayString.\\n= Newline
+FindReplace.regExContentAssist.additionalInfo.\\n= \\n
+FindReplace.regExContentAssist.displayString.\\r= CR
+FindReplace.regExContentAssist.additionalInfo.\\r= \\r
+FindReplace.regExContentAssist.displayString.\\f= LF
+FindReplace.regExContentAssist.additionalInfo.\\f= \\f
+FindReplace.regExContentAssist.displayString.\\a= Beep
+FindReplace.regExContentAssist.additionalInfo.\\a= \\a
+FindReplace.regExContentAssist.displayString.\\e= Esc
+FindReplace.regExContentAssist.additionalInfo.\\e= \\e
+FindReplace.regExContentAssist.displayString.\\c= Control character
+FindReplace.regExContentAssist.additionalInfo.\\c= \\c
+FindReplace.regExContentAssist.displayString..= Any character
+FindReplace.regExContentAssist.additionalInfo..= .
+FindReplace.regExContentAssist.displayString.\\d= A digit
+FindReplace.regExContentAssist.additionalInfo.\\d= \\d
+FindReplace.regExContentAssist.displayString.\\D= Not a digit
+FindReplace.regExContentAssist.additionalInfo.\\D= \\D
+FindReplace.regExContentAssist.displayString.\\s= A whitespace
+FindReplace.regExContentAssist.additionalInfo.\\s= \\s
+FindReplace.regExContentAssist.displayString.\\S= Not a whitespace
+FindReplace.regExContentAssist.additionalInfo.\\S= \\S
+FindReplace.regExContentAssist.displayString.\\w= Alphanumeric
+FindReplace.regExContentAssist.additionalInfo.\\w= \\w
+FindReplace.regExContentAssist.displayString.\\W= Not an alphanumeric
+FindReplace.regExContentAssist.additionalInfo.\\W= \\W
+FindReplace.regExContentAssist.displayString.?= Greedy match 0 or 1 times
+FindReplace.regExContentAssist.additionalInfo.?= ?
+FindReplace.regExContentAssist.displayString.*= Greedy match 0 or more times
+FindReplace.regExContentAssist.additionalInfo.*= *
+FindReplace.regExContentAssist.displayString.+= Greedy match 1 or more times
+FindReplace.regExContentAssist.additionalInfo.+= +
+FindReplace.regExContentAssist.displayString.{n}= Greedy match exactly n times
+FindReplace.regExContentAssist.additionalInfo.{n}= {n}
+FindReplace.regExContentAssist.displayString.{n,}= Greedy match >= n times
+FindReplace.regExContentAssist.additionalInfo.{n,}= {n,}
+FindReplace.regExContentAssist.displayString.{n,m}= Greedy match >= n times but <= m times
+FindReplace.regExContentAssist.additionalInfo.{n,m}= {n,m}
+FindReplace.regExContentAssist.displayString.??= Match 0 or 1 times (left to right)
+FindReplace.regExContentAssist.additionalInfo.??= ??
+FindReplace.regExContentAssist.displayString.*?= Match 0 or more times (left to right)
+FindReplace.regExContentAssist.additionalInfo.*?= *?
+FindReplace.regExContentAssist.displayString.+?= Match 1 or more times (left to right)
+FindReplace.regExContentAssist.additionalInfo.+?= +?
+FindReplace.regExContentAssist.displayString.{n}?= Match exactly n times (left to right)
+FindReplace.regExContentAssist.additionalInfo.{n}?= {n}?
+FindReplace.regExContentAssist.displayString.{n,}?= Match >= n times (left to right)
+FindReplace.regExContentAssist.additionalInfo.{n,}?= {n,}?
+FindReplace.regExContentAssist.displayString.{n,m}?= Match >= n times but <= m times (left to right)
+FindReplace.regExContentAssist.additionalInfo.{n,m}?= {n,m}?
+FindReplace.regExContentAssist.displayString.?+= Match 0 or 1 times compared to full text
+FindReplace.regExContentAssist.additionalInfo.?+= ?+
+FindReplace.regExContentAssist.displayString.*+= Match 0 or more times compared to full text
+FindReplace.regExContentAssist.additionalInfo.*+= *+
+FindReplace.regExContentAssist.displayString.++= Match 1 or more times compared to full text
+FindReplace.regExContentAssist.additionalInfo.++= ++
+FindReplace.regExContentAssist.displayString.{n}+= Match exactly n times compared to full text
+FindReplace.regExContentAssist.additionalInfo.{n}+= {n}+
+FindReplace.regExContentAssist.displayString.{n,}+= Match exactly n times compared to to full text
+FindReplace.regExContentAssist.additionalInfo.{n,}+= {n,}+
+FindReplace.regExContentAssist.displayString.{n,m}+= Match >= n times but <= m times compared to to full text
+FindReplace.regExContentAssist.additionalInfo.{n,m}+= {n,m}+
+FindReplace.regExContentAssist.displayString.UV= U and V
+FindReplace.regExContentAssist.additionalInfo.UV= UV
+FindReplace.regExContentAssist.displayString.U|V= U or V
+FindReplace.regExContentAssist.additionalInfo.U|V= U|V
+FindReplace.regExContentAssist.displayString.(U)= Mark U as capturing group
+FindReplace.regExContentAssist.additionalInfo.(U)= (U)
+FindReplace.regExContentAssist.displayString.\\n= Match of the capturing group n
+FindReplace.regExContentAssist.additionalInfo.\\n= \\n
+FindReplace.regExContentAssist.displayString.\\= Quote next character
+FindReplace.regExContentAssist.additionalInfo.\\= \\
+FindReplace.regExContentAssist.displayString.\\Q= Start quoting
+FindReplace.regExContentAssist.additionalInfo.\\Q= \\Q
+FindReplace.regExContentAssist.displayString.\\E= End quoting
+FindReplace.regExContentAssist.additionalInfo.\\E= \\E
+FindReplace.regExContentAssist.displayString.[ecq]= Character set
+FindReplace.regExContentAssist.additionalInfo.[ecq]= Example: [ecq]
+FindReplace.regExContentAssist.displayString.[^ecq]= Excluded character set
+FindReplace.regExContentAssist.additionalInfo.[^ecq]= Example: [^ecq]
+FindReplace.regExContentAssist.displayString.[e-q]= Character range
+FindReplace.regExContentAssist.additionalInfo.[e-q]= Example: [e-q]
+FindReplace.regExContentAssist.displayString.&&= Intersection of character sets
+FindReplace.regExContentAssist.additionalInfo.&&= Example: [e-q&&[def]]
+FindReplace.regExContentAssist.displayString.^= Line start
+FindReplace.regExContentAssist.additionalInfo.^= ^
+FindReplace.regExContentAssist.displayString.$= Line end
+FindReplace.regExContentAssist.additionalInfo.$= $
+FindReplace.regExContentAssist.displayString.\\b= Word beginning or end
+FindReplace.regExContentAssist.additionalInfo.\\b= \\b
+FindReplace.regExContentAssist.displayString.\\B= Not a word beginning or end
+FindReplace.regExContentAssist.additionalInfo.\\B= \\B
+FindReplace.regExContentAssist.displayString.\\A= Start of input
+FindReplace.regExContentAssist.additionalInfo.\\A= \\A
+FindReplace.regExContentAssist.displayString.\\G= Previous match's end
+FindReplace.regExContentAssist.additionalInfo.\\G= \\G
+FindReplace.regExContentAssist.displayString.\\Z= \\Z
+FindReplace.regExContentAssist.additionalInfo.\\Z= \\Z
+FindReplace.regExContentAssist.displayString.\\z= End of input
+FindReplace.regExContentAssist.additionalInfo.\\z= \\z
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/RegExContentAssistProcessor.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/RegExContentAssistProcessor.java
index bdfa2e59f5a..8de2cbcc3c0 100644
--- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/RegExContentAssistProcessor.java
+++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/RegExContentAssistProcessor.java
@@ -19,7 +19,6 @@ import java.util.List;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ContextInformation;
import org.eclipse.jface.text.contentassist.ContextInformationValidator;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
@@ -50,20 +49,17 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
//---------- Proposal Keys ----------
- fgProposalKeys.add("x"); //$NON-NLS-1$
fgProposalKeys.add("\\\\"); //$NON-NLS-1$
- fgProposalKeys.add("\\0n"); //$NON-NLS-1$
- fgProposalKeys.add("\\0n"); //$NON-NLS-1$
- fgProposalKeys.add("\\0mnn"); //$NON-NLS-1$
- fgProposalKeys.add("\\xhh"); //$NON-NLS-1$
- fgProposalKeys.add("\\uhhh"); //$NON-NLS-1$
+ fgProposalKeys.add("\\0"); //$NON-NLS-1$
+ fgProposalKeys.add("\\x"); //$NON-NLS-1$
+ fgProposalKeys.add("\\u"); //$NON-NLS-1$
fgProposalKeys.add("\\t"); //$NON-NLS-1$
fgProposalKeys.add("\\n"); //$NON-NLS-1$
fgProposalKeys.add("\\r"); //$NON-NLS-1$
fgProposalKeys.add("\\f"); //$NON-NLS-1$
fgProposalKeys.add("\\a"); //$NON-NLS-1$
fgProposalKeys.add("\\e"); //$NON-NLS-1$
- fgProposalKeys.add("\\cx"); //$NON-NLS-1$
+ fgProposalKeys.add("\\c"); //$NON-NLS-1$
fgProposalKeys.add("."); //$NON-NLS-1$
fgProposalKeys.add("\\d"); //$NON-NLS-1$
@@ -73,59 +69,94 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
fgProposalKeys.add("\\w"); //$NON-NLS-1$
fgProposalKeys.add("\\W"); //$NON-NLS-1$
- fgProposalKeys.add("[abc]"); //$NON-NLS-1$
- fgProposalKeys.add("[^abc]"); //$NON-NLS-1$
- fgProposalKeys.add("[a-zA-Z]"); //$NON-NLS-1$
- fgProposalKeys.add("[a-d[m-p]]"); //$NON-NLS-1$
- fgProposalKeys.add("[a-z&&[def]]"); //$NON-NLS-1$
- fgProposalKeys.add("[a-z&&[^bc]]"); //$NON-NLS-1$
- fgProposalKeys.add("[a-z&&[^m-p]]"); //$NON-NLS-1$
-
- fgProposalKeys.add("\\p{Lower}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Upper}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{ASCII}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Alpha}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Digit}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Alnum}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Punct}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Graph}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Print}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Blank}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Cntrl}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{XDigit}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Space}"); //$NON-NLS-1$
-
- fgProposalKeys.add("\\p{InGreek}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Lu}"); //$NON-NLS-1$
- fgProposalKeys.add("\\p{Sc}"); //$NON-NLS-1$
- fgProposalKeys.add("\\P{InGreek}"); //$NON-NLS-1$
- fgProposalKeys.add("[\\p{L}&&[^\\p{Lu}]"); //$NON-NLS-1$
-
fgProposalKeys.add("^"); //$NON-NLS-1$
fgProposalKeys.add("$"); //$NON-NLS-1$
fgProposalKeys.add("\\b"); //$NON-NLS-1$
fgProposalKeys.add("\\B"); //$NON-NLS-1$
fgProposalKeys.add("\\A"); //$NON-NLS-1$
fgProposalKeys.add("\\G"); //$NON-NLS-1$
- fgProposalKeys.add("\\Z"); //$NON-NLS-1$
+// fgProposalKeys.add("\\Z"); //$NON-NLS-1$
fgProposalKeys.add("\\z"); //$NON-NLS-1$
+ fgProposalKeys.add("?"); //$NON-NLS-1$
+ fgProposalKeys.add("*"); //$NON-NLS-1$
+ fgProposalKeys.add("+"); //$NON-NLS-1$
+ fgProposalKeys.add("{n}"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,}"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,m}"); //$NON-NLS-1$
+
+ fgProposalKeys.add("??"); //$NON-NLS-1$
+ fgProposalKeys.add("*?"); //$NON-NLS-1$
+ fgProposalKeys.add("+?"); //$NON-NLS-1$
+ fgProposalKeys.add("{n}?"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,}?"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,m}?"); //$NON-NLS-1$
+
+ fgProposalKeys.add("?+"); //$NON-NLS-1$
+ fgProposalKeys.add("*+"); //$NON-NLS-1$
+ fgProposalKeys.add("++"); //$NON-NLS-1$
+ fgProposalKeys.add("{n}+"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,}+"); //$NON-NLS-1$
+ fgProposalKeys.add("{n,m}+"); //$NON-NLS-1$
+
+ fgProposalKeys.add("UV"); //$NON-NLS-1$
+ fgProposalKeys.add("U|V"); //$NON-NLS-1$
+ fgProposalKeys.add("(U)"); //$NON-NLS-1$
+
+ fgProposalKeys.add("\\n"); //$NON-NLS-1$
+
+ fgProposalKeys.add("\\"); //$NON-NLS-1$
+ fgProposalKeys.add("\\Q"); //$NON-NLS-1$
+ fgProposalKeys.add("\\E"); //$NON-NLS-1$
+
+ fgProposalKeys.add("[ecq]"); //$NON-NLS-1$
+ fgProposalKeys.add("[^ecq]"); //$NON-NLS-1$
+ fgProposalKeys.add("[e-q]"); //$NON-NLS-1$
+ fgProposalKeys.add("&&"); //$NON-NLS-1$
+
+// fgProposalKeys.add("\\p{Lower}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Upper}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{ASCII}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Alpha}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Digit}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Alnum}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Punct}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Graph}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Print}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Blank}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Cntrl}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{XDigit}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Space}"); //$NON-NLS-1$
+//
+// fgProposalKeys.add("\\p{InGreek}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Lu}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\p{Sc}"); //$NON-NLS-1$
+// fgProposalKeys.add("\\P{InGreek}"); //$NON-NLS-1$
+// fgProposalKeys.add("[\\p{L}&&[^\\p{Lu}]"); //$NON-NLS-1$
+
+// fgProposalKeys.add("(?idmsux-idmsux)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?idmsux-idmsux:U)"); //$NON-NLS-1$
+
+// fgProposalKeys.add("(?:U)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?=U)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?!U)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?<=U)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?<!U)"); //$NON-NLS-1$
+// fgProposalKeys.add("(?>U)"); //$NON-NLS-1$
+
//---------- Proposals ----------
- fgProposalStrings.put("x", "x"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\\\", "\\\\"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\0n", "\\0n"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\0nn", "\\0n"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\0mnn", "\\0mnn"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\xhh", "\\xhh"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\uhhh", "\\uhhh"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\0", "\\0"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\x", "\\x"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\u", "\\u"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\t", "\\t"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\n", "\\n"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\r", "\\r"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\f", "\\f"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\a", "\\a"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\e", "\\e"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\cx", "\\cx"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\c", "\\c"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put(".", "."); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\d", "\\d"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -134,14 +165,50 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
fgProposalStrings.put("\\S", "\\S"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\w", "\\w"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\W", "\\W"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("^", "^"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("$", "$"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\b", "\\b"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\B", "\\B"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\A", "\\A"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\G", "\\G"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\Z", "\\Z"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\z", "\\z"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("?", "?"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("*", "*"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("+", "+"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n}", "{}"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,}", "{,}"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,m}", "{,}"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("??", "??"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("*?", "*?"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("+?", "+?"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n}?", "{}?"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,}?", "{,}?"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,m}?", "{,}?"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("?+", "?+"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("*+", "*+"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("++", "++"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n}+", "{}+"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,}+", "{,}+"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("{n,m}+", "{,}+"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("UV", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("U|V", "|"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(U)", "()"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("\\n", "\\"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ fgProposalStrings.put("\\", "\\"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\Q", "\\Q"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("\\E", "\\E"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[abc]", "[abc]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[^abc]", "[^abc]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[a-zA-Z]", "[a-zA-Z]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[a-d[m-p]]", "[a-d[m-p]]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[a-z&&[def]]", "[a-z&&[def]]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[a-z&&[^bc]]", "[a-z&&[^bc]]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("[a-z&&[^m-p]]", "[a-z&&[^bc]]"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("[ecq]", "[]"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("[^ecq]", "^"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("[e-q]", "[]"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("&&", "&&"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\p{Lower}", "\\p{Lower}"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("\\p{Upper}", "\\p{Upper}"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -163,14 +230,14 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
fgProposalStrings.put("\\P{InGreek}", "\\P{InGreek}"); //$NON-NLS-1$ //$NON-NLS-2$
fgProposalStrings.put("[\\p{L}&&[^\\p{Lu}]","[\\p{L}&&[^\\p{Lu}]"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("^", "^"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("$", "$"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\b", "\\b"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\B", "\\B"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\A", "\\A"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\G", "\\G"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\Z", "\\Z"); //$NON-NLS-1$ //$NON-NLS-2$
- fgProposalStrings.put("\\z", "\\z"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?:U)", "(?:)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?idmsux-idmsux)", "(?)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?idmsux-idmsux:U)", "(?:)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?=U)", "(?=)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?!U)", "(?!)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?<=U)", "(?<=)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?<!U)", "(?<!)"); //$NON-NLS-1$ //$NON-NLS-2$
+ fgProposalStrings.put("(?>U)", "(?>)"); //$NON-NLS-1$ //$NON-NLS-2$
}
/**
@@ -196,7 +263,7 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
* @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
*/
public char[] getCompletionProposalAutoActivationCharacters() {
- return new char[] {'\\', '['};
+ return new char[] {'\\', '[', '('};
}
/*
@@ -257,7 +324,7 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
} catch (BadLocationException e) {
return ;
}
- if (selection == null || selection.length() == 0 || proposal.charAt(0) != selection.charAt(0))
+ if (selection == null || selection.length() == 0 || proposal.length() == 0 || proposal.charAt(0) != selection.charAt(0))
return;
proposal= proposal.substring(1);
@@ -267,24 +334,20 @@ final class RegExContentAssistProcessor implements IContentAssistProcessor, ICon
String additionalInfo= getString(proposalKey, "additionalInfo"); //$NON-NLS-1$
IContextInformation info= createContextInformation(proposalKey);
- // Move cursor on to the left if the proposal ends with '}'
+// // Move cursor on to the left if the proposal ends with '}'
int relativeOffset= proposal.length();
- if (relativeOffset > 0 && proposal.charAt(relativeOffset - 1) == '}')
- relativeOffset--;
+ // XXX: currently there's no smartness: position the cursor after the proposal
+// if (relativeOffset > 0 && proposal.charAt(relativeOffset - 1) == '}')
+// relativeOffset--;
results.add(new CompletionProposal(proposal, documentOffset, 0, Math.max(0, relativeOffset), null, displayString, info, additionalInfo));
-
}
private IContextInformation createContextInformation(String proposalKey) {
- String contextDisplayInfo= getString(proposalKey, "contextDisplayInfo"); //$NON-NLS-1$
- String contextInfo= getString(proposalKey, "contextInfo"); //$NON-NLS-1$
- return new ContextInformation(contextDisplayInfo, contextInfo);
+ return null;
}
private String getString(String proposalKey, String type) {
- // FIXME: must get string from properties file
- return proposalKey + "." + type;
-// return EditorMessages.getString("RegExProposal." + proposalKey + "." + type);
+ return EditorMessages.getString("FindReplace.regExContentAssist." + type + "." + proposalKey); //$NON-NLS-1$//$NON-NLS-2$
}
}

Back to the top