blob: c5d72fc5a87cf972135f099fb6346ec4dcd5aad8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 The University of York.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* Dimitrios Kolovos - initial API and implementation
******************************************************************************/
package org.eclipse.epsilon.eol.dt.editor;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.epsilon.common.dt.editor.AbstractModuleEditor;
import org.eclipse.epsilon.common.dt.editor.outline.ModuleContentProvider;
import org.eclipse.epsilon.common.dt.editor.outline.ModuleElementLabelProvider;
import org.eclipse.epsilon.common.module.IModule;
import org.eclipse.epsilon.eol.EolModule;
import org.eclipse.epsilon.eol.dt.editor.outline.EolModuleContentProvider;
import org.eclipse.epsilon.eol.dt.editor.outline.EolModuleElementLabelProvider;
public class EolEditor extends AbstractModuleEditor {
public static final String ID = "org.eclipse.epsilon.eol.dt.editor.EolEditor";
public EolEditor() {
this.addTemplateContributor(new EolEditorStaticTemplateContributor());
this.addTemplateContributor(new EolEditorStaticOperationTemplateContributor());
EolEditorOperationTemplateContributor operationTemplateContributor = new EolEditorOperationTemplateContributor();
addTemplateContributor(operationTemplateContributor);
addModuleParsedListener(operationTemplateContributor);
EolEditorPropertyTemplateContributor propertyTemplateContributor = new EolEditorPropertyTemplateContributor();
addTemplateContributor(propertyTemplateContributor);
addModuleParsedListener(propertyTemplateContributor);
EolEditorBuiltinTypesTemplateContributor builtinTypesTemplateContributor = new EolEditorBuiltinTypesTemplateContributor();
addTemplateContributor(builtinTypesTemplateContributor);
addModuleParsedListener(builtinTypesTemplateContributor);
EolEditorTokenTemplateContributor tokenTemplateContributor = new EolEditorTokenTemplateContributor();
addTemplateContributor(tokenTemplateContributor);
addModuleParsedListener(tokenTemplateContributor);
}
@Override
public List<String> getKeywords() {
ArrayList<String> keywords = new ArrayList<>(33);
keywords.add("import");
keywords.add("driver");
keywords.add("alias");
keywords.add("if");
keywords.add("switch");
keywords.add("case");
keywords.add("default");
keywords.add("operation");
keywords.add("function");
keywords.add("new");
keywords.add("else");
keywords.add("for");
keywords.add("var");
keywords.add("return");
keywords.add("async");
keywords.add("break");
keywords.add("breakAll");
keywords.add("and");
keywords.add("or");
keywords.add("not");
keywords.add("xor");
keywords.add("implies");
keywords.add("ext");
keywords.add("in");
keywords.add("continue");
keywords.add("while");
keywords.add("throw");
keywords.add("delete");
keywords.add("transaction");
keywords.add("abort");
keywords.add("model");
keywords.add("group");
keywords.add("as");
return keywords;
}
@Override
public List<String> getBuiltinVariables() {
ArrayList<String> builtIn = new ArrayList<>(7);
builtIn.add("hasMore");
builtIn.add("loopCount");
builtIn.add("self");
builtIn.add("true");
builtIn.add("false");
builtIn.add("null");
return builtIn;
}
@Override
public IModule createModule() {
return new EolModule();
}
@Override
public ModuleElementLabelProvider createModuleElementLabelProvider() {
return new EolModuleElementLabelProvider();
}
@Override
protected ModuleContentProvider createModuleContentProvider() {
return new EolModuleContentProvider();
}
@Override
protected boolean supportsHyperlinks() {
return true;
}
@Override
protected boolean supportsDirtyTextParsing() {
return true;
}
}