作者:奉召开博_745 | 来源:互联网 | 2023-08-16 18:38
atom高等用法???除了自定义功用基本没啥好玩,抱着装逼的主意,搜了一波atom插件入门,发明说得太含糊(能够是我太菜),然后翻开了官网的插件文档,细细的浏览起来,凭着糟糕的英语
atom高等用法???除了自定义功用基本没啥好玩,抱着装逼的主意,搜了一波atom插件入门,发明说得太含糊(能够是我太菜),然后翻开了官网的插件文档,细细的浏览起来,凭着糟糕的英语水平也算看懂了也许,干脆就翻译下来(由于搜到的中文atom遨游飞翔手册,插件篇是空的),愿望凭着本身的明白,能写得更浅显。让有心人能看懂官方模版代码。(注重:本文目标不在开辟一个什么什么插件,只通知你怎样举行开辟)
注:下文并没有太多代码,代码发起到你新建一个模版插件(然后你就具有了一切的代码),然后依据下文加深本身的明白,相信你会看懂它。
Atom插件编写指南(官方文档翻译)
- 运用package-generator
- ctrl-shift-p 翻开敕令输入框输入package-generator就能够找到该敕令
插件中的package.json文件
- 基本和 node 的package.json雷同.
atom独占的属性:
- main:你的package的进口js文件途径,假如没有,默许运用index.coffe或许index.js
- styles: 一个字符串数组,决议款式加载的递次,默许字母递次
- keymaps: 一个字符串数组,键盘映照的加载递次,默许字母
- menus: 一个字符串数组,菜单映照递次,默许字母
- snippet : 字符串数组,默许字母
- activationCommands : 一个对象,能够分辨触发激活你的包的敕令,键是css挑选器,值是一个字符串敕令数组,只要个中一个敕令在划定的css范围内触发,atom才会加载你的包,假如不指定,你的进口文件的
activate()
要领会在包加载后挪用, - activationHooks: 不是很懂,也许是运用什么语法去诠释剧本(引荐到寓目英文版本)
源代码
style-sheels
- 你的款式应当写在styles里,当你的包激活的时刻,在这个目次的任何款式都会被加载,你能够检察atom的ui组件实行styleguide敕令.假如你不须要款式文件保存就好,假如你要指定色彩和大小,请运用主题供应的变量(这里有点贫苦,还要去检察别的的文档).
keymaps
- 指定快捷键,会coffeeScript 或许 json 语法,一看就懂.
menus
最先开辟
进口js文件有4个要领,activate(),deactivate(),serialize(),toggle();
- deactivate(); 开释资本的要领,不要做其他事变。
- serialize(); 序列化要领,做一些状况保存的事情,不要做其他事变.
- activate(); 唯一须要激活的要领,在atom加载后会自动实行
- 主要领的toggle要领不会自动实行,须要手动实行.
- CompositeDisposable class 注册插件中能够被挪用的敕令.
- 本例子中toggle要领只是简朴的显现画面与隐蔽画面.
the flow (atom启动流程)
- 启动atom
- 加载paceage
- atom read your package.json
- atom loads styles menus keymaps main module
- atom finishs loading package
- 在某个点,用户触发了你的toggle敕令
- atom实行你的激活要领(
avtitave
); - atom实行toggle要领.
- 在某个时刻,用户有触发了你的toggle敕令
- atom又实行你的toggle要领
- 末了atom会封闭任何你定义的序列化
当你不运用actitaveCommand这个属性时 实行的递次会有所不同
最先修正
继续atomUI 即绘制本身的ui addModalPanel();
this.modalPanel = atom.workspace.addModalPanel({
item: this.commentHighlightView.getElement(),
visible: false
});
继续ui要领2:你还能够把上面的item 增加到workspace上去;
- tree view, console debugger, outline view 等等面板都是用这个完成的;
- const edit = atom.workspace.getActiveTextEditor(); 猎取当前编辑器对象
- edit.getText(); 猎取一切文本
- edit.insertText(); 假如选中了文本这个要领会替代文本,假如没有则在光标处增加文本;
- edit.getSelectedText(); 显著是猎取到挑选到的文本