From: Hiroshi Shirosaki Date: Tue, 5 Jan 2016 05:45:02 +0000 (+0900) Subject: Fix substitute with `gdefault` on X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/c45a152fcb95075120ad7f99fad08b6b1b720299 Fix substitute with `gdefault` on Do not substitute with `g` flag if `gdefault` is on. Fix #225 We convert table format tests to varder. --- diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim index 9b98767..f68e54c 100644 --- a/ftplugin/markdown.vim +++ b/ftplugin/markdown.vim @@ -381,8 +381,9 @@ function! s:HeaderDecrease(line1, line2, ...) endif endfor let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2) + let l:flags = (&gdefault ? '' : 'g') for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta) - execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/g' + execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/' . l:flags endfor endfunction @@ -398,9 +399,10 @@ function! s:TableFormat() normal! j " Remove everything that is not a pipe othewise well formated tables would grow " because of addition of 2 spaces on the separator line by Tabularize /|. - s/[^|]//g + let l:flags = (&gdefault ? '' : 'g') + execute 's/[^|]//' . l:flags Tabularize /| - s/ /-/g + execute 's/ /-/' . l:flags call setpos('.', l:pos) endfunction diff --git a/test/table_format.md b/test/table_format.md deleted file mode 100644 index 3b617f0..0000000 --- a/test/table_format.md +++ /dev/null @@ -1,17 +0,0 @@ -| normal |no space| 2 spaces || -| - |-| --- || -| normal |no space| 2 spaces || - -The table above is the first thing in the file. - -The following table is already well formatted. It should not be modified: - -| a | b | -|---|---| -| c | d | - -The following table is the last thing in the file: - -| normal |no space| 2 spaces || -| - |-| --- || -| normal |no space| 2 spaces || diff --git a/test/table_format.vader b/test/table_format.vader new file mode 100644 index 0000000..c29ab03 --- /dev/null +++ b/test/table_format.vader @@ -0,0 +1,31 @@ +Before: + let &gdefault = 1 + +After: + let &gdefault = 0 + +Given markdown; +| normal |no space| 2 spaces || +| - |-| --- || +| normal |no space| 2 spaces || + +Execute (format unformatted table): + TableFormat + +Expect (table is formatted): + | normal | no space | 2 spaces | | + |--------|----------|----------|--| + | normal | no space | 2 spaces | | + +Given markdown; +| a | b | +|---|---| +| c | d | + +Execute (format well formatted table): + TableFormat + +Expect (table is not modified): + | a | b | + |---|---| + | c | d |