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中文網其他相關文章!

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

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

此基於GO的網絡漏洞掃描儀有效地確定了潛在的安全弱點。 它利用了GO的並發功能的速度功能,包括服務檢測和漏洞匹配。讓我們探索它的能力和道德

網站建設只是第一步:SEO與反向鏈接的重要性 建立網站只是將其轉化為寶貴營銷資產的第一步。您需要進行SEO優化,以提高網站在搜索引擎中的可見度,吸引潛在客戶。反向鏈接是提升網站排名的關鍵,它向谷歌和其他搜索引擎表明您的網站權威性和可信度。 並非所有反向鏈接都有利:識別並避免有害鏈接 並非所有反向鏈接都有益。有害鏈接會損害您的排名。優秀的免費反向鏈接檢查工具可以監控鏈接到您網站的來源,並提醒您注意有害鏈接。此外,您還可以分析競爭對手的鏈接策略,從中學習借鑒。 免費反向鏈接檢查工具:您的SEO情報員


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver Mac版
視覺化網頁開發工具