【问题标题】:VS Code default language of new fileVS Code 新文件的默认语言
【发布时间】:2020-10-12 00:40:35
【问题描述】:

我希望 VS Code 中的所有新文件都以 .sas 文件形式打开。 (底部解决方案)

尝试 1

  1. 在 VS Code 中打开一个.sas 文件。
  2. ctrl + , 打开设置界面。
  3. 搜索files,然后点击左侧菜单中的Files (19)
  4. sas${activeEditorLanguage} 插入“文件:默认语言”框中。
  5. 关闭设置窗口。
  6. ctrl + n 打开一个新文件。
  7. 因为新文件仍然是 .txt 文件而不是 .sas

尝试 2

  1. 在 VS Code 中打开一个.sas 文件。

  2. ctrl + , 打开设置界面。

  3. 搜索workbench.settings

  4. 更改设置:编辑器为json

  5. 关闭编辑器

  6. ctrl + , 以 JSON 格式打开设置文件。

  7. 感到惊讶,因为我发现要修改的设置太少了(我本来希望这个文件中有更多设置):

    {
        "editor.insertSpaces": false,
        "editor.wordWrap": "on",
        "workbench.settings.editor": "json"
    }
    
  8. 在文件中添加行以尝试指示新文件应以sas 语法突出显示并使用.sas 扩展名打开,保存并关闭:

    {
        "editor.insertSpaces": false,
        "editor.wordWrap": "on",
        "workbench.settings.editor": "json",
        "files.associations": {
            "*.sas": "sas"
        },
        "files.defaultLanguage": "SAS"
    }
    
  9. ctrl + n 打开一个新文件。

  10. 因为新文件仍然是 .txt 文件而不是 .sas 文件,所以在桌子上砰砰直跳

当使用ctrl + ,打开json中的设置编辑器时,我的其余设置包括默认语言设置在哪里?强>

其他信息

我查看了this link,但解决方案没有帮助。

我认为这并不重要,但我使用 SAS-Syntax extension 来突出显示语法。

解决方案

指定语言区分大小写。我之前使用的是小写的sas,但它必须是大写的SAS。功能 JSON 如下:

    {
        "editor.insertSpaces": false,
        "editor.wordWrap": "on",
        "workbench.settings.editor": "json",
        "files.associations": {
            "*.sas": "SAS"
        },
        "files.defaultLanguage": "SAS"
    }

【问题讨论】:

  • 扩展的语言模式确实是SAS而不是sas。由于您的"file.associations" 键,您将打开的.sas 文件将显示为纯文本。但是,我刚刚使用全新安装的 VS Code 对此进行了测试,"files.defaultLanguage": "SAS" 为新文件完成了这项工作。

标签: visual-studio-code sas vscode-settings


【解决方案1】:

查看SAS language extension 存储库,该扩展在package.json 中提供以下语言

"languages": [
    {
        "id": "SAS",
        // the rest of the language entry
    }
]

这意味着 Code 中的语言 ID 确实是 "SAS"。由于 ID 区分大小写,因此使用 "sas" 将不起作用。更改文件的语言模式时,您还可以在括号中看到 ID:

这意味着您的设置条目 "files.defaultLanguage": "SAS" 是正确的。我已经在干净的 VS Code 安装上对其进行了测试,并且它按预期工作。

也因此,您的文件关联将无法正常工作。当 Code 没有找到指定的 ID 时,它将回退到纯文本。您需要将"files.associations" 设置更改为

"files.associations": {
    "*.sas": "SAS"
}

文件的语言模式

文件的语言模式决定了 Code 如何处理语法高亮和代码 sn-ps。

请注意,文件选项卡上显示的图标不指示语言模式。 SAS 扩展不支持自定义图标,将使用纯文本文件的图标。当前语言模式显示在右下角的状态栏上:

您可以使用“更改语言模式”命令手动选择文件的语言,默认绑定到 Ctrl + K, M 快捷方式。

更多关于 Code 的设置文件

Code 的settings.json 文件对您来说太小了,因为Code 只存储更改默认设置的设置。没有默认设置文件,因为设置是硬编码在源代码中的,但您可以让代码为您生成文件。

  1. Ctrl + Shift + PF1 打开命令面板

  2. 输入“默认设置”

  3. 从列表中选择“首选项:打开默认设置 (JSON)”

说到代码的Command Palette,我建议您研究一下它是一个非常强大的工具。只需搜索其名称,您就可以使用它在编辑器中执行几乎所有操作。例如,您可以使用适当的命令快速打开 UI 和 JSON 设置。

编辑:

为了解决 cmets 中的问题,Code 使用了 3 个级别的设置:

  • 默认设置 - 在编辑器中硬编码,无法更改。
  • 用户设置 - 在 Windows 上位于 %AppData%\Code\User\settings.json 文件中(对于其他系统,请参阅 Code's documentation)并适用于在 Code 中打开的所有文件和项目。
  • 工作空间设置 - 位于项目根目录中的 .vscode\settings.json 文件中,在打开具有工作空间设置文件的工作空间时应用到所有文件

设置从默认顺序应用到工作区。如果在多个文件中设置了任何一个key,只有最后一个会生效。

如何为特定项目而不是整个工作台指定语言?

在项目的根目录中创建一个.vscode\settings.json 文件并将您的设置放在那里。如果您更喜欢使用 UI 设置,您可以选择“工作区”选项卡将您的设置保存到工作区设置文件中。

如何打开类似的文件以进行更改?

不幸的是,代码不允许编辑或保存defaultSettings.json 文件,因此复制它的唯一方法是复制粘贴内容。幸运的是,这不是必需的 - 您可以覆盖用户或工作区设置文件中的任何默认设置。

【讨论】:

  • 谢谢!如何为特定项目而不是整个工作台指定语言?另外,感谢命令面板提示查看默认设置。我将如何打开类似的文件以进行更改?当我按照说明进行操作时,我看到“默认语言”是“”(即使在实施了您的修复之后),但是如果我想将其更新为 SAS 以便在我启动“首选项:打开默认设置 (JSON)”时出现怎么办?来自命令面板。
  • @Jayden.Cameron 我编辑了答案以解决您的问题,希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 1970-01-01
相关资源
最近更新 更多