Forráskód Böngészése

#879 : just add brackets, do not add parameter and do not select the
first parameter

Johannes Dicks 9 éve
szülő
commit
4fa6825fc5

+ 10 - 39
plugins/org.yakindu.sct.model.stext.ui/src/org/yakindu/sct/model/stext/ui/contentassist/STextProposalProvider.java

@@ -45,7 +45,6 @@ import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
 
-import com.google.common.collect.Lists;
 import com.google.inject.Inject;
 
 /**
@@ -55,15 +54,9 @@ import com.google.inject.Inject;
  */
 public class STextProposalProvider extends AbstractSTextProposalProvider {
 
-	private static final String PARAMETER_TYPE_SEPERATOR = ":";
+	private static final int OPERATION_PATTERN_OP_PARAMS = 1;
 
-	private static final String PARAMETER_SEPERATOR = ",";
-
-	private static final int OPERATION_PATTERN_OP_PARAMS = 2;
-
-	private static final int OPERATION_PATTERN_OP_NAME = 1;
-
-	private static final Pattern OPERATION_PATTERN = Pattern.compile("(.*)\\((.*)\\)(.*)");
+	private static final Pattern OPERATION_PATTERN = Pattern.compile(".*\\((.*)\\).*");
 
 	@Inject
 	protected STextGrammarAccess grammarAccess;
@@ -216,35 +209,25 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 
 					Matcher matcher = OPERATION_PATTERN.matcher(configurableProposal.getDisplayString());
 					if (matcher.matches()) {
-						String[] parameterNames = getParameterNames(matcher);
-						if (parameterNames != null) {
-							reconfigureOperationProposal(configurableProposal, parameterNames, matcher.group(OPERATION_PATTERN_OP_NAME));
+						if (getParameterNames(matcher)) {
+							addBrackets(configurableProposal);
 						}
 					}
 				}
 				getDelegate().accept(proposal);
 			}
 
-			private String[] getParameterNames(Matcher matcher) {
+			private boolean getParameterNames(Matcher matcher) {
 				String parameterString = matcher.group(OPERATION_PATTERN_OP_PARAMS);
 				if (parameterString != null&&!parameterString.isEmpty()) {
-					List<String> parameterNames = Lists.newArrayList();
-					String[] parameterWithTypes = parameterString.split(PARAMETER_SEPERATOR);
-					for (String parameter : parameterWithTypes) {
-						parameterNames.add(parameter.split(PARAMETER_TYPE_SEPERATOR)[0].trim());
-					}
-					return parameterNames.toArray(new String[parameterNames.size()]);
+					return true;
 				}
-				return null;
+				return false;
 			}
 
-			private void reconfigureOperationProposal(ConfigurableCompletionProposal castedProposal,
-					String[] parameterNames, String operationName) {
-				String replacementString = operationName + getParameterReplacementString(parameterNames);
-				castedProposal.setReplacementString(replacementString);
-				// select the first parameter
-				castedProposal.setSelectionStart(castedProposal.getSelectionStart() + 1);
-				castedProposal.setSelectionLength(parameterNames[0].length());
+			private void addBrackets(ConfigurableCompletionProposal castedProposal) {
+				castedProposal.setReplacementString(castedProposal.getReplacementString() + "()");
+				castedProposal.setCursorPosition(castedProposal.getCursorPosition()+ 1);
 
 			}
 
@@ -252,18 +235,6 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 				String additionalProposalInfo = castedProposal.getAdditionalProposalInfo();
 				return additionalProposalInfo.contains(OperationDefinition.class.getSimpleName());
 			}
-
-			private String getParameterReplacementString(String[] parameters) {
-				String parameterReplacementString = "(";
-				boolean first = true;
-				for (String parameterName : parameters) {
-					if (!first)
-						parameterReplacementString += PARAMETER_SEPERATOR;
-					parameterReplacementString += parameterName;
-					first = false;
-				}
-				return parameterReplacementString + ")";
-			}
 		};
 		return operationParameterAcceptor;
 	}