|
起因
前一篇写了反射类生成php速查表。过年了在家也没事,想完成自己想要实现的sublime自动完成文件生成。就是sublime里输入关键字后按tab自动补全一个全的函数名和参数的,按tab可以切换一致到最后的。也是给别人的承诺,今年肯定会实现sublime的tp5插件的。
地址在 https://github.com/yangweijie/SublimeThinkPHP5.0
思路
搞清sublime 完成的写法
"HTML_FILE_SUFFIX",
"TEMPLATE_NAME",
{ "trigger": "_ad", "contents": "protected function _after_delete(\\$data,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "_af", "contents": "protected function _after_find(&\\$result,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "_ai", "contents": "protected function _after_insert(\\$data,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "_as", "contents": "protected function _after_select(&\\$result,\\$options){\n ${1:foreach(\\$result as &\\$record)\\{\n ${2:\\$this->_after_find(\\$record,\\$options);}\n \\}}\n}$0" },
{ "trigger": "_au", "contents": "protected function _after_update(\\$data,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "_bi", "contents": "protected function _before_insert(&\\$data,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "_bu", "contents": "protected function _before_update(&\\$data,\\$options) {\n ${1:}\n}$0" },
{ "trigger": "->_empty", "contents": "\\$this->_empty()$0" },
{ "trigger": "_get", "contents": "_get('${1:\\$name}')$0" },
{ "trigger": "_post", "contents": "_post('${1:\\$name}')$0" },
{ "trigger": "->_sql", "contents": "->_sql('${1:\\$name}')$0" },
{ "trigger": "->addAll", "contents": "->addAll(\\$${1:dataList},\\$${2:options},\\$${3:replace})$0" },
这个是写在Sublime的ThinkPHP 插件里 php.sublime-completions 文件里的。
completion 和snippet的区别在于 snippet只能一个文件一个补全。命令面版里有提示。
字符串
json 里直接字符串
tab占位
$0 完成的最后光标
tab 选中光标 ${1:XX} 1自增下标,: 选中的内容
trigger 触发器
表示什么文本末按tab会触发完成。
注意点
$ 换行之类的要转义
php如何获取
先上核心代码: |
|
|