复制内容到剪贴板
代码:
#!APLEXT
-- txt, web, lua, xml, css, cpp, cs, rc,mak, vbs, vb, js, java, pas, cgi, asm, cfg, bat, diff, sql, nsi, iss, py, cfg, sh, au3, tex, srt, nfo
--------------------------------------------------------------------------------
snippet_lua = {
-- 类型 | 标题 | 引导字符 | 代码 | 描述
{"s", "", "---", "--------------------------------------------------------------------------------\r\n", "14"},
{"s", "", "--[[", "--[[ \r\n$end$ \r\n--]]", "24"},
{"k", "", "fun", "function $end$()\r\n \r\nend", "34"},
{"k", "", "pri", "print($end$)", "34"},
{"k", "", "java", "java($end$)", "34"},
}
function dprintf(fmt, ...)
local str = string.format(fmt, unpack(arg));
dtrace(str);
end
dprintf ("here we go!")
alsnip.clear ("lua"); -- 清空 snippet 数据库中的指定表,这里是 lua 表
alsnip.import ("lua", snippet_lua); -- 插入 snippet 到指定表中
alsnip.export ("lua", snippet_file); -- 导出 snippet 到文件【还未实现】举个例子,如:
引用:
{"s", "", "---", "--------------------------------------------------------------------------------\r\n", "14"},
其"类型"是 k,表示是"关键字",如果为 s, 则为"snippet",其他值为非法。他们的区别是,关键字可以模糊匹配,如,设定关键字"java",输入 "ja" 后即可得到列表。对于 snippet,则是整个词的匹配。
标题 用以区别相同的“引导符号”。比如我想输入 hello 的时候得到 "hello world", "hello aeropad"两个条目列表,那可以这么写:
引用:
{"k", "word", "hello", "hello world", ""},
{"k", "aeropad", "hello", "hello aeropad", ""},
“引导符号”可以理解为用户输入的字符。也就是我输入怎样的字符,就能得到指定的列表。
“代码”就是输入“引导符号”后,实际输入的文本。
“描述”是对此条 snippet 的描述。
snippet 和相应的语言类型相关。支持的语言类型包括:
复制内容到剪贴板
代码:
txt, web, lua, xml, css, cpp, cs, rc,mak,
vbs, vb, js, java, pas, cgi, asm, cfg, bat,
diff, sql, nsi, iss, py, cfg, sh, au3, tex,
srt, nfo其中,在实际使用的时候,套用哪个 snippet 表,是根据当前的高亮语法确定的。比如,当前打开了一个 lua 脚本,
APLEXT 将自动套用 lua 的 snippet 表;同时,lua 语言的关键字,如, while, function, then ... 也被自动套用。
最后,在演示中,还有 $end$ 这样的条目,它是代码变量,当前支持的代码变量如下:
【日期】
复制内容到剪贴板
代码:
$DATE$ Year/month/day formatted as %04d/%02d/%02d
$DAY$ Day of month formatted as %d
$DAY_02$ Day of month formatted as %02d
$DAYNAME$ Three-character abbreviation of day
$DAYLONGNAME$ Full name of day
$MONTH$ Month formatted as %d
$MONTH_02$ Month formatted as %02d
$MONTHNAME$ Three-character abbreviation of month
$MONTHLONGNAME$ Full name of month
$YEAR$ Year formatted as %d
$YEAR_02$ Year formatted as %02d【时间】
复制内容到剪贴板
代码:
$HOUR$ Hour formatted as %d
$HOUR_02$ Hour formatted as %02d
$MINUTE$ Minute formatted as %02d
$SECOND$ Second formatted as %02d【文件】
复制内容到剪贴板
代码:
$FILE$ Full filename with path*
$FILE_UPPER$ Full filename with path in uppercase*
$FILE_BASE$ Filename without path or extension*
$FILE_BASE_UPPER$ Filename without path or extension in upper case*
$FILE_EXT$ Filename extension*
$FILE_EXT_UPPER$ Filename extension in upper case*
$FILE_PATH$ Path of file*
$FILE_PATH_UPPER$ Path of file in upper case*【常规】
复制内容到剪贴板
代码:
$clipboard$ Current clipboard
$end$ Position of caret after expansion
$selected$ Current selection**
$ Literal '之所以引入 snippet 功能,主要是为了提高输入效率。 character之所以引入 snippet 功能,主要是为了提高输入效率。