百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

想拥有自己的 Atom 文本编辑器插件吗?

haoteby 2025-02-03 12:55 6 浏览

这篇教程将会教你怎么制作你的第一个 Atom 文本编辑器的插件。我们将会制作一个山寨版的 Sourcerer,这是一个从 StackOverflow 查询并使用代码片段的插件。到教程结束时,你将会制作好一个将编程问题(用英语描述的)转换成获取自 StackOverflow 的代码片段的插件,像这样:

准备

教程须知

Atom 文本编辑器是用 web 技术创造出来的。我们将完全使用 JavaScript 的 EcmaScript 6 规范来制作插件。你需要熟悉以下内容:

  • · 使用命令行
  • · JavaScript 编程
  • · Promises
  • · HTTP

教程的仓库

你可以跟着教程一步一步走,或者看看放在 GitHub 上的仓库,这里有插件的源代码。这个仓库的历史提交记录包含了这里每一个标题。

开始

安装 Atom

根据 Atom 官网 的说明来下载 Atom。我们同时还要安装上 apm(Atom 包管理器的命令行工具)。你可以打开 Atom 并在应用菜单中导航到 Atom > Install Shell Commands 来安装。打开你的命令行终端,运行 apm -v 来检查 apm 是否已经正确安装好,安装成功的话打印出来的工具版本和相关环境信息应该是像这样的:

apm -v
> apm  1.9.2
> npm  2.13.3
> node 0.10.40
> python 2.7.10
> git 2.7.4

生成骨架代码

让我们使用 Atom 提供的一个实用工具创建一个新的 package(软件包)来开始这篇教程。

  1. 启动编辑器,按下 Cmd+Shift+P(MacOS)或者 Ctrl+Shift+P(Windows/Linux)来打开命令面板。
  2. 搜索“Package Generator: Generate Package”并点击列表中正确的条目,你会看到一个输入提示,输入软件包的名称:“sourcefetch”。
  3. 按下回车键来生成这个骨架代码包,它会自动在 Atom 中打开。

如果你在侧边栏没有看到软件包的文件,依次按下 Cmd+K Cmd+B(MacOS)或者 Ctrl+K Ctrl+B(Windows/Linux)

命令面板可以让你通过模糊搜索来找到并运行软件包。这是一个执行命令比较方便的途径,你不用去找导航菜单,也不用刻意去记快捷键。我们将会在整篇教程中使用这个方法。

运行骨架代码包

在开始编程前让我们来试用一下这个骨架代码包。我们首先需要重启 Atom,这样它才可以识别我们新增的软件包。再次打开命令面板,执行 Window: Reload 命令。

重新加载当前窗口以确保 Atom 执行的是我们最新的源代码。每当需要测试我们对软件包的改动的时候,就需要运行这条命令。

通过导航到编辑器菜单的 Packages > sourcefetch > Toggle 或者在命令面板执行 sourcefetch:toggle 来运行软件包的 toggle 命令。你应该会看到屏幕的顶部出现了一个小黑窗。再次运行这条命令就可以隐藏它。

“toggle”命令

打开 lib/sourcefetch.js,这个文件包含有软件包的逻辑和 toggle 命令的定义。

toggle() {
 console.log('Sourcefetch was toggled!');
 return (
   this.modalPanel.isVisible() ?
   this.modalPanel.hide() :
   this.modalPanel.show()
 );
}

toggle 是这个模块导出的一个函数。根据模态面板的可见性,它通过一个三目运算符 来调用 show 和 hide 方法。modalPanel 是 Panel(一个由 Atom API 提供的 UI 元素) 的一个实例。我们需要在 export default 内部声明 modalPanel 才可以让我们通过一个实例变量 this 来访问它。

this.subscriptions.add(atom.commands.add('atom-workspace', {
  'sourcefetch:toggle': () => this.toggle()
}));

上面的语句让 Atom 在用户运行 sourcefetch:toggle 的时候执行 toggle 方法。我们指定了一个 匿名函数 () => this.toggle(),每次执行这条命令的时候都会执行这个函数。这是事件驱动编程(一种常用的 JavaScript 模式)的一个范例。

Atom 命令

命令只是用户触发事件时使用的一些字符串标识符,它定义在软件包的命名空间内。我们已经用过的命令有:

  • · package-generator:generate-package
  • · Window:reload
  • · sourcefetch:toggle

软件包对应到命令,以执行代码来响应事件。

进行你的第一次代码更改

让我们来进行第一次代码更改——我们将通过改变 toggle 函数来实现逆转用户选中文本的功能。

改变 “toggle” 函数

如下更改 toggle 函数。

toggle() {
  let editor
  if (editor = atom.workspace.getActiveTextEditor()) {
    let selection = editor.getSelectedText()
    let reversed = selection.split('').reverse().join('')
    editor.insertText(reversed)
  }
}

测试你的改动

  1. 通过在命令面板运行 Window: Reload 来重新加载 Atom。
  2. 通过导航到 File > New 来创建一个新文件,随便写点什么并通过光标选中它。
  3. 通过命令面板、Atom 菜单或者右击文本然后选中 Toggle sourcefetch 来运行 sourcefetch:toggle 命令。

更新后的命令将会改变选中文本的顺序:

在 sourcefetch 教程仓库 查看这一步的全部代码更改。

原文来自:https://linux.cn:443/article-7865-1.html

本文地址:https://www.linuxprobe.com/first-atom-editor.html编辑员:苏西云,审核员:逄增宝

本文原创地址:https://www.linuxprobe.com/first-atom-editor.html

相关推荐

百度首席技术官王海峰:飞桨已拥有750万名开发者 文心一言将逐步开放插件生态

【百度首席技术官王海峰:飞桨已拥有750万名开发者文心一言将逐步开放插件生态】《科创板日报》6日讯,2023世界人工智能大会上,百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰表示,截至...

那些不得不装的浏览器插件,日英文视频自动翻译、广告、沉浸阅读

这年头各种浏览器层出不穷,要说使用量最大的还是基于chromium内核的吧。MicrosoftEdge、360、QQ……哪个厂商不说它香!chromium系的强大扩展性让我们浏览网页的体验越来越爽了...

百度站长平台:论坛搜索功能升级 推论构化数据插件

站长之家(Chinaz.com)3月26日消息近日,百度站长平台站内搜索功能针对论坛站点新增了搜版块和搜用户功能。此外,还推出了新版的论坛结构化数据插件,分为兼容版和完整版两个版本。注意,兼容版无法开...

警惕!利用百度推广实施的诈骗!(百度推广真的有用吗)

...

百度王海峰:文心3.5效果全面提升 将发布更多百度官方和第三方插件

中证网讯(记者彭思雨)7月6日,2023世界人工智能大会在上海开幕。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰表示,文心大模型3.5效果、功能、性能全面提升,实现了基础模型升级、精...

WORDPRESS好用的seo插件:生成百度站点地图

BaiduSitemapGenerator是何方大神?BaiduSitemapGenerator是一个wordpress插件,BaiduSitemapGenerator可以生成格式化sit...

你能容忍百度不经过允许给用户下载插件吗?

文/懒人先生(首发头条)最近,百度又摊上事儿了,这次找事儿的可不是个人,而是网友整个团体啊,事情的缘起是因为有一个网友在网上反映百度地图会自动在后台下载一些热门的音频文件,这样做的后果就是有可能网友们...

提升工作效率的三款excel插件推荐,相信你总会得到有价值的东西

本内容来源于@什么值得买SMZDM.COM|生活家被演南非有这样的一句话“会excel的比会word的挣得多,会ppt的比会excel的挣得多”但我看来,office三件套word、excel、pp...

工具 | 直接在网页上做标记?这些插件简直不要太赞

哈喽,大家好。好久不见啊!!!2021年的第一篇推文来啦~有小伙伴在后台留言:浏览网页时如何做标记?所以这篇推文就来介绍一下~之前的推文中有介绍过,浏览网页时如何快速定位关键词,其实也算是做标记的一种...

良心合集!Adobe Audition常用插件免费下载

八月了时间很快...

用上这几个脚本,多家网盘下载不限速

下载别人分享的文件需要用到各种网盘,有的网盘下载一个小文件也需要转存才能下载,或是需要客户端与会员等操作,在日常使用的时候不是很方便,百度网盘相关的下载工具已经介绍过很多了。今天就来给大家推荐几个其他...

论坛站站长的福音 百度DZ插件跨越式升级

站长之家(chinaz.com)3月31日消息:百度站长平台今日跨越式升级discuz百度结构化数据提交插件,此次跨越式升级提升了收录时效性,而且支持提交有关用户和版块数据。如果你是使用Discuz!...

百度CTO王海峰:文心大模型3.5新增插件机制 使其具备生成实时准确信息的能力

【百度CTO王海峰:文心大模型3.5新增插件机制使其具备生成实时准确信息的能力】《科创板日报》27日讯,百度首席技术官王海峰表示,文心大模型3.5最大的一个变化是新增了插件机制,默认的内置插件“百度...

flutter集成 百度地图 ^2.0.1版本 | 绕坑必备

我之前在flutter中使用高德地图,发现没有引入,总是编译错误,后面我选择了使用flutter_map;flutter_map有一个局限是使用瓦片渲染。且只能渲染;要想效果好一点就用mapbox的...

百度文心一言新增搜索、图表生成等5大原生插件

【百度文心一言新增搜索、图表生成等5大原生插件】《科创板日报》16日讯,今日,文心一言发布五个原生插件:百度搜索、览卷文档(基于文档的交互)、E言易图(数据洞察图表生成)、说图解画(基于图片的交互)、...