Enable tab-to-spaces conversion in the Flexmi editor when the YAML flavour is detected
diff --git a/plugins/org.eclipse.epsilon.flexmi.dt/src/org/eclipse/epsilon/flexmi/dt/FlexmiEditor.java b/plugins/org.eclipse.epsilon.flexmi.dt/src/org/eclipse/epsilon/flexmi/dt/FlexmiEditor.java
index f6334b7..43e1a68 100644
--- a/plugins/org.eclipse.epsilon.flexmi.dt/src/org/eclipse/epsilon/flexmi/dt/FlexmiEditor.java
+++ b/plugins/org.eclipse.epsilon.flexmi.dt/src/org/eclipse/epsilon/flexmi/dt/FlexmiEditor.java
@@ -61,6 +61,7 @@
import org.eclipse.ui.editors.text.FileDocumentProvider;
import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.ui.texteditor.MarkerUtilities;
import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
@@ -146,6 +147,18 @@
viewer.configure(getSourceViewerConfiguration());
}
+ @Override
+ protected boolean isTabsToSpacesConversionEnabled() {
+ if (flexmiFlavour == FlexmiFlavour.YAML) return true;
+ else return super.isTabsToSpacesConversionEnabled();
+ }
+
+ @Override
+ protected boolean isSpacesAsTabsDeletionEnabled() {
+ if (flexmiFlavour == FlexmiFlavour.YAML) return true;
+ else return super.isSpacesAsTabsDeletionEnabled();
+ }
+
protected SourceViewerConfiguration createSourceViewerConfiguration(FlexmiHighlightingManager highlightingManager) {
if (flexmiFlavour == FlexmiFlavour.XML) return new XMLConfiguration(highlightingManager);
else return new YamlConfiguration(highlightingManager);
@@ -205,6 +218,7 @@
FlexmiFlavour detectedFlavour = FlexmiResource.isXml(new BufferedInputStream(new ByteArrayInputStream(code.getBytes()))) ? FlexmiFlavour.XML : FlexmiFlavour.YAML;
if ((detectedFlavour != flexmiFlavour)) {
flexmiFlavour = detectedFlavour;
+ handlePreferenceStoreChanged(new PropertyChangeEvent(doc, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SPACES_FOR_TABS, null, null));
Display.getDefault().asyncExec(() -> refreshText());
}