> ## Documentation Index
> Fetch the complete documentation index at: https://openidea.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Scratch 与 TODO

> 在项目之外保留临时文件，并在 TODO 工具窗口中汇总 TODO、FIXME 注释。

## 临时文件

临时文件（Scratch File）是任意语言的一次性文件：可以用来试一段代码、记笔记或者粘贴一段输出，而不会往项目里添加任何东西。

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **新建临时文件…** | `⇧⌘N` | `Ctrl+Alt+Shift+Insert` |

**1. 新建**

选择 **文件 › 新建临时文件…**（或项目视图 **新建** 菜单最上面的 **临时文件**）。

**2. 选择语言**

输入文字过滤语言列表，按 `↵` / `Enter` 确认。

**3. 编辑**

文件会在普通的编辑器标签页中打开，依次命名为 `scratch.<ext>`、`scratch_1.<ext>`、`scratch_2.<ext>` 等。C、C++、Go、Java、Kotlin 和 Rust 的临时文件会预先带上一个空的 `main` 函数。

临时文件保存在 OpenIDEA 应用数据目录下的 `scratches` 文件夹中，而不是项目里，因此所有项目共用，Git 也看不到它们：

| 系统 | 目录 |
| - | - |
| macOS | `~/Library/Application Support/ai.l0ng.openidea/scratches` |
| Windows | `%APPDATA%\ai.l0ng.openidea\scratches` |
| Linux | `~/.local/share/ai.l0ng.openidea/scratches` |

它们列在项目视图的 **临时文件** 节点下，可以像其他文件一样打开、重命名和删除。

临时文件不属于任何项目，所以部分语言服务器只对它做语法检查，补全和导航可能受限；服务器报告这种情况时，编辑器顶部会显示横幅说明。

## TODO

OpenIDEA 会把包含 `TODO`、`FIXME`、`HACK` 或 `XXX` 的注释汇总到 **TODO** 工具窗口中，并在编辑器里按各自的颜色高亮。

### TODO 工具窗口

通过 **视图 › 工具窗口 › TODO** 打开，或在查找操作中运行 **显示当前文件中的 TODO 项**。它有以下标签页：

* **项目**：项目中所有的 TODO 项。
* **当前文件**：当前编辑器中的 TODO 项，随输入实时更新。
* **基于范围**：所选范围内的 TODO 项，也可以选自定义范围（**编辑范围…**）。
* **更改**：有未提交改动的文件中的 TODO 项，可以只看某个更改列表。

TODO 项按文件分组，单击即可跳转。工具栏上有按模式过滤（**过滤 TODO 项**）、**区分大小写** 和 **刷新**；选项菜单可以开启预览和自动滚动到源代码。文件在磁盘上变化或保存时列表会更新，**刷新 TODO 项** 会重新扫描整个项目。最多显示 10 000 条匹配。

### 模式

**设置 › 编辑器 › TODO** 决定什么算作 TODO 项：

* **模式**：添加、删除、启用关键字或修改其颜色。**恢复默认值** 恢复 `TODO`、`FIXME`、`HACK` 和 `XXX`。
* **区分大小写**：默认开启，所以 `todo` 不会匹配 `TODO`。
* **仅在注释中**：默认开启，只有出现在该行注释符号之后的匹配才算数。

### 提交之前

提交对话框中的 **检查 TODO** 选项会对你新增或修改的行中的 `TODO` 和 `FIXME` 注释给出提醒，见 [版本控制](https://openidea.sh/zh/guide/vcs.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.