-package org.simantics.scl.ui.editor;\r
-\r
-import org.eclipse.jface.preference.IPreferenceStore;\r
-import org.eclipse.jface.resource.ResourceManager;\r
-import org.eclipse.jface.text.DefaultInformationControl;\r
-import org.eclipse.jface.text.DefaultTextHover;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IInformationControl;\r
-import org.eclipse.jface.text.IInformationControlCreator;\r
-import org.eclipse.jface.text.ITextHover;\r
-import org.eclipse.jface.text.contentassist.ContentAssistant;\r
-import org.eclipse.jface.text.contentassist.IContentAssistant;\r
-import org.eclipse.jface.text.presentation.IPresentationReconciler;\r
-import org.eclipse.jface.text.source.DefaultAnnotationHover;\r
-import org.eclipse.jface.text.source.IAnnotationHover;\r
-import org.eclipse.jface.text.source.ISourceViewer;\r
-import org.eclipse.jface.text.source.SourceViewerConfiguration;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.ui.editors.text.EditorsUI;\r
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;\r
-import org.simantics.scl.ui.Activator;\r
-import org.simantics.scl.ui.editor.completion.SCLCompletionAssistProcessor;\r
-import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;\r
-import org.simantics.scl.ui.editor2.SCLPresentationReconciler;\r
-\r
-public class SCLSourceViewerConfigurationNew extends SourceViewerConfiguration {\r
-\r
- public static final char[] CONTENT_ASSIST_AUTO_CHARS = new char[] { '.' };\r
- \r
- ResourceManager resourceManager;\r
- IPreferenceStore preferenceStore;\r
- \r
- private SCLTextEditorEnvironment sclTextEditorEnvironment;\r
- \r
- public SCLSourceViewerConfigurationNew(ResourceManager resourceManager) {\r
- this.resourceManager = resourceManager;\r
- this.preferenceStore = EditorsUI.getPreferenceStore();\r
- \r
- this.sclTextEditorEnvironment = new SCLTextEditorEnvironment("");\r
- }\r
-\r
- public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {\r
- return new String[] {\r
- IDocument.DEFAULT_CONTENT_TYPE\r
- };\r
- }\r
- \r
- @Override\r
- public int getTabWidth(ISourceViewer sourceViewer) {\r
- if (preferenceStore == null)\r
- return super.getTabWidth(sourceViewer);\r
- return preferenceStore.getInt(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH);\r
- }\r
-\r
- @Override\r
- public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {\r
- String[] indentPrefixes = getIndentPrefixesForTab(getTabWidth(sourceViewer));\r
- if (indentPrefixes == null)\r
- return null;\r
-\r
- int length = indentPrefixes.length;\r
- if (length > 2) {\r
- // Swap first with second last\r
- String first = indentPrefixes[0];\r
- indentPrefixes[0] = indentPrefixes[length - 2];\r
- indentPrefixes[length - 2] = first;\r
- }\r
-\r
- return indentPrefixes;\r
- }\r
- \r
- public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {\r
- return new SCLPresentationReconciler(resourceManager);\r
- }\r
- \r
- @Override\r
- public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {\r
- //return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment);\r
- return new DefaultTextHover(sourceViewer);\r
- }\r
- \r
- @Override\r
- public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {\r
- return new DefaultAnnotationHover();\r
- }\r
- \r
- @Override\r
- public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {\r
- ContentAssistant assistant = new ContentAssistant();\r
- assistant.enableColoredLabels(true);\r
- assistant.setStatusLineVisible(true);\r
-\r
- assistant.enableAutoActivation(true);\r
- assistant.enableAutoInsert(true);\r
- assistant.setContentAssistProcessor(new SCLCompletionAssistProcessor(sclTextEditorEnvironment), IDocument.DEFAULT_CONTENT_TYPE);\r
- assistant.setInformationControlCreator(CREATOR);\r
- assistant.setRestoreCompletionProposalSize(Activator.getInstance().getDialogSettings()); \r
- return assistant;\r
- }\r
- \r
- private static final IInformationControlCreator CREATOR = new IInformationControlCreator() {\r
- \r
- @Override\r
- public IInformationControl createInformationControl(Shell parent) {\r
- return new DefaultInformationControl(parent);\r
- }\r
- };\r
- \r
- public void updateCompletionAssistModuleName(String moduleName) {\r
- sclTextEditorEnvironment.updateModuleName(moduleName);\r
- }\r
- \r
-// @Override\r
-// public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {\r
-// return new ContentFormatter();\r
-// }\r
- \r
- public SCLTextEditorEnvironment getSclTextEditorEnvironment() {\r
- return sclTextEditorEnvironment;\r
- }\r
-}\r
+package org.simantics.scl.ui.editor;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.resource.ResourceManager;
+import org.eclipse.jface.text.DefaultInformationControl;
+import org.eclipse.jface.text.DefaultTextHover;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IInformationControl;
+import org.eclipse.jface.text.IInformationControlCreator;
+import org.eclipse.jface.text.ITextHover;
+import org.eclipse.jface.text.contentassist.ContentAssistant;
+import org.eclipse.jface.text.contentassist.IContentAssistant;
+import org.eclipse.jface.text.presentation.IPresentationReconciler;
+import org.eclipse.jface.text.source.DefaultAnnotationHover;
+import org.eclipse.jface.text.source.IAnnotationHover;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.editors.text.EditorsUI;
+import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
+import org.simantics.scl.ui.Activator;
+import org.simantics.scl.ui.editor.completion.SCLCompletionAssistProcessor;
+import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;
+import org.simantics.scl.ui.editor2.SCLPresentationReconciler;
+
+public class SCLSourceViewerConfigurationNew extends SourceViewerConfiguration {
+
+ public static final char[] CONTENT_ASSIST_AUTO_CHARS = new char[] { '.' };
+
+ ResourceManager resourceManager;
+ IPreferenceStore preferenceStore;
+
+ private SCLTextEditorEnvironment sclTextEditorEnvironment;
+
+ public SCLSourceViewerConfigurationNew(ResourceManager resourceManager) {
+ this.resourceManager = resourceManager;
+ this.preferenceStore = EditorsUI.getPreferenceStore();
+
+ this.sclTextEditorEnvironment = new SCLTextEditorEnvironment("");
+ }
+
+ public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
+ return new String[] {
+ IDocument.DEFAULT_CONTENT_TYPE
+ };
+ }
+
+ @Override
+ public int getTabWidth(ISourceViewer sourceViewer) {
+ if (preferenceStore == null)
+ return super.getTabWidth(sourceViewer);
+ return preferenceStore.getInt(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH);
+ }
+
+ @Override
+ public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {
+ String[] indentPrefixes = getIndentPrefixesForTab(getTabWidth(sourceViewer));
+ if (indentPrefixes == null)
+ return null;
+
+ int length = indentPrefixes.length;
+ if (length > 2) {
+ // Swap first with second last
+ String first = indentPrefixes[0];
+ indentPrefixes[0] = indentPrefixes[length - 2];
+ indentPrefixes[length - 2] = first;
+ }
+
+ return indentPrefixes;
+ }
+
+ public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
+ return new SCLPresentationReconciler(resourceManager);
+ }
+
+ @Override
+ public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
+ //return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment);
+ return new DefaultTextHover(sourceViewer);
+ }
+
+ @Override
+ public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
+ return new DefaultAnnotationHover();
+ }
+
+ @Override
+ public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
+ ContentAssistant assistant = new ContentAssistant();
+ assistant.enableColoredLabels(true);
+ assistant.setStatusLineVisible(true);
+
+ assistant.enableAutoActivation(true);
+ assistant.enableAutoInsert(true);
+ assistant.setContentAssistProcessor(new SCLCompletionAssistProcessor(sclTextEditorEnvironment), IDocument.DEFAULT_CONTENT_TYPE);
+ assistant.setInformationControlCreator(CREATOR);
+ assistant.setRestoreCompletionProposalSize(Activator.getInstance().getDialogSettings());
+ return assistant;
+ }
+
+ private static final IInformationControlCreator CREATOR = new IInformationControlCreator() {
+
+ @Override
+ public IInformationControl createInformationControl(Shell parent) {
+ return new DefaultInformationControl(parent);
+ }
+ };
+
+ public void updateCompletionAssistModuleName(String moduleName) {
+ sclTextEditorEnvironment.updateModuleName(moduleName);
+ }
+
+// @Override
+// public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
+// return new ContentFormatter();
+// }
+
+ public SCLTextEditorEnvironment getSclTextEditorEnvironment() {
+ return sclTextEditorEnvironment;
+ }
+}