# 自定义设置

可以根据需要编辑 CodeQL 扩展的 Visual Studio Code 设置。

## 关于 CodeQL 中 Visual Studio Code 扩展的设置

可以为 CodeQL 扩展的 Visual Studio Code 更改许多设置，包括：

* 扩展使用的是哪个版本的 CodeQL CLI。
* 扩展程序如何显示以前的查询。
* 扩展如何运行查询。

## 编辑CodeQL扩展的设置

1. 打开“扩展”视图，然后右键单击**CodeQL**，然后单击 **“扩展设置”。**

   ![“扩展”视图的屏幕截图，其中显示右键单击菜单，并用深橙色轮廓显示“扩展设置”。](/assets/images/help/security/codeql-for-vs-code-extensions-view.png)

2. 在设置窗口中，根据需要编辑设置。 新设置将自动保存。

   ![在 VS Code 中显示的 VS Code CodeQL 扩展设置窗口的截图。](/assets/images/help/security/codeql-for-vs-code-extension-settings.png)

> \[!TIP]
> 或者，可以通过打开 VS Code Command Palette 并选择“ **首选项：打开用户设置”（JSON）** 来编辑 JSON 格式的设置。

### 选择 CodeQL CLI 的版本

若要覆盖默认行为并使用 CodeQL CLI 的特定版本，可以在扩展设置中指定 CodeQL CLI 的“可执行路径”，并将其指向您已有的 CodeQL CLI 副本。 即名为 `codeql`（Linux 和 macOS） 或 `codeql.exe` (Windows) 的文件。 有关默认行为的更多信息，请参阅 [在 VS Code 扩展中管理 CodeQL CLI](/zh/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/configuring-access-to-the-codeql-cli)。

### 更改查询历史记录项的标签

查询历史记录“格式”设置控制扩展在查询历史记录中列出查询的方式。 默认情况下，每个项都有一个标签，格式如下：

```bash
QUERY-NAME on DATABASE-NAME - QUERY-STATUS NUMBER-OF-RESULTS [QUERY-RUNTIME]
```

要覆盖默认标签，可以为查询历史记录项指定不同的格式。

### 更改查询历史记录项的保留期

默认情况下，“查询历史记录”视图中的项将保留 30 天。 可以通过更改“查询历史记录： Ttl”设置来设置不同的生存时间 (TTL)。 要无限期保留项，请将值设置为 0。

### 在本地配置用于运行查询的设置

“运行查询”下有许多设置。 例如，如果查询运行速度太慢且经常超时，则可能需要通过更改“运行查询：内存”设置来增加内存。

如果要检查查询性能，请启用“运行查询：调试”设置以包括计时和元组计数。 然后，这将显示在“输出”视图的“查询服务器”选项卡中的日志 CodeQL 中。 元组计数非常有用，因为它指示查询计算的[谓词](https://codeql.github.com/docs/ql-language-reference/predicates/#predicates)的大小。

要将查询服务器日志保存在自定义位置，请编辑“运行查询：自定义日志目录”设置。 如果使用自定义日志目录，则扩展程序会永久保存日志，而不是在每次工作区会话后自动删除日志。 如果要调查这些日志以提高查询性能，这将非常有用。

### 配置变体分析的设置

“变体分析”下有许多设置可用于定义或编辑用于变体分析的 GitHub 存储库列表，并更改为其他控制器存储库。 有关控制器存储库的用途和要求的信息，请参阅 [通过多库变体分析大规模运行 CodeQL 查询](/zh/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis)。

还可以通过编辑工作区中 Visual Studio Code 名为 `databases.json`的文件来编辑“变体分析存储库”视图中显示的项目。 此文件包含视图中显示的所有项的 JSON 表示形式。 要在编辑器窗口中打开 `databases.json` 文件，请单击“变体分析存储卡”视图右上方的 **{ }** 图标。 然后，可在视图中看到存储库、组织和列表的结构化表示形式。 例如：

```json
{
  "version": 1,
  "databases": {
    "variantAnalysis": {
      "repositoryLists": [
        {
          "name": "My favorite JavaScript repos",
          "repositories": [
            "facebook/react",
            "babel/babel",
            "angular/angular"
          ]
        }
      ],
      "owners": [
        "microsoft"
      ],
      "repositories": [
        "apache/hadoop"
      ]
    }
  },
  "selected": {
    "kind": "variantAnalysisSystemDefinedList",
    "listName": "top_10"
  }
}
```

可通过直接编辑此文件来更改视图中显示的项或添加新项。

### 配置用于添加数据库的设置

要自动将数据库源文件夹添加到工作区，可以启用“添加数据库：将数据库源添加到工作区”设置。

默认情况下，此设置处于禁用状态。 如果经常浏览数据库的源代码（例如，查看代码的抽象语法树），则可能需要启用该设置。 有关详细信息，请参阅“[探索源代码的结构](/zh/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/exploring-the-structure-of-your-source-code)”。

> \[!NOTE]
> 如果位于单文件夹工作区中，则添加数据库源文件夹将导致该工作区重新加载为多根工作区。 这可能会导致查询历史记录和数据库列表重置。
>
> 在启用此设置之前，建议将工作区另存为多根工作区。 有关详细信息，请参阅Visual Studio Code中[多根工作区](https://code.visualstudio.com/docs/editing/workspaces/multi-root-workspaces)。

### 配置用于在本地测试查询的设置

要增加用于测试查询的线程数，可以更新“运行测试：线程数”设置。

若要将其他参数传递给 CodeQL CLI 运行测试时，可以更新“正在运行的测试：其他测试参数”设置。 有关可用参数的更多信息，请参阅 [测试运行](/zh/code-security/codeql-cli/codeql-cli-manual/test-run)。

### 配置遥测和数据收集的设置

可以配置 CodeQL 扩展是否收集遥测数据。 默认禁用了此属性。 有关详细信息，请参阅“[Visual Studio Code 的 CodeQL 中的遥测](/zh/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code)”。

## 延伸阅读

* 文档中的[用户和工作区设置](https://code.visualstudio.com/docs/configure/settings)Visual Studio Code