From 10e9c75128c0e4b56286c917e3379a74d6960f7c Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 15 Jan 2021 14:27:53 +0900 Subject: [PATCH 1/7] Set Markdown foldmethod if no foldexpr is set - To avoid Markdown-folding in diff mode - Known issue: If any other `foldexpr` is already set precedingly, Markdown-folding is suppressed --- after/ftplugin/markdown.vim | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index 8be6ff91..991a4707 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -177,8 +177,10 @@ function! s:MarkdownSetupFolding() setlocal foldtext=Foldtext_markdown() endif endif - setlocal foldexpr=Foldexpr_markdown(v:lnum) - setlocal foldmethod=expr + if &foldexpr == "" + setlocal foldexpr=Foldexpr_markdown(v:lnum) + setlocal foldmethod=expr + endif endif endfunction From 23a00a25da50ccf947753b8c590ae8f0db9f1b57 Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 15 Jan 2021 15:53:10 +0900 Subject: [PATCH 2/7] Test fix --- test/folding-toc.vader | 3 ++- test/folding.vader | 3 ++- test/python-folding.vader | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/test/folding-toc.vader b/test/folding-toc.vader index 26590043..2f2eeb16 100644 --- a/test/folding-toc.vader +++ b/test/folding-toc.vader @@ -1,10 +1,11 @@ " Tests atx and setext folding, and :Toc. Before: + setlocal foldexpr= source ../after/ftplugin/markdown.vim After: - setlocal foldexpr=0 + setlocal foldexpr= setlocal foldmethod=manual Given markdown; diff --git a/test/folding.vader b/test/folding.vader index ecf5f9bf..9a31a7fe 100644 --- a/test/folding.vader +++ b/test/folding.vader @@ -1,8 +1,9 @@ Before: + setlocal foldexpr= source ../after/ftplugin/markdown.vim After: - setlocal foldexpr=0 + setlocal foldexpr= setlocal foldmethod=manual Given markdown; diff --git a/test/python-folding.vader b/test/python-folding.vader index 9196ea60..12ccd19d 100644 --- a/test/python-folding.vader +++ b/test/python-folding.vader @@ -1,9 +1,10 @@ Before: + setlocal foldexpr= let g:vim_markdown_folding_style_pythonic = 1 source ../after/ftplugin/markdown.vim After: - setlocal foldexpr=0 + setlocal foldexpr= setlocal foldmethod=manual Given markdown; From b6637cc9e41a69906318bf734da5234079c760dc Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 15 Jan 2021 16:52:26 +0900 Subject: [PATCH 3/7] Fix `foldexpr` default value assumption --- after/ftplugin/markdown.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index 991a4707..983a1300 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -177,7 +177,7 @@ function! s:MarkdownSetupFolding() setlocal foldtext=Foldtext_markdown() endif endif - if &foldexpr == "" + if &foldexpr == 0 setlocal foldexpr=Foldexpr_markdown(v:lnum) setlocal foldmethod=expr endif From 242dc6ea53c442021a5716a8d648502f08db95f3 Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 15 Jan 2021 16:55:45 +0900 Subject: [PATCH 4/7] Revert "Test fix" This reverts commit 23a00a25da50ccf947753b8c590ae8f0db9f1b57. --- test/folding-toc.vader | 3 +-- test/folding.vader | 3 +-- test/python-folding.vader | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/test/folding-toc.vader b/test/folding-toc.vader index 2f2eeb16..26590043 100644 --- a/test/folding-toc.vader +++ b/test/folding-toc.vader @@ -1,11 +1,10 @@ " Tests atx and setext folding, and :Toc. Before: - setlocal foldexpr= source ../after/ftplugin/markdown.vim After: - setlocal foldexpr= + setlocal foldexpr=0 setlocal foldmethod=manual Given markdown; diff --git a/test/folding.vader b/test/folding.vader index 9a31a7fe..ecf5f9bf 100644 --- a/test/folding.vader +++ b/test/folding.vader @@ -1,9 +1,8 @@ Before: - setlocal foldexpr= source ../after/ftplugin/markdown.vim After: - setlocal foldexpr= + setlocal foldexpr=0 setlocal foldmethod=manual Given markdown; diff --git a/test/python-folding.vader b/test/python-folding.vader index 12ccd19d..9196ea60 100644 --- a/test/python-folding.vader +++ b/test/python-folding.vader @@ -1,10 +1,9 @@ Before: - setlocal foldexpr= let g:vim_markdown_folding_style_pythonic = 1 source ../after/ftplugin/markdown.vim After: - setlocal foldexpr= + setlocal foldexpr=0 setlocal foldmethod=manual Given markdown; From f273a6c1bf8739b7b4525b65ca637fcfbf7f0de9 Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 15 Jan 2021 17:00:42 +0900 Subject: [PATCH 5/7] Allow empty `foldexpr` too for Markdown-folding alongside the default value `0` --- after/ftplugin/markdown.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index 983a1300..3ee19a0e 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -177,7 +177,7 @@ function! s:MarkdownSetupFolding() setlocal foldtext=Foldtext_markdown() endif endif - if &foldexpr == 0 + if &foldexpr == 0 || &foldexpr == "" setlocal foldexpr=Foldexpr_markdown(v:lnum) setlocal foldmethod=expr endif From cae71d5e098441a66354ac8c6f1425210f06acbb Mon Sep 17 00:00:00 2001 From: yasuda Date: Tue, 9 Mar 2021 10:08:03 +0900 Subject: [PATCH 6/7] Should check `foldmethod` together --- after/ftplugin/markdown.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index 3ee19a0e..f203d531 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -177,7 +177,7 @@ function! s:MarkdownSetupFolding() setlocal foldtext=Foldtext_markdown() endif endif - if &foldexpr == 0 || &foldexpr == "" + if ( &foldexpr == 0 || &foldexpr == "" ) && &foldmethod != "diff" setlocal foldexpr=Foldexpr_markdown(v:lnum) setlocal foldmethod=expr endif From 6e8b8879f3fa4e8d06f1ba37184f8b4ff37ab644 Mon Sep 17 00:00:00 2001 From: yasuda Date: Fri, 17 Sep 2021 09:46:34 +0900 Subject: [PATCH 7/7] Should check with string "0" as `foldexpr` default value --- after/ftplugin/markdown.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index f203d531..2b518735 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -177,7 +177,7 @@ function! s:MarkdownSetupFolding() setlocal foldtext=Foldtext_markdown() endif endif - if ( &foldexpr == 0 || &foldexpr == "" ) && &foldmethod != "diff" + if ( &foldexpr ==# "0" || &foldexpr ==# "" ) && &foldmethod != "diff" setlocal foldexpr=Foldexpr_markdown(v:lnum) setlocal foldmethod=expr endif