xref: /vim-8.2.3635/runtime/ftplugin/liquid.vim (revision 7a329911)
1*7a329911SBram Moolenaar" Vim filetype plugin
2*7a329911SBram Moolenaar" Language:     Liquid
3*7a329911SBram Moolenaar" Maintainer:   Tim Pope <[email protected]>
4*7a329911SBram Moolenaar" Last Change:	2010 May 21
5*7a329911SBram Moolenaar
6*7a329911SBram Moolenaarif exists('b:did_ftplugin')
7*7a329911SBram Moolenaar  finish
8*7a329911SBram Moolenaarendif
9*7a329911SBram Moolenaar
10*7a329911SBram Moolenaarif !exists('g:liquid_default_subtype')
11*7a329911SBram Moolenaar  let g:liquid_default_subtype = 'html'
12*7a329911SBram Moolenaarendif
13*7a329911SBram Moolenaar
14*7a329911SBram Moolenaarif !exists('b:liquid_subtype')
15*7a329911SBram Moolenaar  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
16*7a329911SBram Moolenaar  let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+')
17*7a329911SBram Moolenaar  if b:liquid_subtype == ''
18*7a329911SBram Moolenaar    let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+')
19*7a329911SBram Moolenaar  endif
20*7a329911SBram Moolenaar  if b:liquid_subtype == ''
21*7a329911SBram Moolenaar    let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$')
22*7a329911SBram Moolenaar  endif
23*7a329911SBram Moolenaar  if b:liquid_subtype == ''
24*7a329911SBram Moolenaar    let b:liquid_subtype = g:liquid_default_subtype
25*7a329911SBram Moolenaar  endif
26*7a329911SBram Moolenaarendif
27*7a329911SBram Moolenaar
28*7a329911SBram Moolenaarif exists('b:liquid_subtype') && b:liquid_subtype != ''
29*7a329911SBram Moolenaar  exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim'
30*7a329911SBram Moolenaarelse
31*7a329911SBram Moolenaar  runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
32*7a329911SBram Moolenaarendif
33*7a329911SBram Moolenaarlet b:did_ftplugin = 1
34*7a329911SBram Moolenaar
35*7a329911SBram Moolenaarif exists('b:undo_ftplugin')
36*7a329911SBram Moolenaar  let b:undo_ftplugin .= '|'
37*7a329911SBram Moolenaarelse
38*7a329911SBram Moolenaar  let b:undo_ftplugin = ''
39*7a329911SBram Moolenaarendif
40*7a329911SBram Moolenaarif exists('b:browsefilter')
41*7a329911SBram Moolenaar  let b:browsefilter = "\n".b:browsefilter
42*7a329911SBram Moolenaarelse
43*7a329911SBram Moolenaar  let b:browsefilter = ''
44*7a329911SBram Moolenaarendif
45*7a329911SBram Moolenaarif exists('b:match_words')
46*7a329911SBram Moolenaar  let b:match_words .= ','
47*7a329911SBram Moolenaarelseif exists('loaded_matchit')
48*7a329911SBram Moolenaar  let b:match_words = ''
49*7a329911SBram Moolenaarendif
50*7a329911SBram Moolenaar
51*7a329911SBram Moolenaarif has('gui_win32')
52*7a329911SBram Moolenaar  let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter
53*7a329911SBram Moolenaarendif
54*7a329911SBram Moolenaar
55*7a329911SBram Moolenaarif exists('loaded_matchit')
56*7a329911SBram Moolenaar  let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>'
57*7a329911SBram Moolenaarendif
58*7a329911SBram Moolenaar
59*7a329911SBram Moolenaarsetlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %}
60*7a329911SBram Moolenaar
61*7a329911SBram Moolenaarlet b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words'
62