From f4d460ea92527f242e447aab37e3fd180ceef526 Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Wed, 27 Jan 2010 00:21:13 -0500 Subject: [PATCH] Revert "Alternate strategy for empty first column" Per tpope: "I just discovered the second of the two tabular fixes I gave you doesn't work properly if the delimiter is at the very beginning of the line... [It] pretended the leading whitespace was part of the padding, which doesn't help if there's no leading whitespace." This reverts commit 16f7b1e20449bc30b4070b0b874eb8ce0e6cb77f. --- autoload/tabular.vim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autoload/tabular.vim b/autoload/tabular.vim index b0f0f98..9ed6033 100644 --- a/autoload/tabular.vim +++ b/autoload/tabular.vim @@ -184,9 +184,7 @@ function! tabular#TabularizeStrings(strings, delim, ...) " intentionally " - Don't strip leading spaces from the first element; we like indenting. for line in lines - if line[0] =~ '^\s*$' - let line[0] = line[0][format[0][1:-1] : -1] - else + if line[0] !~ '^\s*$' let line[0] = s:StripTrailingSpaces(line[0]) endif if len(line) >= 3 @@ -208,6 +206,8 @@ function! tabular#TabularizeStrings(strings, delim, ...) endfor endfor + let lead_blank = empty(filter(copy(lines), 'v:val[0] =~ "\\S"')) + " Concatenate the fields, according to the format pattern. for idx in range(len(lines)) let line = lines[idx] @@ -223,7 +223,7 @@ function! tabular#TabularizeStrings(strings, delim, ...) let field = s:Center(line[i], maxes[i]) endif - let line[i] = field . repeat(" ", pad) + let line[i] = field . (lead_blank && i == 0 ? '' : repeat(" ", pad)) endfor let lines[idx] = s:StripTrailingSpaces(join(line, ''))