我正在尝试制作一个片段,通过从
application/migrations
.
我自己设法做的是,我的文件名在我输入时被过滤,当只剩下一个匹配项时,在光标位置插入其修订号(始终是文件名的前 14 个字符)。
问题是,当我按 TAB 进行选择时,我还留下了迄今为止我输入的内容来搜索该修订号,这意味着类似这样
的内容remo20160812110447
。
remo
问题是,在这种情况下如何摆脱它!?
注意:示例使用硬编码值,为了便于测试,稍后将替换为# lst = os.listdir('application/migrations')
行。
另外一个额外的好处是20160710171947
在选择时将这些值呈现为人类可读的日期格式,但在点击 TAB 后插入其原始源版本。
global !p
import datetime
def complete(t, opts):
if t:
opts = [ m for m in opts if t in m ]
if len(opts) == 1:
return opts[0][:14]
return "(" + '|'.join(opts) + ')'
endglobal
snippet cimigration "Inserts desired migration number, obtained via filenames"
$1`!p import os
# lst = os.listdir('application/migrations')
lst = [
'20160710171947_create.php',
'20160810112347_delete.php',
'20160812110447_remove.php'
]
snip.rv = complete(t[1], lst)`
endsnippet