Maison >Périphériques technologiques >Industrie informatique >Comment développer un package pour l'éditeur de code atome de GitHub & # x27;
Guide d'extension de l'éditeur ATOM: Créez et publiez votre propre package de surligneur de syntaxe
L'éditeur atomique est puissant, mais parfois vous pouvez avoir besoin de certaines fonctionnalités qui ne sont pas fournies par défaut, telles que la syntaxe mettant en évidence pour une langue spécifique. Pour le moment, il est particulièrement important de créer des packages personnalisés. Cet article vous guidera pour créer un package de mise en évidence de syntaxe et le publiera dans la communauté Atom.
Points de base:
.atom/packages
et ajoutez un fichier package.json
valide pour initialiser le nouveau package. grammars
, définissez les règles linguistiques dans un fichier CSON et spécifiez comment Atom reconnaît et met en évidence la syntaxe linguistique. View/Reload
pour afficher immédiatement les modifications et assurez-vous que la fonctionnalité fonctionne. apm publish
pour publier votre package dans la communauté Atom au profit d'autres développeurs. Que allons-nous construire?
Cet article vous guidera pour créer un surligneur de syntaxe similaire à language-scilab
que vous pouvez appliquer à n'importe quelle langue dont vous avez besoin. Nous apprendrons à initialiser un nouveau package, à écrire des règles de mise en évidence de la syntaxe et à publier votre package dans la communauté Atom.
Initialisez le nouveau package d'atomes
Atom utilise un dossier de fichiers de configuration appelé .atom
pour stocker des options personnelles et des packages installés. Les packages sont situés dans le sous-dossier packages
de ce dossier, et chaque package a son propre dossier.
La première étape consiste à créer votre dossier de package, tel que language-mylanguage
(il s'agit d'une convention de dénomination pour ajouter le support linguistique). Ensuite, créez le fichier package.json
dans ce dossier, et l'atome peut le reconnaître et le charger.
Ce qui suit est un exemple du fichier language-mylanguage
d'un package package.json
:
<code class="language-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" }</code>
Keyfield Explication:
"name"
: Nom du package. "version"
: Numéro de version, suivant la convention pour les versions majeures, mineures et révisées. 0.0.0
"description"
"engines"
"dependencies"
"repository"
"bugs"
"license"
, Atom peut reconnaître votre package. Vous pouvez utiliser la commande package.json
pour forcer l'atome à recharger le package afin que les modifications soient immédiatement visibles. View/Reload
Créez un package de surligneur de syntaxe
Créez un sous-dossier dans le dossier Package et créez un fichier CSON nommé d'après le nom de la langue (par exemple grammars
). Ce fichier contient des règles de mise en évidence de syntaxe. mylanguage.cson
<code class="language-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" }</code>
scopeName
name
fileTypes
, chaque règle est enfermée dans patterns
: {}
<code class="language-cson">'scopeName': 'source.mylanguage' 'name': 'Mylanguage' 'fileTypes': ['ext1', 'ext2']</code>Faire correspondre les éléments de syntaxe
, tels que les numéros de correspondance: match
<code class="language-cson">'scopeName': 'source.mylanguage' 'name': 'Mylanguage' 'fileTypes': ['ext1', 'ext2'] 'patterns': [ { # 规则1 }, { # 规则2 } ]</code>
Utilisez des expressions régulières, match
Spécifiez le nom de la classe de style et suivez certaines conventions de dénomination afin que le thème puisse appliquer correctement le style. name
, tels que la déclaration de fonction de correspondance: captures
<code class="language-cson">{ 'match': '\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\b' 'name': 'constant.numeric.mylanguage' }</code>Match
begin
et end
Faites correspondre les balises de début et de fin à l'aide des propriétés begin
et end
, telles que la correspondance des chaînes de devis unique:
<code class="language-cson">{ 'match': '\b(function)\s+(\w+)\s*\(.*\)' 'captures': { '1': { 'name': 'keyword.control.mylanguage' }, '2': { 'name': 'entity.name.function.mylanguage' } }, 'name': 'meta.function.mylanguage' }</code>
Vous pouvez également utiliser beginCaptures
et endCaptures
pour capturer les balises de début et de fin, et les attributs patterns
correspondent aux sous-éléments à l'intérieur de l'élément correspondant.
Libérer le package d'atomes
Veuillez vérifier si le package avec le même nom existe déjà avant de le publier. Vous avez besoin d'un référentiel GitHub public. Mettez à jour l'adresse du référentiel dans le fichier package.json
.
Utilisez la commande apm publish minor
pour publier respectivement le package (minor
, major
, et patch
, mettent respectivement à mettre à jour la version mineure, la version majeure et la version de correction). Cette commande enregistrera le nom de votre package, ajoutera le numéro de version, créera des balises GIT et pousse les modifications.
Utilisez la commande apm unpublish name-of-the-package
pour annuler le package de version.
Conclusion
Cet article décrit comment créer et publier des packages de mise en évidence de la syntaxe des atomes. La flexibilité de l'ATOM permet la création de différents types de packages, mais cet article est limité à la création de packages en surbrillance syntaxes. J'espère que cet article vous aidera à élargir la fonctionnalité de l'éditeur d'ATOM et à partager vos résultats avec la communauté.
FAQS (FAQ)
(La partie FAQ dans le texte d'origine est omise ici, car le contenu de cette partie est très répétitif par rapport à ce qui précède, qui est un résumé et une explication du contenu ci-dessus. Afin d'éviter la redondance, la sortie répétée n'est pas effectuée ici.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!