搜索
首页科技周边IT业界如何为github开发一个软件包的原子代码编辑器

Atom编辑器扩展指南:创建并发布自己的语法高亮包

Atom编辑器功能强大,但有时你可能需要一些默认情况下未提供的功能,比如针对特定语言的语法高亮。这时,创建自定义包就显得尤为重要。本文将指导你创建一个语法高亮包,并将其发布到Atom社区。

How To Develop a Package for GitHub's Atom Code Editor

核心要点:

  • 通过创建自定义包来扩展Atom编辑器的功能,尤其适用于默认情况下缺少的功能。
  • .atom/packages目录下创建文件夹并添加有效的package.json文件来初始化新的包。
  • 对于语法高亮,创建grammars子文件夹,在CSON文件中定义语言规则,并指定Atom如何识别和高亮显示语言语法。
  • 使用View/Reload功能在Atom中测试你的包,以便立即查看更改并确保功能正常。
  • 在GitHub上设置公共仓库,然后使用apm publish命令将你的包发布到Atom社区,让其他开发者受益。

我们将构建什么?

本文将指导你创建一个类似于language-scilab的语法高亮包,你可以将其应用于你需要的任何语言。我们将学习如何初始化一个新的包,编写语法高亮规则,以及如何将你的包发布到Atom社区。

初始化新的Atom包

Atom使用一个名为.atom的配置文件文件夹来存储个人选项和已安装的包。包位于该文件夹的packages子文件夹中,每个包都有自己的文件夹。

How To Develop a Package for GitHub's Atom Code Editor

第一步是创建你的包文件夹,例如language-mylanguage(这是添加语言支持的命名约定)。然后,在该文件夹中创建package.json文件,Atom才能识别并加载它。

How To Develop a Package for GitHub's Atom Code Editor

以下是一个language-mylanguage包的package.json文件示例:

{
  "name": "language-mylanguage",
  "version": "0.0.0",
  "description": "Mylanguage language support in Atom",
  "engines": {
    "atom": "*"
  },
  "dependencies": {},
  "repository": {
    "type": "git",
    "url": "https://github.com/JeremyHeleine/language-mylanguage.git"
  },
  "bugs": {
    "url": "https://github.com/JeremyHeleine/language-mylanguage/issues"
  },
  "license": "MIT"
}

关键字段解释:

  • "name": 包名称。
  • "version": 版本号,遵循主版本.次版本.修订版本的约定,初始版本建议使用0.0.0
  • "description": 包描述。
  • "engines": Atom的最低版本要求。
  • "dependencies": 包依赖项。
  • "repository": 包的GitHub仓库地址(发布前可为空)。
  • "bugs": 报告问题的地址。
  • "license": 许可证。

创建好package.json文件后,Atom就可以识别你的包了。 你可以使用View/Reload命令强制Atom重新加载包,以便立即看到更改。

创建语法高亮包

在包文件夹中创建grammars子文件夹,并在其中创建以语言名称命名的CSON文件(例如mylanguage.cson)。这个文件包含语法高亮规则。

基本信息

在定义语法规则之前,需要告诉Atom如何识别你的语言:

{
  "name": "language-mylanguage",
  "version": "0.0.0",
  "description": "Mylanguage language support in Atom",
  "engines": {
    "atom": "*"
  },
  "dependencies": {},
  "repository": {
    "type": "git",
    "url": "https://github.com/JeremyHeleine/language-mylanguage.git"
  },
  "bugs": {
    "url": "https://github.com/JeremyHeleine/language-mylanguage/issues"
  },
  "license": "MIT"
}
  • scopeName: 语言标识符,用于主题、其他包或配置文件。
  • name: 在Atom编辑器底部显示的语言名称。
  • fileTypes: 语言使用的文件扩展名数组。

语法规则

所有规则都必须在patterns数组中声明,每个规则用{}括起来:

'scopeName': 'source.mylanguage'
'name': 'Mylanguage'
'fileTypes': ['ext1', 'ext2']

匹配语法元素

使用match属性匹配语法元素,例如匹配数字:

'scopeName': 'source.mylanguage'
'name': 'Mylanguage'
'fileTypes': ['ext1', 'ext2']

'patterns': [
    {
        # 规则1
    },
    {
        # 规则2
    }
]

match使用正则表达式,name指定样式类名,遵循一定的命名约定,以便主题能够正确应用样式。

匹配多个元素

使用captures属性匹配多个元素,例如匹配函数声明:

{
    'match': '\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\b'
    'name': 'constant.numeric.mylanguage'
}

使用beginend匹配

使用beginend属性匹配起始和结束标记,例如匹配单引号字符串:

{
    'match': '\b(function)\s+(\w+)\s*\(.*\)'
    'captures': {
        '1': { 'name': 'keyword.control.mylanguage' },
        '2': { 'name': 'entity.name.function.mylanguage' }
    },
    'name': 'meta.function.mylanguage'
}

你还可以使用beginCapturesendCaptures捕获起始和结束标记,以及patterns属性在匹配的元素内部匹配子元素。

发布Atom包

在发布包之前,请检查是否已存在同名包。你需要一个公共的GitHub仓库。在package.json文件中更新仓库地址。

使用apm publish minor命令发布包(minormajorpatch分别对应次要版本、主要版本和补丁版本更新)。这个命令会注册你的包名,增加版本号,创建Git标签并推送更改。

How To Develop a Package for GitHub's Atom Code Editor

使用apm unpublish name-of-the-package命令取消发布包。

结语

本文介绍了如何创建和发布Atom语法高亮包。Atom的灵活性允许创建各种类型的包,但本文仅限于语法高亮包的创建。 希望本文能帮助你扩展Atom编辑器的功能,并与社区分享你的成果。

常见问题解答 (FAQs)

(此处省略了原文中FAQs部分,因为该部分内容与上文高度重复,属于对上文内容的总结和解释,为了避免冗余,此处不进行重复输出。)

以上是如何为github开发一个软件包的原子代码编辑器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
CNCF ARM64飞行员:影响和见解CNCF ARM64飞行员:影响和见解Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用GO构建网络漏洞扫描仪使用GO构建网络漏洞扫描仪Apr 01, 2025 am 08:27 AM

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德

2025年最佳10个最佳免费反向链接检查器工具2025年最佳10个最佳免费反向链接检查器工具Mar 21, 2025 am 08:28 AM

网站建设只是第一步:SEO与反向链接的重要性 建立网站只是将其转化为宝贵营销资产的第一步。您需要进行SEO优化,以提高网站在搜索引擎中的可见度,吸引潜在客户。反向链接是提升网站排名的关键,它向谷歌和其他搜索引擎表明您的网站权威性和可信度。 并非所有反向链接都有利:识别并避免有害链接 并非所有反向链接都有益。有害链接会损害您的排名。优秀的免费反向链接检查工具可以监控链接到您网站的来源,并提醒您注意有害链接。此外,您还可以分析竞争对手的链接策略,从中学习借鉴。 免费反向链接检查工具:您的SEO情报员

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具