国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
基本信息
語法規(guī)則
匹配語法元素
匹配多個元素
使用beginend匹配
首頁 科技周邊 IT業(yè)界 如何為github開發(fā)一個軟件包的原子代碼編輯器

如何為github開發(fā)一個軟件包的原子代碼編輯器

Feb 19, 2025 am 10:20 AM

Atom編輯器擴(kuò)展指南:創(chuàng)建并發(fā)布自己的語法高亮包

Atom編輯器功能強(qiáng)大,但有時你可能需要一些默認(rèn)情況下未提供的功能,比如針對特定語言的語法高亮。這時,創(chuàng)建自定義包就顯得尤為重要。本文將指導(dǎo)你創(chuàng)建一個語法高亮包,并將其發(fā)布到Atom社區(qū)。

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

核心要點(diǎn):

  • 通過創(chuàng)建自定義包來擴(kuò)展Atom編輯器的功能,尤其適用于默認(rèn)情況下缺少的功能。
  • .atom/packages目錄下創(chuàng)建文件夾并添加有效的package.json文件來初始化新的包。
  • 對于語法高亮,創(chuàng)建grammars子文件夾,在CSON文件中定義語言規(guī)則,并指定Atom如何識別和高亮顯示語言語法。
  • 使用View/Reload功能在Atom中測試你的包,以便立即查看更改并確保功能正常。
  • 在GitHub上設(shè)置公共倉庫,然后使用apm publish命令將你的包發(fā)布到Atom社區(qū),讓其他開發(fā)者受益。

我們將構(gòu)建什么?

本文將指導(dǎo)你創(chuàng)建一個類似于language-scilab的語法高亮包,你可以將其應(yīng)用于你需要的任何語言。我們將學(xué)習(xí)如何初始化一個新的包,編寫語法高亮規(guī)則,以及如何將你的包發(fā)布到Atom社區(qū)。

初始化新的Atom包

Atom使用一個名為.atom的配置文件文件夾來存儲個人選項和已安裝的包。包位于該文件夾的packages子文件夾中,每個包都有自己的文件夾。

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

第一步是創(chuàng)建你的包文件夾,例如language-mylanguage(這是添加語言支持的命名約定)。然后,在該文件夾中創(chuàng)建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"
}

關(guān)鍵字段解釋:

  • "name": 包名稱。
  • "version": 版本號,遵循主版本.次版本.修訂版本的約定,初始版本建議使用0.0.0。
  • "description": 包描述。
  • "engines": Atom的最低版本要求。
  • "dependencies": 包依賴項。
  • "repository": 包的GitHub倉庫地址(發(fā)布前可為空)。
  • "bugs": 報告問題的地址。
  • "license": 許可證。

創(chuàng)建好package.json文件后,Atom就可以識別你的包了。 你可以使用View/Reload命令強(qiáng)制Atom重新加載包,以便立即看到更改。

創(chuàng)建語法高亮包

在包文件夾中創(chuàng)建grammars子文件夾,并在其中創(chuàng)建以語言名稱命名的CSON文件(例如mylanguage.cson)。這個文件包含語法高亮規(guī)則。

基本信息

在定義語法規(guī)則之前,需要告訴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: 語言標(biāo)識符,用于主題、其他包或配置文件。
  • name: 在Atom編輯器底部顯示的語言名稱。
  • fileTypes: 語言使用的文件擴(kuò)展名數(shù)組。

語法規(guī)則

所有規(guī)則都必須在patterns數(shù)組中聲明,每個規(guī)則用{}括起來:

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

匹配語法元素

使用match屬性匹配語法元素,例如匹配數(shù)字:

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

'patterns': [
    {
        # 規(guī)則1
    },
    {
        # 規(guī)則2
    }
]

match使用正則表達(dá)式,name指定樣式類名,遵循一定的命名約定,以便主題能夠正確應(yīng)用樣式。

匹配多個元素

使用captures屬性匹配多個元素,例如匹配函數(shù)聲明:

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

使用beginend匹配

使用beginend屬性匹配起始和結(jié)束標(biāo)記,例如匹配單引號字符串:

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

你還可以使用beginCapturesendCaptures捕獲起始和結(jié)束標(biāo)記,以及patterns屬性在匹配的元素內(nèi)部匹配子元素。

發(fā)布Atom包

在發(fā)布包之前,請檢查是否已存在同名包。你需要一個公共的GitHub倉庫。在package.json文件中更新倉庫地址。

使用apm publish minor命令發(fā)布包(minormajor、patch分別對應(yīng)次要版本、主要版本和補(bǔ)丁版本更新)。這個命令會注冊你的包名,增加版本號,創(chuàng)建Git標(biāo)簽并推送更改。

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

使用apm unpublish name-of-the-package命令取消發(fā)布包。

結(jié)語

本文介紹了如何創(chuàng)建和發(fā)布Atom語法高亮包。Atom的靈活性允許創(chuàng)建各種類型的包,但本文僅限于語法高亮包的創(chuàng)建。 希望本文能幫助你擴(kuò)展Atom編輯器的功能,并與社區(qū)分享你的成果。

常見問題解答 (FAQs)

(此處省略了原文中FAQs部分,因為該部分內(nèi)容與上文高度重復(fù),屬于對上文內(nèi)容的總結(jié)和解釋,為了避免冗余,此處不進(jìn)行重復(fù)輸出。)

以上是如何為github開發(fā)一個軟件包的原子代碼編輯器的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

開發(fā)人員的快捷方式到您的Udemy樣平臺 開發(fā)人員的快捷方式到您的Udemy樣平臺 Jun 17, 2025 pm 04:43 PM

在開發(fā)類似于Udemy的學(xué)習(xí)平臺時,重點(diǎn)不僅僅是內(nèi)容質(zhì)量。同樣重要的是如何交付內(nèi)容。這是因為現(xiàn)代教育平臺依賴于媒體,快速且易于消化。

SaaS的5個最佳支付門戶:您的最終指南 SaaS的5個最佳支付門戶:您的最終指南 Jun 29, 2025 am 08:28 AM

付款網(wǎng)關(guān)是付款過程的關(guān)鍵組成部分,使企業(yè)能夠在線接受付款。它充當(dāng)客戶與商人之間的橋梁,安全地傳輸付款信息并促進(jìn)交易。 為了

用于購買SSL證書的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺 用于購買SSL證書的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺 Jun 25, 2025 am 08:28 AM

在一個在線信任不可談判的世界中,SSL證書對于每個網(wǎng)站都至關(guān)重要。 SSL認(rèn)證的市場規(guī)模在2024年價值56億美元,并且由于電子商務(wù)業(yè)務(wù)的激增而推動了強(qiáng)勁的增長

新研究聲稱AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 新研究聲稱AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 Jul 03, 2025 pm 05:48 PM

在我們認(rèn)為人類始終超越機(jī)器的領(lǐng)域的另一個挫折中,研究人員現(xiàn)在建議AI比我們更好地理解情感。研究人員發(fā)現(xiàn)人工智能證明了一個

由于新的Microsoft AI型號 由于新的Microsoft AI型號 Jul 05, 2025 am 12:44 AM

一種新的人工智能(AI)模型已經(jīng)證明了比幾個使用最廣泛使用的全球預(yù)測系統(tǒng)更快,更精確地預(yù)測重大天氣事件的能力。該名為Aurora的模型已接受過培訓(xùn)。

您的設(shè)備喂養(yǎng)AI助手并收集個人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 您的設(shè)備喂養(yǎng)AI助手并收集個人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 Jul 05, 2025 am 01:12 AM

不管喜歡與否,人工智能已成為日常生活的一部分。許多設(shè)備(包括電動剃須刀和牙刷)已成為AI驅(qū)動的“使用機(jī)器學(xué)習(xí)算法來跟蹤一個人的使用方式,Devi的方式

高級AI型號的CO₂回答相同問題時的排放量比更常見的LLM 高級AI型號的CO₂回答相同問題時的排放量比更常見的LLM Jul 06, 2025 am 12:37 AM

根據(jù)最近的一項研究,我們試圖使AI模型的功能越精確,其碳排放量就越大 - 某些提示產(chǎn)生的二氧化碳比其他提示高達(dá)50倍。

See all articles