Merge pull request #2233 from tesch1/tesch1-emacs-patch-1

fix emacs modeline parsing
This commit is contained in:
Arfon Smith
2015-03-31 19:27:33 -05:00
15 changed files with 49 additions and 3 deletions

View File

@@ -0,0 +1,6 @@
// -*- fundamental -*-
int main(int argc, char * argc[])
{
this should not be syntax highlighted, even though it looks like c.
}

View File

@@ -0,0 +1,2 @@
// -*-c++-*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- c++ -*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- mode:C++ -*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- font:bar;mode:c++ -*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*-foo:bar;mode:c++;bar:foo-*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- foo : bar ; mode : c++ ; bar : foo -*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- mode : c++ ; bar : foo -*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*- font:x;foo : bar ; mode : C++ ; bar : foo ; foooooo:baaaaar;fo:ba-*-
template <typename X> class { X i; };

View File

@@ -0,0 +1,2 @@
// -*-foo:bar;mode:c++;bar:foo;tyrell:corp-*-
template <typename X> class { X i; };

View File

@@ -10,6 +10,16 @@ class TestModelines < Minitest::Test
def test_modeline_strategy
assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8")
assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9")
assert_modeline Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c")
assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl")
assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md")
assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc")
@@ -18,6 +28,16 @@ class TestModelines < Minitest::Test
def test_modeline_languages
assert_equal Language["Ruby"], fixture_blob("Data/Modelines/ruby").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplus").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs3").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs4").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs5").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs6").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs7").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs8").language
assert_equal Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs9").language
assert_equal Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c").language
assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language
assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language
assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language