在我们编写了一些主题和包之后,让我们花一些时间来深入了解一些Atom的工作方式。在这一章中,我们会更进一步了解Atom中独特的内部API和系统,甚至查看一些源码来看一看它们是如何很好地工作的。

配置API

读取配置

如果你想要编写一个可配置的包,你需要通过atom.config来整体读取配置,或者通过atom.config.get来读取一个具有命名空间的配置键的当前值。

# read a value with `config.get`
@showInvisibles() if atom.config.get "editor.showInvisibles"

或者通过atom.config.observe来跟踪任何视图对象产生的修改。

{View} = require 'space-pen'class MyView extends Viewattached: ->@fontSizeObserveSubscription =atom.config.observe 'editor.fontSize', (newValue, {previous}) =>@adjustFontSize()detached: ->@fontSizeObserveSubscription.dispose()

atom.config.observe方法会使用特定键路径的当前值立即调用提供的回调函数,并且以后当这个值发生改变时也会调用。如果你只希望在下次这个值改变的时候调用回调,使用atom.config.onDidChange来代替它。

订阅(Subscription)方法会返回一个一次性的订阅对象。注意上面的例子中,我们如何将订阅保存在@fontSizeObserveSubscription实例变量中,以及视图被分离的时候如何处理它。你可以添加多个订阅到[CompositeDisposable](https://atom.io/docs/api/latest/CompositeDisposable)中来将它们组合到一起。当视图被分离的时候你可以把它处理掉。

写入配置

虽然atom.config的数据在启动时才从~/.atom/config.cson加载,但你可以通过atom.config.set用编程的方式对其写入。

# basic key update
atom.config.set("core.showInvisibles", true)

如果你通过特定键路径来访问包的配置,你也可能像将它们和你包里面的主模块的schema关联起来。更多schema的细节请阅读配置API文档。

Atom飞行手册翻译: 4.1 配置API相关推荐

  1. Atom飞行手册翻译: 3.7 调试

    调试 Atom拱了一些工具来帮助你理解预料之外的行为和调试问题.这篇指南介绍了一些工具和方法用于帮助你调试,以及提供了一些提交工单(issue)时的帮助信息. 升级到最新版本 你可能遇到了在最新版本已 ...

  2. Atom飞行手册翻译: 4.5 ~ 4.8

    开发Node模块 Atom中的一些包是Node模块,而不是Atom的包.如果你想要修改这些Node模块,例如atom-keymap,你需要把它们链接到不同于普通Atom包的开发环境中. 把Node模块 ...

  3. Atom飞行手册翻译: 1.3 Atom基础

    Atom基础 既然Atom在你的系统中已经安装了,让我们启动.配置并且熟悉这一编辑器吧. 当你首次启动Atom时,你会看到这样一个界面: 这是Atom的欢迎界面,它会给你一些很好的建议,关于如何开始使 ...

  4. Atom飞行手册翻译: 3.1 ~ 3.2

    现在是时候来介绍在这一Hackable的编辑器中,真正"Hackable"的部分了.像我们在整个第二章中看到的那样,Atom中很大一部分都由一大堆包组成.如果你想向Atom中添加一 ...

  5. Atom飞行手册翻译: 2.13 基本的自定义

    基本的自定义 在我们感受到Atom中所有东西的便利之后,让我们看看如何改进它.可能有一些快捷键你经常使用但是感觉很别扭,或者一些颜色不是十分适合你.Atom具有惊人的灵活性,所以让我们对它做一些力所能 ...

  6. Atom飞行手册翻译: 2.12 在Atom中写作

    在Atom中写作 虽然Atom通常可能用来编写软件的代码,但是它还可以用来高效地编写文章.这通常采用一些标记语言,比如说Markdown和Asciidoc(也就是英文手册所用的格式)来完成.下面我们会 ...

  7. Atom飞行手册翻译: 2.6 代码段

    代码段 代码段是一个非常有效的工具,可以从一个快捷方式中快速生成常用的代码语法. 这就是说,你可以输入一些类似于habtm的东西,然后按下回车键,他就会扩展为has_and_belongs_to_ma ...

  8. Atom飞行手册翻译: 2.1 Atom中的包

    在我们介绍完Atom最基础的部分之后,我们要了解如何真正尽可能使用它了.在这一章中我们会介绍如何为了添加新功能而寻找并安全新的包,如何寻找并安装新的主题,如何以一种更高级的方法处理文本,如何以任何你想 ...

  9. Atom飞行手册翻译: 2.7 ~ 2.10

    自动补全 如果你仍旧希望节约一些打字时间,Atom自带简单的自动补全功能. 通过使用ctrl-space,自动补全工具可以让你看到并插入可选的完整单词. 通常,自动补全工具会浏览当前打开的整个文档,寻 ...

最新文章

  1. Android事件机制
  2. bzoj 1233 or 3549
  3. vscode 调试html页面,vscode调试HTML
  4. PHP获取IP的多种方式解析
  5. FreeMarker MyEclipse IDE
  6. “5G 时代,手机或被淘汰”
  7. AndroidTV开发9远程adb调试设备
  8. PyMuPDF 拼版(一)
  9. SQLAlchemy session 使用问题
  10. 抖音超火的动态图如何做 怎么制作GIF
  11. oracle财务软件导出报表,OracleFusion财务会计中心报表云服务-UAO.PDF
  12. 计算集群MOSIX-3.1.1.1.for_kernel-3.2.23 配置
  13. windows下安装Python和安装Python解释器
  14. 电脑打不开html网页,电脑网页打不开怎么回事
  15. mvc中js是如何调用HTML的,MVC中javascript直接调用Model
  16. 前端框架和后端框架总结
  17. java智能停车场收费管理系统
  18. 冯.诺伊曼体系结构的计算机工作原理是,冯 诺依曼型计算机的工作原理是什么...
  19. 时间同步通道跳频TSCH
  20. DHCP中继原理及配置实操

热门文章

  1. 傲腾服务器系统,英特尔傲腾加速 释放数据价值
  2. 查看函数说明_Axure函数使用说明
  3. ffmpeg获取h264视频数据
  4. java 布局管理器_java布局管理器-borderlayout
  5. oracle 行数大于一时,oracle – PL / SQL ORA-01422:精确的提取返回超过请求的行数
  6. poll接口《来自Linux驱动程序开发实例》
  7. 源码编译php mysql_linux下apache+mysql+php开发环境纯源代码编译搭建(转)
  8. java笔试题2015_去哪儿2015笔试题JAVA实现
  9. python无角正方形的绘制_Python无角正方形,用while True怎么写?我写的这个只能画一行,哪个地方出问题了啊?...
  10. linux定时任务执行脚本文件找不到,linux中脚本放入计划任务当中为什么没有执行呢?...