Kaynağa Gözat

#118 added "import" to the list of supressed words in
STextProposalProvider, added decumentation for "as".

bohl 10 yıl önce
ebeveyn
işleme
ec3ceb9eff

+ 14 - 0
plugins/org.yakindu.sct.doc.user/help/04_Reference/reference.textile

@@ -423,6 +423,20 @@ p.
 
 ==<!-- End stext_keyword_valueof -->==
 
+
+==<!-- Start stext_keyword_as -->==
+
+h4(#as). as
+
+Casting of an variable. Example: Casting an Integer to a real value.
+
+bc(prettyprint).. 
+myReal = 12 as real
+p. 
+
+==<!-- End stext_keyword_as -->==
+
+
 ==<!-- Start stext_keyword_active -->==
 
 h4(#activestate). active(state)

+ 61 - 32
plugins/org.yakindu.sct.model.stext.ui/src/org/yakindu/sct/model/stext/ui/contentassist/STextProposalProvider.java

@@ -14,6 +14,7 @@ package org.yakindu.sct.model.stext.ui.contentassist;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -66,49 +67,29 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 	public void completeKeyword(Keyword keyword, ContentAssistContext contentAssistContext,
 			ICompletionProposalAcceptor acceptor) {
 		List<Keyword> suppressKeywords = new ArrayList<Keyword>();
-		// context Transition
-		if (contentAssistContext.getRootModel() instanceof TransitionSpecification) {
-			suppressKeywords.addAll(getKeywords(grammarAccess.getEntryEventAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getExitEventAccess().getGroup().eContents()));
-		}
-		// context States
-		else if (contentAssistContext.getRootModel() instanceof SimpleScope) {
-			suppressKeywords.addAll(getKeywords(grammarAccess.getVariableDefinitionAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getEventDefinitionAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getDirectionAccess().getAlternatives().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getOperationDefinitionAccess().getGroup().eContents()));
-		}
-		// context Statechart
-		else if (contentAssistContext.getRootModel() instanceof StatechartSpecification) {
-			suppressKeywords.addAll(getKeywords(grammarAccess.getExitEventAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getEntryEventAccess().getGroup().eContents()));
+
+		EObject rootModel = contentAssistContext.getRootModel();
+		if (rootModel instanceof TransitionSpecification) {
+			suppressKeywords(suppressKeywords, (TransitionSpecification) rootModel);
+		} else if (rootModel instanceof SimpleScope) {
+			suppressKeywords(suppressKeywords, (SimpleScope) rootModel);
+		} else if (rootModel instanceof StatechartSpecification) {
+			suppressKeywords(suppressKeywords, (StatechartSpecification) rootModel);
 		}
 
 		EObject currentModel = contentAssistContext.getCurrentModel();
 		if (currentModel instanceof InterfaceScope) {
-			suppressKeywords.addAll(getKeywords(grammarAccess.getLocalReactionAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getAlwaysEventAccess().getGroup().eContents()));
-			suppressKeywords.addAll(getKeywords(grammarAccess.getTimeEventTypeAccess().getAlternatives().eContents()));
-			suppressKeywords.add(grammarAccess.getDirectionAccess().getLOCALLocalKeyword_0_0());
+			suppressKeywords(suppressKeywords, (InterfaceScope) currentModel);
 		}
 
 		if (currentModel instanceof FeatureCall) {
-			FeatureCall featureCall = (FeatureCall) currentModel;
-			if (!(featureCall.getFeature() instanceof Operation)) {
-				suppressKeywords.add(grammarAccess.getFeatureCallAccess()
-						.getOperationCallLeftParenthesisKeyword_1_3_0_0());
-			}
+			suppressKeywords(suppressKeywords, (FeatureCall) currentModel);
 		}
 		if (currentModel instanceof ElementReferenceExpression) {
-			ElementReferenceExpression referenceExpression = (ElementReferenceExpression) currentModel;
-			if (!(referenceExpression.getReference() instanceof Operation)) {
-				suppressKeywords.add(grammarAccess.getElementReferenceExpressionAccess()
-						.getOperationCallLeftParenthesisKeyword_2_0_0());
-			}
+			suppressKeywords(suppressKeywords, (ElementReferenceExpression) currentModel);
 		}
 		if (currentModel instanceof InternalScope) {
-			suppressKeywords.add(grammarAccess.getDirectionAccess().getINInKeyword_1_0());
-			suppressKeywords.add(grammarAccess.getDirectionAccess().getOUTOutKeyword_2_0());
+			suppressKeywords(suppressKeywords, (InternalScope) currentModel);
 		}
 
 		if (!suppressKeywords.contains(keyword)) {
@@ -117,6 +98,54 @@ public class STextProposalProvider extends AbstractSTextProposalProvider {
 		}
 	}
 
+	// context Transition
+	private void suppressKeywords(List<Keyword> suppressKeywords, TransitionSpecification model) {
+		suppressKeywords.addAll(getKeywords(grammarAccess.getEntryEventAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getExitEventAccess().getGroup().eContents()));
+	}
+
+	// context States
+	private void suppressKeywords(List<Keyword> suppressKeywords, SimpleScope model) {
+		suppressKeywords.addAll(getKeywords(grammarAccess.getVariableDefinitionAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getEventDefinitionAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getDirectionAccess().getAlternatives().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getOperationDefinitionAccess().getGroup().eContents()));
+	}
+
+	// context Statechart
+	private void suppressKeywords(List<Keyword> suppressKeywords, StatechartSpecification model) {
+		suppressKeywords.addAll(getKeywords(grammarAccess.getExitEventAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getEntryEventAccess().getGroup().eContents()));
+		EList<EObject> importKeyWordList = new BasicEList<EObject>();
+		importKeyWordList.add(grammarAccess.getImportScopeAccess().getImportKeyword_1());
+		suppressKeywords.addAll(getKeywords(importKeyWordList));
+	}
+
+	private void suppressKeywords(List<Keyword> suppressKeywords, InterfaceScope model) {
+		suppressKeywords.addAll(getKeywords(grammarAccess.getLocalReactionAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getAlwaysEventAccess().getGroup().eContents()));
+		suppressKeywords.addAll(getKeywords(grammarAccess.getTimeEventTypeAccess().getAlternatives().eContents()));
+		suppressKeywords.add(grammarAccess.getDirectionAccess().getLOCALLocalKeyword_0_0());
+	}
+
+	private void suppressKeywords(List<Keyword> suppressKeywords, FeatureCall featureCall) {
+		if (!(featureCall.getFeature() instanceof Operation)) {
+			suppressKeywords.add(grammarAccess.getFeatureCallAccess().getOperationCallLeftParenthesisKeyword_1_3_0_0());
+		}
+	}
+
+	private void suppressKeywords(List<Keyword> suppressKeywords, ElementReferenceExpression referenceExpression) {
+		if (!(referenceExpression.getReference() instanceof Operation)) {
+			suppressKeywords.add(grammarAccess.getElementReferenceExpressionAccess()
+					.getOperationCallLeftParenthesisKeyword_2_0_0());
+		}
+	}
+
+	private void suppressKeywords(List<Keyword> suppressKeywords, InternalScope model) {
+		suppressKeywords.add(grammarAccess.getDirectionAccess().getINInKeyword_1_0());
+		suppressKeywords.add(grammarAccess.getDirectionAccess().getOUTOutKeyword_2_0());
+	}
+
 	private List<Keyword> getKeywords(EList<EObject> list) {
 		final List<Keyword> keywords = new ArrayList<Keyword>();
 		for (EObject eObject : list) {