From: Hiroshi Shirosaki Date: Thu, 17 Jan 2019 05:24:45 +0000 (+0900) Subject: Merge pull request #397 from sim590/inexact-ft-match-syntax-hl X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/be5e60fa2d85fec3b585411844846678a775a5d3?hp=04b0395bd46702b9529998dea6f191a7325cd737 Merge pull request #397 from sim590/inexact-ft-match-syntax-hl ftplugin: syntax highlighting for fts *markdown* --- diff --git a/README.md b/README.md index 982248e2..25b70878 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,14 @@ JSON syntax highlight requires [vim-json](https://github.com/elzr/vim-json). let g:vim_markdown_json_frontmatter = 1 ``` +#### Strikethrough + +Strikethrough uses two tildes. `~~Scratch this.~~` + +```vim +let g:vim_markdown_strikethrough = 1 +``` + ### Adjust new list item indent You can adjust a new list indent. For example, you insert a single line like below: diff --git a/doc/vim-markdown.txt b/doc/vim-markdown.txt index 29ed66dd..1e81ea2e 100644 --- a/doc/vim-markdown.txt +++ b/doc/vim-markdown.txt @@ -24,6 +24,7 @@ Contents ~ 2. YAML Front Matter |vim-markdown-yaml-front-matter| 3. TOML Front Matter |vim-markdown-toml-front-matter| 4. JSON Front Matter |vim-markdown-json-front-matter| + 5. Strikethrough |vim-markdown-strikethrough| 11. Adjust new list item indent |vim-markdown-adjust-new-list-item-indent| 12. Do not require .md extensions for Markdown links |vim-markdown-do-not-require-.md-extensions-for-markdown-links| @@ -318,6 +319,14 @@ JSON syntax highlight requires vim-json [9]. > let g:vim_markdown_json_frontmatter = 1 < +------------------------------------------------------------------------------- + *vim-markdown-strikethrough* +Strikethrough ~ + +Strikethrough uses two tildes. '~~Scratch this.~~' +> + let g:vim_markdown_strikethrough = 1 +< ------------------------------------------------------------------------------- *vim-markdown-adjust-new-list-item-indent* Adjust new list item indent ~ diff --git a/ftdetect/markdown.vim b/ftdetect/markdown.vim index 611ecaa0..07682da4 100644 --- a/ftdetect/markdown.vim +++ b/ftdetect/markdown.vim @@ -1,3 +1,8 @@ +if !has('patch-7.4.480') + " Before this patch, vim used modula2 for .md. + au! filetypedetect BufRead,BufNewFile *.md +endif + " markdown filetype file -au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=markdown -au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx} set filetype=markdown +au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} setfiletype markdown +au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx} setfiletype markdown diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim index 2c83000e..989aef83 100644 --- a/ftplugin/markdown.vim +++ b/ftplugin/markdown.vim @@ -734,7 +734,7 @@ function! s:MarkdownHighlightSources(force) let include = '@' . toupper(filetype) endif let command = 'syntax region %s matchgroup=%s start="^\s*```\s*%s$" matchgroup=%s end="\s*```$" keepend contains=%s%s' - execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) ? ' concealends' : '') + execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) && get(g:, 'vim_markdown_conceal_code_blocks', 1) ? ' concealends' : '') execute printf('syntax cluster mkdNonListItem add=%s', group) let b:mkd_known_filetypes[ft] = 1 diff --git a/syntax/markdown.vim b/syntax/markdown.vim index 5056af48..d0077a41 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -36,10 +36,14 @@ syn sync linebreaks=1 let s:conceal = '' let s:concealends = '' +let s:concealcode = '' if has('conceal') && get(g:, 'vim_markdown_conceal', 1) let s:conceal = ' conceal' let s:concealends = ' concealends' endif +if has('conceal') && get(g:, 'vim_markdown_conceal_code_blocks', 1) + let s:concealcode = ' concealends' +endif " additions to HTML groups if get(g:, 'vim_markdown_emphasis_multiline', 1) @@ -94,13 +98,13 @@ syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell "define Markdown groups syn match mkdLineBreak / \+$/ syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLink,mkdInlineURL,mkdLineBreak,@Spell -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@]*\\\@" end=""' . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="]*\\\@" end=""' . s:concealends +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@]*\\\@" end=""' . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="]*\\\@" end=""' . s:concealcode syn region mkdFootnote start="\[^" end="\]" syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/ syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ @@ -145,6 +149,12 @@ if get(g:, 'vim_markdown_math', 0) syn region mkdMath start="\\\@