[jboss-svn-commits] JBL Code SVN: r5163 - labs/jbossrules/branches/3.0.x/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:36:16 EDT 2006
Author: KrisVerlaenen
Date: 2006-07-18 19:36:14 -0400 (Tue, 18 Jul 2006)
New Revision: 5163
Modified:
labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java
labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java
Log:
JBRULES-376: Add Java code completion for consequences, eval and functions
- 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/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java 2006-07-18 23:32:45 UTC (rev 5162)
+++ labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/DefaultCompletionProcessor.java 2006-07-18 23:36:14 UTC (rev 5163)
@@ -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/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java 2006-07-18 23:32:45 UTC (rev 5162)
+++ labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/completion/RuleCompletionProcessor.java 2006-07-18 23:36:14 UTC (rev 5163)
@@ -51,8 +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 END_OF_STATEMENT1 = Pattern.compile(".*then\\s*", Pattern.DOTALL);
- private static final Pattern END_OF_STATEMENT2 = Pattern.compile(".*[;{}]\\s*", Pattern.DOTALL);
+ private static final Pattern START_OF_CONSEQUENCE = Pattern.compile(".*then\\s*", Pattern.DOTALL);
public RuleCompletionProcessor(DRLRuleEditor editor) {
super(editor);
@@ -78,8 +77,8 @@
if (!adapter.hasConsequences()) {
// only add functions and keywords if at the beginning of a new statement
String backTextWithoutPrefix = backText.substring(0, backText.length() - prefix.length());
- if (END_OF_STATEMENT1.matcher(backTextWithoutPrefix).matches()
- || END_OF_STATEMENT2.matcher(backTextWithoutPrefix).matches()) {
+ if (START_OF_CONSEQUENCE.matcher(backTextWithoutPrefix).matches()
+ || START_OF_NEW_JAVA_STATEMENT.matcher(backTextWithoutPrefix).matches()) {
addRHSCompletionProposals(list, prefix);
addRHSFunctionCompletionProposals(viewer, list, prefix);
}
More information about the jboss-svn-commits
mailing list