默认情况下,将不带扩展名的文件分配给VS Code上的语言

Bir*_*bal 5 visual-studio-code

在VS Code中,我通常会打开没有扩展名的文件filename。我知道我可以使用“ 更改语言模式->我想要的语言”来更改语言语法,但是我不想每次打开这样的文件时都手动执行此操作。每次打开不带扩展名的文件时,是否可以默认使用该语言?

我知道我可以这样做:

"files.associations": { "*.myphp": "php" }

但是,如果没有扩展名怎么办?我也希望能够做到这一点而不影响其他文件类型(具有扩展名)。

mat*_*mc3 9

VS Code 的通配符目前似乎无法检测没有扩展名的文件。每次有人打开问题时,他们都会将其指向此处的此问题。他们在这里详细介绍了他们的全球支持

也就是说,我确实有一个解决这个问题的办法。将其放入您的“工作空间设置”中(不是您的常规设置,除非您确实希望它是全局的)。

{
    "files.associations": {
        "[!.]": "php",
        "[!.][!.]": "php",
        "[!.][!.][!.]": "php",
        "[!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php"
    },
}
Run Code Online (Sandbox Code Playgroud)

这是通过为每个文件名长度添加规则并确保文件中不能包含句点(在我的示例中最多 20 个字符)来实现的。这是一个可怕的黑客解决方案,但如果你捏住鼻子并设置一次,你就可以忘记它,事情就会正常进行。我在 dotfiles 存储库中执行此操作,将无扩展名文件与“shellscript”相关联。

您还可以使用双星 glob: 仅为特定目录执行此操作"**/just_this_dir_name/[!.]": "php"