搜尋
首頁科技週邊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
定制電信軟件的好處定制電信軟件的好處May 11, 2025 am 08:28 AM

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显著改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求

CNCF觸發了ARM64和X86的平台平等突破CNCF觸發了ARM64和X86的平台平等突破May 11, 2025 am 08:27 AM

Arm64 架構開源軟件的 CI/CD 難題與解決方案 在 Arm64 架構上部署開源軟件需要一個強大的 CI/CD 環境。然而,Arm64 和傳統 x86 處理器架構的支持水平之間存在差異,Arm64 通常處於劣勢。面向多種架構的基礎設施組件開發人員對工作環境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因採用不太流行的平台而需要改變開發流程。 性能:平台和支持機制具有良好的性能,確保在支持多個平台時部署方案不會因速度不足而受影響。 測試覆蓋率:對所有平台同時進行效率、合規性和

21個開發人員新聞通訊將在2025年訂閱21個開發人員新聞通訊將在2025年訂閱Apr 24, 2025 am 08:28 AM

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

使用AWS ECS和LAMBDA的無服務器圖像處理管道使用AWS ECS和LAMBDA的無服務器圖像處理管道Apr 18, 2025 am 08:28 AM

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

CNCF ARM64飛行員:影響和見解CNCF ARM64飛行員:影響和見解Apr 15, 2025 am 08:27 AM

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具