summaryrefslogtreecommitdiffstats
path: root/docs/zh-CN/config/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/zh-CN/config/README.md')
-rw-r--r--docs/zh-CN/config/README.md190
1 files changed, 121 insertions, 69 deletions
diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md
index a66118ab0..abacfe431 100644
--- a/docs/zh-CN/config/README.md
+++ b/docs/zh-CN/config/README.md
@@ -9,8 +9,8 @@ mkdir -p ~/.config && touch ~/.config/starship.toml
Starship 的所有配置都在此 [TOML](https://github.com/toml-lang/toml) 配置文件中完成:
```toml
-# Don't print a new line at the start of the prompt
-add_newline = false
+# Inserts a blank line between shell prompts
+add_newline = true
# Replace the "❯" symbol in the prompt with "➜"
[character] # The name of the module we are configuring is "character"
@@ -80,7 +80,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri
For example:
- `[on](red bold)` will print a string `on` with bold text colored red.
-- `[⬢ $version](bold green)` will print a symbol `⬢` followed by the content of variable `version`, with bold text colored green.
+- `[⌘ $version](bold green)` will print a symbol `⌘` followed by the content of variable `version`, with bold text colored green.
- `[a [b](red) c](green)` will print `a b c` with `b` red, and `a` and `c` green.
#### 样式设定
@@ -142,11 +142,11 @@ format = '''
### 配置项
-| Option | 默认值 | 描述 |
-| -------------- | ----------------------------- | ----------------------------------- |
-| `format` | [见下文](#default-prompt-format) | Configure the format of the prompt. |
-| `scan_timeout` | `30` | Starship 扫描文件的超时时间(单位:毫秒)。 |
-| `add_newline` | `true` | 在提示符与提示信息间换行。 |
+| Option | 默认值 | 描述 |
+| -------------- | ----------------------------- | ----------------------------------------- |
+| `format` | [见下文](#default-prompt-format) | Configure the format of the prompt. |
+| `scan_timeout` | `30` | Starship 扫描文件的超时时间(单位:毫秒)。 |
+| `add_newline` | `true` | Inserts blank line between shell prompts. |
### 示例
@@ -162,7 +162,7 @@ format = """
# Wait 10 milliseconds for starship to check files under the current directory.
scan_timeout = 10
-# Disable the newline at the start of the prompt
+# Disable the blank line at the start of the prompt
add_newline = false
```
@@ -207,6 +207,7 @@ $purescript\
$python\
$ruby\
$rust\
+$scala\
$swift\
$terraform\
$vagrant\
@@ -237,15 +238,17 @@ $character"""
When using [aws-vault](https://github.com/99designs/aws-vault) the profile is read from the `AWS_VAULT` env var.
+When using [awsu](https://github.com/kreuzwerker/awsu) the profile is read from the `AWSU_PROFILE` env var.
+
### 配置项
-| Option | 默认值 | 描述 |
-| ---------------- | ------------------------------------------------ | ------------------------- |
-| `format` | `'on [$symbol$profile(\($region\))]($style) '` | 组件格式化模板。 |
-| `symbol` | `"☁️ "` | 这个字段的内容会显示在当前 AWS 配置信息之前。 |
-| `region_aliases` | | 地区缩写列表,用来显示在 AWS 主机名之后。 |
-| `style` | `"bold yellow"` | 此组件的样式。 |
-| `disabled` | `false` | 禁用 `AWS` 组件。 |
+| Option | 默认值 | 描述 |
+| ---------------- | --------------------------------------------------- | ------------------------- |
+| `format` | `'on [$symbol($profile )(\($region\) )]($style)'` | 组件格式化模板。 |
+| `symbol` | `"☁️ "` | 这个字段的内容会显示在当前 AWS 配置信息之前。 |
+| `region_aliases` | | 地区缩写列表,用来显示在 AWS 主机名之后。 |
+| `style` | `"bold yellow"` | 此组件的样式。 |
+| `disabled` | `false` | 禁用 `AWS` 组件。 |
### Variables
@@ -266,7 +269,7 @@ When using [aws-vault](https://github.com/99designs/aws-vault) the profile is re
# ~/.config/starship.toml
[aws]
-format = 'on [$symbol$profile(\($region\))]($style) '
+format = 'on [$symbol($profile )(\($region\) )]($style)'
style = "bold blue"
symbol = "🅰 "
[aws.region_aliases]
@@ -301,7 +304,7 @@ symbol = "🅰 "
## Battery
-`battery` 组件显示电池充电情况和当前充电状态。 这个组件只会在当前电量低于 10% 时显示。
+The `battery` module shows how charged the device's battery is and its current charging status. The module is only visible when the device's battery is below 10%.
### 配置项
@@ -330,7 +333,7 @@ discharging_symbol = "💀"
### Battery 组件的显示
-`display` 选项用于定义电池指示器的显示阈值(threshold)和显示效果(style)。 如果 `display` 没有设置, 默认设置如下:
+The `display` configuration option is used to define when the battery indicator should be shown (threshold) and what it looks like (style). If no `display` is provided. 默认设置如下:
```toml
[[battery.display]]
@@ -340,7 +343,7 @@ style = "bold red"
#### 配置项
-`display` 字段的子字段如下:
+The `display` option is an array of the following table.
| Option | 描述 |
| ----------- | ---------------- |
@@ -364,9 +367,9 @@ style = "bold yellow"
## Character
-`character` 组件用于在您输入终端的文本旁显示一个字符(通常是一个箭头)。
+The `character` module shows a character (usually an arrow) beside where the text is entered in your terminal.
-这个字符可以告诉您最后一个命令是否执行成功。 It can do this in two ways:
+The character will tell you whether the last command was successful or not. It can do this in two ways:
- changing color (`red`/`green`)
- changing shape (`❯`/`✖`)
@@ -434,7 +437,7 @@ The `cmake` module shows the currently installed version of CMake. By default th
| Option | 默认值 | 描述 |
| ------------------- | -------------------------------------- | -------------------------------------------- |
| `format` | `"via [$symbol($version )]($style)"` | 组件格式化模板。 |
-| `symbol` | `"喝 "` | The symbol used before the version of cmake. |
+| `symbol` | `"△ "` | The symbol used before the version of cmake. |
| `detect_extensions` | `[]` | Which extensions should trigger this moudle |
| `detect_files` | `["CMakeLists.txt", "CMakeCache.txt"]` | Which filenames should trigger this module |
| `detect_folders` | `[]` | Which folders should trigger this module |
@@ -453,15 +456,15 @@ The `cmake` module shows the currently installed version of CMake. By default th
## Command Duration
-`cmd_duration` 组件显示上一个命令执行的时间。 此组件只在命令执行时间长于两秒时显示,或者当其 `min_time` 字段被设置时,按此值为执行时间的显示下限。
+The `cmd_duration` module shows how long the last command took to execute. The module will be shown only if the command took longer than two seconds, or the `min_time` config value, if it exists.
-::: warning 不要在 Bash 里捕获 DEBUG 信号
+::: warning Do not hook the DEBUG trap in Bash
-如果您正在 `bash` 上使用 Starship,在运行 `eval $(starship)` 后,不要捕获 `DEBUG` 信号,否则此组件**将会**坏掉。
+If you are running Starship in `bash`, do not hook the `DEBUG` trap after running `eval $(starship init $0)`, or this module **will** break.
:::
-需要在自动每一条命令前执行某些操作的 Bash 用户可以使用 [rcaloras 的 bash_preexec 框架](https://github.com/rcaloras/bash-preexec)。 只需要在执行 `eval $(starship init $0)` 前简单地定义 `preexec_functions` 和 `precmd_functions` 两个列表,就可以照常运行了。
+Bash users who need preexec-like functionality can use [rcaloras's bash_preexec framework](https://github.com/rcaloras/bash-preexec). Simply define the arrays `preexec_functions` and `precmd_functions` before running `eval $(starship init $0)`, and then proceed as normal.
### 配置项
@@ -502,11 +505,11 @@ format = "underwent [$duration](bold yellow)"
## Conda
-`conda` 组件在 `$CONDA_DEFAULT_ENV` 被设置时显示当前 conda 环境。
+The `conda` module shows the current conda environment, if `$CONDA_DEFAULT_ENV` is set.
::: tip
-此组件没有禁用 conda 自带的提示符修改,您可能需要执行 `conda config --set changeps1 False`。
+This does not suppress conda's own prompt modifier, you may want to run `conda config --set changeps1 False`.
:::
@@ -619,11 +622,11 @@ format = "via [🔰 $version](bold red) "
## Directory
-`directory` 组件显示当前目录的路径,显示的路径会截断到三个父目录以内。 如果您处于一个 git 仓库中,显示的路径则最多会截断到该仓库的根目录。
+The `directory` module shows the path to your current directory, truncated to three parent folders. Your directory will also be truncated to the root of the git repo that you're currently in.
-当使用 fish 风格的当前目录显示样式时,您会看到基于您的设置的每个上级目录的短名称,而不是隐藏被截断的上级目录。
+When using the fish style pwd option, instead of hiding the path that is truncated, you will see a shortened name of each directory based on the number you enable for the option.
-例如,对于 `~/Dev/Nix/nixpkgs/pkgs`,其中 `nixpkgs` 是 git 仓库根目录,fish 风格相关选项设置为 `1`。 您将会看到 `~/D/N/nixpkgs/pkgs`,而在设置 fish 风格之前,当前路径将显示成 `nixpkgs/pkgs`。
+For example, given `~/Dev/Nix/nixpkgs/pkgs` where `nixpkgs` is the repo root, and the option set to `1`. You will now see `~/D/N/nixpkgs/pkgs`, whereas before it would have been `nixpkgs/pkgs`.
### 配置项
@@ -640,7 +643,7 @@ format = "via [🔰 $version](bold red) "
| `home_symbol` | `"~"` | The symbol indicating home directory. |
<details>
-<summary>此组件有几个高级配置选项来控制当前目录路径的显示方式。</summary>
+<summary>This module has a few advanced configuration options that control how the directory is displayed.</summary>
| Advanced Option | 默认值 | 描述 |
| --------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -717,7 +720,7 @@ format = "via [🐋 $context](blue bold)"
## Dotnet
-`dotnet` 模块显示与当前目录下使用的 .NET Core SDK 相关联的版本。 如果当前目录已被绑定了一个版本的 SDK,则显示被帮定的版本。 否则此组件将显示最新安装的 SDK 版本。
+The `dotnet` module shows the relevant version of the .NET Core SDK for the current directory. If the SDK has been pinned in the current directory, the pinned version is shown. Otherwise the module shows the latest installed version of the SDK.
By default this module will only be shown in your prompt when one or more of the following files are present in the current directory:
@@ -733,7 +736,7 @@ By default this module will only be shown in your prompt when one or more of the
You'll also need the .NET Core SDK installed in order to use it correctly.
-在内部,此组件使用自己的版本检测机制。 一般来说此组件是直接执行 `dotnet --version` 的两倍快,但当你的 .NET 项目使用了不常见的目录布局时此组件可能显示一个错误的版本。 如果相比于速度您更需要正确的版本号,您可以在组件设置中设置 `heuristic = false` 来禁用该机制。
+Internally, this module uses its own mechanism for version detection. Typically it is twice as fast as running `dotnet --version`, but it may show an incorrect version if your .NET project has an unusual directory layout. If accuracy is more important than speed, you can disable the mechanism by setting `heuristic = false` in the module options.
The module will also show the Target Framework Moniker (<https://docs.microsoft.com/en-us/dotnet/standard/frameworks#supported-target-framework-versions>) when there is a csproj file in the current directory.
@@ -853,7 +856,7 @@ format = "via [ $version](cyan bold) "
## Environment Variable
-`env_var` 组件显示选定的环境变量的当前值。 此组件只有满足以下条件之一时才会被显示:
+The `env_var` module displays the current value of a selected environment variable. The module will be shown only if any of the following conditions are met:
- 设置的 `variable` 是一个已存在的环境变量
- 未定义 `variable`,但定义了 `default`
@@ -988,7 +991,7 @@ asia-northeast1 = "an1"
## Git Branch
-`git_branch` 组件显示当前目录的 git 仓库的活动分支。
+The `git_branch` module shows the active branch of the repo in your current directory.
### 配置项
@@ -1063,7 +1066,7 @@ tag_symbol = "🔖 "
## Git State
-`git_state` 组件会显示当前目录在哪个 git 仓库中,以及正在进行的操作,例如:_REBASING_,_BISECTING_ 等。 进度信息(例如 REBASING 3/10)如果存在则也会被显示。
+The `git_state` module will show in directories which are part of a git repository, and where there is an operation in progress, such as: _REBASING_, _BISECTING_, etc. If there is progress information (e.g., REBASING 3/10), that information will be shown too.
### 配置项
@@ -1103,7 +1106,7 @@ cherry_pick = "[🍒 PICKING](bold red)"
## Git Status
-`git_status`组件通过相应的符号显示您当前目录中 git 仓库的状态。
+The `git_status` module shows symbols representing the state of the repo in your current directory.
### 配置项
@@ -1186,7 +1189,7 @@ behind = "⇣${count}"
## Golang
-`golang` 组件显示当前安装的 Golang 版本。 By default the module will be shown if any of the following conditions are met:
+The `golang` module shows the currently installed version of Golang. By default the module will be shown if any of the following conditions are met:
- 当前目录包含 `go.mod` 文件
- 当前目录包含 `go.sum` 文件
@@ -1268,7 +1271,7 @@ format = "via [⎈ $version](bold white) "
## Hostname
-`hostname` 组件显示系统主机名。
+The `hostname` module shows the system hostname.
### 配置项
@@ -1303,7 +1306,7 @@ disabled = false
## Java
-`java` 组件显示当前安装的 Java 版本。 By default the module will be shown if any of the following conditions are met:
+The `java` module shows the currently installed version of Java. By default the module will be shown if any of the following conditions are met:
- The current directory contains a `pom.xml`, `build.gradle.kts`, `build.sbt`, `.java-version`, `.deps.edn`, `project.clj`, or `build.boot` file
- The current directory contains a file with the `.java`, `.class`, `.gradle`, `.jar`, `.clj`, or `.cljc` extension
@@ -1341,7 +1344,13 @@ symbol = "🌟 "
## Jobs
-`jobs` 组件显示当前正在运行的任务数量。 仅当有后台任务运行时,此组件才会显示。 如果有超过 1 个作业,模块将显示正在运行的作业数量,如果配置了 `threshold` 字段,则使用它作为显示作业数量的下限。
+The `jobs` module shows the current number of jobs running. The module will be shown only if there are background jobs running. The module will show the number of jobs running if there is more than 1 job, or more than the `threshold` config value, if it exists.
+
+::: warning
+
+This module is not supported on tcsh.
+
+:::
### 配置项
@@ -1464,7 +1473,7 @@ Displays the current Kubernetes context name and, if set, the namespace from the
::: tip
-此组件默认被禁用。 若要启用此组件,请在配置文件中设置 `disable` 字段为 `false`。
+This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
@@ -1503,7 +1512,7 @@ disabled = false
## Line Break
-`line_break` 组件将提示分隔为两行。
+The `line_break` module separates the prompt into two lines.
### 配置项
@@ -1562,13 +1571,13 @@ format = "via [🌕 $version](bold blue) "
## Memory Usage
-`memory_usage` 组件显示当前系统内存和交换区使用情况。
+The `memory_usage` module shows current system memory and swap usage.
-默认情况下,如果系统交换区使用不为 0,则会显示交换区使用情况。
+By default the swap usage is displayed if the total system swap is non-zero.
::: tip
-此组件默认被禁用。 若要启用此组件,请在配置文件中设置 `disable` 字段为 `false`。
+This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
@@ -1609,7 +1618,7 @@ style = "bold dimmed green"
## Mercurial Branch
-`hg_branch` 组件显示当前目录的 hg 仓库的活动分支。
+The `hg_branch` module shows the active branch of the repo in your current directory.
### 配置项
@@ -1686,7 +1695,7 @@ symbol = "🎣 "
## Nix-shell
-`nix_shell` 组件显示 nix-shell 环境。 当处于一个 nix-shell 环境中时,此组件会被显示。
+The `nix_shell` module shows the nix-shell environment. The module will be shown when inside a nix-shell environment.
### 配置项
@@ -1724,7 +1733,7 @@ format = 'via [☃️ $state( \($name\))](bold blue) '
## NodeJS
-`nodejs` 组件显示当前安装的 NodeJS 版本。 By default the module will be shown if any of the following conditions are met:
+The `nodejs` module shows the currently installed version of NodeJS. By default the module will be shown if any of the following conditions are met:
- 当前目录包含 `package.json` 文件
- The current directory contains a `.node-version` file
@@ -1737,7 +1746,7 @@ format = 'via [☃️ $state( \($name\))](bold blue) '
| Option | 默认值 | 描述 |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `format` | `"via [$symbol($version )]($style)"` | 组件格式化模板。 |
-| `symbol` | `"⬢ "` | A format string representing the symbol of NodeJS. |
+| `symbol` | `" "` | A format string representing the symbol of NodeJS. |
| `detect_extensions` | `["js", "mjs", "cjs", "ts"]` | Which extensions should trigger this moudle. |
| `detect_files` | `["package.json", ".node-version"]` | Which filenames should trigger this module. |
| `detect_folders` | `["node_modules"]` | Which folders should trigger this module. |
@@ -1843,7 +1852,7 @@ symbol = "☁️ "
## Package Version
-当前目录是软件包的代码仓库时,将显示 `package` 组件,并显示软件包当前版本。 The module currently supports `npm`, `cargo`, `poetry`, `composer`, `gradle`, `julia`, `mix` and `helm` packages.
+The `package` module is shown when the current directory is the repository for a package, and shows its current version. The module currently supports `npm`, `cargo`, `poetry`, `composer`, `gradle`, `julia`, `mix` and `helm` packages.
- **npm** —— `npm` 软件包版本从当前目录下的 `package.json` 中得到
- **cargo** —— `cargo` 软件包的版本从当前目录下的 `Cargo.toml` 中得到
@@ -1928,7 +1937,7 @@ format = "via [🦪 $version]($style) "
## PHP
-`php` 组件显示当前安装的 PHP 版本。 By default the module will be shown if any of the following conditions are met:
+The `php` module shows the currently installed version of PHP. By default the module will be shown if any of the following conditions are met:
- 当前目录包含一个 `composer.json` 文件
- The current directory contains a `.php-version` file
@@ -2005,9 +2014,9 @@ format = "via [$symbol$version](bold white)"
## Python
-`python` 组件组件展示已经安装了的Python版本以及如果虚拟环境被激活则会显示当前Python虚拟环境
+The `python` module shows the currently installed version of Python and the current Python virtual environment if one is activated.
-如果`pyenv_version_name`被设置为`true`, 本组件将会展示pyenv版本名。 否则则显示通过`python --version`获得的版本号
+If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`.
By default the module will be shown if any of the following conditions are met:
@@ -2083,7 +2092,7 @@ detect_extensions = []
## Ruby
-By default the `ruby` module shows the currently installed version of Ruby. 此组件将在符合以下任意条件之一时显示:
+By default the `ruby` module shows the currently installed version of Ruby. The module will be shown if any of the following conditions are met:
- 当前目录包含 `Gemfile` 文件
- The current directory contains a `.ruby-version` file
@@ -2122,7 +2131,7 @@ symbol = "🔺 "
## Rust
-By default the `rust` module shows the currently installed version of Rust. 此组件将在符合以下任意条件之一时显示:
+By default the `rust` module shows the currently installed version of Rust. The module will be shown if any of the following conditions are met:
- 当前目录包含 `Cargo.toml` 文件
- 当前目录包含一个使用 `.rs` 扩展名的文件
@@ -2158,13 +2167,55 @@ By default the `rust` module shows the currently installed version of Rust. 此
format = "via [⚙️ $version](red bold)"
```
+
+## Scala
+
+The `scala` module shows the currently installed version of Scala. By default the module will be shown if any of the following conditions are met:
+
+- The current directory contains a `build.sbt`, `.scalaenv` or `.sbtenv` file
+- The current directory contains a file with the `.scala` or `.sbt` extension
+- The current directory contains a directory named `.metals`
+
+### 配置项
+
+
+| Option | 默认值 | 描述 |
+| ------------------- | ---------------------------------------- | ------------------------------------------------- |
+| `format` | `"via [${symbol}(${version} )]($style)"` | 组件格式化模板。 |
+| `detect_extensions` | `["sbt", "scala"]` | Which extensions should trigger this module. |
+| `detect_files` | `[".scalaenv", ".sbtenv", "build.sbt"]` | Which filenames should trigger this module. |
+| `detect_folders` | `[".metals"]` | Which folders should trigger this modules. |
+| `symbol` | `"🆂 "` | A format string representing the symbol of Scala. |
+| `style` | `"red dimmed"` | 此组件的样式。 |
+| `disabled` | `false` | Disables the `scala` module. |
+
+### Variables
+
+| 字段 | 示例 | 描述 |
+| --------- | -------- | ---------------------- |
+| version | `2.13.5` | The version of `scala` |
+| symbol | | `symbol`对应值 |
+| style\* | | `style`对应值 |
+
+\*: This variable can only be used as a part of a style string
+
+### 示例
+
+```toml
+# ~/.config/starship.toml
+
+[scala]
+symbol = "🌟 "
+```
+
+
## Shell
The `shell` module shows an indicator for currently used shell.
::: tip
-此组件默认被禁用。 若要启用此组件,请在配置文件中设置 `disable` 字段为 `false`。
+This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
@@ -2178,6 +2229,7 @@ The `shell` module shows an indicator for currently used shell.
| `powershell_indicator` | `psh` | A format string used to represent powershell. |
| `ion_indicator` | `ion` | A format string used to represent ion. |
| `elvish_indicator` | `esh` | A format string used to represent elvish. |
+| `tcsh_indicator` | `tsh` | A format string used to represent tcsh. |
| `format` | `$indicator` | 组件格式化模板。 |
| `disabled` | `true` | Disables the `shell` module. |
@@ -2271,7 +2323,7 @@ The `status` module displays the exit code of the previous command. The module w
::: tip
-此组件默认被禁用。 若要启用此组件,请在配置文件中设置 `disable` 字段为 `false`。
+This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
@@ -2324,7 +2376,7 @@ disabled = false
## Swift
-By default the `swift` module shows the currently installed version of Swift. 此组件将在符合以下任意条件之一时显示:
+By default the `swift` module shows the currently installed version of Swift. The module will be shown if any of the following conditions are met:
- The current directory contains a `Package.swift` file
- The current directory contains a file with the `.swift` extension
@@ -2372,7 +2424,7 @@ By default the terraform version is not shown, since this is slow for current ve
By default the module will be shown if any of the following conditions are met:
-- 当前目录包含 `.terraform` 目录
+- The current directory contains a `.terraform` folder
- Current directory contains a file with the `.tf` or `.hcl` extensions
### 配置项
@@ -2424,7 +2476,7 @@ The `time` module shows the current **local** time. The `format` configuration v
::: tip
-此组件默认被禁用。 若要启用此组件,请在配置文件中设置 `disable` 字段为 `false`。
+This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file.
:::
@@ -2466,12 +2518,12 @@ time_range = "10:00:00-14:00:00"
## Username
-The `username` module shows active user's username. 此组件将在符合以下任意条件之一时显示:
+The `username` module shows active user's username. The module will be shown if any of the following conditions are met:
-- 当前用户是 root
-- 当前用户与登录用户不相同
-- 用户正通过 SSH 会话连接访问
-- 字段 `show_always` 被设置为 true
+- The current user is root
+- The current user isn't the same as the one that is logged in
+- The user is currently connected as an SSH session
+- The variable `show_always` is set to true
::: tip
@@ -2548,7 +2600,7 @@ format = "via [⍱ $version](bold white) "
## Zig
-By default the the `zig` module shows the currently installed version of Zig. 此组件将在符合以下任意条件之一时显示:
+By default the the `zig` module shows the currently installed version of Zig. The module will be shown if any of the following conditions are met:
- The current directory contains a `.zig` file