码迷,mamicode.com
首页 > 其他好文 > 详细

sublime开发插件-初尝

时间:2015-07-02 21:12:24      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

我在网上下了个模板插件:文章地址 

下载地址:https://github.com/kairyou/SublimeTmpl

我研究了一下他的代码,并自己尝试改了一下,建立自己的模板。

为什么要建立模板?

因为有些是框架的代码,每个文件都会有,所以这样的代码就直接写在模板中,每次新建文件自动加载,省的每次都要复制。

从github下载下来之后,解压,放在sublime/Packages/SublimeTmpl  后面的目录必须是这个, 把解压的文件放到这个目录下。

在 sublime 的菜单, File标签    就会出来  new file(sublime Tmpl)  就可以建立作者写的模板了


模板写在 templates 目录下, 我写的一个lua (名字:lua.tmpl  参数和名字是对应的) 的模板代码:${1:} 这个是建立完文件 按tab键 可以快速修改的地方

--[[
  	Anchor : zky
	Date: ${1:2015/1/30}
	Target: ${2:目标}
]]

local EVENT_NET_PACKAGE          = 1000 --lua解析协议的入口

function closeMe()
  	thisForm:setHide(true)
end

function onLoad()
	${3:thisForm:addListener("NetWork")}
	${4:thisForm:addListener("MySelf")}
	initEngish()
	initSet()
end

function initEngish()

end

function initSet()

end

function onShow()

end

function onEvent(id, is)
	if id==EVENT_NET_PACKAGE then
        parseNetPackage(is)
    end
end

function parseNetPackage(is)
    is:setOffset(0)
    local msgID=is:readInt()
    MYLOG("parseNetPackage--msgID-->"..string.format("0X%x", msgID))
    if msgID == ${5:MSG_ID} then  --$6
        $0
    end
end

关于怎么把你想要的菜单添加到sublime中,在你开发的插件的文件中,定义如下文件名,就是可以在 sublime相应的菜单上添加新的菜单

Main.sublime-menu   该文件定义的是sublime的顶部菜单

Side Bar.sublime-menu   鼠标右键出来的 side Bar 菜单 

Context.sublime-menu  左侧的文件 右键操作文件夹弹出的菜单


看下 Main.sublime-menu 下的代码: 意思是在file的标签 加入一个 New File (SublimeTmpl) 的菜单,

菜单的子节点 为 lehoo-Lua,  

命令传输的接受文件,为 sublime_tmpl ,因为sublime是用 python开发的, 插件也是用python开发的,所以这个命令就会指向 sublime_tmpl.py 这个执行文件。  

args 为传递过去的参数。 可加多个子标签。

[
    {
        "id": "file",
        "children":
        [
            {
                "caption": "New File (SublimeTmpl)",
                "children":
                [
                    {
                        "caption": "lehoo-Lua",
                        "command": "sublime_tmpl",
                        "args": {
                            "type": "lua"
                        }
                    },
                    {
                        "caption": "HTML",
                        "command": "sublime_tmpl",
                        "args": {
                            "type": "html"
                        }
                    }
                ]
            }
        ]
    },


如果我们添加新的语言模板,需要修改 SublimeTmpl.sublime-settings  这个文件,才能是保存的文件是相应后缀名, 并且 语法是高亮的。

{
    "xml-960*640": {
        "syntax": "Packages/XML/XML.tmLanguage"
    },
    "lua": {
        "syntax": "Packages/Lua/Lua.tmLanguage"
        // ,"extension": "html" # default_extension
    },
    "html": {
        "syntax": "Packages/HTML/HTML.tmLanguage"
        // ,"extension": "html" # default_extension
    },
    "disable_keymap_actions": false, // "all"; "html,css"
    "date_format" : "%Y-%m-%d %H:%M:%S",
    "attr": {
        "author": "Your Name",
        "email": "you@example.org",
        "link": "http://example.org"
    }
}

上面是我添加的一个lua 语言的关联, xml-960*640 为传过来的参数,模板的名字也是这个名字

下面的  attr  的东西是作者写的,就是可以加入日期及作者相关的, 具体请看上面的链接文章 

Lua.tmLanguage 在相应的目录都是有这个文件的, 关联的时候,看看确认下


添加一下余下的那两种菜单试试,新建上面 相应的文件名字 如:Side Bar.sublime-menu  放到这个目录下,写入(另一个一样的,现在点击相应的菜单也会出现 New File (sublimeTmpl) 这个菜单了,并且操作有效

[
    {
        "caption": "New File (SublimeTmpl)",
        "children":
        [
            {
                "caption": "Lua",
                "command": "sublime_tmpl",
                "args": {
                    "type": "lua"
                }
            },
            {
                "caption": "HTML",
                "command": "sublime_tmpl",
                "args": {
                    "type": "html"
                }
            }
        ]
    }

]

我们新加入的模板,没有快捷键命令,说一下,怎么加入快捷键,这里我们需要改两个文件  

Default.sublime-keymap 中添加:lua那段 我们设置的快捷键 是 ctrl + alt + l

[
    {
        "keys": ["ctrl+alt+l"], "command": "sublime_tmpl",
        "args": {"type": "lua"}, "context": [{"key": "sublime_tmpl.lua"}]
    }
    ,{
        "keys": ["ctrl+alt+h"], "command": "sublime_tmpl",
        "args": {"type": "html"}, "context": [{"key": "sublime_tmpl.html"}]
    }
]


Default.sublime-commands 中添加:

[
    {
        "caption": "Tmpl: Create lua", "command": "sublime_tmpl",
        "args": {"type": "lua"}
    },
    {
        "caption": "Tmpl: Create html", "command": "sublime_tmpl",
        "args": {"type": "html"}
    }
]

这样快捷键,就设置好了,试一下,也是能用的。


这些设置都是sublime 通用的东西,你开发其他插件也会用到的。 

遇到问题,创建的文件,不是在我想要的目录,而是在我的 用户目录下 , 不过现在没学过 python, 等以后学习一下,把这里改一下。

官方的 从 上面菜单的 file - new file 建立新文件 就在 用户目录下 , 而在 左则点击文件夹建立  就在相应的文件夹下面。

 应该弄成这样,不过建立有记忆功能, 也不需要每次都重新选择。

如果你想在一个目录下建立一个新的文件,就先在sublime 左侧的文件列表中,先选中该录下下的一个文件,这样先建的文件,就在这个目录下。 


扩展阅读:如何开发Sublime Text2 插件 








版权声明:本文为博主原创文章,未经博主允许不得转载。

sublime开发插件-初尝

标签:

原文地址:http://blog.csdn.net/tutuboke/article/details/46730151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!