From 1d8915ad5d9889c02dd98ab2c2f29aa8f5ee4dfa Mon Sep 17 00:00:00 2001 From: silverwind Date: Mon, 5 Aug 2019 17:48:31 +0200 Subject: [PATCH] Add a lot of extension to language mappings for syntax highlights (#7741) Data partially based on [CodeMirror's meta.js](https://github.com/codemirror/CodeMirror/blob/master/mode/meta.js). Fixes: https://github.com/go-gitea/gitea/issues/6057 --- modules/highlight/highlight.go | 114 +++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 35 deletions(-) diff --git a/modules/highlight/highlight.go b/modules/highlight/highlight.go index 433448056..ffd88656a 100644 --- a/modules/highlight/highlight.go +++ b/modules/highlight/highlight.go @@ -27,49 +27,93 @@ var ( } // Extensions that are same as highlight classes. + // See hljs.listLanguages() for list of language names. highlightExts = map[string]struct{}{ - ".arm": {}, - ".as": {}, - ".sh": {}, - ".cs": {}, - ".cpp": {}, - ".c": {}, - ".css": {}, - ".cmake": {}, - ".bat": {}, - ".dart": {}, - ".patch": {}, - ".erl": {}, - ".go": {}, - ".html": {}, - ".xml": {}, - ".hs": {}, - ".ini": {}, - ".json": {}, - ".java": {}, - ".js": {}, - ".less": {}, - ".lua": {}, - ".php": {}, - ".py": {}, - ".rb": {}, - ".rs": {}, - ".scss": {}, - ".sql": {}, - ".scala": {}, - ".swift": {}, - ".ts": {}, - ".vb": {}, - ".yml": {}, - ".yaml": {}, + ".applescript": {}, + ".arm": {}, + ".as": {}, + ".bash": {}, + ".bat": {}, + ".c": {}, + ".cmake": {}, + ".cpp": {}, + ".cs": {}, + ".css": {}, + ".dart": {}, + ".diff": {}, + ".django": {}, + ".go": {}, + ".gradle": {}, + ".groovy": {}, + ".haml": {}, + ".handlebars": {}, + ".html": {}, + ".ini": {}, + ".java": {}, + ".json": {}, + ".less": {}, + ".lua": {}, + ".php": {}, + ".scala": {}, + ".scss": {}, + ".sql": {}, + ".swift": {}, + ".ts": {}, + ".xml": {}, + ".yaml": {}, } // Extensions that are not same as highlight classes. highlightMapping = map[string]string{ - ".txt": "nohighlight", + ".ahk": "autohotkey", + ".crmsh": "crmsh", + ".dash": "shell", + ".erl": "erlang", ".escript": "erlang", ".ex": "elixir", ".exs": "elixir", + ".f": "fortran", + ".f77": "fortran", + ".f90": "fortran", + ".f95": "fortran", + ".feature": "gherkin", + ".fish": "shell", + ".for": "fortran", + ".hbs": "handlebars", + ".hs": "haskell", + ".hx": "haxe", + ".js": "javascript", + ".jsx": "javascript", + ".ksh": "shell", + ".kt": "kotlin", + ".l": "ocaml", + ".ls": "livescript", + ".md": "markdown", + ".mjs": "javascript", + ".mli": "ocaml", + ".mll": "ocaml", + ".mly": "ocaml", + ".patch": "diff", + ".pl": "perl", + ".pm": "perl", + ".ps1": "powershell", + ".psd1": "powershell", + ".psm1": "powershell", + ".py": "python", + ".pyw": "python", + ".rb": "ruby", + ".rs": "rust", + ".scpt": "applescript", + ".scptd": "applescript", + ".sh": "bash", + ".tcsh": "shell", + ".ts": "typescript", + ".tsx": "typescript", + ".txt": "plaintext", + ".vb": "vbnet", + ".vbs": "vbscript", + ".yml": "yaml", + ".zsh": "shell", } )