/*
* generated by Xtext
*/
package org.erlide.ui;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
import org.eclipse.xtext.ui.IImageHelper;
import org.eclipse.xtext.ui.editor.autoedit.AbstractEditStrategyProvider;
import org.eclipse.xtext.ui.editor.contentassist.XtextContentAssistProcessor;
import org.eclipse.xtext.ui.editor.folding.IFoldingRegionProvider;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.model.IResourceForEditorInputFactory;
import org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory;
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 org.eclipse.xtext.ui.resource.IResourceUIServiceProvider;
import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider;
import org.erlide.common.ui.ErlideImageHelper;
import org.erlide.erlang.ui.ide.ErlangResourceUiServiceProvider;
import org.erlide.ui.autoedit.ErlangAutoEditStrategyProvider;
import org.erlide.ui.folding.MyFoldingRegionProvider;
import org.erlide.ui.hover.ErlangEObjectDocumentationProvider;
import org.erlide.ui.hover.ErlangEObjectHoverProvider;
import org.erlide.ui.navigator.ErlangContentProvider;
import org.erlide.ui.syntaxcoloring.ErlangAntlrTokenToAttributeIdMapper;
import org.erlide.ui.syntaxcoloring.ErlangSemanticHighlightingCalculator;
import org.erlide.ui.syntaxcoloring.ErlangSemanticHighlightingConfiguration;
import com.google.inject.Binder;
/**
* Use this class to register components to be used within the IDE.
*/
public class ErlangUiModule extends org.erlide.ui.AbstractErlangUiModule {
public ErlangUiModule(final AbstractUIPlugin plugin) {
super(plugin);
}
@Override
public void configure(final Binder binder) {
super.configure(binder);
binder.bind(String.class)
.annotatedWith(
com.google.inject.name.Names
.named(XtextContentAssistProcessor.COMPLETION_AUTO_ACTIVATION_CHARS))
.toInstance(":#");
}
@Override
public Class<? extends IResourceForEditorInputFactory> bindIResourceForEditorInputFactory() {
return ResourceForIEditorInputFactory.class;
}
@Override
public Class<? extends IResourceSetProvider> bindIResourceSetProvider() {
return SimpleResourceSetProvider.class;
}
public Class<? extends ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
return ErlangSemanticHighlightingCalculator.class;
}
public Class<? extends IHighlightingConfiguration> bindISemanticHighlightingConfiguration() {
return ErlangSemanticHighlightingConfiguration.class;
}
public Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindTokenToAttributeIdMapper() {
return ErlangAntlrTokenToAttributeIdMapper.class;
}
public Class<? extends IFoldingRegionProvider> bindFoldingRegionProvider() {
return MyFoldingRegionProvider.class;
}
public Class<? extends ITreeContentProvider> bindTreeContentProvider() {
return ErlangContentProvider.class;
}
// This makes the editors update when opened (don't wait for a change and
// rebuild)
@Override
public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
return org.eclipse.xtext.ui.editor.validation.ValidatingEditorCallback.class;
}
public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
return ErlangEObjectHoverProvider.class;
}
public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProviderr() {
return ErlangEObjectDocumentationProvider.class;
}
@Override
public Class<? extends AbstractEditStrategyProvider> bindAbstractEditStrategyProvider() {
return ErlangAutoEditStrategyProvider.class;
}
@Override
public Class<? extends IImageHelper> bindIImageHelper() {
return ErlideImageHelper.class;
}
// @Override
// public Provider<IAllContainersState> provideIAllContainersState() {
// return new WorkspaceProjectsStateProvider();
// }
public Class<? extends IResourceUIServiceProvider> bindIResourceUIServiceProvider() {
return ErlangResourceUiServiceProvider.class;
}
}