diff --git a/.travis.yml b/.travis.yml index bfbf9fdf..943c1b12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ before_install: - sudo apt-get install libicu-dev -y + - gem update --system 2.1.11 rvm: - 1.8.7 - 1.9.2 diff --git a/README.md b/README.md index 667dafa1..958df8d5 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,9 @@ We use this library at GitHub to detect blob languages, highlight code, ignore b ### Language detection -Linguist defines a list of all languages known to GitHub in a [yaml file](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). In order for a file to be highlighted, a language and lexer must be defined there. +Linguist defines a list of all languages known to GitHub in a [yaml file](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). In order for a file to be highlighted, a language and a lexer must be defined there. -Most languages are detected by their file extension. This is the fastest and most common situation. - -For disambiguating between files with common extensions, we first apply -some common-sense heuristics to pick out obvious languages. After that, we use a +Most languages are detected by their file extension. For disambiguating between files with common extensions, we first apply some common-sense heuristics to pick out obvious languages. After that, we use a [statistical classifier](https://github.com/github/linguist/blob/master/lib/linguist/classifier.rb). This process can help us tell the difference between, for example, `.h` files which could be either C, C++, or Obj-C. diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4bef750b..c08d3a1f 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -309,6 +309,16 @@ ChucK: lexer: Java primary_extension: .ck +Cirru: + type: programming + color: "#aaaaff" + primary_extension: .cirru + # ace_mode: cirru + # lexer: Cirru + lexer: Text only + extensions: + - .cr + Clean: type: programming color: "#3a81ad" @@ -666,6 +676,8 @@ Groovy: ace_mode: groovy color: "#e69f56" primary_extension: .groovy + interpreters: + - groovy Groovy Server Pages: group: Groovy diff --git a/samples/Cirru/array.cirru b/samples/Cirru/array.cirru new file mode 100644 index 00000000..9375c650 --- /dev/null +++ b/samples/Cirru/array.cirru @@ -0,0 +1,12 @@ + +print $ array + int 1 + string 2 + +print $ array + int 1 + array + int 2 + string 3 + array + string 4 \ No newline at end of file diff --git a/samples/Cirru/block.cirru b/samples/Cirru/block.cirru new file mode 100644 index 00000000..a9bf0c83 --- /dev/null +++ b/samples/Cirru/block.cirru @@ -0,0 +1,7 @@ + +set f $ block (a b c) + print a b c + +call f (int 1) (int 2) (int 3) + +f (int 1) (int 2) (int 3) \ No newline at end of file diff --git a/samples/Cirru/bool.cirru b/samples/Cirru/bool.cirru new file mode 100644 index 00000000..686d132e --- /dev/null +++ b/samples/Cirru/bool.cirru @@ -0,0 +1,7 @@ + +print $ bool true +print $ bool false +print $ bool yes +print $ bool no +print $ bool 1 +print $ bool 0 \ No newline at end of file diff --git a/samples/Cirru/map.cirru b/samples/Cirru/map.cirru new file mode 100644 index 00000000..5f445668 --- /dev/null +++ b/samples/Cirru/map.cirru @@ -0,0 +1,14 @@ + +print $ map + a $ int 5 + b $ array (int 1) (int 2) + c $ map + int 1 + array (int 4) + +set m $ map + a $ int 1 + +set m b $ int 2 + +print m \ No newline at end of file diff --git a/samples/Cirru/number.cirru b/samples/Cirru/number.cirru new file mode 100644 index 00000000..56e0ac7d --- /dev/null +++ b/samples/Cirru/number.cirru @@ -0,0 +1,3 @@ + +print $ int 1 +print $ float 1.2 \ No newline at end of file diff --git a/samples/Cirru/require.cirru b/samples/Cirru/require.cirru new file mode 100644 index 00000000..53283468 --- /dev/null +++ b/samples/Cirru/require.cirru @@ -0,0 +1,2 @@ + +require ./stdio.cr diff --git a/samples/Cirru/scope.cirru b/samples/Cirru/scope.cirru new file mode 100644 index 00000000..9a6512c9 --- /dev/null +++ b/samples/Cirru/scope.cirru @@ -0,0 +1,23 @@ + +set a (int 2) + +print (self) + +set c (child) + +under c + under parent + print a + +print $ get c a + +set c x (int 3) +print $ get c x + +set just-print $ code + print a + +print just-print + +eval (self) just-print +eval just-print \ No newline at end of file diff --git a/samples/Cirru/stdio.cirru b/samples/Cirru/stdio.cirru new file mode 100644 index 00000000..ef5400e6 --- /dev/null +++ b/samples/Cirru/stdio.cirru @@ -0,0 +1,55 @@ + +set a $ string 1 +print a + +print (string 1) + +print nothing + +print + map + a (int 4) + b $ map + a $ int 5 + b $ int 6 + c $ map + int 7 + +print + array + int 1 + int 2 + array + int 3 + int 4 + +print + array + int 1 + map + a $ int 2 + b $ array + int 3 + +print + int 1 + int 2 + +print $ code + set a 1 + print (get a) + print $ array + int a + array + int a + +set container (map) +set container code $ code + set a 1 + print (get a) + print $ array + int a + array + int a + +print container \ No newline at end of file diff --git a/samples/Cirru/string.cirru b/samples/Cirru/string.cirru new file mode 100644 index 00000000..d4c4331b --- /dev/null +++ b/samples/Cirru/string.cirru @@ -0,0 +1,3 @@ + +print $ string a +print $ string "a b" \ No newline at end of file