docs: Auto-apply preview release suggestions (#49650)
This draft PR auto-applies queued documentation suggestions collected from recently merged PRs. 34 documentation suggestions from merged PRs were processed. See the commit message for the full list. Release Notes: - N/A --------- Co-authored-by: Katie Geer <katie@zed.dev>
This commit is contained in:
1 parent
8ae99556ab
commit
1acd6d9a8f
11 files changed
+265
-38
No files matched your search
@@ -301,6 +301,8 @@ Edit Prediction also works with other providers.
|
||||
|
||||
### GitHub Copilot {#github-copilot}
|
||||
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
To use GitHub Copilot as your provider, set this in your settings file ([how to edit](../configuring-zed.md#settings-files)):
|
||||
|
||||
```json [settings]
|
||||
|
||||
@@ -19,7 +19,19 @@ Open any file in your project with {#kb file_finder::Toggle}. Type part of the f
|
||||
|
||||
## Project Search
|
||||
|
||||
Search across all files with {#kb pane::DeploySearch}. Results appear in a [multibuffer](./multibuffers.md), letting you edit matches in place.
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
Search across all files with {#kb pane::DeploySearch}. Start typing in the search field to begin searching—results appear as you type.
|
||||
|
||||
Results appear in a [multibuffer](./multibuffers.md), letting you edit matches in place.
|
||||
|
||||
To disable automatic search and require pressing Enter instead, open the Settings Editor ({#kb zed::OpenSettings}), search for "search on input", and toggle the setting off. Or add this to your settings.json:
|
||||
|
||||
```json
|
||||
{
|
||||
"search_on_input": false
|
||||
}
|
||||
```
|
||||
|
||||
## Go to Definition
|
||||
|
||||
|
||||
@@ -70,6 +70,33 @@ To disable word diff for specific languages only, add this to your settings.json
|
||||
}
|
||||
```
|
||||
|
||||
### Diff View Styles
|
||||
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
Zed displays diffs in two modes: **split** (side-by-side comparison) or **unified** (inline changes). Split view is the default.
|
||||
|
||||
#### Changing the diff view
|
||||
|
||||
Open the Settings Editor ({#kb zed::OpenSettings}) and search for "diff view style". Select either **Split** or **Unified**.
|
||||
|
||||
To change the default, add this to your `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"diff_view_style": "unified"
|
||||
}
|
||||
```
|
||||
|
||||
See [Configuring Zed](./configuring-zed.md) for more about the Settings Editor.
|
||||
|
||||
#### Split vs unified
|
||||
|
||||
- **Split**: Shows the original and modified versions side by side. Useful for comparing file structure or reviewing large changes.
|
||||
- **Unified**: Shows changes inline with additions and deletions in a single view. Useful for focusing on specific line changes.
|
||||
|
||||
You can switch between modes at any time. Your preference applies to [Project Diff](#project-diff), [File History](#file-history), and [Stash Diff View](#stash-diff-view). These diff views function as [multibuffers](./multibuffers.md), allowing you to edit multiple excerpts simultaneously.
|
||||
|
||||
## File History
|
||||
|
||||
File History shows the commit history for an individual file. Each entry displays the commit's author, timestamp, and message. Selecting a commit opens a diff view filtered to show only the changes made to that file in that commit.
|
||||
|
||||
+15
-2
@@ -5,7 +5,7 @@ description: How glob patterns work in Zed for file matching, search filtering,
|
||||
|
||||
# Globs
|
||||
|
||||
Zed supports the use of [glob](<https://en.wikipedia.org/wiki/Glob_(programming)>) patterns that are the formal name for Unix shell-style path matching wildcards like `*.md` or `docs/src/**/*.md` supported by sh, bash, zsh, etc. A glob is similar but distinct from a [regex (regular expression)](https://en.wikipedia.org/wiki/Regular_expression). You may be In Zed these are commonly used when matching filenames.
|
||||
Zed supports the use of [glob](<https://en.wikipedia.org/wiki/Glob_(programming)>) patterns that are the formal name for Unix shell-style path matching wildcards like `*.md` or `docs/src/**/*.md` supported by sh, bash, zsh, etc. A glob is similar but distinct from a [regex (regular expression)](https://en.wikipedia.org/wiki/Regular_expression). In Zed, globs are commonly used when matching filenames.
|
||||
|
||||
## Glob Flavor
|
||||
|
||||
@@ -22,6 +22,19 @@ The `glob` crate is implemented entirely in rust and does not rely on the `glob`
|
||||
|
||||
A glob "pattern" is used to match a file name or complete file path. For example, when using "Search all files" {#kb project_search::ToggleFocus} you can click the funnel shaped Toggle Filters" button or {#kb project_search::ToggleFilters} and it will show additional search fields for "Include" and "Exclude" which support specifying glob patterns for matching file paths and file names.
|
||||
|
||||
### Multiple Patterns
|
||||
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
You can specify multiple glob patterns in Project Search filters by separating them with commas. When using comma-separated patterns, Zed correctly handles braces within individual patterns:
|
||||
|
||||
- `*.ts, *.tsx` — Match TypeScript and TSX files
|
||||
- `src/{components,utils}/**/*.ts, tests/**/*.test.ts` — Match TypeScript files in specific directories plus test files
|
||||
|
||||
Each pattern is evaluated independently. Commas inside braces (like `{a,b}`) are treated as part of the pattern, not as separators.
|
||||
|
||||
**Important:** While braces are preserved in patterns, Zed does not expand them into multiple patterns. The pattern `src/{a,b}/*.ts` matches the literal path structure, not `src/a/*.ts` OR `src/b/*.ts`. This differs from shell behavior.
|
||||
|
||||
When creating a glob pattern you can use one or multiple special characters:
|
||||
|
||||
| Special Character | Meaning |
|
||||
@@ -35,7 +48,7 @@ When creating a glob pattern you can use one or multiple special characters:
|
||||
|
||||
Notes:
|
||||
|
||||
1. Shell-style brace-expansions like `{a,b,c}` are not supported.
|
||||
1. Brace characters `{` and `}` are literal pattern characters, not expansion operators. The pattern `src/{a,b}/*.ts` matches paths containing the literal text `{a,b}`, not paths matching either `src/a/*.ts` or `src/b/*.ts` as in shell globbing.
|
||||
2. To match a literal `-` character inside brackets it must come first `[-abc]` or last `[abc-]`.
|
||||
3. To match the literal `[` character use `[[]` or put it as the first character in the group `[[abc]`.
|
||||
4. To match the literal `]` character use `[]]` or put it as the last character in the group `[abc]]`.
|
||||
|
||||
@@ -54,9 +54,9 @@ For example to for a `.luarc.json` for use with [lua-language-server](https://gi
|
||||
|
||||
### Schema Specification via Settings
|
||||
|
||||
You can alternatively associate JSON Schemas with file paths by via Zed LSP settings.
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
To
|
||||
You can associate JSON Schemas with file paths using relative paths in your language server settings. Zed resolves paths relative to your project root:
|
||||
|
||||
```json [settings]
|
||||
"lsp": {
|
||||
@@ -64,6 +64,14 @@ To
|
||||
"settings": {
|
||||
"json": {
|
||||
"schemas": [
|
||||
{
|
||||
"fileMatch": ["config/*.json"],
|
||||
"url": "./schemas/custom-schema.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": ["*.config.json"],
|
||||
"url": "~/global-schemas/shared.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": ["*/*.luarc.json"],
|
||||
"url": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json"
|
||||
@@ -75,6 +83,8 @@ To
|
||||
}
|
||||
```
|
||||
|
||||
Paths starting with `./` resolve relative to the worktree root. Paths starting with `~/` expand to your home directory.
|
||||
|
||||
You can also pass any of the [supported settings](https://github.com/Microsoft/vscode/blob/main/extensions/json-language-features/server/README.md#settings) to json-language-server by specifying them in your Zed settings.json:
|
||||
|
||||
<!--
|
||||
|
||||
@@ -12,7 +12,11 @@ YAML support is available natively in Zed.
|
||||
|
||||
## Configuration
|
||||
|
||||
You can configure various [yaml-language-server settings](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#language-server-settings) by adding them to your Zed settings.json in a `yaml-language-server` block under the `lsp` key. For example:
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
You can configure various [yaml-language-server settings](https://github.com/redhat-developer/yaml-language-server?tab=readme-ov-file#language-server-settings) by adding them to your Zed settings.json in a `yaml-language-server` block under the `lsp` key.
|
||||
|
||||
You can configure custom YAML schemas using relative paths. Zed resolves paths relative to your project root:
|
||||
|
||||
```json [settings]
|
||||
"lsp": {
|
||||
@@ -25,7 +29,8 @@ You can configure various [yaml-language-server settings](https://github.com/red
|
||||
},
|
||||
"schemas": {
|
||||
"https://getcomposer.org/schema.json": ["/*"],
|
||||
"../relative/path/schema.json": ["/config*.yaml"]
|
||||
"./schemas/kubernetes.yaml": "k8s/**/*.yaml",
|
||||
"~/global-schemas/docker-compose.yaml": "docker-compose*.yml"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,6 +38,8 @@ You can configure various [yaml-language-server settings](https://github.com/red
|
||||
}
|
||||
```
|
||||
|
||||
Paths starting with `./` resolve relative to the worktree root. Paths starting with `~/` expand to your home directory.
|
||||
|
||||
Note, settings keys must be nested, so `yaml.keyOrdering` becomes `{"yaml": { "keyOrdering": true }}`.
|
||||
|
||||
## Formatting
|
||||
|
||||
@@ -508,6 +508,21 @@ Note: Dirty files (files with unsaved changes) will not be automatically closed
|
||||
}
|
||||
```
|
||||
|
||||
## Diff View Style
|
||||
|
||||
- Description: How to display diffs in the editor.
|
||||
- Setting: `diff_view_style`
|
||||
- Default: `"split"`
|
||||
|
||||
**Options**
|
||||
|
||||
- `"unified"`: Show changes inline with added and deleted lines stacked vertically
|
||||
- `"split"`: Display old and new versions side by side in separate panes (default)
|
||||
|
||||
> **Changed in Preview (v0.225).** Values renamed from `"stacked"`/`"side_by_side"` to `"unified"`/`"split"`.
|
||||
|
||||
See [Git documentation](../git.md#diff-view-styles) for more details.
|
||||
|
||||
## Disable AI
|
||||
|
||||
- Description: Whether to disable all AI features in Zed
|
||||
@@ -2757,6 +2772,33 @@ The following settings can be overridden for each specific language:
|
||||
|
||||
These values take in the same options as the root-level settings with the same name.
|
||||
|
||||
### Document Symbols
|
||||
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
- Description: Controls the source of document symbols used for outlines and breadcrumbs.
|
||||
- Setting: `document_symbols`
|
||||
- Default: `off`
|
||||
|
||||
**Options**
|
||||
|
||||
- `"off"`: Use tree-sitter queries to compute document symbols (default)
|
||||
- `"on"`: Use the language server's `textDocument/documentSymbol` LSP response. When enabled, tree-sitter is not used for document symbols
|
||||
|
||||
LSP document symbols can provide more accurate symbols for complex language features (e.g., generic types, macros, decorators) that tree-sitter may not handle well. Use this when your language server provides better symbol information than the tree-sitter grammar.
|
||||
|
||||
Example:
|
||||
|
||||
```json [settings]
|
||||
{
|
||||
"languages": {
|
||||
"TypeScript": {
|
||||
"document_symbols": "on"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Language Models
|
||||
|
||||
- Description: Configuration for language model providers
|
||||
@@ -3430,13 +3472,7 @@ Non-negative `integer` values
|
||||
|
||||
- Description: Whether to search on input in project search.
|
||||
- Setting: `search_on_input`
|
||||
- Default: `false`
|
||||
|
||||
### Search On Input Debounce Ms
|
||||
|
||||
- Description: Debounce time in milliseconds for search on input in project search. Set to 0 to disable debouncing.
|
||||
- Setting: `search_on_input_debounce_ms`
|
||||
- Default: `200`
|
||||
- Default: `true`
|
||||
|
||||
### Center On Match
|
||||
|
||||
@@ -5102,6 +5138,34 @@ See the [debugger page](../debugger.md) for more information about debugging sup
|
||||
- `collapse_untracked_diff`: Whether to collapse untracked files in the diff panel
|
||||
- `scrollbar`: When to show the scrollbar in the git panel
|
||||
|
||||
## Git Worktree Directory
|
||||
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
- Description: Directory where git worktrees are created, relative to the repository working directory.
|
||||
- Setting: `git.worktree_directory`
|
||||
- Default: `"../worktrees"`
|
||||
|
||||
When the resolved directory falls outside the project root, the project's directory name is automatically appended so that sibling repos don't collide. For example, with the default `"../worktrees"` and a project at `~/code/zed`, worktrees are created under `~/code/worktrees/zed/`.
|
||||
|
||||
When the resolved directory is inside the project root, no extra component is added (it's already project-scoped).
|
||||
|
||||
**Examples**:
|
||||
|
||||
- `"../worktrees"` — `~/code/worktrees/<project>/` (default)
|
||||
- `".git/zed-worktrees"` — `<project>/.git/zed-worktrees/`
|
||||
- `"my-worktrees"` — `<project>/my-worktrees/`
|
||||
|
||||
Trailing slashes are ignored.
|
||||
|
||||
```json [settings]
|
||||
{
|
||||
"git": {
|
||||
"worktree_directory": "../worktrees"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Git Hosting Providers
|
||||
|
||||
- Description: Register self-hosted GitHub, GitLab, or Bitbucket instances so commit hashes, issue references, and permalinks resolve to the right host.
|
||||
|
||||
@@ -71,7 +71,9 @@ zed -n ~/projects/myproject
|
||||
|
||||
### `-a`, `--add`
|
||||
|
||||
Add paths to the currently focused workspace instead of opening a new window:
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
Add paths to the currently focused workspace instead of opening a new window. When multiple workspace windows are open, files open in the focused window:
|
||||
|
||||
```sh
|
||||
zed -a newfile.txt
|
||||
|
||||
+38
-2
@@ -151,8 +151,32 @@ TBD: Improve Julia REPL instructions
|
||||
|
||||
## Changing which kernel is used per language {#changing-kernels}
|
||||
|
||||
Zed automatically detects the available kernels on your system. If you need to configure a different default kernel for a
|
||||
language, you can assign a kernel for any supported language in your `settings.json`.
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
Zed automatically detects available kernels and organizes them in the kernel picker:
|
||||
|
||||
- **Recommended**: The Python environment matching your active toolchain (if detected)
|
||||
- **Python Environments**: Virtual environments (venv, virtualenv, Poetry, Pipenv, Conda, uv, etc.)
|
||||
- **Jupyter Kernels**: Installed Jupyter kernelspecs
|
||||
- **Remote Servers**: Connected remote Jupyter servers
|
||||
|
||||
### Installing ipykernel
|
||||
|
||||
Python environments appear in the picker even if ipykernel is not installed. Environments missing ipykernel are dimmed and labeled "ipykernel not installed." When you select one, Zed automatically runs `pip install ipykernel` in that environment and activates it once installation completes.
|
||||
|
||||
### How Zed Recommends Kernels
|
||||
|
||||
When you run code, Zed selects a kernel automatically:
|
||||
|
||||
1. **Active toolchain match**: If a Python environment matches your active toolchain and has ipykernel, Zed uses it
|
||||
2. **First available Python env**: Otherwise, the first Python environment with ipykernel
|
||||
3. **Language-based fallback**: If no Python envs are ready, Zed picks a Jupyter kernel matching the code block's language
|
||||
|
||||
You can override this by explicitly selecting a kernel from the picker.
|
||||
|
||||
### Setting Default Kernels
|
||||
|
||||
To configure a different default kernel for a language, you can assign a kernel for any supported language in your `settings.json`:
|
||||
|
||||
```json [settings]
|
||||
{
|
||||
@@ -167,6 +191,18 @@ language, you can assign a kernel for any supported language in your `settings.j
|
||||
}
|
||||
```
|
||||
|
||||
## Interactive Input
|
||||
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
When code execution requires user input (such as Python's `input()` function), the REPL displays an input prompt below the cell output.
|
||||
|
||||
Type your response in the text field and press `Enter` to submit. The kernel receives your input and continues execution.
|
||||
|
||||
For password inputs, characters appear masked with asterisks for security.
|
||||
|
||||
If execution is interrupted while an input prompt is active, the prompt automatically clears when the kernel returns to idle state.
|
||||
|
||||
## Debugging Kernelspecs
|
||||
|
||||
Available kernels are shown via the `repl: sessions` command. To refresh the kernels you can run, use the `repl: refresh kernelspecs` command.
|
||||
|
||||
@@ -246,3 +246,52 @@ In doing so, you can change which task is shown in the runnables indicator.
|
||||
## Keybindings to run tasks bound to runnables
|
||||
|
||||
When you have a task definition that is bound to the runnable, you can quickly run it using [Code Actions](https://zed.dev/docs/configuring-languages?#code-actions) that you can trigger either via `editor: Toggle Code Actions` command or by the `cmd-.`/`ctrl-.` shortcut. Your task will be the first in the dropdown. The task will run immediately if there are no additional Code Actions for this line.
|
||||
|
||||
## Running Bash Scripts
|
||||
|
||||
> **Preview:** This feature is available in Zed Preview. It will be included in the next Stable release.
|
||||
|
||||
You can run bash scripts directly from Zed. When you open a `.sh` or `.bash` file, Zed automatically detects the script as runnable and makes it available in the task picker.
|
||||
|
||||
To run a bash script:
|
||||
|
||||
1. Open the command palette with {#kb command_palette::Toggle}
|
||||
2. Search for "task" and select **task: spawn**
|
||||
3. Select the script from the list
|
||||
|
||||
Bash scripts are tagged with `bash-script`, allowing you to filter or reference them in task configurations.
|
||||
|
||||
If you need to pass arguments or customize the execution environment, add a task configuration in your `.zed/tasks.json`:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"label": "run my-script.sh with args",
|
||||
"command": "./my-script.sh",
|
||||
"args": ["--verbose", "--output=results.txt"],
|
||||
"tags": ["bash-script"]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Shell Initialization
|
||||
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
|
||||
When Zed runs a task, it launches the command in a login shell. This ensures your shell's initialization files (`.bash_profile`, `.zshrc`, etc.) are sourced before the task executes.
|
||||
|
||||
This behavior gives tasks access to the same environment variables, aliases, and PATH modifications you've configured in your shell profile. If a task fails to find a command that works in your terminal, verify your shell configuration files are properly set up.
|
||||
|
||||
To override the shell used for tasks, configure the `terminal.shell` setting:
|
||||
|
||||
```json
|
||||
{
|
||||
"terminal": {
|
||||
"shell": {
|
||||
"program": "/bin/zsh"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
See [Terminal configuration](./terminal.md) for complete shell options.
|
||||
+26
-21
@@ -248,29 +248,34 @@ Below, you'll find tables listing the commands you can use in the command palett
|
||||
|
||||
### File and window management
|
||||
|
||||
> **Changed in Preview (v0.225).** See [release notes](/releases#0.225).
|
||||
>
|
||||
> The `:bd[elete]` command now closes the active file across all panes. Previously, it only closed the file in the active pane.
|
||||
|
||||
This table shows commands for managing windows, tabs, and panes. As commands don't support arguments currently, you cannot specify a filename when saving or creating a new file.
|
||||
|
||||
| Command | Description |
|
||||
| -------------- | ---------------------------------------------------- |
|
||||
| `:w[rite][!]` | Save the current file |
|
||||
| `:wq[!]` | Save the file and close the buffer |
|
||||
| `:q[uit][!]` | Close the buffer |
|
||||
| `:wa[ll][!]` | Save all open files |
|
||||
| `:wqa[ll][!]` | Save all open files and close all buffers |
|
||||
| `:qa[ll][!]` | Close all buffers |
|
||||
| `:[e]x[it][!]` | Close the buffer |
|
||||
| `:up[date]` | Save the current file |
|
||||
| `:cq` | Quit completely (close all running instances of Zed) |
|
||||
| `:vs[plit]` | Split the pane vertically |
|
||||
| `:sp[lit]` | Split the pane horizontally |
|
||||
| `:new` | Create a new file in a horizontal split |
|
||||
| `:vne[w]` | Create a new file in a vertical split |
|
||||
| `:tabedit` | Create a new file in a new tab |
|
||||
| `:tabnew` | Create a new file in a new tab |
|
||||
| `:tabn[ext]` | Go to the next tab |
|
||||
| `:tabp[rev]` | Go to previous tab |
|
||||
| `:tabc[lose]` | Close the current tab |
|
||||
| `:ls` | Show all buffers |
|
||||
| Command | Description |
|
||||
| --------------- | ---------------------------------------------------- |
|
||||
| `:w[rite][!]` | Save the current file |
|
||||
| `:wq[!]` | Save the file and close the buffer |
|
||||
| `:q[uit][!]` | Close the buffer |
|
||||
| `:wa[ll][!]` | Save all open files |
|
||||
| `:wqa[ll][!]` | Save all open files and close all buffers |
|
||||
| `:qa[ll][!]` | Close all buffers |
|
||||
| `:[e]x[it][!]` | Close the buffer |
|
||||
| `:up[date]` | Save the current file |
|
||||
| `:cq` | Quit completely (close all running instances of Zed) |
|
||||
| `:bd[elete][!]` | Close the active file in all panes |
|
||||
| `:vs[plit]` | Split the pane vertically |
|
||||
| `:sp[lit]` | Split the pane horizontally |
|
||||
| `:new` | Create a new file in a horizontal split |
|
||||
| `:vne[w]` | Create a new file in a vertical split |
|
||||
| `:tabedit` | Create a new file in a new tab |
|
||||
| `:tabnew` | Create a new file in a new tab |
|
||||
| `:tabn[ext]` | Go to the next tab |
|
||||
| `:tabp[rev]` | Go to previous tab |
|
||||
| `:tabc[lose]` | Close the current tab |
|
||||
| `:ls` | Show all buffers |
|
||||
|
||||
> **Note:** The `!` character is used to force the command to execute without saving changes or prompting before overwriting a file.
|
||||
|
||||
|
||||
Reference in new issue
Block a user