C'est possible, si vous définissez une nouvelle définition syntaxique (c'est-à-dire un nouveau fichier .tmLanguage). Les définitions syntaxiques peuvent déclarer de nouveaux "noms de portée" que vous pouvez ensuite utiliser dans vos nouveaux systèmes de construction personnalisés.
Le nouveau fichier de définition de la syntaxe n'a pas besoin de définir/correspondre à la syntaxe du fichier, puisque vous pouvez simplement correspondre à l'extension du fichier... !
Jetez un coup d'œil aquí à la syntaxe du fichier .tmLanguage. L'élément "scopeName" vous permet de nommer votre nouveau scope (par exemple, "text.tex.latex", etc.). Je vais donner un exemple ci-dessous.
J'ai créé une nouvelle syntaxe qui définit une nouvelle portée -- c'était assez facile (comme la plupart des choses dans Sublime) :
- Dans la palette de commandes, sélectionnez "Contrôle des paquets" : Installer un paquet
- Dans la liste des paquets, sélectionnez "PackageDev".
- Créez une nouvelle définition syntaxique en sélectionnant Outils > Paquets > Développement de paquets > Nouvelle définition syntaxique
-
Votre nouvelle définition de la syntaxe ressemblera à ceci :
{ "name": "Syntax Name",
"scopeName": "source.syntax_name",
"fileTypes": [""],
"patterns": [
],
"uuid": "..."
}
... remplacez "Syntax Name" par un nom descriptif, "source.syntax_name" par votre nouveau nom d'étendue, et remplissez "fileTypes" pour contenir une ou plusieurs extensions de fichiers. Par exemple :
"fileTypes": ["tex", "ltx"]
- Enregistrer le fichier en utilisant une extension ".JSON-tmLanguage" sous Packages/User
- Sélectionner Outils > Système de construction > Sélectionner Json pour tmLanguage
- Sélectionner Outils > Construire
Vous avez terminé ! Tout nouveau fichier ayant l'une des extensions définies dans "fileTypes" activera la portée "scopeName".
Vous pouvez maintenant utiliser cette portée dans un nouveau fichier du système de construction ( Outils > Système de construction > Nouveau système de construction... )
Santé !