diff options
author | Dani Megert | 2003-10-06 17:28:35 +0000 |
---|---|---|
committer | Dani Megert | 2003-10-06 17:28:35 +0000 |
commit | 94fc937790fd97256344971b5e979af5a2c3f193 (patch) | |
tree | 487d6286e152251e585be015a95c83198a0ae928 /org.eclipse.ui.workbench.texteditor | |
parent | 307095c68510a301bdb50e314631ae66de221b9c (diff) | |
download | eclipse.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')
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$ } } |