[jboss-svn-commits] JBL Code SVN: r5162 - labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 18 19:32:46 EDT 2006
Author: KrisVerlaenen
Date: 2006-07-18 19:32:45 -0400 (Tue, 18 Jul 2006)
New Revision: 5162
Modified:
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java
Log:
JBRULES-376: Add Java code completion for consequences, eval and functions
- only suggest functions and assert/retract keywords in consequences at
the beginning of a new Java statement
- filter out clone() and other standard object methods at the beginning of a
new Java statement
- code completion also works immediate after a ;
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java 2006-07-18 22:46:06 UTC (rev 5161)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java 2006-07-18 23:32:45 UTC (rev 5162)
@@ -46,6 +46,7 @@
private static final Pattern FUNCTION_PATTERN = Pattern.compile( ".*\n\\W*function\\s+(\\S+)\\s+(\\S+)\\s*\\(([^\\)]*)\\)\\s*\\{([^\\}]*)", Pattern.DOTALL);
protected static final Image VARIABLE_ICON = DroolsPluginImages.getImage(DroolsPluginImages.VARIABLE);
protected static final Image methodIcon = DroolsPluginImages.getImage(DroolsPluginImages.METHOD);
+ protected static final Pattern START_OF_NEW_JAVA_STATEMENT = Pattern.compile(".*[;{}]\\s*", Pattern.DOTALL);
public DefaultCompletionProcessor(DRLRuleEditor editor) {
super(editor);
@@ -174,7 +175,7 @@
char[] c = prefix.toCharArray();
int start = 0;
for (int i = c.length - 1; i >=0; i-- ) {
- if (Character.isWhitespace(c[i]) || c[i] == '(' || c[i] == ':' || c[i] == '=' || c[i] == '<' || c[i] == '>' || c[i] == '.' || c[i] == '{' || c[i] == '}') {
+ if (Character.isWhitespace(c[i]) || c[i] == '(' || c[i] == ':' || c[i] == ';' || c[i] == '=' || c[i] == '<' || c[i] == '>' || c[i] == '.' || c[i] == '{' || c[i] == '}') {
start = i + 1;
break;
}
@@ -202,7 +203,8 @@
break;
case CompletionProposal.METHOD_REF:
// TODO: Object methods are proposed when in the start of a line
- if ("".equals(javaText)) {
+ String javaTextWithoutPrefix = javaText.substring(0, javaText.length() - prefix.length());
+ if ("".equals(javaTextWithoutPrefix.trim()) || START_OF_NEW_JAVA_STATEMENT.matcher(javaTextWithoutPrefix).matches()) {
return;
}
prop.setImage(methodIcon);
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java 2006-07-18 22:46:06 UTC (rev 5161)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java 2006-07-18 23:32:45 UTC (rev 5162)
@@ -51,6 +51,7 @@
private static final Image droolsIcon = DroolsPluginImages.getImage(DroolsPluginImages.DROOLS);
private static final Image dslIcon = DroolsPluginImages.getImage( DroolsPluginImages.DSL_EXPRESSION );
private static final Image classIcon = DroolsPluginImages.getImage(DroolsPluginImages.CLASS);
+ private static final Pattern START_OF_CONSEQUENCE = Pattern.compile(".*then\\s*", Pattern.DOTALL);
public RuleCompletionProcessor(DRLRuleEditor editor) {
super(editor);
@@ -72,19 +73,15 @@
if (consequence(backText)) {
List dslConsequences = adapter.listConsequenceItems();
- addDSLProposals( list,
- prefix,
- dslConsequences );
+ addDSLProposals(list, prefix, dslConsequences);
if (!adapter.hasConsequences()) {
-
-
- addRHSCompletionProposals( list,
- prefix );
-
- addRHSFunctionCompletionProposals( viewer,
- list,
- prefix );
-
+ // only add functions and keywords if at the beginning of a new statement
+ String backTextWithoutPrefix = backText.substring(0, backText.length() - prefix.length());
+ if (START_OF_CONSEQUENCE.matcher(backTextWithoutPrefix).matches()
+ || START_OF_NEW_JAVA_STATEMENT.matcher(backTextWithoutPrefix).matches()) {
+ addRHSCompletionProposals(list, prefix);
+ addRHSFunctionCompletionProposals(viewer, list, prefix);
+ }
addRHSJavaCompletionProposals(list, backText, prefix);
}
} else if (condition(backText) || query(backText)) {
More information about the jboss-svn-commits
mailing list