summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-09-18 22:30:07 +1000
committerMaxime Coste <mawww@kakoune.org>2018-09-18 22:30:07 +1000
commit0fca6ae3dd0b702ef8a1aa624e50a500e424b170 (patch)
tree8cf53ee2ac265ac96aeaf841fe7d98bf0f137557
parentfbd733f49c38ba70c229c9ebfee51c4613779bb9 (diff)
parent9e142c66436ce716fa5f26647ad843a1dc527a3a (diff)
Merge remote-tracking branch 'Screwtapello/code-regions-for-markdown'
-rw-r--r--rc/base/markdown.kak19
1 files changed, 11 insertions, 8 deletions
diff --git a/rc/base/markdown.kak b/rc/base/markdown.kak
index 7b42d580..d7dc65e2 100644
--- a/rc/base/markdown.kak
+++ b/rc/base/markdown.kak
@@ -13,7 +13,6 @@ hook global BufCreate .*[.](markdown|md|mkd) %{
add-highlighter shared/markdown regions
add-highlighter shared/markdown/content default-region group
-add-highlighter shared/markdown/code region ``` ``` fill meta
evaluate-commands %sh{
languages="
@@ -23,13 +22,19 @@ evaluate-commands %sh{
sass scala scss sh swift tupfile typescript yaml
"
for lang in ${languages}; do
- printf 'add-highlighter shared/markdown/%s region ```\h*%s\\b ``` regions\n' "${lang}" "${lang}"
+ printf 'add-highlighter shared/markdown/%s region -match-capture ^(\h*)```\h*%s\\b ^(\h*)``` regions\n' "${lang}" "${lang}"
printf 'add-highlighter shared/markdown/%s/ default-region fill meta\n' "${lang}"
[ "${lang}" = kak ] && ref=kakrc || ref="${lang}"
printf 'add-highlighter shared/markdown/%s/inner region \A```[^\\n]*\K (?=```) ref %s\n' "${lang}" "${ref}"
done
}
+add-highlighter shared/markdown/codeblock region -match-capture \
+ ^(\h*)```\h* \
+ ^(\h*)```\h*$ \
+ fill meta
+add-highlighter shared/markdown/codespan region -match-capture (`+) (`+) fill mono
+
# 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:header
@@ -39,12 +44,10 @@ add-highlighter shared/markdown/content/ regex ^(#+)(\h+)([^\n]+) 1:header
add-highlighter shared/markdown/content/ regex ^\h?((?:[\s\t]+)?[-\*])\h+[^\n]*(\n\h+[^-\*]\S+[^\n]*\n)*$ 0:list 1:bullet
add-highlighter shared/markdown/content/ regex \B\+[^\n]+?\+\B 0:mono
-add-highlighter shared/markdown/content/ regex [^`](`([^\s`]|([^\s`](\n?[^\n`])*[^\s`]))`)[^`] 1:mono
-add-highlighter shared/markdown/content/ regex [^`](``([^\s`]|([^\s`](\n?[^\n`])*[^\s`]))``)[^`] 1:mono
-add-highlighter shared/markdown/content/ regex [^*](\*([^\s*]|([^\s*](\n?[^\n*])*[^\s*]))\*)[^*] 1:italic
-add-highlighter shared/markdown/content/ regex [^_](_([^\s_]|([^\s_](\n?[^\n_])*[^\s_]))_)[^_] 1:italic
-add-highlighter shared/markdown/content/ regex [^*](\*\*([^\s*]|([^\s*](\n?[^\n*])*[^\s*]))\*\*)[^*] 1:bold
-add-highlighter shared/markdown/content/ regex [^_](__([^\s_]|([^\s_](\n?[^\n_])*[^\s_]))__)[^_] 1:bold
+add-highlighter shared/markdown/content/ regex (?<!\*)(\*([^\s*]|([^\s*](\n?[^\n*])*[^\s*]))\*)(?!\*) 1:italic
+add-highlighter shared/markdown/content/ regex (?<!_)(_([^\s_]|([^\s_](\n?[^\n_])*[^\s_]))_)(?!_) 1:italic
+add-highlighter shared/markdown/content/ regex (?<!\*)(\*\*([^\s*]|([^\s*](\n?[^\n*])*[^\s*]))\*\*)(?!\*) 1:bold
+add-highlighter shared/markdown/content/ regex (?<!_)(__([^\s_]|([^\s_](\n?[^\n_])*[^\s_]))__)(?!_) 1:bold
add-highlighter shared/markdown/content/ regex <(([a-z]+://.*?)|((mailto:)?[\w+-]+@[a-z]+[.][a-z]+))> 0:link
add-highlighter shared/markdown/content/ regex ^\[[^\]\n]*\]:\h*([^\n]*) 1:link
add-highlighter shared/markdown/content/ regex ^\h*(>\h*)+ 0:comment