亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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

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

Feb 19, 2025 am 10:20 AM

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

Atom編輯器功能強(qiáng)大,但有時(shí)你可能需要一些默認(rèn)情況下未提供的功能,比如針對(duì)特定語(yǔ)言的語(yǔ)法高亮。這時(shí),創(chuàng)建自定義包就顯得尤為重要。本文將指導(dǎo)你創(chuàng)建一個(gè)語(yǔ)法高亮包,并將其發(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文件來初始化新的包。
  • 對(duì)于語(yǔ)法高亮,創(chuàng)建grammars子文件夾,在CSON文件中定義語(yǔ)言規(guī)則,并指定Atom如何識(shí)別和高亮顯示語(yǔ)言語(yǔ)法。
  • 使用View/Reload功能在Atom中測(cè)試你的包,以便立即查看更改并確保功能正常。
  • 在GitHub上設(shè)置公共倉(cāng)庫(kù),然后使用apm publish命令將你的包發(fā)布到Atom社區(qū),讓其他開發(fā)者受益。

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

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

初始化新的Atom包

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

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

第一步是創(chuàng)建你的包文件夾,例如language-mylanguage(這是添加語(yǔ)言支持的命名約定)。然后,在該文件夾中創(chuàng)建package.json文件,Atom才能識(shí)別并加載它。

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

以下是一個(gè)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": 版本號(hào),遵循主版本.次版本.修訂版本的約定,初始版本建議使用0.0.0
  • "description": 包描述。
  • "engines": Atom的最低版本要求。
  • "dependencies": 包依賴項(xiàng)。
  • "repository": 包的GitHub倉(cāng)庫(kù)地址(發(fā)布前可為空)。
  • "bugs": 報(bào)告問題的地址。
  • "license": 許可證。

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

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

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

基本信息

在定義語(yǔ)法規(guī)則之前,需要告訴Atom如何識(shí)別你的語(yǔ)言:

{
  "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: 語(yǔ)言標(biāo)識(shí)符,用于主題、其他包或配置文件。
  • name: 在Atom編輯器底部顯示的語(yǔ)言名稱。
  • fileTypes: 語(yǔ)言使用的文件擴(kuò)展名數(shù)組。

語(yǔ)法規(guī)則

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

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

匹配語(yǔ)法元素

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

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

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

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

匹配多個(gè)元素

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

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

使用beginend匹配

使用beginend屬性匹配起始和結(jié)束標(biāo)記,例如匹配單引號(hà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ā)布包之前,請(qǐng)檢查是否已存在同名包。你需要一個(gè)公共的GitHub倉(cāng)庫(kù)。在package.json文件中更新倉(cāng)庫(kù)地址。

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

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

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

結(jié)語(yǔ)

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

常見問題解答 (FAQs)

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

以上是如何為github開發(fā)一個(gè)軟件包的原子代碼編輯器的詳細(xì)內(nèi)容。更多信息請(qǐng)關(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)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

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

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(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)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

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

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

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

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

由于新的Microsoft AI型號(hào) 由于新的Microsoft AI型號(hào) Jul 05, 2025 am 12:44 AM

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

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

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

威脅AI聊天機(jī)器人,它將撒謊,作弊和'讓您死”以阻止您,并警告 威脅AI聊天機(jī)器人,它將撒謊,作弊和'讓您死”以阻止您,并警告 Jul 04, 2025 am 12:40 AM

根據(jù)一項(xiàng)新的研究,人工智能(AI)模型在模型的目標(biāo)和用戶決定之間發(fā)生沖突時(shí)可能會(huì)威脅和勒索人類。

ai不斷地'幻覺”,但是有一個(gè)解決方案 ai不斷地'幻覺”,但是有一個(gè)解決方案 Jul 07, 2025 am 01:26 AM

大型技術(shù)實(shí)驗(yàn)人工智能(AI)的主要關(guān)注點(diǎn)并不是它可能主導(dǎo)人類。真正的問題在于大語(yǔ)言模型(LLMS)的持續(xù)不準(zhǔn)確性,例如Open AI的Chatgpt,Google的Gemini和

See all articles