VS代码API文档并不清楚如何读取json可自定义的值

时间:2018-04-18 20:12:36

标签: json api typescript visual-studio-code vscode-extensions

我已经阅读了VS代码API的在线docuemntation和源代码,但我仍然不清楚如何阅读JSON用户设置和工作区设置。我试图寻找示例,但我找不到只显示如何执行此操作的内容。

本质上我想要一个名为" maximum"的设置中的值。我想要从TS scrypt中读取最大值。

文档让我在activate函数中写下以下两行:

const config = vscode.workspace.getConfiguration('extension', vscode.window.activeTextEditor.document.uri);
vscode.window.showInformationMessage(config.has('configuration').toString());

在package.json文件中,我添加了,在contrib下:

    "configuration": {
        "maximum":
        {
            "type": ["integer"],
            "default": 40,
            "description": "The level of alignment, how far the titles will extend horizontally"
        }
    }

但是我输错了。

我尝试了多种不同的输出,唯一一次我得到的是第一个函数的参数是' launch'第二个参数是'配置'。

我确实从文档中了解了需要参数的内容。也不应该指定值。

1 个答案:

答案 0 :(得分:1)

您获得False作为输出,因为package.json中的配置关键字仅指示您的扩展程序的configuration contribution点。
我建议你根据自己的需要采用vscode示例:

"contributes": {
    "configuration": {
        "type": "object",
        "title": "This is my config",
        "properties": {
            "myExtensionName.maximum": {
                "type": "integer",
                "default": 40,
                "description": "The level of alignment, how far the titles will extend horizontally."
            }
        }
    }
}

现在,如果您运行以下内容,则应该返回true

 const config = vscode.workspace.getConfiguration('myExtensionName');
 vscode.window.showInformationMessage(config.has('maximum').toString());

我认为您无法单独获取工作区和用户设置,因为vscode的模式是工作区设置覆盖用户设置。
来自docs

  

VS Code为设置提供了两种不同的范围:

     
      
  • 用户设置 - 全局应用于您打开的任何VS代码实例的设置。
  •   
  • 工作区设置 - 存储在工作区内的设置,仅在打开工作区时应用。
  •   
     

工作区设置会覆盖用户设置。