143 lines
2.2 KiB
VimL
143 lines
2.2 KiB
VimL
XPTemplate priority=lang
|
|
|
|
let s:f = g:XPTfuncs()
|
|
|
|
XPTvar $TRUE 1
|
|
XPTvar $FALSE 0
|
|
XPTvar $NULL NULL
|
|
XPTvar $UNDEFINED NULL
|
|
|
|
XPTvar $VOID_LINE /* void */;
|
|
XPTvar $CURSOR_PH -- cursor
|
|
|
|
XPTvar $BRif \n
|
|
XPTvar $BRloop \n
|
|
XPTvar $BRloop \n
|
|
XPTvar $BRstc \n
|
|
XPTvar $BRfun \n
|
|
|
|
XPTvar $CS --
|
|
|
|
XPTinclude
|
|
\ _common/common
|
|
\ _comment/singleSign
|
|
|
|
|
|
" ========================= Function and Variables =============================
|
|
|
|
" Remove an item if its value hasn't change
|
|
fun! s:f.RemoveIfUnchanged() "{{{
|
|
let v = self.V()
|
|
let [lft, rt] = self.ItemEdges()
|
|
if v == lft . self.N() . rt
|
|
return ''
|
|
else
|
|
return v
|
|
end
|
|
endfunction "}}}
|
|
|
|
" ================================= Snippets ===================================
|
|
|
|
|
|
|
|
XPT do " do ... end
|
|
do
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT fn " function \(..) .. end
|
|
XSET arg*|post=ExpandIfNotEmpty(', ', 'arg*')
|
|
function (`arg*^) `cursor^ end
|
|
|
|
|
|
XPT for " for ..=..,.. do ... end
|
|
XSET step?|post=EchoIfNoChange('')
|
|
for `var^ = `0^, `10^`, `step?^ do
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT forin " for .. in .. do ... end
|
|
XSET var*|post=ExpandIfNotEmpty(', ', 'var*')
|
|
for `var*^ in `expr^ do
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT forip " for ..,.. in ipairs\(..) do ... end
|
|
for `key^, `value^ in ipairs(`table^) do
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT forp " for ..,.. in pairs\(..) do ... end
|
|
for `key^, `value^ in pairs(`table^) do
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT fun " function ..\(..) .. end
|
|
XSET arg*|post=ExpandIfNotEmpty(', ', 'arg*')
|
|
function `name^(`arg*^)
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT if " if .. then .. end
|
|
if `cond^ then
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT ife " if .. then .. else .. end
|
|
XSET job=$CS job
|
|
if `cond^ then
|
|
`job^
|
|
else
|
|
`cursor^
|
|
end
|
|
|
|
|
|
XPT ifei " if .. then .. elseif .. else .. end
|
|
XSET job=$CS job
|
|
if `cond^ then`
|
|
`job^
|
|
``elseif...`
|
|
{{^elseif `comparison^ then
|
|
`job^
|
|
``elseif...`
|
|
^`}}^``else...`
|
|
{{^else
|
|
`cursor^
|
|
`}}^end
|
|
|
|
|
|
XPT locf " local function ..\(..) ... end
|
|
XSET arg*|post=ExpandIfNotEmpty(', ', 'arg*')
|
|
local function `name^(`arg*^)
|
|
`cursor^
|
|
end
|
|
|
|
|
|
" !!! snippet ends with a space !!!
|
|
XPT locv " local .. = ..
|
|
local `var^ =
|
|
|
|
|
|
XPT p " print\(..)
|
|
print(`cursor^)
|
|
|
|
|
|
XPT repeat " repeat .. until ..
|
|
repeat
|
|
`cursor^
|
|
until
|
|
|
|
|
|
XPT while " while .. do ... end
|
|
while `cond^ do
|
|
`cursor^
|
|
end
|
|
|
|
|