Generate the markdown highlighter code

This commit is contained in:
Dan Rosén 2017-12-12 10:16:37 +01:00
parent 4b06c09c68
commit 969f416027

View File

@ -11,100 +11,32 @@ hook global BufCreate .*[.](markdown|md|mkd) %{
# Highlighters # Highlighters
# ‾‾‾‾‾‾‾‾‾‾‾‾ # ‾‾‾‾‾‾‾‾‾‾‾‾
add-highlighter shared/ regions -default content markdown \ %sh{
c ^```\h*c\b\K ``` '' \ languages="
cabal ^```\h*cabal\b\K ``` '' \ c cabal clojure coffee cpp css cucumber d diff dockerfile fish gas go
clojure ^```\h*clojure\b\K ``` '' \ haml haskell html ini java javascript json julia kak kickstart latex
coffee ^```\h*coffee\b\K ``` '' \ lisp lua makefile markdown moon objc perl pug python ragel ruby rust
cpp ^```\h*cpp\b\K ``` '' \ sass scala scss sh swift tupfile typescript yaml
css ^```\h*css\b\K ``` '' \ "
cucumber ^```\h*cucumber\b\K ``` '' \ echo 'add-highlighter shared/ regions -default content markdown \'
d ^```\h*d\b\K ``` '' \ for lang in ${languages}; do
diff ^```\h*diff\b\K ``` '' \ printf '%s ```\h*%s\\b ``` "" ' "${lang}" "${lang}"
dockerfile ^```\h*dockerfile\b\K ``` '' \ done
fish ^```\h*fish\b\K ``` '' \ echo 'code ``` ``` "" \
gas ^```\h*gas\b\K ``` '' \ code ``[^`] `` "" \
go ^```\h*go\b\K ``` '' \ code `[^`] ` "" '
haml ^```\h*haml\b\K ``` '' \ for lang in ${languages}; do
haskell ^```\h*haskell\b\K ``` '' \ ref=$([ "${lang}" = kak ] && echo kakrc || echo "${lang}")
html ^```\h*html\b\K ``` '' \ printf '
ini ^```\h*ini\b\K ``` '' \ add-highlighter shared/markdown/%s/ regions -default fence outer inner \A```[^\\n]*\K (?=```) ""
java ^```\h*java\b\K ``` '' \ add-highlighter shared/markdown/%s/outer/fence fill meta
javascript ^```\h*javascript\b\K ``` '' \ add-highlighter shared/markdown/%s/outer/inner ref %s
json ^```\h*json\b\K ``` '' \ ' "${lang}" "${lang}" "${lang}" "${ref}"
julia ^```\h*julia\b\K ``` '' \ done
kak ^```\h*kak\b\K ``` '' \ }
kickstart ^```\h*kickstart\b\K ``` '' \
latex ^```\h*latex\b\K ``` '' \
lisp ^```\h*lisp\b\K ``` '' \
lua ^```\h*lua\b\K ``` '' \
makefile ^```\h*makefile\b\K ``` '' \
moon ^```\h*moon\b\K ``` '' \
objc ^```\h*objc\b\K ``` '' \
perl ^```\h*perl\b\K ``` '' \
pug ^```\h*pug\b\K ``` '' \
python ^```\h*python\b\K ``` '' \
ragel ^```\h*ragel\b\K ``` '' \
ruby ^```\h*ruby\b\K ``` '' \
rust ^```\h*rust\b\K ``` '' \
sass ^```\h*sass\b\K ``` '' \
scala ^```\h*scala\b\K ``` '' \
scss ^```\h*scss\b\K ``` '' \
sh ^```\h*sh\b\K ``` '' \
swift ^```\h*swift\b\K ``` '' \
tupfile ^```\h*tupfile\b\K ``` '' \
typescript ^```\h*typescript\b\K ``` '' \
yaml ^```\h*yaml\b\K ``` '' \
code ^```((!?=(c|cabal|clojure|coffee|cpp|css|cucumber|diff|dockerfile|fish|gas|go|haml|haskell|html|ini|java|javascript|json|julia|kakrc|kickstart|latex|lisp|lua|makefile|moon|objc|perl|pug|python|ragel|ruby|rust|sass|scala|scss|sh|swift|tupfile|typescript|yaml)[^\n])*)$ ``` '' \
code ^``[^`] `` '' \
code ^`[^`] ` ''
add-highlighter shared/markdown/code fill meta add-highlighter shared/markdown/code fill meta
add-highlighter shared/markdown/c ref c
add-highlighter shared/markdown/cabal ref cabal
add-highlighter shared/markdown/clojure ref clojure
add-highlighter shared/markdown/coffee ref coffee
add-highlighter shared/markdown/cpp ref cpp
add-highlighter shared/markdown/css ref css
add-highlighter shared/markdown/cucumber ref cucumber
add-highlighter shared/markdown/d ref d
add-highlighter shared/markdown/diff ref diff
add-highlighter shared/markdown/dockerfile ref dockerfile
add-highlighter shared/markdown/fish ref fish
add-highlighter shared/markdown/gas ref gas
add-highlighter shared/markdown/go ref go
add-highlighter shared/markdown/haml ref haml
add-highlighter shared/markdown/haskell ref haskell
add-highlighter shared/markdown/html ref html
add-highlighter shared/markdown/ini ref ini
add-highlighter shared/markdown/java ref java
add-highlighter shared/markdown/javascript ref javascript
add-highlighter shared/markdown/json ref json
add-highlighter shared/markdown/julia ref julia
add-highlighter shared/markdown/kak ref kakrc
add-highlighter shared/markdown/kickstart ref kickstart
add-highlighter shared/markdown/latex ref latex
add-highlighter shared/markdown/lisp ref lisp
add-highlighter shared/markdown/lua ref lua
add-highlighter shared/markdown/makefile ref makefile
add-highlighter shared/markdown/moon ref moon
add-highlighter shared/markdown/objc ref objc
add-highlighter shared/markdown/perl ref perl
add-highlighter shared/markdown/pug ref pug
add-highlighter shared/markdown/python ref python
add-highlighter shared/markdown/ragel ref ragel
add-highlighter shared/markdown/ruby ref ruby
add-highlighter shared/markdown/rust ref rust
add-highlighter shared/markdown/sass ref sass
add-highlighter shared/markdown/scala ref scala
add-highlighter shared/markdown/scss ref scss
add-highlighter shared/markdown/sh ref sh
add-highlighter shared/markdown/swift ref swift
add-highlighter shared/markdown/tupfile ref tupfile
add-highlighter shared/markdown/typescript ref typescript
add-highlighter shared/markdown/yaml ref yaml
# Setext-style header # Setext-style header
add-highlighter shared/markdown/content regex (\A|\n\n)[^\n]+\n={2,}\h*\n\h*$ 0:title add-highlighter shared/markdown/content regex (\A|\n\n)[^\n]+\n={2,}\h*\n\h*$ 0:title
add-highlighter shared/markdown/content regex (\A|\n\n)[^\n]+\n-{2,}\h*\n\h*$ 0:header add-highlighter shared/markdown/content regex (\A|\n\n)[^\n]+\n-{2,}\h*\n\h*$ 0:header