web-dev-qa-db-fra.com

Comment créer une syntaxe par défaut par type de fichier dans Atom text editor?

Je veux que mes fichiers .ejs aient une syntaxe html, cependant, ils ouvrent toujours les fichiers en texte brut.

En sublime vous pouvez choisir "Tout ouvrir avec l'extension courante comme ..." puis choisissez votre syntaxe.

sublime text3 syntax

Je vois que vous pouvez changer la syntaxe dans le coin inférieur gauchesyntax change

Comment ouvrir des fichiers d'un certain type avec une syntaxe spécifique?

47
NathanBrakk

Mode facile: inclure

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

Créez un package appelé langugage-ejs et en grammars/ejs.cson vous pouvez inclure 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é cependant, vous avez des balises de modèle au-dessus de HTML que vous voudriez faire reconnaître à l'éditeur. Le meilleur exemple que je puisse trouver est pour erb (Embedded Ruby templates) . Il provient de 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'
  }
]
...
6
Kyle Kelley

C'est maintenant dans Atom core , vous n'avez plus besoin de ce package de types de fichiers.

Là où je travaille, nous utilisons .phl pour un certain type de fichier PHP. Pour en informer Atom à ce sujet, éditez config.cson ainsi:

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

Vous pouvez trouver ce fichier sur ~/.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 que les gens ont faites sur le problème GitHub pour la fonctionnalité.

104
timseal

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

5
Jesse

Edit: depuis le moment où j'ai écrit cette réponse, cette fonctionnalité a été ajoutée à Atom core, voir cette réponse pour plus de détails.

types de fichiers 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 langues existantes avec une simple modification du config.cson fichier.

5
Ábel Hegedüs

Il semble qu'il y ait un tout nouveau package pour cela. https://atom.io/packages/language-ejs .

3
Dan

Par exemple, si vous souhaitez ouvrir tous les .jsx fichiers avec syntaxe javascript, vous devez l'ajouter à votre config.cson

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

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

3
Sachin

Comme Dave Andersen le mentionne dans un commentaire enterré, il est maintenant possible de le faire sans paquets supplémentaires et c'est documenté ici .

2
Evan Siroky