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

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

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

Feb 19, 2025 am 10:20 AM

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

Atom編輯器功能強(qiáng)大,但有時(shí)你可能需要一些默認(rèn)情況下未提供的功能,比如針對特定語言的語法高亮。這時(shí),創(chuàng)建自定義包就顯得尤為重要。本文將指導(dǎo)你創(chuàng)建一個(gè)語法高亮包,並將其發(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)建一個(gè)類似於language-scilab的語法高亮包,你可以將其應(yīng)用於你需要的任何語言。我們將學(xué)習(xí)如何初始化一個(gè)新的包,編寫語法高亮規(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(這是添加語言支持的命名約定)。然後,在該文件夾中創(chuàng)建package.json文件,Atom才能識別並加載它。

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

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

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

在包文件夾中創(chuàng)建grammars子文件夾,並在其中創(chuàng)建以語言名稱命名的CSON文件(例如mylanguage.cson)。這個(gè)文件包含語法高亮規(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ù)組中聲明,每個(gè)規(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)用樣式。

匹配多個(gè)元素

使用captures屬性匹配多個(gè)元素,例如匹配函數(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ā)布包之前,請檢查是否已存在同名包。你需要一個(gè)公共的GitHub倉庫。在package.json文件中更新倉庫地址。

使用apm publish minor命令發(fā)布包(minormajor、patch分別對應(yīng)次要版本、主要版本和補(bǔ)丁版本更新)。這個(gè)命令會(huì)註冊你的包名,增加版本號,創(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部分,因?yàn)樵摬糠謨?nèi)容與上文高度重複,屬於對上文內(nèi)容的總結(jié)和解釋,為了避免冗餘,此處不進(jìn)行重複輸出。)

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

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)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脫衣器

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í)平臺時(shí),重點(diǎn)不僅僅是內(nèi)容質(zhì)量。同樣重要的是如何交付內(nèi)容。這是因?yàn)楝F(xiàn)代教育平臺依賴於媒體,快速且易於消化。

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

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

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

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

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

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

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

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

您的設(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的方式

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

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

See all articles