永不妥协 2019-06-28
atom高级用法???除了自定义功能基本没啥好玩,抱着装逼的想法,搜了一波atom插件入门,发现说得太迷糊(可能是我太菜),然后打开了官网的插件文档,细细的阅读起来,凭着蹩脚的英语水平也算看懂了大概,索性就翻译下来(因为搜到的中文atom飞行手册,插件篇是空的),希望凭着自己的理解,能写得更通俗。让有心人能看懂官方模版代码。(注意:本文目的不在开发一个什么什么插件,只告诉你如何进行开发)
注:下文并无太多代码,代码建议到你新建一个模版插件(然后你就拥有了所有的代码),然后根据下文加深自己的理解,相信你会看懂它。
atom独有的属性:
activate()
方法会在包加载后调用,required
main 指定的文件(用官方插件生成的模版中 mian 指定的就是顶级模块) 如果你再package.json 里面没有配置,就会默认认为是 index.js 是主入口;顶级模块可以实现下面的方法
- activate(state): 插件激活时被调用。如果你实现了 serialize() 接口,它会传递窗口上次的state. 一般用这个接口来初始化插件。 - initialize(state): (Atom 1.14以后的版本支持) 与activate() 功能类似,不过被调用的更早,可以说在所有操作之前被调用。 如果你想等环境运行完毕了再初始化,请用 activate() 。如果需要在画面构造前执行什么,请用initialize() 。 - serialize(): 在窗口被关闭的时候,允许你返回 JSON 序列,来保存当前的状态。你保存的信息,可以传递给activate() 接口,来在下次启动时恢复你的窗口状态。 - deactivate(): 窗口关闭时会调用这个接口,如果你的插件正在使用某些资源,或关联着某些文件,请在这里释放他们。
context-menu 定义右键菜单,一看就懂
"context-menu": { "atom-text-editor": [ { "label": "Toggle your-name-word-count", "command": "your-name-word-count:toggle" } ] }
入口js文件有4个方法,activate(),deactivate(),serialize(),toggle();
avtitave
);当你不使用actitaveCommand这个属性时 执行的顺序会有所不同
继承atomUI 即绘制自己的ui addModalPanel();
this.modalPanel = atom.workspace.addModalPanel({ item: this.commentHighlightView.getElement(), visible: false });
继承ui方法2:你还可以把上面的item 添加到workspace上去;