如何為github開發一個軟件包的原子代碼編輯器
Atom編輯器擴展指南:創建並發布自己的語法高亮包
Atom編輯器功能強大,但有時你可能需要一些默認情況下未提供的功能,比如針對特定語言的語法高亮。這時,創建自定義包就顯得尤為重要。本文將指導你創建一個語法高亮包,並將其發佈到Atom社區。
核心要點:
- 通過創建自定義包來擴展Atom編輯器的功能,尤其適用於默認情況下缺少的功能。
- 在
.atom/packages
目錄下創建文件夾並添加有效的package.json
文件來初始化新的包。 - 對於語法高亮,創建
grammars
子文件夾,在CSON文件中定義語言規則,並指定Atom如何識別和高亮顯示語言語法。 - 使用
View/Reload
功能在Atom中測試你的包,以便立即查看更改並確保功能正常。 - 在GitHub上設置公共倉庫,然後使用
apm publish
命令將你的包發佈到Atom社區,讓其他開發者受益。
我們將構建什麼?
本文將指導你創建一個類似於language-scilab
的語法高亮包,你可以將其應用於你需要的任何語言。我們將學習如何初始化一個新的包,編寫語法高亮規則,以及如何將你的包發佈到Atom社區。
初始化新的Atom包
Atom使用一個名為.atom
的配置文件文件夾來存儲個人選項和已安裝的包。包位於該文件夾的packages
子文件夾中,每個包都有自己的文件夾。
第一步是創建你的包文件夾,例如language-mylanguage
(這是添加語言支持的命名約定)。然後,在該文件夾中創建package.json
文件,Atom才能識別並加載它。
以下是一個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' }
使用begin
和end
匹配
使用begin
和end
屬性匹配起始和結束標記,例如匹配單引號字符串:
{ 'match': '\b(function)\s+(\w+)\s*\(.*\)' 'captures': { '1': { 'name': 'keyword.control.mylanguage' }, '2': { 'name': 'entity.name.function.mylanguage' } }, 'name': 'meta.function.mylanguage' }
你還可以使用beginCaptures
和endCaptures
捕獲起始和結束標記,以及patterns
屬性在匹配的元素內部匹配子元素。
發布Atom包
在發布包之前,請檢查是否已存在同名包。你需要一個公共的GitHub倉庫。在package.json
文件中更新倉庫地址。
使用apm publish minor
命令發布包(minor
、major
、patch
分別對應次要版本、主要版本和補丁版本更新)。這個命令會註冊你的包名,增加版本號,創建Git標籤並推送更改。
使用apm unpublish name-of-the-package
命令取消發布包。
結語
本文介紹瞭如何創建和發布Atom語法高亮包。 Atom的靈活性允許創建各種類型的包,但本文僅限於語法高亮包的創建。 希望本文能幫助你擴展Atom編輯器的功能,並與社區分享你的成果。
常見問題解答 (FAQs)
(此處省略了原文中FAQs部分,因為該部分內容與上文高度重複,屬於對上文內容的總結和解釋,為了避免冗餘,此處不進行重複輸出。)
以上是如何為github開發一個軟件包的原子代碼編輯器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

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

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

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