Comment créer une syntaxe par défaut par type de fichier dans l’éditeur de texte Atom?

Je veux que mes fichiers .ejs aient une syntaxe HTML, cependant, il ouvre toujours les fichiers en texte brut.

Dans sublime, vous pouvez choisir “Ouvrir tout avec l’extension actuelle sous …” puis choisissez votre syntaxe.

sublime la syntaxe text3

Je vois que vous pouvez changer la syntaxe dans le coin inférieur gauche changement de syntaxe

Comment ouvrez-vous des fichiers avec un certain type avec une syntaxe spécifique?

Mode facile: inclure

Si votre langue est vraiment HTML, vous pouvez configurer un package simple pour gérer cela.

Créez un paquet appelé langugage-ejs et dans grammars/ejs.cson vous pouvez inclure du HTML comme ayant les modèles qui vous intéressent:

 'fileTypes': [ 'ejs' ] 'name': 'Embedded JavaScript' 'patterns': [ { 'include': 'source.html' } ] 'scopeName': 'source.ejs' 

language-ipynb le fait certainement en étendant JSON.

Qu’en est-il de mes balises de modèle?

En réalité, vous avez des balises de modèle au-dessus de HTML que vous souhaitez faire reconnaître par l’éditeur. Le meilleur exemple que je puisse trouver concerne erb (gabarits Embedded Ruby) . Il se base sur HTML, mais ajoute également d’autres balises, comme indiqué dans cet extrait:

 ... 'patterns': [ { 'begin': '<%+#' 'captures': '0': 'name': 'punctuation.definition.comment.erb' 'end': '%>' 'name': 'comment.block.erb' } { 'begin': '<%+(?!>)[-=]?' 'captures': '0': 'name': 'punctuation.section.embedded.ruby' 'end': '-?%>' 'name': 'source.ruby.rails.embedded.html' 'patterns': [ { 'captures': '1': 'name': 'punctuation.definition.comment.ruby' 'match': '(#).*?(?=-?%>)' 'name': 'comment.line.number-sign.ruby' } { 'include': 'source.ruby.rails' } ] } { 'include': 'text.html.basic' } ] ... 

Ceci est maintenant dans le kernel Atom , vous n’avez plus besoin de ce paquet de types de fichiers.

Là où je travaille, nous utilisons .phl pour un certain type de fichier PHP. Pour en parler à Atom, éditez config.cson comme ceci:

 core: customFileTypes: "text.html.php": [ "phl" ] themes: [ // snip 

Vous pouvez trouver ce fichier dans ~/.atom/config.cson ou dans la fenêtre Paramètres, cliquez sur le bouton “Ouvrir le dossier de configuration”.

Il est facile de se tromper, comme en témoignent les nombreuses erreurs commises par les utilisateurs sur le problème de GitHub .

Edit: depuis que j’ai écrit cette réponse, cette fonctionnalité a été ajoutée au kernel Atom, voir cette réponse pour plus de détails.

paquet Atom

( https://atom.io/packages/file-types )

Il fait exactement ce que demande la question du titre: vous pouvez définir de nouvelles extensions de fichier pour les langages existants avec une simple modification du fichier config.cson .

Pour les fichiers individuels, vous pouvez utiliser le sélecteur de grammaire; Ctrl + Maj + L pour définir la langue que vous utilisez dans ce fichier. Ce n’est pas la même chose que la détection automatique, mais utile pour les moments où vous utilisez un fichier pour lequel vous ne souhaitez pas définir de valeur par défaut.

On dirait qu’il y a un tout nouveau paquet qui a été publié pour cela. https://atom.io/packages/language-ejs .

Par exemple, si vous souhaitez ouvrir tous les fichiers .jsx avec la syntaxe JavaScript, vous devez l’append à votre config.cson

 "*": core: customFileTypes: "source.js": [ "jsx" ] 

Cela mappe tous les fichiers .jsx à ouvrir avec la syntaxe js.

Comme Dave Andersen le mentionne dans un commentaire enterré, il est maintenant possible de le faire sans aucun paquet supplémentaire et cela est documenté ici .