From b2feeb931264ec98f955ded75ed2f3fa6cc6c900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20No=C3=ABl?= Date: Sat, 9 Jun 2018 18:12:24 +0200 Subject: [PATCH 1/4] use latest editorconfig-core-java --- org.eclipse.editorconfig.core/build.properties | 2 +- org.eclipse.editorconfig.core/editorconfig-core-java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.editorconfig.core/build.properties b/org.eclipse.editorconfig.core/build.properties index 036bd5d..3f4f1b7 100644 --- a/org.eclipse.editorconfig.core/build.properties +++ b/org.eclipse.editorconfig.core/build.properties @@ -1,5 +1,5 @@ source.. = src/main/java/,\ - editorconfig-core-java/src/ + editorconfig-core-java/src/main/java output.. = bin/ bin.includes = META-INF/,\ .,\ diff --git a/org.eclipse.editorconfig.core/editorconfig-core-java b/org.eclipse.editorconfig.core/editorconfig-core-java index 9ff6e78..98ad6b0 160000 --- a/org.eclipse.editorconfig.core/editorconfig-core-java +++ b/org.eclipse.editorconfig.core/editorconfig-core-java @@ -1 +1 @@ -Subproject commit 9ff6e78159540f5c305551237fcf2c7f14701b1d +Subproject commit 98ad6b07ae6487280199ea7fa247e0cb84c51a93 From 43f2b0d2510ead9e9a77b661015defd4d50748df Mon Sep 17 00:00:00 2001 From: Davide Cavarretta Date: Fri, 25 Aug 2017 18:14:26 +0200 Subject: [PATCH 2/4] Adds tab_width feature mapped tab_width with: - tabWidth (org.eclipse.ui.editors) - org.eclipse.jdt.core.formatter.tabulation.size (org.eclipse.jdt.core) - formatter_tab_size (org.eclipse.ant.ui) mapped indent_size with: - indentationSize (org.eclipse.wst.xml.core) - org.eclipse.jdt.core.formatter.indentation.size (org.eclipse.jdt.core) --- README.md | 2 +- .../editorconfig/ui/internal/EditorConfigVisitor.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8768991..6ff8ad1 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Feature Support |----------------------------|---------|---------------------------------------------| | `indent_style` | Yes | tested with Java, XML, Ant and text editors | | `indent_size` | Yes | tested with Java, XML, Ant and text editors | -| `tab_width` | No | | +| `tab_width` | Yes | tested with Java, XML, Ant and text editors | | `end_of_line` | No | applies to files created after similar file opened | | `charset` | Yes | untested | | `trim_trailing_whitespace` | No | | diff --git a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java index 3b44769..cbb9216 100644 --- a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java +++ b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java @@ -44,14 +44,16 @@ public void visitIndentStyle(final ConfigProperty property) { @Override public void visitIndentSize(final ConfigProperty property) { final String indentSizeString = property.getValue().toString(); - setPreference("org.eclipse.ui.editors", "tabWidth", indentSizeString); - setPreference("org.eclipse.jdt.core", "org.eclipse.jdt.core.formatter.tabulation.size", indentSizeString); setPreference("org.eclipse.wst.xml.core", "indentationSize", indentSizeString); - setPreference("org.eclipse.ant.ui", "formatter_tab_size", indentSizeString); + setPreference("org.eclipse.jdt.core", "org.eclipse.jdt.core.formatter.indentation.size", indentSizeString); } @Override public void visitTabWidth(final ConfigProperty property) { + final String tabWidth = property.getValue().toString(); + setPreference("org.eclipse.ui.editors", "tabWidth", tabWidth); + setPreference("org.eclipse.jdt.core", "org.eclipse.jdt.core.formatter.tabulation.size", tabWidth); + setPreference("org.eclipse.ant.ui", "formatter_tab_size", tabWidth); } @Override From ae66a102e0715fc8e69c6a93ef7c96a70fda83e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20No=C3=ABl?= Date: Sat, 9 Jun 2018 18:43:26 +0200 Subject: [PATCH 3/4] makes EditorConfigVisitor stateful --- .../ui/internal/EditorConfigEditorActivationHandler.java | 3 ++- .../editorconfig/ui/internal/EditorConfigVisitor.java | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigEditorActivationHandler.java b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigEditorActivationHandler.java index d12457e..70552ca 100644 --- a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigEditorActivationHandler.java +++ b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigEditorActivationHandler.java @@ -35,8 +35,9 @@ public void editorActivated(final IFile editorFile) { if (editorFile != null) { final EditorFileConfig fileEditorConfig = getEditorFileConfig(editorFile); System.out.println("Editor activated: " + fileEditorConfig); + EditorConfigVisitor visitor = new EditorConfigVisitor(fileEditorConfig); for (final ConfigProperty configProperty : fileEditorConfig.getConfigProperties()) { - configProperty.accept(new EditorConfigVisitor()); + configProperty.accept(visitor); } } } diff --git a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java index cbb9216..3cd0d80 100644 --- a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java +++ b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java @@ -21,11 +21,18 @@ import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.editorconfig.core.ConfigProperty; import org.eclipse.editorconfig.core.ConfigPropertyVisitor; +import org.eclipse.editorconfig.core.EditorFileConfig; import org.eclipse.editorconfig.core.EndOfLineOption; import org.eclipse.editorconfig.core.IndentStyleOption; public class EditorConfigVisitor implements ConfigPropertyVisitor { + private final EditorFileConfig config; + + public EditorConfigVisitor(EditorFileConfig config) { + this.config = config; + } + private void setPreference(final String prefsNodeName, final String key, final String value) { System.out.println(String.format("Setting preference: %s/%s=%s", prefsNodeName, key, value)); final IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(prefsNodeName); From f9fd53f8fea249dfe9fde24c90b3913a0ff1c1f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20No=C3=ABl?= Date: Sat, 9 Jun 2018 19:07:12 +0200 Subject: [PATCH 4/4] Fix xml indentation with indent_size != 1 --- .../editorconfig/eclipse/test/EditorConfigTest.java | 12 ++++++++++++ .../ui/internal/EditorConfigVisitor.java | 9 +++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/editorconfig-eclipse-functional-test/src/main/java/com/ncjones/editorconfig/eclipse/test/EditorConfigTest.java b/editorconfig-eclipse-functional-test/src/main/java/com/ncjones/editorconfig/eclipse/test/EditorConfigTest.java index e07cca7..6c7d22d 100644 --- a/editorconfig-eclipse-functional-test/src/main/java/com/ncjones/editorconfig/eclipse/test/EditorConfigTest.java +++ b/editorconfig-eclipse-functional-test/src/main/java/com/ncjones/editorconfig/eclipse/test/EditorConfigTest.java @@ -79,4 +79,16 @@ public void testIndentStyleTab() throws Exception { assertThat(context.fileContents(fileName), equalTo("\t")); } + @Test + public void testIndentStyleTabWithSize() throws Exception { + context.editorConfig( + "root = true", + "[*]", + "indent_style = tab", + "indent_size = 2" + ); + context.editFile(fileName, "\t"); + assertThat(context.fileContents(fileName), equalTo("\t")); + } + } diff --git a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java index 3cd0d80..a0ca88f 100644 --- a/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java +++ b/org.eclipse.editorconfig.ui/src/main/java/org/eclipse/editorconfig/ui/internal/EditorConfigVisitor.java @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.editorconfig.core.ConfigProperty; +import org.eclipse.editorconfig.core.ConfigPropertyType; import org.eclipse.editorconfig.core.ConfigPropertyVisitor; import org.eclipse.editorconfig.core.EditorFileConfig; import org.eclipse.editorconfig.core.EndOfLineOption; @@ -51,13 +52,17 @@ public void visitIndentStyle(final ConfigProperty property) { @Override public void visitIndentSize(final ConfigProperty property) { final String indentSizeString = property.getValue().toString(); - setPreference("org.eclipse.wst.xml.core", "indentationSize", indentSizeString); - setPreference("org.eclipse.jdt.core", "org.eclipse.jdt.core.formatter.indentation.size", indentSizeString); + // this represents the number of tabs, not their width + setPreference("org.eclipse.wst.xml.core", "indentationSize", + config.getConfigProperty(ConfigPropertyType.INDENT_STYLE.getName()).getValue().equals(IndentStyleOption.SPACE) + ? indentSizeString + : "1"); } @Override public void visitTabWidth(final ConfigProperty property) { final String tabWidth = property.getValue().toString(); + // xml editor will follow this setPreference("org.eclipse.ui.editors", "tabWidth", tabWidth); setPreference("org.eclipse.jdt.core", "org.eclipse.jdt.core.formatter.tabulation.size", tabWidth); setPreference("org.eclipse.ant.ui", "formatter_tab_size", tabWidth);