Visual Studio Code (VSCode) 支持大量文件格式。 VSCode 根据文件名和扩展名找到语言模式。通常,只要合理的默认值就可以了。但是如果您想为不同的文件夹使用不同的语言模式怎么办?
VSCode 在其 .vscode/settings.json 文件中有一个 files.associations 对象。这是全局模式到语言模式的映射。请参阅 VSCode 文档中支持的 glob 模式语法。
最简单的变体。所有文件需要不同的语言模式。
例如,当使用 Tailwind CSS 进行样式设置并为 VSCode 安装 Tailwind CSS 扩展时,您希望将所有 *.css 文件更改为 tailwindcss 模式而不是纯 css。
{ "files.associations": { "*.css": "tailwindcss" } ... }
某些子文件夹下的文件需要不同的语言模式也并不罕见。
例如,当主题化 Sphinx 文档时,您创建了很多 HTML 文件,这些文件不是纯 HTML,而是 Jinja HTML。我安装了 Better Jinja 扩展,它提供了 jinja-html 模式。
"source/_templates/*.html": "jinja-html``
更安全的是使用**,意思是任何地方 - 在路径或任何子路径。
{ "files.associations": { "*.css": "tailwindcss", "source/_templates/**/*.html": "jinja-html` } ... }
现在是我在准备基于 Cookiecutter 模板生成器的入门模板新 Sphinx 主题期间发现的棘手部分。
Cookiecutter 项目使用名为 {{ cookiecutter.project_slug }} 的文件夹。仅在其下我想更改关联,例如对于 *.py 从 py 到 jinja-py。
VSCode 文档中没有描述转义 glob 模式特殊字符(如 *、{ 等),但这是可能的。
首先,这些不起作用:
转义反斜杠就可以了("\{\{ 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中文网其他相关文章!