diff --git a/de.leiffrenzel.fp.haskell.ui/META-INF/MANIFEST.MF b/de.leiffrenzel.fp.haskell.ui/META-INF/MANIFEST.MF index 73c9be1c9..a983a3385 100644 --- a/de.leiffrenzel.fp.haskell.ui/META-INF/MANIFEST.MF +++ b/de.leiffrenzel.fp.haskell.ui/META-INF/MANIFEST.MF @@ -23,6 +23,7 @@ Eclipse-AutoStart: true Provide-Package: de.leiffrenzel.fp.haskell.ui;x-friends:="net.sf.eclipsefp.haskell.ui.test", de.leiffrenzel.fp.haskell.ui.dialog, de.leiffrenzel.fp.haskell.ui.launch, + de.leiffrenzel.fp.haskell.ui.preferences.editor;x-friends:="net.sf.eclipsefp.haskell.ui.test", de.leiffrenzel.fp.haskell.ui.util, de.leiffrenzel.fp.haskell.ui.util.preferences, de.leiffrenzel.fp.haskell.ui.util.text diff --git a/de.leiffrenzel.fp.haskell.ui/src/de/leiffrenzel/fp/haskell/ui/util/preferences/HaskellPreferenceProvider.java b/de.leiffrenzel.fp.haskell.ui/src/de/leiffrenzel/fp/haskell/ui/util/preferences/HaskellPreferenceProvider.java new file mode 100644 index 000000000..24924eb45 --- /dev/null +++ b/de.leiffrenzel.fp.haskell.ui/src/de/leiffrenzel/fp/haskell/ui/util/preferences/HaskellPreferenceProvider.java @@ -0,0 +1,20 @@ +package de.leiffrenzel.fp.haskell.ui.util.preferences; + +import org.eclipse.jface.preference.IPreferenceStore; + +import de.leiffrenzel.fp.haskell.ui.HaskellUIPlugin; +import de.leiffrenzel.fp.haskell.ui.preferences.editor.IEditorPreferenceNames; + +public class HaskellPreferenceProvider implements IHaskellPreferenceProvider, + IEditorPreferenceNames +{ + + public int getTabSize() { + return getPreferenceStore().getInt(EDITOR_TAB_WIDTH); + } + + private IPreferenceStore getPreferenceStore() { + return HaskellUIPlugin.getDefault().getPreferenceStore(); + } + +} diff --git a/net.sf.eclipsefp.haskell.core.jparser/antlr-src/haskell-lexer.g b/net.sf.eclipsefp.haskell.core.jparser/antlr-src/haskell-lexer.g index 047cbce7e..f344c1115 100644 --- a/net.sf.eclipsefp.haskell.core.jparser/antlr-src/haskell-lexer.g +++ b/net.sf.eclipsefp.haskell.core.jparser/antlr-src/haskell-lexer.g @@ -12,6 +12,7 @@ header { package net.sf.eclipsefp.haskell.core.jparser; +import de.leiffrenzel.fp.haskell.ui.util.preferences.HaskellPreferenceProvider; import de.leiffrenzel.fp.haskell.ui.util.preferences.IHaskellPreferenceProvider; } @@ -52,6 +53,15 @@ tokens { } { + { + try { + this.setTabSize(new HaskellPreferenceProvider().getTabSize()); + } catch(NullPointerException e) { + //happens when the eclipse platform isn't loaded + //in this case, ignore the default preference provider + } + } + public HaskellLexer(Reader reader, IHaskellPreferenceProvider prefs) { this(reader); this.setTabSize(prefs.getTabSize()); diff --git a/net.sf.eclipsefp.haskell.ui.test/.classpath b/net.sf.eclipsefp.haskell.ui.test/.classpath new file mode 100644 index 000000000..751c8f2e5 --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/net.sf.eclipsefp.haskell.ui.test/.project b/net.sf.eclipsefp.haskell.ui.test/.project new file mode 100644 index 000000000..213be62dc --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/.project @@ -0,0 +1,28 @@ + + + net.sf.eclipsefp.haskell.ui.test + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/net.sf.eclipsefp.haskell.ui.test/META-INF/MANIFEST.MF b/net.sf.eclipsefp.haskell.ui.test/META-INF/MANIFEST.MF new file mode 100644 index 000000000..8bbd0e506 --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Haskell UI Test Plug-in +Bundle-SymbolicName: net.sf.eclipsefp.haskell.ui.test +Bundle-Version: 0.9.1 +Bundle-Vendor: eclipsefp.sourceforge.net +Bundle-Localization: plugin +Require-Bundle: org.junit, + org.eclipse.ui, + de.leiffrenzel.fp.haskell.ui +Export-Package: net.sf.eclipsefp.haskell.ui.test diff --git a/net.sf.eclipsefp.haskell.ui.test/build.properties b/net.sf.eclipsefp.haskell.ui.test/build.properties new file mode 100644 index 000000000..34d2e4d2d --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/AllAllTests_PDESuite.java b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/AllAllTests_PDESuite.java new file mode 100644 index 000000000..f84679b2b --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/AllAllTests_PDESuite.java @@ -0,0 +1,18 @@ +package net.sf.eclipsefp.haskell.ui.test; + +import net.sf.eclipsefp.haskell.ui.test.util.preferences.AllTests_PDESuite; +import junit.framework.Test; +import junit.framework.TestSuite; + +public class AllAllTests_PDESuite { + + public static Test suite() { + TestSuite suite = new TestSuite( + "Test for de.leiffrenzel.fp.haskell.ui"); + //$JUnit-BEGIN$ + suite.addTest(AllTests_PDESuite.suite()); + //$JUnit-END$ + return suite; + } + +} diff --git a/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/AllTests_PDESuite.java b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/AllTests_PDESuite.java new file mode 100644 index 000000000..08ead88e6 --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/AllTests_PDESuite.java @@ -0,0 +1,17 @@ +package net.sf.eclipsefp.haskell.ui.test.util.preferences; + +import junit.framework.Test; +import junit.framework.TestSuite; + +public class AllTests_PDESuite { + + public static Test suite() { + TestSuite suite = new TestSuite( + "Test for de.leiffrenzel.fp.haskell.ui.test.util.preferences"); + //$JUnit-BEGIN$ + suite.addTestSuite(HaskellPreferenceProvider_PDETest.class); + //$JUnit-END$ + return suite; + } + +} diff --git a/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/HaskellPreferenceProvider_PDETest.java b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/HaskellPreferenceProvider_PDETest.java new file mode 100644 index 000000000..99c7b71a8 --- /dev/null +++ b/net.sf.eclipsefp.haskell.ui.test/src/net/sf/eclipsefp/haskell/ui/test/util/preferences/HaskellPreferenceProvider_PDETest.java @@ -0,0 +1,37 @@ +package net.sf.eclipsefp.haskell.ui.test.util.preferences; + +import org.eclipse.jface.preference.IPreferenceStore; + +import de.leiffrenzel.fp.haskell.ui.HaskellUIPlugin; +import de.leiffrenzel.fp.haskell.ui.preferences.editor.IEditorPreferenceNames; +import de.leiffrenzel.fp.haskell.ui.util.preferences.HaskellPreferenceProvider; +import de.leiffrenzel.fp.haskell.ui.util.preferences.IHaskellPreferenceProvider; +import junit.framework.TestCase; + +public class HaskellPreferenceProvider_PDETest extends TestCase + implements IEditorPreferenceNames +{ + + public void testTabSize() { + final IHaskellPreferenceProvider prefs = new HaskellPreferenceProvider(); + + int tabSize = 6; + setPreferenceValue(EDITOR_TAB_WIDTH, tabSize); + + assertEquals(tabSize, prefs.getTabSize()); + + tabSize = 4; + setPreferenceValue(EDITOR_TAB_WIDTH, tabSize); + assertEquals(tabSize, prefs.getTabSize()); + } + + private void setPreferenceValue(String key, int value) { + getPreferenceStore().setValue(key, value); + } + + private IPreferenceStore getPreferenceStore() { + return HaskellUIPlugin.getDefault().getPreferenceStore(); + } + + +} diff --git a/net.sf.eclipsefp.test/META-INF/MANIFEST.MF b/net.sf.eclipsefp.test/META-INF/MANIFEST.MF index ff2195ea9..2cecdcb6f 100644 --- a/net.sf.eclipsefp.test/META-INF/MANIFEST.MF +++ b/net.sf.eclipsefp.test/META-INF/MANIFEST.MF @@ -8,4 +8,5 @@ Bundle-Localization: plugin Require-Bundle: org.junit, net.sf.eclipsefp.common.ui.test, net.sf.eclipsefp.haskell.core.parser.test, - net.sf.eclipsefp.haskell.core.jparser.test + net.sf.eclipsefp.haskell.core.jparser.test, + net.sf.eclipsefp.haskell.ui.test diff --git a/net.sf.eclipsefp.test/src/net/sf/eclipsefp/test/AllAllTests_PDESuite.java b/net.sf.eclipsefp.test/src/net/sf/eclipsefp/test/AllAllTests_PDESuite.java index 232d2de2d..637b81517 100644 --- a/net.sf.eclipsefp.test/src/net/sf/eclipsefp/test/AllAllTests_PDESuite.java +++ b/net.sf.eclipsefp.test/src/net/sf/eclipsefp/test/AllAllTests_PDESuite.java @@ -11,6 +11,7 @@ public static Test suite() { suite.addTest(net.sf.eclipsefp.common.ui.test.AllTests_PDESuite.suite()); suite.addTest(net.sf.eclipsefp.haskell.core.parser.AllTests_PDESuite.suite()); suite.addTest(net.sf.eclipsefp.haskell.core.jparser.test.AllAllTests_PDESuite.suite()); + suite.addTest(net.sf.eclipsefp.haskell.ui.test.AllAllTests_PDESuite.suite()); //$JUnit-END$ return suite; }