diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml index 167a17e34..913e99c71 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml @@ -162,7 +162,7 @@ + editorId="org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor"> @@ -42,7 +42,7 @@ point="org.eclipse.ui.editors"> + editorId="org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor"> diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/plugin.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls/plugin.xml index 87510270d..0411ef639 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/plugin.xml +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/plugin.xml @@ -34,7 +34,7 @@ point="org.eclipse.ui.editors"> + editorId="org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor"> @@ -42,7 +42,7 @@ point="org.eclipse.ui.editors"> + editorId="org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor"> diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF index b8d624137..9c2d1aeb3 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF @@ -19,7 +19,9 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.8.0", org.eclipse.ui.ide, org.eclipse.jdt.core, org.eclipse.jdt.ui, - org.apache.commons.lang3 + org.apache.commons.lang3, + org.eclipse.ui.genericeditor, + org.eclipse.ui.editors Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.springframework.tooling.ls.eclipse.commons, diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/plugin.xml b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/plugin.xml index cf580e9d0..8d2bdda10 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/plugin.xml +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/plugin.xml @@ -38,6 +38,9 @@ + + @@ -49,4 +52,15 @@ + + + + diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditor.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditor.java new file mode 100644 index 000000000..2424764cc --- /dev/null +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditor.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.tooling.ls.eclipse.commons; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.editors.text.EditorsUI; +import org.eclipse.ui.internal.genericeditor.ExtensionBasedTextEditor; +import org.eclipse.ui.texteditor.ChainedPreferenceStore; + +/** + * YAML editor based on Generic editor. + * Has spaces rather than tab for indentation + * + * @author Alex Boyko + * + */ +@SuppressWarnings("restriction") +public class YamlGenericEditor extends ExtensionBasedTextEditor { + + @Override + protected boolean isTabsToSpacesConversionEnabled() { + return true; + } + + @Override + protected void initializeEditor() { + super.initializeEditor(); + + List stores = new ArrayList<>(3); + stores.add(LanguageServerCommonsActivator.getInstance().getPreferenceStore()); + stores.add(EditorsUI.getPreferenceStore()); + stores.add(PlatformUI.getPreferenceStore()); + + setPreferenceStore(new ChainedPreferenceStore(stores.toArray(new IPreferenceStore[stores.size()]))); + + } + +} diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditorPreferencesInitializer.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditorPreferencesInitializer.java new file mode 100644 index 000000000..fe65dd44d --- /dev/null +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/YamlGenericEditorPreferencesInitializer.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.tooling.ls.eclipse.commons; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; + +/** + * Initializers of preferences for Generic editor for YAML ls extensions + * + * @author Alex Boyko + * + */ +public class YamlGenericEditorPreferencesInitializer extends AbstractPreferenceInitializer { + + @Override + public void initializeDefaultPreferences() { + IPreferenceStore store = LanguageServerCommonsActivator.getInstance().getPreferenceStore(); + store.setDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH, 2); + } + +}