ホームページ  >  記事  >  バックエンド開発  >  サブフォルダーと特殊文字フォルダーの VSCode 言語モードの関連付け

サブフォルダーと特殊文字フォルダーの VSCode 言語モードの関連付け

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 16:13:02965ブラウズ

VSCode language mode association for subfolders and special characters folders

Visual Studio Code (VSCode) では、多数のファイル形式がサポートされています。ファイル名と拡張子に基づいて、VSCode は言語モードを見つけます。多くの場合、適切なデフォルト値を設定しておけば問題ありません。しかし、フォルダーごとに異なる言語モードが必要な場合はどうすればよいでしょうか?

VSCode の .vscode/settings.json ファイルには、files.associations オブジェクトがあります。これは、言語モードへの グロブ パターン のマップです。 VSCode ドキュメントでサポートされている glob パターン構文を参照してください。

どこにいてもすべてのファイルの言語モードを変更する方法

最も単純なバリアント。すべてのファイルには異なる言語モードが必要です。

たとえば、Tailwind CSS でスタイルを設定し、VSCode 用の Tailwind CSS 拡張機能をインストールする場合、すべての *.css ファイルをプレーン CSS ではなく tailwindcss モードに変更したいとします。

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

特定のパスの言語モードを変更する方法

特定のサブフォルダー内のファイルに別の言語モードが必要になることも珍しいことではありません。

たとえば、Sphinx ドキュメントにテーマを設定する場合、純粋な HTML ではなく、Jinja HTML である HTML ファイルを大量に作成します。 jinja-html モードを提供する Better Jinja 拡張機能をインストールします。

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

パスまたはサブパスで、どこでもを意味する ** を使用する方が安全です。

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

言語モードのファイル.アソシエーションの特殊文字をエスケープする方法は?

ここで、Cookiecutter テンプレート ジェネレーターに基づいたスターター テンプレートの新しい Sphinx テーマを準備中に見つけた、難しい部分を説明します。

Cookiecutter プロジェクトは、{{ cookiecutter.project_slug }} という名前のフォルダーを使用します。その下でのみ関連付けを変更したいと考えています。 for *.py を py から jinja-py に変換します。

グロブ パターンの特殊文字 (*、{ など) のエスケープについては、VSCode ドキュメントでは説明されていませんが、可能です。

第一に、これらは 機能しません:

  • "{{ cookiecutter.project_slug }}/**/*.py": "jinja-py" なぜなら、{ と } は glob パターンのグループ化文字だからです。
  • "{{{{ cookiecutter.project_slug }}}}/**/*.py": "jinja-py" エスケープするための 2 倍化は VSCode の glob パターン エスケープ メカニズムではないため
  • {{ cookiecutter.project_slug }}/**/*.py": "jinja-py" なぜなら、バックスラッシュ エスケープの場合、 はエスケープ文字ですが、JSON 自体 (n など) です。

バックスラッシュをエスケープします がうまくいきます ("\{\{ cookiecutter.project_slug \}\}/**/*.css": "tailwindcss")。例:

{
  "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"
  },
  ...
}

以上がサブフォルダーと特殊文字フォルダーの VSCode 言語モードの関連付けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。