mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Revise patterns for Vim modeline detection
The current expressions fail to match certain permutations of options:
vim: noexpandtab: ft=javascript:
vim: titlestring=foo\ ft=notperl ft=javascript:
Version-specific modelines are also unaccounted for:
vim600: set foldmethod=marker ft=javascript: # >= Vim 6.0
vim<600: set ft=javascript: # < Vim 6.0
See http://vimdoc.sourceforge.net/htmldoc/options.html#modeline
This commit is contained in:
3
test/fixtures/Data/Modelines/iamjs.pl
vendored
Normal file
3
test/fixtures/Data/Modelines/iamjs.pl
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# vim: noexpandtab: ft=javascript
|
||||
|
||||
"It's JavaScript, baby";
|
||||
4
test/fixtures/Data/Modelines/iamjs2.pl
vendored
Normal file
4
test/fixtures/Data/Modelines/iamjs2.pl
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# vim:noexpandtab titlestring=hi\|there\\\ ft=perl ts=4
|
||||
# vim:noexpandtab titlestring=hi|there\\ ft=javascript ts=4
|
||||
|
||||
"Still JavaScript, bruh";
|
||||
@@ -30,6 +30,8 @@ class TestModelines < Minitest::Test
|
||||
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["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl")
|
||||
assert_modeline Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl")
|
||||
assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc")
|
||||
assert_modeline nil, sample_blob("C/main.c")
|
||||
end
|
||||
@@ -51,6 +53,8 @@ class TestModelines < Minitest::Test
|
||||
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["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl").language
|
||||
assert_equal Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl").language
|
||||
assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user