Guess if .r is R or REBOL

.r is the default extension used widely for both, R and REBOL. This
patch attempts to guess if .r is a REBOL file by looking for the
following very common REBOL code fragments:

- `REBOL`
- `: func [`
- `make object! [`
- `context [`

If any of those is found in a .r file, it is identified as a REBOL file.
Otherwise the language for a .r file is R.

Signed-off-by: Andreas Bolka <a@bolka.at>
This commit is contained in:
Andreas Bolka
2011-06-29 01:37:30 +02:00
parent 521bb9b9b2
commit 2707d1db67
4 changed files with 29 additions and 0 deletions

View File

@@ -224,6 +224,10 @@ class TestBlob < Test::Unit::TestCase
assert_equal Language['Ruby'], blob("wrong_shebang.rb").language
assert_nil blob("octocat.png").language
# .r disambiguation
assert_equal Language['R'], blob("hello-r.R").language
assert_equal Language['Rebol'], blob("hello-rebol.r").language
# ML
assert_equal Language['OCaml'], blob("Foo.ml").language
assert_equal Language['Standard ML'], blob("Foo.sig").language