]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Fix folding broken by other syntax highlighting.
authorJohn Tobin <johntobin@johntobin.ie>
Sun, 17 Mar 2019 19:16:16 +0000 (19:16 +0000)
committerJohn Tobin <johntobin@johntobin.ie>
Sun, 17 Mar 2019 19:16:16 +0000 (19:16 +0000)
When syntax highlighting is enabled for fenced code blocks, the syntax
highlighting of the language in the code block can overwrite folding
configuration, breaking Markdown folding.  Reinitialise Markdown folding
configuration every time syntax highlighting is refreshed to ensure that
Markdown folding works.

after/ftplugin/markdown.vim
ftplugin/markdown.vim

index 9ee01006960b118c1a82ddec0958b047496e54db..41dfd944e971a2c20ee44eea1e467b689df35457 100644 (file)
@@ -151,10 +151,20 @@ let b:fenced_block = 0
 let b:front_matter = 0
 let s:vim_markdown_folding_level = get(g:, "vim_markdown_folding_level", 1)
 
 let b:front_matter = 0
 let s:vim_markdown_folding_level = get(g:, "vim_markdown_folding_level", 1)
 
-if !get(g:, "vim_markdown_folding_disabled", 0)
-    setlocal foldexpr=Foldexpr_markdown(v:lnum)
-    setlocal foldmethod=expr
-    if get(g:, "vim_markdown_folding_style_pythonic", 0) && get(g:, "vim_markdown_override_foldtext", 1)
-        setlocal foldtext=Foldtext_markdown()
-    endif
-endif
+function! s:MarkdownSetupFolding()
+  if !get(g:, "vim_markdown_folding_disabled", 0)
+      setlocal foldexpr=Foldexpr_markdown(v:lnum)
+      setlocal foldmethod=expr
+      if get(g:, "vim_markdown_folding_style_pythonic", 0) && get(g:, "vim_markdown_override_foldtext", 1)
+          setlocal foldtext=Foldtext_markdown()
+      endif
+  endif
+endfunction
+call s:MarkdownSetupFolding()
+augroup Mkd
+    " These autocmds need to be kept in sync with the autocmds calling
+    " s:MarkdownRefreshSyntax in ftplugin/markdown.vim.
+    autocmd BufWinEnter,BufWritePost <buffer> call s:MarkdownSetupFolding()
+    autocmd InsertEnter,InsertLeave <buffer> call s:MarkdownSetupFolding()
+    autocmd CursorHold,CursorHoldI <buffer> call s:MarkdownSetupFolding()
+augroup END
index 989aef83bd356bd2129c6297d7be44744cd104a5..200293e840bbc2bb1181900e727cd0270fe00407 100644 (file)
@@ -780,6 +780,8 @@ function! s:MarkdownClearSyntaxVariables()
 endfunction
 
 augroup Mkd
 endfunction
 
 augroup Mkd
+    " These autocmd calling s:MarkdownRefreshSyntax need to be kept in sync with
+    " the autocmds calling s:MarkdownSetupFolding in after/ftplugin/markdown.vim.
     autocmd! * <buffer>
     autocmd BufWinEnter <buffer> call s:MarkdownRefreshSyntax(1)
     autocmd BufUnload <buffer> call s:MarkdownClearSyntaxVariables()
     autocmd! * <buffer>
     autocmd BufWinEnter <buffer> call s:MarkdownRefreshSyntax(1)
     autocmd BufUnload <buffer> call s:MarkdownClearSyntaxVariables()