mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge branch 'master' into dont-explode-on-invalid-shebang
Conflicts: lib/linguist/samples.json test/test_tokenizer.rb
This commit is contained in:
@@ -63,6 +63,16 @@ Ada:
|
||||
- .adb
|
||||
- .ads
|
||||
|
||||
ApacheConf:
|
||||
type: markup
|
||||
aliases:
|
||||
- apache
|
||||
primary_extension: .conf
|
||||
filenames:
|
||||
- .htaccess
|
||||
- httpd.conf
|
||||
- apache2.conf
|
||||
|
||||
Apex:
|
||||
type: programming
|
||||
lexer: Text only
|
||||
@@ -180,8 +190,10 @@ C++:
|
||||
- cpp
|
||||
primary_extension: .cpp
|
||||
extensions:
|
||||
- .C
|
||||
- .c++
|
||||
- .cxx
|
||||
- .H
|
||||
- .h++
|
||||
- .hh
|
||||
- .hxx
|
||||
@@ -244,6 +256,7 @@ CoffeeScript:
|
||||
color: "#244776"
|
||||
aliases:
|
||||
- coffee
|
||||
- coffee-script
|
||||
primary_extension: .coffee
|
||||
extensions:
|
||||
- ._coffee
|
||||
@@ -392,6 +405,12 @@ Elixir:
|
||||
- .ex
|
||||
- .exs
|
||||
|
||||
Elm:
|
||||
type: programming
|
||||
lexer: Haskell
|
||||
group: Haskell
|
||||
primary_extension: .elm
|
||||
|
||||
Emacs Lisp:
|
||||
type: programming
|
||||
lexer: Scheme
|
||||
@@ -545,6 +564,8 @@ Groovy Server Pages:
|
||||
HTML:
|
||||
type: markup
|
||||
ace_mode: html
|
||||
aliases:
|
||||
- xhtml
|
||||
primary_extension: .html
|
||||
extensions:
|
||||
- .htm
|
||||
@@ -563,6 +584,8 @@ HTML+ERB:
|
||||
type: markup
|
||||
group: HTML
|
||||
lexer: RHTML
|
||||
aliases:
|
||||
- erb
|
||||
primary_extension: .erb
|
||||
extensions:
|
||||
- .erb
|
||||
@@ -575,16 +598,9 @@ HTML+PHP:
|
||||
extensions:
|
||||
- .phtml
|
||||
|
||||
HaXe:
|
||||
type: programming
|
||||
lexer: haXe
|
||||
ace_mode: haxe
|
||||
color: "#346d51"
|
||||
primary_extension: .hx
|
||||
extensions:
|
||||
- .hx
|
||||
- .hxml
|
||||
- .mtt
|
||||
HTTP:
|
||||
type: data
|
||||
primary_extension: .http
|
||||
|
||||
Haml:
|
||||
group: HTML
|
||||
@@ -599,6 +615,15 @@ Haskell:
|
||||
- .hs
|
||||
- .hsc
|
||||
|
||||
Haxe:
|
||||
type: programming
|
||||
lexer: haXe
|
||||
ace_mode: haxe
|
||||
color: "#346d51"
|
||||
primary_extension: .hx
|
||||
extensions:
|
||||
- .hxsl
|
||||
|
||||
INI:
|
||||
type: data
|
||||
extensions:
|
||||
@@ -723,6 +748,8 @@ Lua:
|
||||
- .nse
|
||||
|
||||
Makefile:
|
||||
aliases:
|
||||
- make
|
||||
extensions:
|
||||
- .mak
|
||||
- .mk
|
||||
@@ -798,6 +825,13 @@ Nemerle:
|
||||
color: "#0d3c6e"
|
||||
primary_extension: .n
|
||||
|
||||
Nginx:
|
||||
type: markup
|
||||
lexer: Nginx configuration file
|
||||
primary_extension: .conf
|
||||
filenames:
|
||||
- nginx.conf
|
||||
|
||||
Nimrod:
|
||||
type: programming
|
||||
color: "#37775b"
|
||||
@@ -843,6 +877,9 @@ ObjDump:
|
||||
Objective-C:
|
||||
type: programming
|
||||
color: "#438eff"
|
||||
aliases:
|
||||
- obj-c
|
||||
- objc
|
||||
primary_extension: .m
|
||||
extensions:
|
||||
- .mm
|
||||
@@ -850,6 +887,8 @@ Objective-C:
|
||||
Objective-J:
|
||||
type: programming
|
||||
color: "#ff0c5a"
|
||||
aliases:
|
||||
- obj-j
|
||||
primary_extension: .j
|
||||
extensions:
|
||||
- .j
|
||||
@@ -1126,7 +1165,13 @@ Shell:
|
||||
primary_extension: .sh
|
||||
filenames:
|
||||
- .zsh
|
||||
- bash_logout
|
||||
- bash_profile
|
||||
- bashrc
|
||||
- zlogin
|
||||
- zlogout
|
||||
- zshenv
|
||||
- zprofile
|
||||
- zshrc
|
||||
|
||||
Smalltalk:
|
||||
@@ -1172,6 +1217,8 @@ Tcsh:
|
||||
TeX:
|
||||
type: markup
|
||||
ace_mode: latex
|
||||
aliases:
|
||||
- latex
|
||||
primary_extension: .tex
|
||||
extensions:
|
||||
- .aux
|
||||
@@ -1261,6 +1308,11 @@ Visual Basic:
|
||||
XML:
|
||||
type: markup
|
||||
ace_mode: xml
|
||||
aliases:
|
||||
- rss
|
||||
- xsd
|
||||
- xsl
|
||||
- wsdl
|
||||
primary_extension: .xml
|
||||
extensions:
|
||||
- .glade
|
||||
@@ -1306,6 +1358,8 @@ XSLT:
|
||||
|
||||
YAML:
|
||||
type: markup
|
||||
aliases:
|
||||
- yml
|
||||
primary_extension: .yml
|
||||
extensions:
|
||||
- .yaml
|
||||
|
||||
@@ -44,6 +44,9 @@
|
||||
"Ecl": [
|
||||
".ecl"
|
||||
],
|
||||
"Elm": [
|
||||
".elm"
|
||||
],
|
||||
"Emacs Lisp": [
|
||||
".el"
|
||||
],
|
||||
@@ -140,7 +143,8 @@
|
||||
],
|
||||
"PHP": [
|
||||
".module",
|
||||
".php"
|
||||
".php",
|
||||
".script!"
|
||||
],
|
||||
"PowerShell": [
|
||||
".ps1",
|
||||
@@ -260,8 +264,8 @@
|
||||
".gemrc"
|
||||
]
|
||||
},
|
||||
"tokens_total": 271188,
|
||||
"languages_total": 276,
|
||||
"tokens_total": 271826,
|
||||
"languages_total": 281,
|
||||
"tokens": {
|
||||
"Apex": {
|
||||
"global": 70,
|
||||
@@ -9238,6 +9242,123 @@
|
||||
"a": 1,
|
||||
"self": 1
|
||||
},
|
||||
"Elm": {
|
||||
"import": 3,
|
||||
"List": 1,
|
||||
"(": 119,
|
||||
"intercalate": 2,
|
||||
"intersperse": 3,
|
||||
")": 116,
|
||||
"Website.Skeleton": 1,
|
||||
"Website.ColorScheme": 1,
|
||||
"addFolder": 4,
|
||||
"folder": 2,
|
||||
"lst": 6,
|
||||
"let": 2,
|
||||
"add": 2,
|
||||
"x": 13,
|
||||
"y": 7,
|
||||
"+": 14,
|
||||
"in": 2,
|
||||
"f": 8,
|
||||
"n": 2,
|
||||
"xs": 9,
|
||||
"map": 11,
|
||||
"elements": 2,
|
||||
"[": 31,
|
||||
"]": 31,
|
||||
"functional": 2,
|
||||
"reactive": 2,
|
||||
"-": 11,
|
||||
"example": 3,
|
||||
"name": 6,
|
||||
"loc": 2,
|
||||
"Text.link": 1,
|
||||
"toText": 6,
|
||||
"toLinks": 2,
|
||||
"title": 2,
|
||||
"links": 2,
|
||||
"flow": 4,
|
||||
"right": 8,
|
||||
"width": 3,
|
||||
"text": 4,
|
||||
"italic": 1,
|
||||
"bold": 2,
|
||||
".": 9,
|
||||
"Text.color": 1,
|
||||
"accent4": 1,
|
||||
"insertSpace": 2,
|
||||
"case": 5,
|
||||
"of": 7,
|
||||
"{": 1,
|
||||
"spacer": 2,
|
||||
";": 1,
|
||||
"}": 1,
|
||||
"subsection": 2,
|
||||
"w": 7,
|
||||
"info": 2,
|
||||
"down": 3,
|
||||
"words": 2,
|
||||
"markdown": 1,
|
||||
"|": 3,
|
||||
"###": 1,
|
||||
"Basic": 1,
|
||||
"Examples": 1,
|
||||
"Each": 1,
|
||||
"listed": 1,
|
||||
"below": 1,
|
||||
"focuses": 1,
|
||||
"on": 1,
|
||||
"a": 5,
|
||||
"single": 1,
|
||||
"function": 1,
|
||||
"or": 1,
|
||||
"concept.": 1,
|
||||
"These": 1,
|
||||
"examples": 1,
|
||||
"demonstrate": 1,
|
||||
"all": 1,
|
||||
"the": 1,
|
||||
"basic": 1,
|
||||
"building": 1,
|
||||
"blocks": 1,
|
||||
"Elm.": 1,
|
||||
"content": 2,
|
||||
"exampleSets": 2,
|
||||
"plainText": 1,
|
||||
"main": 3,
|
||||
"lift": 1,
|
||||
"skeleton": 1,
|
||||
"Window.width": 1,
|
||||
"asText": 1,
|
||||
"qsort": 4,
|
||||
"filter": 2,
|
||||
"<)x)>": 1,
|
||||
"data": 1,
|
||||
"Tree": 3,
|
||||
"Node": 8,
|
||||
"Empty": 8,
|
||||
"empty": 2,
|
||||
"singleton": 2,
|
||||
"v": 8,
|
||||
"insert": 4,
|
||||
"tree": 7,
|
||||
"left": 7,
|
||||
"if": 2,
|
||||
"then": 2,
|
||||
"else": 2,
|
||||
"<": 1,
|
||||
"fromList": 3,
|
||||
"foldl": 1,
|
||||
"depth": 5,
|
||||
"max": 1,
|
||||
"t1": 2,
|
||||
"t2": 3,
|
||||
"display": 4,
|
||||
"monospace": 1,
|
||||
"concat": 1,
|
||||
"show": 2
|
||||
},
|
||||
"Emacs Lisp": {
|
||||
"(": 1,
|
||||
"print": 1,
|
||||
@@ -21629,13 +21750,13 @@
|
||||
"AUTHOR": 1
|
||||
},
|
||||
"PHP": {
|
||||
"<": 9,
|
||||
"php": 6,
|
||||
"<": 11,
|
||||
"php": 8,
|
||||
"namespace": 28,
|
||||
"Symfony": 24,
|
||||
"Component": 24,
|
||||
"Console": 17,
|
||||
";": 1380,
|
||||
";": 1382,
|
||||
"use": 23,
|
||||
"Input": 6,
|
||||
"InputInterface": 4,
|
||||
@@ -22647,7 +22768,9 @@
|
||||
"nest": 1,
|
||||
"isUnique": 1,
|
||||
"is_bool": 1,
|
||||
"sql": 1
|
||||
"sql": 1,
|
||||
"SHEBANG#!php": 2,
|
||||
"echo": 2
|
||||
},
|
||||
"PowerShell": {
|
||||
"Write": 2,
|
||||
@@ -27753,6 +27876,7 @@
|
||||
"Delphi": 30,
|
||||
"Diff": 16,
|
||||
"Ecl": 281,
|
||||
"Elm": 628,
|
||||
"Emacs Lisp": 3,
|
||||
"GAS": 133,
|
||||
"Gosu": 413,
|
||||
@@ -27781,7 +27905,7 @@
|
||||
"Parrot Assembly": 6,
|
||||
"Parrot Internal Representation": 5,
|
||||
"Perl": 17113,
|
||||
"PHP": 20637,
|
||||
"PHP": 20647,
|
||||
"PowerShell": 12,
|
||||
"Prolog": 4040,
|
||||
"Python": 4020,
|
||||
@@ -27824,6 +27948,7 @@
|
||||
"Delphi": 1,
|
||||
"Diff": 1,
|
||||
"Ecl": 1,
|
||||
"Elm": 3,
|
||||
"Emacs Lisp": 1,
|
||||
"GAS": 1,
|
||||
"Gosu": 5,
|
||||
@@ -27852,7 +27977,7 @@
|
||||
"Parrot Assembly": 1,
|
||||
"Parrot Internal Representation": 1,
|
||||
"Perl": 13,
|
||||
"PHP": 6,
|
||||
"PHP": 8,
|
||||
"PowerShell": 2,
|
||||
"Prolog": 6,
|
||||
"Python": 4,
|
||||
@@ -27881,5 +28006,5 @@
|
||||
"XSLT": 1,
|
||||
"YAML": 1
|
||||
},
|
||||
"md5": "384f02c0bd223479bf750d4cd36daf71"
|
||||
"md5": "ef9b9c6f8312a9f029edf9b7df6e9751"
|
||||
}
|
||||
127
samples/Elm/Basic.elm
Normal file
127
samples/Elm/Basic.elm
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
import List (intercalate,intersperse)
|
||||
import Website.Skeleton
|
||||
import Website.ColorScheme
|
||||
|
||||
addFolder folder lst =
|
||||
let add (x,y) = (x, folder ++ y ++ ".elm") in
|
||||
let f (n,xs) = (n, map add xs) in
|
||||
map f lst
|
||||
|
||||
elements = addFolder "Elements/"
|
||||
[ ("Primitives",
|
||||
[ ("Text" , "HelloWorld")
|
||||
, ("Images", "Image")
|
||||
, ("Fitted Images", "FittedImage")
|
||||
, ("Videos", "Video")
|
||||
, ("Markdown", "Markdown")
|
||||
])
|
||||
, ("Formatting",
|
||||
[ ("Size" , "Size")
|
||||
, ("Opacity" , "Opacity")
|
||||
, ("Text" , "Text")
|
||||
, ("Typeface", "Typeface")
|
||||
])
|
||||
, ("Layout",
|
||||
[ ("Simple Flow", "FlowDown1a")
|
||||
, ("Flow Down" , "FlowDown2")
|
||||
, ("Layers" , "Layers")
|
||||
, ("Positioning", "Position")
|
||||
, ("Spacers" , "Spacer")
|
||||
])
|
||||
, ("Collage", [ ("Lines" , "Lines")
|
||||
, ("Shapes" , "Shapes")
|
||||
, ("Sprites" , "Sprite")
|
||||
, ("Elements" , "ToForm")
|
||||
, ("Colors" , "Color")
|
||||
, ("Textures" , "Texture")
|
||||
, ("Transforms", "Transforms")
|
||||
])
|
||||
]
|
||||
|
||||
|
||||
functional = addFolder "Functional/"
|
||||
[ ("Recursion",
|
||||
[ ("Factorial" , "Factorial")
|
||||
, ("List Length", "Length")
|
||||
, ("Zip" , "Zip")
|
||||
, ("Quick Sort" , "QuickSort")
|
||||
])
|
||||
, ("Functions",
|
||||
[ ("Anonymous Functions", "Anonymous")
|
||||
, ("Application" , "Application")
|
||||
, ("Composition" , "Composition")
|
||||
, ("Infix Operators" , "Infix")
|
||||
])
|
||||
, ("Higher-Order",
|
||||
[ ("Map" , "Map")
|
||||
, ("Fold" , "Sum")
|
||||
, ("Filter" , "Filter")
|
||||
, ("ZipWith", "ZipWith")
|
||||
])
|
||||
, ("Data Types",
|
||||
[ ("Maybe", "Maybe")
|
||||
, ("Boolean Expressions", "BooleanExpressions")
|
||||
, ("Tree", "Tree")
|
||||
])
|
||||
]
|
||||
|
||||
reactive = addFolder "Reactive/"
|
||||
[ ("Mouse", [ ("Position", "Position")
|
||||
, ("Presses" , "IsDown")
|
||||
, ("Clicks" , "CountClicks")
|
||||
, ("Position+Image", "ResizeYogi")
|
||||
, ("Position+Collage" , "Transforms")
|
||||
-- , ("Hover" , "IsAbove")
|
||||
])
|
||||
,("Keyboard",[ ("Keys Down" , "KeysDown")
|
||||
, ("Key Presses", "CharPressed")
|
||||
])
|
||||
, ("Window", [ ("Size", "ResizePaint")
|
||||
, ("Centering", "Centering")
|
||||
])
|
||||
, ("Time", [ ("Before and After", "Between")
|
||||
, ("Every" , "Every")
|
||||
, ("Clock" , "Clock")
|
||||
])
|
||||
, ("Input", [ ("Text Fields", "TextField")
|
||||
, ("Passwords" , "Password")
|
||||
, ("Check Boxes", "CheckBox")
|
||||
, ("String Drop Down", "StringDropDown")
|
||||
, ("Drop Down", "DropDown")
|
||||
])
|
||||
, ("Random", [ ("Randomize", "Randomize") ])
|
||||
, ("HTTP", [ ("Zip Codes", "ZipCodes") ])
|
||||
, ("Filters",[ ("Sample", "SampleOn")
|
||||
, ("Keep If", "KeepIf")
|
||||
, ("Drop Repeats", "DropRepeats")
|
||||
])
|
||||
]
|
||||
|
||||
example (name, loc) = Text.link ("/edit/examples/" ++ loc) (toText name)
|
||||
toLinks (title, links) =
|
||||
flow right [ width 130 (text $ toText " " ++ italic (toText title))
|
||||
, text (intercalate (bold . Text.color accent4 $ toText " · ") $ map example links)
|
||||
]
|
||||
|
||||
insertSpace lst = case lst of { x:xs -> x : spacer 1 5 : xs ; [] -> [] }
|
||||
|
||||
subsection w (name,info) =
|
||||
flow down . insertSpace . intersperse (spacer 1 1) . map (width w) $
|
||||
(text . bold $ toText name) : map toLinks info
|
||||
|
||||
words = [markdown|
|
||||
|
||||
### Basic Examples
|
||||
|
||||
Each example listed below focuses on a single function or concept.
|
||||
These examples demonstrate all of the basic building blocks of Elm.
|
||||
|
||||
|]
|
||||
|
||||
content w =
|
||||
words : map (subsection w) [ ("Display",elements), ("React",reactive), ("Compute",functional) ]
|
||||
|
||||
exampleSets w = flow down . map (width w) . intersperse (plainText " ") $ content w
|
||||
|
||||
main = lift (skeleton exampleSets) Window.width
|
||||
32
samples/Elm/QuickSort.elm
Normal file
32
samples/Elm/QuickSort.elm
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
main = asText (qsort [3,9,1,8,5,4,7])
|
||||
|
||||
qsort lst =
|
||||
case lst of
|
||||
x:xs -> qsort (filter ((>=)x) xs) ++ [x] ++ qsort (filter ((<)x) xs)
|
||||
[] -> []
|
||||
|
||||
|
||||
{---------------------
|
||||
|
||||
QuickSort works as follows:
|
||||
- Choose a pivot element which be placed in the "middle" of the sorted list.
|
||||
In our case we are choosing the first element as the pivot.
|
||||
- Gather all of the elements less than the pivot (the first filter).
|
||||
We know that these must come before our pivot element in the sorted list.
|
||||
Note: ((>=)x) === (\y -> (>=) x y) === (\y -> x >= y)
|
||||
- Gather all of the elements greater than the pivot (the second filter).
|
||||
We know that these must come after our pivot element in the sorted list.
|
||||
- Run `qsort` on the lesser elements, producing a sorted list that contains
|
||||
only elements less than the pivot. Put these before the pivot.
|
||||
- Run `qsort` on the greater elements, producing a sorted list. Put these
|
||||
after the pivot.
|
||||
|
||||
Note that choosing a bad pivot can have bad effects. Take a sorted list with
|
||||
N elements. The pivot will always be the lowest member, meaning that it does
|
||||
not divide the list very evenly. The list of lessers has 0 elements
|
||||
and the list of greaters has N-1 elemens. This means qsort will be called
|
||||
N times, each call looking through the entire list. This means, in the worst
|
||||
case, QuickSort will make N^2 comparisons.
|
||||
|
||||
----------------------}
|
||||
91
samples/Elm/Tree.elm
Normal file
91
samples/Elm/Tree.elm
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
{-----------------------------------------------------------------
|
||||
|
||||
Overview: A "Tree" represents a binary tree. A "Node" in a binary
|
||||
tree always has two children. A tree can also be "Empty". Below
|
||||
I have defined "Tree" and a number of useful functions.
|
||||
|
||||
This example also includes some challenge problems :)
|
||||
|
||||
-----------------------------------------------------------------}
|
||||
|
||||
|
||||
data Tree a = Node a (Tree a) (Tree a) | Empty
|
||||
|
||||
empty = Empty
|
||||
singleton v = Node v Empty Empty
|
||||
|
||||
insert x tree =
|
||||
case tree of
|
||||
Empty -> singleton x
|
||||
Node y left right ->
|
||||
if x == y then tree else
|
||||
if x < y then Node y (insert x left) right
|
||||
else Node y left (insert x right)
|
||||
|
||||
fromList xs = foldl insert empty xs
|
||||
|
||||
depth tree =
|
||||
case tree of
|
||||
Node v left right -> 1 + max (depth left) (depth right)
|
||||
Empty -> 0
|
||||
|
||||
map f tree =
|
||||
case tree of
|
||||
Node v left right -> Node (f v) (map f left) (map f right)
|
||||
Empty -> Empty
|
||||
|
||||
t1 = fromList [1,2,3]
|
||||
t2 = fromList [2,1,3]
|
||||
|
||||
main = flow down [ display "depth" depth t1
|
||||
, display "depth" depth t2
|
||||
, display "map ((+)1)" (map ((+)1)) t2
|
||||
]
|
||||
|
||||
display name f v =
|
||||
text . monospace . toText $
|
||||
concat [ show (f v), " ⇐ ", name, " ", show v ]
|
||||
|
||||
{-----------------------------------------------------------------
|
||||
|
||||
Exercises:
|
||||
|
||||
(1) Sum all of the elements of a tree.
|
||||
|
||||
sum :: Tree Number -> Number
|
||||
|
||||
(2) Flatten a tree into a list.
|
||||
|
||||
flatten :: Tree a -> [a]
|
||||
|
||||
(3) Check to see if an element is in a given tree.
|
||||
|
||||
isElement :: a -> Tree a -> Bool
|
||||
|
||||
(4) Write a general fold function that acts on trees. The fold
|
||||
function does not need to guarantee a particular order of
|
||||
traversal.
|
||||
|
||||
fold :: (a -> b -> b) -> b -> Tree a -> b
|
||||
|
||||
(5) Use "fold" to do exercises 1-3 in one line each. The best
|
||||
readable versions I have come up have the following length
|
||||
in characters including spaces and function name:
|
||||
sum: 16
|
||||
flatten: 21
|
||||
isElement: 46
|
||||
See if you can match or beat me! Don't forget about currying
|
||||
and partial application!
|
||||
|
||||
(6) Can "fold" be used to implement "map" or "depth"?
|
||||
|
||||
(7) Try experimenting with different ways to traverse a
|
||||
tree: pre-order, in-order, post-order, depth-first, etc.
|
||||
More info at: http://en.wikipedia.org/wiki/Tree_traversal
|
||||
|
||||
-----------------------------------------------------------------}
|
||||
|
||||
|
||||
|
||||
|
||||
4
samples/PHP/php-script.script!
Normal file
4
samples/PHP/php-script.script!
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
echo "PHP\n";
|
||||
4
samples/PHP/php.script!
Normal file
4
samples/PHP/php.script!
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
echo "PHP\n";
|
||||
@@ -26,6 +26,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Lexer['HTML'], Language['HTML'].lexer
|
||||
assert_equal Lexer['HTML+Django/Jinja'], Language['HTML+Django'].lexer
|
||||
assert_equal Lexer['HTML+PHP'], Language['HTML+PHP'].lexer
|
||||
assert_equal Lexer['HTTP'], Language['HTTP'].lexer
|
||||
assert_equal Lexer['JSON'], Language['JSON'].lexer
|
||||
assert_equal Lexer['Java'], Language['ChucK'].lexer
|
||||
assert_equal Lexer['Java'], Language['Java'].lexer
|
||||
@@ -51,7 +52,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Lexer['Verilog'], Language['Verilog'].lexer
|
||||
assert_equal Lexer['XSLT'], Language['XSLT'].lexer
|
||||
assert_equal Lexer['aspx-vb'], Language['ASP'].lexer
|
||||
assert_equal Lexer['haXe'], Language['HaXe'].lexer
|
||||
assert_equal Lexer['haXe'], Language['Haxe'].lexer
|
||||
assert_equal Lexer['reStructuredText'], Language['reStructuredText'].lexer
|
||||
end
|
||||
|
||||
@@ -60,6 +61,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Language['ASP'], Language.find_by_alias('aspx')
|
||||
assert_equal Language['ASP'], Language.find_by_alias('aspx-vb')
|
||||
assert_equal Language['ActionScript'], Language.find_by_alias('as3')
|
||||
assert_equal Language['ApacheConf'], Language.find_by_alias('apache')
|
||||
assert_equal Language['Assembly'], Language.find_by_alias('nasm')
|
||||
assert_equal Language['Batchfile'], Language.find_by_alias('bat')
|
||||
assert_equal Language['C#'], Language.find_by_alias('c#')
|
||||
@@ -68,6 +70,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Language['C++'], Language.find_by_alias('c++')
|
||||
assert_equal Language['C++'], Language.find_by_alias('cpp')
|
||||
assert_equal Language['CoffeeScript'], Language.find_by_alias('coffee')
|
||||
assert_equal Language['CoffeeScript'], Language.find_by_alias('coffee-script')
|
||||
assert_equal Language['ColdFusion'], Language.find_by_alias('cfm')
|
||||
assert_equal Language['Common Lisp'], Language.find_by_alias('common-lisp')
|
||||
assert_equal Language['Common Lisp'], Language.find_by_alias('lisp')
|
||||
@@ -78,7 +81,9 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Language['Emacs Lisp'], Language.find_by_alias('emacs-lisp')
|
||||
assert_equal Language['Gettext Catalog'], Language.find_by_alias('pot')
|
||||
assert_equal Language['HTML'], Language.find_by_alias('html')
|
||||
assert_equal Language['HTML'], Language.find_by_alias('xhtml')
|
||||
assert_equal Language['HTML+ERB'], Language.find_by_alias('html+erb')
|
||||
assert_equal Language['HTML+ERB'], Language.find_by_alias('erb')
|
||||
assert_equal Language['IRC log'], Language.find_by_alias('irc')
|
||||
assert_equal Language['JSON'], Language.find_by_alias('json')
|
||||
assert_equal Language['Java Server Pages'], Language.find_by_alias('jsp')
|
||||
@@ -87,6 +92,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Language['JavaScript'], Language.find_by_alias('js')
|
||||
assert_equal Language['Literate Haskell'], Language.find_by_alias('lhs')
|
||||
assert_equal Language['Literate Haskell'], Language.find_by_alias('literate-haskell')
|
||||
assert_equal Language['Objective-C'], Language.find_by_alias('objc')
|
||||
assert_equal Language['OpenEdge ABL'], Language.find_by_alias('openedge')
|
||||
assert_equal Language['OpenEdge ABL'], Language.find_by_alias('progress')
|
||||
assert_equal Language['OpenEdge ABL'], Language.find_by_alias('abl')
|
||||
@@ -106,6 +112,7 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal Language['VimL'], Language.find_by_alias('vim')
|
||||
assert_equal Language['VimL'], Language.find_by_alias('viml')
|
||||
assert_equal Language['reStructuredText'], Language.find_by_alias('rst')
|
||||
assert_equal Language['YAML'], Language.find_by_alias('yml')
|
||||
end
|
||||
|
||||
def test_groups
|
||||
@@ -224,10 +231,16 @@ class TestLanguage < Test::Unit::TestCase
|
||||
assert_equal [Language['Ruby']], Language.find_by_filename('foo/bar.rb')
|
||||
assert_equal [Language['Ruby']], Language.find_by_filename('Rakefile')
|
||||
assert_equal [Language['Ruby']], Language.find_by_filename('PKGBUILD.rb')
|
||||
assert_equal Language['ApacheConf'], Language.find_by_filename('httpd.conf').first
|
||||
assert_equal [Language['ApacheConf']], Language.find_by_filename('.htaccess')
|
||||
assert_equal Language['Nginx'], Language.find_by_filename('nginx.conf').first
|
||||
assert_equal ['C', 'C++', 'Objective-C'], Language.find_by_filename('foo.h').map(&:name).sort
|
||||
assert_equal [], Language.find_by_filename('rb')
|
||||
assert_equal [], Language.find_by_filename('.rb')
|
||||
assert_equal [], Language.find_by_filename('.nkt')
|
||||
assert_equal [Language['Shell']], Language.find_by_filename('.bashrc')
|
||||
assert_equal [Language['Shell']], Language.find_by_filename('bash_profile')
|
||||
assert_equal [Language['Shell']], Language.find_by_filename('.zshrc')
|
||||
end
|
||||
|
||||
def test_find
|
||||
|
||||
@@ -94,6 +94,7 @@ class TestTokenizer < Test::Unit::TestCase
|
||||
assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby.script!")[0]
|
||||
assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2.script!")[0]
|
||||
assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js.script!")[0]
|
||||
assert_equal "SHEBANG#!php", tokenize(:"PHP/php.script!")[0]
|
||||
assert_equal "echo", tokenize(:"Shell/invalid-shebang.sh")[0]
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user