/*
* Copyright 2013
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://opensource.org/licenses/eclipse-1.0.txt
*/
/*
* generated by Xtext
*/
package de.lynorics.eclipse.jangaroo.ui;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
import org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser;
import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.outline.actions.IOutlineContribution;
import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper;
import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration;
import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
import org.eclipse.xtext.ui.resource.IResourceSetProvider;
import com.google.inject.Binder;
import com.google.inject.name.Names;
import de.lynorics.eclipse.jangaroo.parser.TimeoutAS3Parser;
import de.lynorics.eclipse.jangaroo.ui.contentassist.FastXtextResourceSetProvider;
import de.lynorics.eclipse.jangaroo.ui.contentassist.PlatformURIMapCache;
import de.lynorics.eclipse.jangaroo.ui.contentassist.TimeoutAS3ProposalProvider;
import de.lynorics.eclipse.jangaroo.ui.highlighting.AS3HighlightingCalculator;
import de.lynorics.eclipse.jangaroo.ui.highlighting.AS3HighlightingConfiguration;
import de.lynorics.eclipse.jangaroo.ui.highlighting.AS3TokenToAttributeIdMapper;
import de.lynorics.eclipse.jangaroo.ui.outline.FilterImportsOperationsContribution;
import de.lynorics.eclipse.jangaroo.ui.outline.FilterNonPublicMembersContribution;
import de.lynorics.eclipse.jangaroo.ui.outline.FilterUsesOperationsContribution;
import de.lynorics.eclipse.jangaroo.ui.preferences.AS3LanguageRootPreferencePage;
/**
* Use this class to register components to be used within the IDE.
*/
public class AS3UiModule extends de.lynorics.eclipse.jangaroo.ui.AbstractAS3UiModule {
public AS3UiModule(AbstractUIPlugin plugin) {
super(plugin);
}
// @Override
// public void configure(Binder binder) {
// super.configure(binder);
// binder.bind(String.class)
// .annotatedWith(com.google.inject.name.Names.named(
// (XtextContentAssistProcessor.COMPLETION_AUTO_ACTIVATION_CHARS)))
// .toInstance(".");
// }
public void configureFilterOperationsContribution(Binder binder) {
binder
.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterImportsOperationsContribution"))
.to(FilterImportsOperationsContribution.class);
binder
.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterUsesOperationsContribution"))
.to(FilterUsesOperationsContribution.class);
binder
.bind(IOutlineContribution.class).annotatedWith(
Names.named("FilterNonPublicMembersContribution"))
.to(FilterNonPublicMembersContribution.class);
}
public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
return AS3EObjectHoverProvider.class;
}
public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProvider() {
return AS3EObjectDocumentationProvider.class;
}
public Class<? extends IHighlightingConfiguration> bindIHighlightingConfiguration () {
return AS3HighlightingConfiguration.class;
}
public Class<? extends ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
return AS3HighlightingCalculator.class;
}
public Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
return AS3TokenToAttributeIdMapper.class;
}
public Class<? extends org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage> bindLanguageRootPreferencePage() {
return AS3LanguageRootPreferencePage.class;
}
// With this binding, code completion will be guaranteed to respond within one second
@Override
public Class<? extends IContentAssistParser> bindIContentAssistParser() {
return TimeoutAS3Parser.class;
}
// With this binding, code completion will be guaranteed to respond within one second
@Override
public Class<? extends IContentProposalProvider> bindIContentProposalProvider() {
return TimeoutAS3ProposalProvider.class;
}
// With this binding, Xtext editors open much faster
@Override
public Class<? extends IResourceSetProvider> bindIResourceSetProvider() {
return FastXtextResourceSetProvider.class;
}
@org.eclipse.xtext.service.SingletonBinding(eager=false)
public Class<? extends PlatformURIMapCache> bindPlatformURIMapCache() {
return PlatformURIMapCache.class;
}
// With this binding, hovers for keywords are customized
@Override
public Class<? extends IEObjectHover> bindIEObjectHover() {
return AS3EObjectHover.class;
}
}