[jboss-svn-commits] JBL Code SVN: r14230 - labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 14 20:52:24 EDT 2007
Author: pombredanne
Date: 2007-08-14 20:52:24 -0400 (Tue, 14 Aug 2007)
New Revision: 14230
Modified:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java
Log:
JBRULES-1080: Applied Macro processing on mvel compilable consequence (same as in MvelConsequenceBuilder) to have consequences with macros properly handled and compiled by MVEL. Fixed a related completion issue where the standard java proposal where NOT listed when requesting completion with a prefix at the begining of a new expression (in which case the available types should be listed)
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java 2007-08-15 00:49:32 UTC (rev 14229)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java 2007-08-15 00:52:24 UTC (rev 14230)
@@ -943,14 +943,13 @@
final Set proposals = new HashSet();
- if (!(getEditor() instanceof DRLRuleEditor)) {
- return proposals;
- }
+ if ( !(getEditor() instanceof DRLRuleEditor) ) {
+ return proposals;
+ }
- String compilableConsequence = CompletionUtil
- .getCompilableText(consequence);
- compilableConsequence = MVELConsequenceBuilder
- .delimitExpressions(compilableConsequence);
+ String compilableConsequence = CompletionUtil.getCompilableText( consequence );
+ MVELConsequenceBuilder builder = new MVELConsequenceBuilder();
+ compilableConsequence = builder.processMacros( compilableConsequence );
// attempt to compile and analyze
@@ -958,11 +957,12 @@
DRLInfo drlInfo = DroolsEclipsePlugin.getDefault().parseResource(
(DRLRuleEditor) getEditor(), true, true);
- ParserContext compilationContext = createMvelAnalysisContext(
- params, drlInfo, compilableConsequence);
+ ParserContext compilationContext = createMvelAnalysisContext( params,
+ drlInfo,
+ compilableConsequence );
if (startOfExpression) {
- Collection jdtProps = getJavaMvelCompletionProposals(documentOffset, "", prefix, params);
+ Collection jdtProps = getJavaCompletionProposals(documentOffset, prefix, prefix, params);
proposals.addAll(jdtProps);
addMvelCompletions( proposals,
@@ -988,11 +988,13 @@
//FIXME: there is a small chance of var name collision using this arbitrary mvdrlofc as a variable name.
//ideally the varibale name should be inferred from the last memeber of the expression
String syntheticVarName = "mvdrlofc";
- String javaText = "\n" + lastType.getName().replace( '$', '.' ) + " " + syntheticVarName +
- ";\n" + syntheticVarName + ".";
- Collection jdtProps = getJavaMvelCompletionProposals(
- documentOffset, javaText, prefix, params);
- proposals.addAll(jdtProps);
+ String javaText = "\n" + lastType.getName().replace( '$',
+ '.' ) + " " + syntheticVarName + ";\n" + syntheticVarName + ".";
+ Collection jdtProps = getJavaMvelCompletionProposals( documentOffset,
+ javaText,
+ prefix,
+ params );
+ proposals.addAll( jdtProps );
}
}
@@ -1056,6 +1058,9 @@
ParserContext compilationContext = compiler.getParserContextState();
Class lastType = expression.getKnownEgressType();
+ if (lastType == null) {
+ lastType =Object.class;
+ }
context.setMvelReturnedType( lastType );
More information about the jboss-svn-commits
mailing list