From a4431a8373c2e1207ba4fdf4bad58d0feba0e7a6 Mon Sep 17 00:00:00 2001 From: Alexandre Constantino Date: Thu, 4 Feb 2016 09:02:15 +0000 Subject: [PATCH] Add option for single-line only text emphasis --- README.md | 7 +++++++ syntax/markdown.vim | 41 ++++++++++++++++------------------------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 6780572..73b7931 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,13 @@ It never increases its default size (half screen), it only shrinks. let g:vim_markdown_toc_autofit = 1 ``` +### Text emphasis restriction to single-lines + +By default text emphasis works across multiple lines until a closing token is found. However, it's possible to restrict text emphasis to a single line (ie, for it to be applied a closing token must be found on the same line). To do so: +```vim +let g:vim_markdown_emphasis_multiline = 0 +``` + ### Syntax Concealing Concealing is set for some syntax. diff --git a/syntax/markdown.vim b/syntax/markdown.vim index 8c3d75c..a897f60 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -42,31 +42,22 @@ if has('conceal') endif "additions to HTML groups -"syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]" end="[^\\\*\t ]\zs\*\ze\_W" keepend -"syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs_\ze\_W" keepend -"syn region htmlBold start="\*\*\ze\S" end="\S\zs\*\*" keepend -"syn region htmlBold start="__\ze\S" end="\S\zs__" keepend -"syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend -"syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend - -" emphasis stops at newline (in case a closing token is not found before) -"if get(g:, "vim_markdown_emphasis_stops_at_newline", 1) -" let esanl_pre = '\(\n\|' -" let esanl_suf = '\)' -"else -" let esanl_pre = '' -" let esanl_suf = '' -"endif -"execute 'syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]" end="[^\\\*\t ]\zs' . esanl_pre . '\*' . esanl_suf . '\ze\_W" keepend' -"execute 'syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs' . esanl_pre . '_' . esanl_suf . '\ze\_W" keepend' -"execute 'syn region htmlBold start="\*\*\ze\S" end="\S\zs' . esanl_pre . '\*\*' . esanl_suf . '" keepend' -"execute 'syn region htmlBold start="__\ze\S" end="\S\zs__" keepend -"execute 'syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend -"execute 'syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend - -" single-line emphasis (emphasis only works with matching token in the same line) -syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]\([^\n]*[^\\\*\t ]\)\?\*" end="[^\\\*\t ]\zs\*\ze\_W" keepend - +if get(g:, "vim_markdown_emphasis_multiline", 1) + syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]" end="[^\\\*\t ]\zs\*\ze\_W" keepend + syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs_\ze\_W" keepend + syn region htmlBold start="\*\*\ze\S" end="\S\zs\*\*" keepend + syn region htmlBold start="__\ze\S" end="\S\zs__" keepend + syn region htmlBoldItalic start="\*\*\*\ze\S" end="\S\zs\*\*\*" keepend + syn region htmlBoldItalic start="___\ze\S" end="\S\zs___" keepend +else + " single-line emphasis (emphasis only works with closing token on the same line) + syn region htmlItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]\([^\n\*]*[^\\\*\t ]\)\?\*" end="[^\\\*\t ]\zs\*\ze\_W" keepend + syn region htmlItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]\([^\n_]*[^\\_\t ]\)\?_" end="[^\\_\t ]\zs_\ze\_W" keepend + syn region htmlBold start="\*\*\ze\S\([^\n\*]*[^\\\*\t ]\)\?\*\*" end="\S\zs\*\*" keepend + syn region htmlBold start="__\ze\S\([^\n_]*[^\\_\t ]\)\?__" end="\S\zs__" keepend + syn region htmlBold start="\*\*\*\ze\S\([^\n\*]*[^\\\*\t ]\)\?\*\*\*" end="\S\zs\*\*\*" keepend + syn region htmlBold start="___\ze\S\([^\n_]*[^\\_\t ]\)\?___" end="\S\zs___" keepend +endif " [link](URL) | [link][id] | [link][] | ![image](URL) syn region mkdFootnotes matchgroup=mkdDelimiter start="\[^" end="\]" -- 2.39.5