module Text.Highlighting.Kate.Syntax ( highlightAs,
languages,
languageByFullName,
languagesByExtension,
languagesByFilename ) where
import Data.Char (toLower)
import Text.Highlighting.Kate.Types
import Text.Highlighting.Kate.Common (matchGlobs)
import qualified Text.Highlighting.Kate.Syntax.Abc as Abc
import qualified Text.Highlighting.Kate.Syntax.Actionscript as Actionscript
import qualified Text.Highlighting.Kate.Syntax.Ada as Ada
import qualified Text.Highlighting.Kate.Syntax.Agda as Agda
import qualified Text.Highlighting.Kate.Syntax.Alert as Alert
import qualified Text.Highlighting.Kate.Syntax.Alert_indent as Alert_indent
import qualified Text.Highlighting.Kate.Syntax.Apache as Apache
import qualified Text.Highlighting.Kate.Syntax.Asn1 as Asn1
import qualified Text.Highlighting.Kate.Syntax.Asp as Asp
import qualified Text.Highlighting.Kate.Syntax.Ats as Ats
import qualified Text.Highlighting.Kate.Syntax.Awk as Awk
import qualified Text.Highlighting.Kate.Syntax.Bash as Bash
import qualified Text.Highlighting.Kate.Syntax.Bibtex as Bibtex
import qualified Text.Highlighting.Kate.Syntax.Boo as Boo
import qualified Text.Highlighting.Kate.Syntax.C as C
import qualified Text.Highlighting.Kate.Syntax.Changelog as Changelog
import qualified Text.Highlighting.Kate.Syntax.Clojure as Clojure
import qualified Text.Highlighting.Kate.Syntax.Cmake as Cmake
import qualified Text.Highlighting.Kate.Syntax.Coffee as Coffee
import qualified Text.Highlighting.Kate.Syntax.Coldfusion as Coldfusion
import qualified Text.Highlighting.Kate.Syntax.Commonlisp as Commonlisp
import qualified Text.Highlighting.Kate.Syntax.Cpp as Cpp
import qualified Text.Highlighting.Kate.Syntax.Cs as Cs
import qualified Text.Highlighting.Kate.Syntax.Css as Css
import qualified Text.Highlighting.Kate.Syntax.Curry as Curry
import qualified Text.Highlighting.Kate.Syntax.D as D
import qualified Text.Highlighting.Kate.Syntax.Diff as Diff
import qualified Text.Highlighting.Kate.Syntax.Djangotemplate as Djangotemplate
import qualified Text.Highlighting.Kate.Syntax.Dockerfile as Dockerfile
import qualified Text.Highlighting.Kate.Syntax.Dot as Dot
import qualified Text.Highlighting.Kate.Syntax.Doxygen as Doxygen
import qualified Text.Highlighting.Kate.Syntax.Doxygenlua as Doxygenlua
import qualified Text.Highlighting.Kate.Syntax.Dtd as Dtd
import qualified Text.Highlighting.Kate.Syntax.Eiffel as Eiffel
import qualified Text.Highlighting.Kate.Syntax.Elixir as Elixir
import qualified Text.Highlighting.Kate.Syntax.Email as Email
import qualified Text.Highlighting.Kate.Syntax.Erlang as Erlang
import qualified Text.Highlighting.Kate.Syntax.Fasm as Fasm
import qualified Text.Highlighting.Kate.Syntax.Fortran as Fortran
import qualified Text.Highlighting.Kate.Syntax.Fsharp as Fsharp
import qualified Text.Highlighting.Kate.Syntax.Gcc as Gcc
import qualified Text.Highlighting.Kate.Syntax.Glsl as Glsl
import qualified Text.Highlighting.Kate.Syntax.Gnuassembler as Gnuassembler
import qualified Text.Highlighting.Kate.Syntax.Go as Go
import qualified Text.Highlighting.Kate.Syntax.Hamlet as Hamlet
import qualified Text.Highlighting.Kate.Syntax.Haskell as Haskell
import qualified Text.Highlighting.Kate.Syntax.Haxe as Haxe
import qualified Text.Highlighting.Kate.Syntax.Html as Html
import qualified Text.Highlighting.Kate.Syntax.Idris as Idris
import qualified Text.Highlighting.Kate.Syntax.Ini as Ini
import qualified Text.Highlighting.Kate.Syntax.Isocpp as Isocpp
import qualified Text.Highlighting.Kate.Syntax.Java as Java
import qualified Text.Highlighting.Kate.Syntax.Javadoc as Javadoc
import qualified Text.Highlighting.Kate.Syntax.Javascript as Javascript
import qualified Text.Highlighting.Kate.Syntax.Json as Json
import qualified Text.Highlighting.Kate.Syntax.Jsp as Jsp
import qualified Text.Highlighting.Kate.Syntax.Julia as Julia
import qualified Text.Highlighting.Kate.Syntax.Kotlin as Kotlin
import qualified Text.Highlighting.Kate.Syntax.Latex as Latex
import qualified Text.Highlighting.Kate.Syntax.Lex as Lex
import qualified Text.Highlighting.Kate.Syntax.Lilypond as Lilypond
import qualified Text.Highlighting.Kate.Syntax.LiterateCurry as LiterateCurry
import qualified Text.Highlighting.Kate.Syntax.LiterateHaskell as LiterateHaskell
import qualified Text.Highlighting.Kate.Syntax.Llvm as Llvm
import qualified Text.Highlighting.Kate.Syntax.Lua as Lua
import qualified Text.Highlighting.Kate.Syntax.M4 as M4
import qualified Text.Highlighting.Kate.Syntax.Makefile as Makefile
import qualified Text.Highlighting.Kate.Syntax.Mandoc as Mandoc
import qualified Text.Highlighting.Kate.Syntax.Markdown as Markdown
import qualified Text.Highlighting.Kate.Syntax.Mathematica as Mathematica
import qualified Text.Highlighting.Kate.Syntax.Matlab as Matlab
import qualified Text.Highlighting.Kate.Syntax.Maxima as Maxima
import qualified Text.Highlighting.Kate.Syntax.Mediawiki as Mediawiki
import qualified Text.Highlighting.Kate.Syntax.Metafont as Metafont
import qualified Text.Highlighting.Kate.Syntax.Mips as Mips
import qualified Text.Highlighting.Kate.Syntax.Modelines as Modelines
import qualified Text.Highlighting.Kate.Syntax.Modula2 as Modula2
import qualified Text.Highlighting.Kate.Syntax.Modula3 as Modula3
import qualified Text.Highlighting.Kate.Syntax.Monobasic as Monobasic
import qualified Text.Highlighting.Kate.Syntax.Nasm as Nasm
import qualified Text.Highlighting.Kate.Syntax.Noweb as Noweb
import qualified Text.Highlighting.Kate.Syntax.Objectivec as Objectivec
import qualified Text.Highlighting.Kate.Syntax.Objectivecpp as Objectivecpp
import qualified Text.Highlighting.Kate.Syntax.Ocaml as Ocaml
import qualified Text.Highlighting.Kate.Syntax.Octave as Octave
import qualified Text.Highlighting.Kate.Syntax.Opencl as Opencl
import qualified Text.Highlighting.Kate.Syntax.Pascal as Pascal
import qualified Text.Highlighting.Kate.Syntax.Perl as Perl
import qualified Text.Highlighting.Kate.Syntax.Php as Php
import qualified Text.Highlighting.Kate.Syntax.Pike as Pike
import qualified Text.Highlighting.Kate.Syntax.Postscript as Postscript
import qualified Text.Highlighting.Kate.Syntax.Prolog as Prolog
import qualified Text.Highlighting.Kate.Syntax.Pure as Pure
import qualified Text.Highlighting.Kate.Syntax.Python as Python
import qualified Text.Highlighting.Kate.Syntax.R as R
import qualified Text.Highlighting.Kate.Syntax.Relaxng as Relaxng
import qualified Text.Highlighting.Kate.Syntax.Relaxngcompact as Relaxngcompact
import qualified Text.Highlighting.Kate.Syntax.Rest as Rest
import qualified Text.Highlighting.Kate.Syntax.Rhtml as Rhtml
import qualified Text.Highlighting.Kate.Syntax.Roff as Roff
import qualified Text.Highlighting.Kate.Syntax.Ruby as Ruby
import qualified Text.Highlighting.Kate.Syntax.Rust as Rust
import qualified Text.Highlighting.Kate.Syntax.Scala as Scala
import qualified Text.Highlighting.Kate.Syntax.Scheme as Scheme
import qualified Text.Highlighting.Kate.Syntax.Sci as Sci
import qualified Text.Highlighting.Kate.Syntax.Sed as Sed
import qualified Text.Highlighting.Kate.Syntax.Sgml as Sgml
import qualified Text.Highlighting.Kate.Syntax.Sql as Sql
import qualified Text.Highlighting.Kate.Syntax.SqlMysql as SqlMysql
import qualified Text.Highlighting.Kate.Syntax.SqlPostgresql as SqlPostgresql
import qualified Text.Highlighting.Kate.Syntax.Tcl as Tcl
import qualified Text.Highlighting.Kate.Syntax.Tcsh as Tcsh
import qualified Text.Highlighting.Kate.Syntax.Texinfo as Texinfo
import qualified Text.Highlighting.Kate.Syntax.Verilog as Verilog
import qualified Text.Highlighting.Kate.Syntax.Vhdl as Vhdl
import qualified Text.Highlighting.Kate.Syntax.Xml as Xml
import qualified Text.Highlighting.Kate.Syntax.Xorg as Xorg
import qualified Text.Highlighting.Kate.Syntax.Xslt as Xslt
import qualified Text.Highlighting.Kate.Syntax.Xul as Xul
import qualified Text.Highlighting.Kate.Syntax.Yacc as Yacc
import qualified Text.Highlighting.Kate.Syntax.Yaml as Yaml
import qualified Text.Highlighting.Kate.Syntax.Zsh as Zsh
languages :: [String]
languages :: [String]
languages = ["Abc","Actionscript","Ada","Agda","Alert","Alert_indent","Apache","Asn1","Asp","Ats","Awk","Bash","Bibtex","Boo","C","Changelog","Clojure","Cmake","Coffee","Coldfusion","Commonlisp","Cpp","Cs","Css","Curry","D","Diff","Djangotemplate","Dockerfile","Dot","Doxygen","Doxygenlua","Dtd","Eiffel","Elixir","Email","Erlang","Fasm","Fortran","Fsharp","Gcc","Glsl","Gnuassembler","Go","Hamlet","Haskell","Haxe","Html","Idris","Ini","Isocpp","Java","Javadoc","Javascript","Json","Jsp","Julia","Kotlin","Latex","Lex","Lilypond","LiterateCurry","LiterateHaskell","Llvm","Lua","M4","Makefile","Mandoc","Markdown","Mathematica","Matlab","Maxima","Mediawiki","Metafont","Mips","Modelines","Modula2","Modula3","Monobasic","Nasm","Noweb","Objectivec","Objectivecpp","Ocaml","Octave","Opencl","Pascal","Perl","Php","Pike","Postscript","Prolog","Pure","Python","R","Relaxng","Relaxngcompact","Rest","Rhtml","Roff","Ruby","Rust","Scala","Scheme","Sci","Sed","Sgml","Sql","SqlMysql","SqlPostgresql","Tcl","Tcsh","Texinfo","Verilog","Vhdl","Xml","Xorg","Xslt","Xul","Yacc","Yaml","Zsh"]
languageExtensions :: [(String, String)]
languageExtensions :: [(String, String)]
languageExtensions = [("Abc", String
Abc.syntaxExtensions), ("Actionscript", String
Actionscript.syntaxExtensions), ("Ada", String
Ada.syntaxExtensions), ("Agda", String
Agda.syntaxExtensions), ("Alert", String
Alert.syntaxExtensions), ("Alert_indent", String
Alert_indent.syntaxExtensions), ("Apache", String
Apache.syntaxExtensions), ("Asn1", String
Asn1.syntaxExtensions), ("Asp", String
Asp.syntaxExtensions), ("Ats", String
Ats.syntaxExtensions), ("Awk", String
Awk.syntaxExtensions), ("Bash", String
Bash.syntaxExtensions), ("Bibtex", String
Bibtex.syntaxExtensions), ("Boo", String
Boo.syntaxExtensions), ("C", String
C.syntaxExtensions), ("Changelog", String
Changelog.syntaxExtensions), ("Clojure", String
Clojure.syntaxExtensions), ("Cmake", String
Cmake.syntaxExtensions), ("Coffee", String
Coffee.syntaxExtensions), ("Coldfusion", String
Coldfusion.syntaxExtensions), ("Commonlisp", String
Commonlisp.syntaxExtensions), ("Cpp", String
Cpp.syntaxExtensions), ("Cs", String
Cs.syntaxExtensions), ("Css", String
Css.syntaxExtensions), ("Curry", String
Curry.syntaxExtensions), ("D", String
D.syntaxExtensions), ("Diff", String
Diff.syntaxExtensions), ("Djangotemplate", String
Djangotemplate.syntaxExtensions), ("Dockerfile", String
Dockerfile.syntaxExtensions), ("Dot", String
Dot.syntaxExtensions), ("Doxygen", String
Doxygen.syntaxExtensions), ("Doxygenlua", String
Doxygenlua.syntaxExtensions), ("Dtd", String
Dtd.syntaxExtensions), ("Eiffel", String
Eiffel.syntaxExtensions), ("Elixir", String
Elixir.syntaxExtensions), ("Email", String
Email.syntaxExtensions), ("Erlang", String
Erlang.syntaxExtensions), ("Fasm", String
Fasm.syntaxExtensions), ("Fortran", String
Fortran.syntaxExtensions), ("Fsharp", String
Fsharp.syntaxExtensions), ("Gcc", String
Gcc.syntaxExtensions), ("Glsl", String
Glsl.syntaxExtensions), ("Gnuassembler", String
Gnuassembler.syntaxExtensions), ("Go", String
Go.syntaxExtensions), ("Hamlet", String
Hamlet.syntaxExtensions), ("Haskell", String
Haskell.syntaxExtensions), ("Haxe", String
Haxe.syntaxExtensions), ("Html", String
Html.syntaxExtensions), ("Idris", String
Idris.syntaxExtensions), ("Ini", String
Ini.syntaxExtensions), ("Isocpp", String
Isocpp.syntaxExtensions), ("Java", String
Java.syntaxExtensions), ("Javadoc", String
Javadoc.syntaxExtensions), ("Javascript", String
Javascript.syntaxExtensions), ("Json", String
Json.syntaxExtensions), ("Jsp", String
Jsp.syntaxExtensions), ("Julia", String
Julia.syntaxExtensions), ("Kotlin", String
Kotlin.syntaxExtensions), ("Latex", String
Latex.syntaxExtensions), ("Lex", String
Lex.syntaxExtensions), ("Lilypond", String
Lilypond.syntaxExtensions), ("LiterateCurry", String
LiterateCurry.syntaxExtensions), ("LiterateHaskell", String
LiterateHaskell.syntaxExtensions), ("Llvm", String
Llvm.syntaxExtensions), ("Lua", String
Lua.syntaxExtensions), ("M4", String
M4.syntaxExtensions), ("Makefile", String
Makefile.syntaxExtensions), ("Mandoc", String
Mandoc.syntaxExtensions), ("Markdown", String
Markdown.syntaxExtensions), ("Mathematica", String
Mathematica.syntaxExtensions), ("Matlab", String
Matlab.syntaxExtensions), ("Maxima", String
Maxima.syntaxExtensions), ("Mediawiki", String
Mediawiki.syntaxExtensions), ("Metafont", String
Metafont.syntaxExtensions), ("Mips", String
Mips.syntaxExtensions), ("Modelines", String
Modelines.syntaxExtensions), ("Modula2", String
Modula2.syntaxExtensions), ("Modula3", String
Modula3.syntaxExtensions), ("Monobasic", String
Monobasic.syntaxExtensions), ("Nasm", String
Nasm.syntaxExtensions), ("Noweb", String
Noweb.syntaxExtensions), ("Objectivec", String
Objectivec.syntaxExtensions), ("Objectivecpp", String
Objectivecpp.syntaxExtensions), ("Ocaml", String
Ocaml.syntaxExtensions), ("Octave", String
Octave.syntaxExtensions), ("Opencl", String
Opencl.syntaxExtensions), ("Pascal", String
Pascal.syntaxExtensions), ("Perl", String
Perl.syntaxExtensions), ("Php", String
Php.syntaxExtensions), ("Pike", String
Pike.syntaxExtensions), ("Postscript", String
Postscript.syntaxExtensions), ("Prolog", String
Prolog.syntaxExtensions), ("Pure", String
Pure.syntaxExtensions), ("Python", String
Python.syntaxExtensions), ("R", String
R.syntaxExtensions), ("Relaxng", String
Relaxng.syntaxExtensions), ("Relaxngcompact", String
Relaxngcompact.syntaxExtensions), ("Rest", String
Rest.syntaxExtensions), ("Rhtml", String
Rhtml.syntaxExtensions), ("Roff", String
Roff.syntaxExtensions), ("Ruby", String
Ruby.syntaxExtensions), ("Rust", String
Rust.syntaxExtensions), ("Scala", String
Scala.syntaxExtensions), ("Scheme", String
Scheme.syntaxExtensions), ("Sci", String
Sci.syntaxExtensions), ("Sed", String
Sed.syntaxExtensions), ("Sgml", String
Sgml.syntaxExtensions), ("Sql", String
Sql.syntaxExtensions), ("SqlMysql", String
SqlMysql.syntaxExtensions), ("SqlPostgresql", String
SqlPostgresql.syntaxExtensions), ("Tcl", String
Tcl.syntaxExtensions), ("Tcsh", String
Tcsh.syntaxExtensions), ("Texinfo", String
Texinfo.syntaxExtensions), ("Verilog", String
Verilog.syntaxExtensions), ("Vhdl", String
Vhdl.syntaxExtensions), ("Xml", String
Xml.syntaxExtensions), ("Xorg", String
Xorg.syntaxExtensions), ("Xslt", String
Xslt.syntaxExtensions), ("Xul", String
Xul.syntaxExtensions), ("Yacc", String
Yacc.syntaxExtensions), ("Yaml", String
Yaml.syntaxExtensions), ("Zsh", String
Zsh.syntaxExtensions)]
languageFullNames :: [(String, String)]
languageFullNames :: [(String, String)]
languageFullNames = [("Abc", String
Abc.syntaxName), ("Actionscript", String
Actionscript.syntaxName), ("Ada", String
Ada.syntaxName), ("Agda", String
Agda.syntaxName), ("Alert", String
Alert.syntaxName), ("Alert_indent", String
Alert_indent.syntaxName), ("Apache", String
Apache.syntaxName), ("Asn1", String
Asn1.syntaxName), ("Asp", String
Asp.syntaxName), ("Ats", String
Ats.syntaxName), ("Awk", String
Awk.syntaxName), ("Bash", String
Bash.syntaxName), ("Bibtex", String
Bibtex.syntaxName), ("Boo", String
Boo.syntaxName), ("C", String
C.syntaxName), ("Changelog", String
Changelog.syntaxName), ("Clojure", String
Clojure.syntaxName), ("Cmake", String
Cmake.syntaxName), ("Coffee", String
Coffee.syntaxName), ("Coldfusion", String
Coldfusion.syntaxName), ("Commonlisp", String
Commonlisp.syntaxName), ("Cpp", String
Cpp.syntaxName), ("Cs", String
Cs.syntaxName), ("Css", String
Css.syntaxName), ("Curry", String
Curry.syntaxName), ("D", String
D.syntaxName), ("Diff", String
Diff.syntaxName), ("Djangotemplate", String
Djangotemplate.syntaxName), ("Dockerfile", String
Dockerfile.syntaxName), ("Dot", String
Dot.syntaxName), ("Doxygen", String
Doxygen.syntaxName), ("Doxygenlua", String
Doxygenlua.syntaxName), ("Dtd", String
Dtd.syntaxName), ("Eiffel", String
Eiffel.syntaxName), ("Elixir", String
Elixir.syntaxName), ("Email", String
Email.syntaxName), ("Erlang", String
Erlang.syntaxName), ("Fasm", String
Fasm.syntaxName), ("Fortran", String
Fortran.syntaxName), ("Fsharp", String
Fsharp.syntaxName), ("Gcc", String
Gcc.syntaxName), ("Glsl", String
Glsl.syntaxName), ("Gnuassembler", String
Gnuassembler.syntaxName), ("Go", String
Go.syntaxName), ("Hamlet", String
Hamlet.syntaxName), ("Haskell", String
Haskell.syntaxName), ("Haxe", String
Haxe.syntaxName), ("Html", String
Html.syntaxName), ("Idris", String
Idris.syntaxName), ("Ini", String
Ini.syntaxName), ("Isocpp", String
Isocpp.syntaxName), ("Java", String
Java.syntaxName), ("Javadoc", String
Javadoc.syntaxName), ("Javascript", String
Javascript.syntaxName), ("Json", String
Json.syntaxName), ("Jsp", String
Jsp.syntaxName), ("Julia", String
Julia.syntaxName), ("Kotlin", String
Kotlin.syntaxName), ("Latex", String
Latex.syntaxName), ("Lex", String
Lex.syntaxName), ("Lilypond", String
Lilypond.syntaxName), ("LiterateCurry", String
LiterateCurry.syntaxName), ("LiterateHaskell", String
LiterateHaskell.syntaxName), ("Llvm", String
Llvm.syntaxName), ("Lua", String
Lua.syntaxName), ("M4", String
M4.syntaxName), ("Makefile", String
Makefile.syntaxName), ("Mandoc", String
Mandoc.syntaxName), ("Markdown", String
Markdown.syntaxName), ("Mathematica", String
Mathematica.syntaxName), ("Matlab", String
Matlab.syntaxName), ("Maxima", String
Maxima.syntaxName), ("Mediawiki", String
Mediawiki.syntaxName), ("Metafont", String
Metafont.syntaxName), ("Mips", String
Mips.syntaxName), ("Modelines", String
Modelines.syntaxName), ("Modula2", String
Modula2.syntaxName), ("Modula3", String
Modula3.syntaxName), ("Monobasic", String
Monobasic.syntaxName), ("Nasm", String
Nasm.syntaxName), ("Noweb", String
Noweb.syntaxName), ("Objectivec", String
Objectivec.syntaxName), ("Objectivecpp", String
Objectivecpp.syntaxName), ("Ocaml", String
Ocaml.syntaxName), ("Octave", String
Octave.syntaxName), ("Opencl", String
Opencl.syntaxName), ("Pascal", String
Pascal.syntaxName), ("Perl", String
Perl.syntaxName), ("Php", String
Php.syntaxName), ("Pike", String
Pike.syntaxName), ("Postscript", String
Postscript.syntaxName), ("Prolog", String
Prolog.syntaxName), ("Pure", String
Pure.syntaxName), ("Python", String
Python.syntaxName), ("R", String
R.syntaxName), ("Relaxng", String
Relaxng.syntaxName), ("Relaxngcompact", String
Relaxngcompact.syntaxName), ("Rest", String
Rest.syntaxName), ("Rhtml", String
Rhtml.syntaxName), ("Roff", String
Roff.syntaxName), ("Ruby", String
Ruby.syntaxName), ("Rust", String
Rust.syntaxName), ("Scala", String
Scala.syntaxName), ("Scheme", String
Scheme.syntaxName), ("Sci", String
Sci.syntaxName), ("Sed", String
Sed.syntaxName), ("Sgml", String
Sgml.syntaxName), ("Sql", String
Sql.syntaxName), ("SqlMysql", String
SqlMysql.syntaxName), ("SqlPostgresql", String
SqlPostgresql.syntaxName), ("Tcl", String
Tcl.syntaxName), ("Tcsh", String
Tcsh.syntaxName), ("Texinfo", String
Texinfo.syntaxName), ("Verilog", String
Verilog.syntaxName), ("Vhdl", String
Vhdl.syntaxName), ("Xml", String
Xml.syntaxName), ("Xorg", String
Xorg.syntaxName), ("Xslt", String
Xslt.syntaxName), ("Xul", String
Xul.syntaxName), ("Yacc", String
Yacc.syntaxName), ("Yaml", String
Yaml.syntaxName), ("Zsh", String
Zsh.syntaxName)]
languageShortNames :: [(String, String)]
languageShortNames :: [(String, String)]
languageShortNames =
[((Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
y, (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
x) | (x :: String
x, y :: String
y) <- [(String, String)]
languageFullNames]
languageByFullName :: String -> Maybe String
languageByFullName :: String -> Maybe String
languageByFullName s :: String
s = String -> [(String, String)] -> Maybe String
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup String
s [(String, String)]
languageShortNames
languagesByExtension :: String -> [String]
languagesByExtension :: String -> [String]
languagesByExtension ('.':ext :: String
ext) = String -> [String]
languagesByFilename ("*." String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
ext)
languagesByExtension ext :: String
ext = String -> [String]
languagesByFilename ("*." String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
ext)
languagesByFilename :: FilePath -> [String]
languagesByFilename :: String -> [String]
languagesByFilename fn :: String
fn = [String
lang | (lang :: String
lang, globs :: String
globs) <- [(String, String)]
languageExtensions, String -> String -> Bool
matchGlobs String
fn String
globs]
highlightAs :: String
-> String
-> [SourceLine]
highlightAs :: String -> String -> [SourceLine]
highlightAs lang :: String
lang =
let lang' :: String
lang' = (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
lang
lang'' :: String
lang'' = if String
lang' String -> [String] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`elem` (String -> String) -> [String] -> [String]
forall a b. (a -> b) -> [a] -> [b]
map ((Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower) [String]
languages
then String
lang'
else case String -> Maybe String
languageByFullName String
lang' of
Just l :: String
l -> String
l
Nothing ->
case String -> [String]
languagesByExtension String
lang' of
[l :: String
l] -> (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
l
_ -> String
lang'
in case String
lang'' of
"abc" -> String -> [SourceLine]
Abc.highlight
"actionscript" -> String -> [SourceLine]
Actionscript.highlight
"ada" -> String -> [SourceLine]
Ada.highlight
"agda" -> String -> [SourceLine]
Agda.highlight
"alert" -> String -> [SourceLine]
Alert.highlight
"alert_indent" -> String -> [SourceLine]
Alert_indent.highlight
"apache" -> String -> [SourceLine]
Apache.highlight
"asn1" -> String -> [SourceLine]
Asn1.highlight
"asp" -> String -> [SourceLine]
Asp.highlight
"ats" -> String -> [SourceLine]
Ats.highlight
"awk" -> String -> [SourceLine]
Awk.highlight
"bash" -> String -> [SourceLine]
Bash.highlight
"bibtex" -> String -> [SourceLine]
Bibtex.highlight
"boo" -> String -> [SourceLine]
Boo.highlight
"c" -> String -> [SourceLine]
C.highlight
"changelog" -> String -> [SourceLine]
Changelog.highlight
"clojure" -> String -> [SourceLine]
Clojure.highlight
"cmake" -> String -> [SourceLine]
Cmake.highlight
"coffee" -> String -> [SourceLine]
Coffee.highlight
"coldfusion" -> String -> [SourceLine]
Coldfusion.highlight
"commonlisp" -> String -> [SourceLine]
Commonlisp.highlight
"cpp" -> String -> [SourceLine]
Cpp.highlight
"cs" -> String -> [SourceLine]
Cs.highlight
"css" -> String -> [SourceLine]
Css.highlight
"curry" -> String -> [SourceLine]
Curry.highlight
"d" -> String -> [SourceLine]
D.highlight
"diff" -> String -> [SourceLine]
Diff.highlight
"djangotemplate" -> String -> [SourceLine]
Djangotemplate.highlight
"dockerfile" -> String -> [SourceLine]
Dockerfile.highlight
"dot" -> String -> [SourceLine]
Dot.highlight
"doxygen" -> String -> [SourceLine]
Doxygen.highlight
"doxygenlua" -> String -> [SourceLine]
Doxygenlua.highlight
"dtd" -> String -> [SourceLine]
Dtd.highlight
"eiffel" -> String -> [SourceLine]
Eiffel.highlight
"elixir" -> String -> [SourceLine]
Elixir.highlight
"email" -> String -> [SourceLine]
Email.highlight
"erlang" -> String -> [SourceLine]
Erlang.highlight
"fasm" -> String -> [SourceLine]
Fasm.highlight
"fortran" -> String -> [SourceLine]
Fortran.highlight
"fsharp" -> String -> [SourceLine]
Fsharp.highlight
"gcc" -> String -> [SourceLine]
Gcc.highlight
"glsl" -> String -> [SourceLine]
Glsl.highlight
"gnuassembler" -> String -> [SourceLine]
Gnuassembler.highlight
"go" -> String -> [SourceLine]
Go.highlight
"hamlet" -> String -> [SourceLine]
Hamlet.highlight
"haskell" -> String -> [SourceLine]
Haskell.highlight
"haxe" -> String -> [SourceLine]
Haxe.highlight
"html" -> String -> [SourceLine]
Html.highlight
"idris" -> String -> [SourceLine]
Idris.highlight
"ini" -> String -> [SourceLine]
Ini.highlight
"isocpp" -> String -> [SourceLine]
Isocpp.highlight
"java" -> String -> [SourceLine]
Java.highlight
"javadoc" -> String -> [SourceLine]
Javadoc.highlight
"javascript" -> String -> [SourceLine]
Javascript.highlight
"json" -> String -> [SourceLine]
Json.highlight
"jsp" -> String -> [SourceLine]
Jsp.highlight
"julia" -> String -> [SourceLine]
Julia.highlight
"kotlin" -> String -> [SourceLine]
Kotlin.highlight
"latex" -> String -> [SourceLine]
Latex.highlight
"lex" -> String -> [SourceLine]
Lex.highlight
"lilypond" -> String -> [SourceLine]
Lilypond.highlight
"literatecurry" -> String -> [SourceLine]
LiterateCurry.highlight
"literatehaskell" -> String -> [SourceLine]
LiterateHaskell.highlight
"llvm" -> String -> [SourceLine]
Llvm.highlight
"lua" -> String -> [SourceLine]
Lua.highlight
"m4" -> String -> [SourceLine]
M4.highlight
"makefile" -> String -> [SourceLine]
Makefile.highlight
"mandoc" -> String -> [SourceLine]
Mandoc.highlight
"markdown" -> String -> [SourceLine]
Markdown.highlight
"mathematica" -> String -> [SourceLine]
Mathematica.highlight
"matlab" -> String -> [SourceLine]
Matlab.highlight
"maxima" -> String -> [SourceLine]
Maxima.highlight
"mediawiki" -> String -> [SourceLine]
Mediawiki.highlight
"metafont" -> String -> [SourceLine]
Metafont.highlight
"mips" -> String -> [SourceLine]
Mips.highlight
"modelines" -> String -> [SourceLine]
Modelines.highlight
"modula2" -> String -> [SourceLine]
Modula2.highlight
"modula3" -> String -> [SourceLine]
Modula3.highlight
"monobasic" -> String -> [SourceLine]
Monobasic.highlight
"nasm" -> String -> [SourceLine]
Nasm.highlight
"noweb" -> String -> [SourceLine]
Noweb.highlight
"objectivec" -> String -> [SourceLine]
Objectivec.highlight
"objectivecpp" -> String -> [SourceLine]
Objectivecpp.highlight
"ocaml" -> String -> [SourceLine]
Ocaml.highlight
"octave" -> String -> [SourceLine]
Octave.highlight
"opencl" -> String -> [SourceLine]
Opencl.highlight
"pascal" -> String -> [SourceLine]
Pascal.highlight
"perl" -> String -> [SourceLine]
Perl.highlight
"php" -> String -> [SourceLine]
Php.highlight
"pike" -> String -> [SourceLine]
Pike.highlight
"postscript" -> String -> [SourceLine]
Postscript.highlight
"prolog" -> String -> [SourceLine]
Prolog.highlight
"pure" -> String -> [SourceLine]
Pure.highlight
"python" -> String -> [SourceLine]
Python.highlight
"r" -> String -> [SourceLine]
R.highlight
"relaxng" -> String -> [SourceLine]
Relaxng.highlight
"relaxngcompact" -> String -> [SourceLine]
Relaxngcompact.highlight
"rest" -> String -> [SourceLine]
Rest.highlight
"rhtml" -> String -> [SourceLine]
Rhtml.highlight
"roff" -> String -> [SourceLine]
Roff.highlight
"ruby" -> String -> [SourceLine]
Ruby.highlight
"rust" -> String -> [SourceLine]
Rust.highlight
"scala" -> String -> [SourceLine]
Scala.highlight
"scheme" -> String -> [SourceLine]
Scheme.highlight
"sci" -> String -> [SourceLine]
Sci.highlight
"sed" -> String -> [SourceLine]
Sed.highlight
"sgml" -> String -> [SourceLine]
Sgml.highlight
"sql" -> String -> [SourceLine]
Sql.highlight
"sqlmysql" -> String -> [SourceLine]
SqlMysql.highlight
"sqlpostgresql" -> String -> [SourceLine]
SqlPostgresql.highlight
"tcl" -> String -> [SourceLine]
Tcl.highlight
"tcsh" -> String -> [SourceLine]
Tcsh.highlight
"texinfo" -> String -> [SourceLine]
Texinfo.highlight
"verilog" -> String -> [SourceLine]
Verilog.highlight
"vhdl" -> String -> [SourceLine]
Vhdl.highlight
"xml" -> String -> [SourceLine]
Xml.highlight
"xorg" -> String -> [SourceLine]
Xorg.highlight
"xslt" -> String -> [SourceLine]
Xslt.highlight
"xul" -> String -> [SourceLine]
Xul.highlight
"yacc" -> String -> [SourceLine]
Yacc.highlight
"yaml" -> String -> [SourceLine]
Yaml.highlight
"zsh" -> String -> [SourceLine]
Zsh.highlight
"csharp" -> String -> String -> [SourceLine]
highlightAs "cs"
_ -> (String -> SourceLine) -> [String] -> [SourceLine]
forall a b. (a -> b) -> [a] -> [b]
map (\l :: String
l -> [(TokenType
NormalTok, String
l)]) ([String] -> [SourceLine])
-> (String -> [String]) -> String -> [SourceLine]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> [String]
lines