summaryrefslogtreecommitdiffstats
path: root/syntax/csv.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/csv.vim')
-rw-r--r--syntax/csv.vim17
1 files changed, 9 insertions, 8 deletions
diff --git a/syntax/csv.vim b/syntax/csv.vim
index 5cc16dfa..ed045c7f 100644
--- a/syntax/csv.vim
+++ b/syntax/csv.vim
@@ -24,7 +24,7 @@ fu! <sid>Warning(msg) "{{{3
echohl Normal
endfu
-fu! <sid>Esc(val, char) "{{{3
+fu! <sid>Esc(val, char) "{{{3
if empty(a:val)
return a:val
endif
@@ -36,7 +36,7 @@ fu! <sid>CheckSaneSearchPattern() "{{{3
let s:col_def = '\%([^' . s:del_def . ']*' . s:del_def . '\|$\)'
let s:col_def_end = '\%([^' . s:del_def . ']*' . s:del_def . '\)'
- " First:
+ " First:
" Check for filetype plugin. This syntax script relies on the filetype
" plugin, else, it won't work properly.
redir => s:a |sil filetype | redir end
@@ -68,10 +68,10 @@ fu! <sid>CheckSaneSearchPattern() "{{{3
let s:col = get(b:, 'col', s:col_def)
let s:col_end = get(b:, 'col_end', s:col_def_end)
let s:del = get(b:, 'delimiter', s:del_def)
- let s:cmts = b:csv_cmt[0]
- let s:cmte = len(b:csv_cmt) == 2 ? b:csv_cmt[1] : ''
+ let s:cmts = get(get(b:, 'csv_cmt', ['']), 0)
+ let s:cmte = len(get(b:, 'csv_cmt', [])) == 2 ? b:csv_cmt[1] : ''
" Make the file start at the first actual CSV record (issue #71)
- if !exists("b:csv_headerline")
+ if !exists("b:csv_headerline") && !empty(s:cmts)
let cmts = <sid>Esc(s:cmts, '')
let pattern = '\%^\(\%('.cmts.'.*\n\)\|\%(\s*\n\)\)\+'
let start = search(pattern, 'nWe', 10)
@@ -87,6 +87,7 @@ fu! <sid>CheckSaneSearchPattern() "{{{3
if line('$') > 1 && (!exists("b:col") || empty(b:col))
" check for invalid pattern, ftplugin hasn't been loaded yet
call <sid>Warning("Invalid column pattern, using default pattern " . s:col_def)
+ call <sid>Warning("Or ftplugin hasn't been sourced before the syntax script")
endif
endfu
@@ -94,7 +95,7 @@ endfu
fu! <sid>DoHighlight() "{{{3
if has("conceal") && !exists("g:csv_no_conceal") &&
\ !exists("b:csv_fixed_width_cols")
- exe "syn match CSVDelimiter /" . s:col_end .
+ exe "syn match CSVDelimiter /" . s:col_end .
\ '/ms=e,me=e contained conceal cchar=' .
\ (&enc == "utf-8" ? "│" : '|')
hi def link CSVDelimiter Conceal
@@ -121,7 +122,7 @@ fu! <sid>DoHighlight() "{{{3
else
for i in range(len(b:csv_fixed_width_cols))
let pat = '/\%' . b:csv_fixed_width_cols[i] . 'v.*' .
- \ ((i == len(b:csv_fixed_width_cols)-1) ? '/' :
+ \ ((i == len(b:csv_fixed_width_cols)-1) ? '/' :
\ '\%' . b:csv_fixed_width_cols[i+1] . 'v/')
let group = "CSVColumn" . (i%2 ? "Odd" : "Even" )
@@ -157,7 +158,7 @@ fu! <sid>DoSyntaxDefinitions() "{{{3
endif
endfun
-" Main: {{{2
+" Main: {{{2
" Make sure, we are using a sane, valid pattern for syntax
" highlighting
call <sid>CheckSaneSearchPattern()