Maison  >  Article  >  développement back-end  >  Association du mode langage VSCode pour les sous-dossiers et les dossiers de caractères spéciaux

Association du mode langage VSCode pour les sous-dossiers et les dossiers de caractères spéciaux

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 16:13:02884parcourir

VSCode language mode association for subfolders and special characters folders

Visual Studio Code (VSCode) prend en charge de nombreux formats de fichiers. En fonction du nom de fichier et de l'extension, VSCode trouve le mode de langue. Souvent, à condition que des valeurs par défaut raisonnables soient acceptables. Mais que se passe-t-il si vous souhaitez un mode de langue différent pour différents dossiers ?

VSCode a dans son fichier .vscode/settings.json un objet files.associations. C'est une carte du modèle global au mode langue. Voir la syntaxe du modèle global prise en charge dans la documentation VSCode.

Comment changer le mode de langue pour tous les fichiers n'importe où

La variante la plus simple. Tous les fichiers nécessitent un mode de langue différent.

Par exemple, lorsque vous stylisez avec Tailwind CSS et que vous installez l'extension Tailwind CSS pour VSCode, vous souhaitez modifier tous les fichiers *.css en mode tailwindcss au lieu de CSS simple.

{
  "files.associations": {
    "*.css": "tailwindcss"
  }
  ...
}

Comment changer le mode de langue pour des chemins spécifiques

Il n'est pas rare non plus que les fichiers situés dans certains sous-dossiers nécessitent un mode de langue différent.

Par exemple, lorsque vous thématisez la documentation Sphinx, vous créez de nombreux fichiers HTML qui ne sont pas du HTML pur, mais du HTML Jinja. J'installe l'extension Better Jinja qui fournit le mode jinja-html.

"source/_templates/*.html": "jinja-html``

Plus sûr est d'utiliser ** signifiant n'importe où - sur le chemin ou n'importe quel sous-chemin.

{
  "files.associations": {
    "*.css": "tailwindcss",
    "source/_templates/**/*.html": "jinja-html`
  }
  ...
}

Comment échapper aux caractères spéciaux pour les fichiers.associations en mode langage ?

Maintenant, la partie délicate que j'ai trouvée lors de la préparation du modèle de démarrage, de nouveaux thèmes Sphinx basés sur le générateur de modèles Cookiecutter.

Les projets Cookiecutter utilisent un dossier nommé {{ cookiecutter.project_slug }}. Seulement en dessous, je veux changer d'association, par ex. pour *.py de py à jinja-py.

L'échappement des caractères spéciaux du modèle global (comme *, {, etc.) n'est pas décrit dans la documentation VSCode, mais c'est possible.

Premièrement, ceux-ci ne fonctionneront PAS :

  • "{{ cookiecutter.project_slug }}/**/*.py": "jinja-py" car { et } sont les caractères de regroupement du modèle global.
  • "{{{{ cookiecutter.project_slug }}}}/**/*.py": "jinja-py" car doubler pour s'échapper n'est pas un mécanisme d'échappement de modèle global VSCode
  • {{ cookiecutter.project_slug }}/**/*.py": "jinja-py" car pour l'échappement par barre oblique inverse, il s'agit d'un caractère d'échappement mais en JSON lui-même (par exemple, n).

Le échapper à la barre oblique inverse fera l'affaire ("\{\{ cookiecutter.project_slug \}\}/**/*.css": "tailwindcss"). Par exemple :

{
  "files.associations": {
    // CSS files are Tailwind
    "\{\{ cookiecutter.project_slug \}\}/**/*.css": "tailwindcss",
    // HTML files are Jinja
    "\{\{ cookiecutter.project_slug \}\}/**/*.html": "jinja-html",
    "\{\{ cookiecutter.project_slug \}\}/**/*.py": "jinja-py",
    "\{\{ cookiecutter.project_slug \}\}/**/*.toml": "jinja-toml",
    "\{\{ cookiecutter.project_slug \}\}/**/*.json": "jinja-json"
  },
  ...
}

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn