Bram Moolenaar | 7a32991 | 2010-05-21 12:05:36 +0200 | [diff] [blame] | 1 | " Vim filetype plugin |
| 2 | " Language: Liquid |
| 3 | " Maintainer: Tim Pope <vimNOSPAM@tpope.org> |
Bram Moolenaar | 47c532e | 2022-03-19 15:18:53 +0000 | [diff] [blame] | 4 | " Last Change: 2022 Mar 15 |
Riley Bruins | 0a08306 | 2024-06-03 20:40:45 +0200 | [diff] [blame] | 5 | " 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring') |
Bram Moolenaar | 7a32991 | 2010-05-21 12:05:36 +0200 | [diff] [blame] | 6 | |
| 7 | if exists('b:did_ftplugin') |
| 8 | finish |
| 9 | endif |
| 10 | |
| 11 | if !exists('g:liquid_default_subtype') |
| 12 | let g:liquid_default_subtype = 'html' |
| 13 | endif |
| 14 | |
| 15 | if !exists('b:liquid_subtype') |
| 16 | let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") |
| 17 | let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+') |
| 18 | if b:liquid_subtype == '' |
| 19 | let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+') |
| 20 | endif |
| 21 | if b:liquid_subtype == '' |
| 22 | let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$') |
| 23 | endif |
| 24 | if b:liquid_subtype == '' |
| 25 | let b:liquid_subtype = g:liquid_default_subtype |
| 26 | endif |
| 27 | endif |
| 28 | |
| 29 | if exists('b:liquid_subtype') && b:liquid_subtype != '' |
| 30 | exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim' |
| 31 | else |
| 32 | runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim |
| 33 | endif |
| 34 | let b:did_ftplugin = 1 |
| 35 | |
| 36 | if exists('b:undo_ftplugin') |
| 37 | let b:undo_ftplugin .= '|' |
| 38 | else |
| 39 | let b:undo_ftplugin = '' |
| 40 | endif |
| 41 | if exists('b:browsefilter') |
| 42 | let b:browsefilter = "\n".b:browsefilter |
| 43 | else |
| 44 | let b:browsefilter = '' |
| 45 | endif |
| 46 | if exists('b:match_words') |
| 47 | let b:match_words .= ',' |
| 48 | elseif exists('loaded_matchit') |
| 49 | let b:match_words = '' |
| 50 | endif |
| 51 | |
| 52 | if has('gui_win32') |
| 53 | let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter |
| 54 | endif |
| 55 | |
| 56 | if exists('loaded_matchit') |
Bram Moolenaar | 47c532e | 2022-03-19 15:18:53 +0000 | [diff] [blame] | 57 | 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\>' |
Bram Moolenaar | 7a32991 | 2010-05-21 12:05:36 +0200 | [diff] [blame] | 58 | endif |
| 59 | |
Riley Bruins | 0a08306 | 2024-06-03 20:40:45 +0200 | [diff] [blame] | 60 | setlocal commentstring={%\ comment\ %}\ %s\ {%\ endcomment\ %} |
Bram Moolenaar | 7a32991 | 2010-05-21 12:05:36 +0200 | [diff] [blame] | 61 | |
| 62 | let b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words' |