diff --git a/.github/ISSUE_TEMPLATE/01_bug_ai.yml b/.github/ISSUE_TEMPLATE/01_bug_ai.yml
deleted file mode 100644
index 36e9036b7840fb536bfc47f1fd9b8359c6736b61..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/01_bug_ai.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: Bug Report (AI)
-description: Zed Agent Panel Bugs
-type: "Bug"
-labels: ["ai"]
-title: "AI: "
-body:
- - type: textarea
- attributes:
- label: Summary
- description: Describe the bug with a one line summary, and provide detailed reproduction steps
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- Steps to trigger the problem:
- 1.
- 2.
- 3.
-
- **Expected Behavior**:
- **Actual Behavior**:
-
- ### Model Provider Details
- - Provider: (Anthropic via ZedPro, Anthropic via API key, Copilot Chat, Mistral, OpenAI, etc)
- - Model Name:
- - Mode: (Agent Panel, Inline Assistant, Terminal Assistant or Text Threads)
- - Other Details (MCPs, other settings, etc):
- validations:
- required: true
-
- - type: textarea
- id: environment
- attributes:
- label: Zed Version and System Specs
- description: 'Open Zed, and in the command palette select "zed: copy system specs into clipboard"'
- placeholder: |
- Output of "zed: copy system specs into clipboard"
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
- description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
- value: |
- Zed.log
-
-
- ```log
-
- ```
-
-
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/04_bug_debugger.yml b/.github/ISSUE_TEMPLATE/04_bug_debugger.yml
deleted file mode 100644
index 8361de5c22fe27a8ea2dd9597fdcbcbf6cd9661e..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/04_bug_debugger.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Bug Report (Debugger)
-description: Zed Debugger-Related Bugs
-type: "Bug"
-labels: ["debugger"]
-title: "Debugger: "
-body:
- - type: textarea
- attributes:
- label: Summary
- description: Describe the bug with a one line summary, and provide detailed reproduction steps
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- Steps to trigger the problem:
- 1.
- 2.
- 3.
-
- **Expected Behavior**:
- **Actual Behavior**:
-
- validations:
- required: true
- - type: textarea
- id: environment
- attributes:
- label: Zed Version and System Specs
- description: 'Open Zed, and in the command palette select "zed: copy system specs into clipboard"'
- placeholder: |
- Output of "zed: copy system specs into clipboard"
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
- description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
- value: |
- Zed.log
-
-
- ```log
-
- ```
-
-
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/06_bug_git.yml b/.github/ISSUE_TEMPLATE/06_bug_git.yml
deleted file mode 100644
index ec6276df3a21b8df6fde5e6f49d868dee329d864..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/06_bug_git.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Bug Report (Git)
-description: Zed Git Related Bugs
-type: "Bug"
-labels: ["git"]
-title: "Git: "
-body:
- - type: textarea
- attributes:
- label: Summary
- description: Describe the bug with a one-line summary, and provide detailed reproduction steps
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- Steps to trigger the problem:
- 1.
- 2.
- 3.
-
- **Expected Behavior**:
- **Actual Behavior**:
-
- validations:
- required: true
- - type: textarea
- id: environment
- attributes:
- label: Zed Version and System Specs
- description: 'Open Zed, and in the command palette select "zed: copy system specs into clipboard"'
- placeholder: |
- Output of "zed: copy system specs into clipboard"
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
- description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
- value: |
- Zed.log
-
-
- ```log
-
- ```
-
-
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/07_bug_windows.yml b/.github/ISSUE_TEMPLATE/07_bug_windows.yml
deleted file mode 100644
index b4bda930dc81c13224956e0e2cb75ecb26f9e2f5..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/07_bug_windows.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Bug Report (Windows)
-description: Zed Windows Related Bugs
-type: "Bug"
-labels: ["windows"]
-title: "Windows: "
-body:
- - type: textarea
- attributes:
- label: Summary
- description: Describe the bug with a one-line summary, and provide detailed reproduction steps
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- Steps to trigger the problem:
- 1.
- 2.
- 3.
-
- **Expected Behavior**:
- **Actual Behavior**:
-
- validations:
- required: true
- - type: textarea
- id: environment
- attributes:
- label: Zed Version and System Specs
- description: 'Open Zed, and in the command palette select "zed: copy system specs into clipboard"'
- placeholder: |
- Output of "zed: copy system specs into clipboard"
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
- description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
- value: |
- Zed.log
-
-
- ```log
-
- ```
-
-
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/10_bug_report.yml b/.github/ISSUE_TEMPLATE/10_bug_report.yml
index 9f069a7a355188f91d18fc528a69433f214f5167..cae10f02ec3b1bcb024f0d1f1bce0691a39054b4 100644
--- a/.github/ISSUE_TEMPLATE/10_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/10_bug_report.yml
@@ -1,67 +1,53 @@
-name: Bug Report (Other)
-description: |
- Something else is broken in Zed (exclude crashing).
-type: "Bug"
+name: Report a bug
+description: Report a problem with Zed.
+type: Bug
+labels: "state:needs triage"
body:
- - type: textarea
+ - type: markdown
attributes:
- label: Summary
- description: Provide a one sentence summary and detailed reproduction steps
value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
-
- DESCRIPTION_HERE
-
- Steps to reproduce:
- 1.
- 2.
- 3.
- 4.
+ Is this bug already reported? Upvote to get it noticed faster. [Here's the search](https://github.com/zed-industries/zed/issues). Upvote means giving it a :+1: reaction.
- **Expected Behavior**:
- **Actual Behavior**:
-
-
+ Feature request? Please open in [discussions](https://github.com/zed-industries/zed/discussions/new/choose) instead.
+ Just have a question or need support? Welcome to [Discord Support Forums](https://discord.com/invite/zedindustries).
+ - type: textarea
+ attributes:
+ label: Reproduction steps
+ description: A step-by-step description of how to reproduce the bug from a **clean Zed install**. The more context you provide, the easier it is to find and fix the problem fast.
+ placeholder: |
+ 1. Start Zed
+ 2. Click X
validations:
required: true
+ - type: textarea
+ attributes:
+ label: Current vs. Expected behavior
+ description: |
+ Current behavior (screenshots, videos, etc. are appreciated), vs. what you expected the behavior to be.
+ placeholder: |
+ Current behavior: The icon is blue. Expected behavior: The icon should be red because this is what the setting is documented to do.
+ validations:
+ required: true
- type: textarea
id: environment
attributes:
- label: Zed Version and System Specs
+ label: Zed version and system specs
description: |
- Open Zed, from the command palette select "zed: copy system specs into clipboard"
+ Open the command palette in Zed, then type “zed: copy system specs into clipboard”.
placeholder: |
- Output of "zed: copy system specs into clipboard"
+ Zed: v0.215.0 (Zed Nightly bfe141ea79aa4984028934067ba75c48d99136ae)
+ OS: macOS 15.1
+ Memory: 36 GiB
+ Architecture: aarch64
validations:
required: true
- type: textarea
attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
+ label: Attach Zed log file
description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
+ Open the command palette in Zed, then type `zed: open log` to see the last 1000 lines. Or type `zed: reveal log in file manager` in the command palette to reveal the log file itself.
value: |
Zed.log
@@ -73,3 +59,57 @@ body:
validations:
required: false
+ - type: textarea
+ attributes:
+ label: Relevant Zed settings
+ description: |
+ Open the command palette in Zed, then type “zed: open settings file” and copy/paste any relevant (e.g., LSP-specific) settings.
+ value: |
+ settings.json
+
+
+ ```json
+
+ ```
+
+
+ validations:
+ required: false
+ - type: textarea
+ attributes:
+ label: Relevant Keymap
+ description: |
+ Open the command palette in Zed, then type “zed: open keymap file” and copy/paste the file's contents.
+ value: |
+ keymap.json
+
+
+ ```json
+
+ ```
+
+
+ validations:
+ required: false
+ - type: textarea
+ attributes:
+ label: (for AI issues) Model provider details
+ placeholder: |
+ - Provider: (Anthropic via ZedPro, Anthropic via API key, Copilot Chat, Mistral, OpenAI, etc.)
+ - Model Name: (Claude Sonnet 4.5, Gemini 3 Pro, GPT-5)
+ - Mode: (Agent Panel, Inline Assistant, Terminal Assistant or Text Threads)
+ - Other details (ACPs, MCPs, other settings, etc.):
+ validations:
+ required: false
+ - type: dropdown
+ attributes:
+ label: If you are using WSL on Windows, what flavor of Linux are you using?
+ multiple: false
+ options:
+ - Arch Linux
+ - Ubuntu
+ - Fedora
+ - Mint
+ - Pop!_OS
+ - NixOS
+ - Other
diff --git a/.github/ISSUE_TEMPLATE/11_crash_report.yml b/.github/ISSUE_TEMPLATE/11_crash_report.yml
index 97979308ae5ab4037c32db2660544c1299f2c750..a019848e874fee709a935a54aa68bae813374628 100644
--- a/.github/ISSUE_TEMPLATE/11_crash_report.yml
+++ b/.github/ISSUE_TEMPLATE/11_crash_report.yml
@@ -1,42 +1,35 @@
-name: Crash Report
-description: Zed is Crashing or Hanging
-type: "Crash"
+name: Report a crash
+description: Zed is crashing or freezing or hanging.
+type: Crash
+labels: "state:needs triage"
body:
- type: textarea
attributes:
- label: Summary
- description: Summarize the issue with detailed reproduction steps
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- Steps to trigger the problem:
- 1.
- 2.
- 3.
-
- Actual Behavior:
- Expected Behavior:
-
+ label: Reproduction steps
+ description: A step-by-step description of how to reproduce the crash from a **clean Zed install**. The more context you provide, the easier it is to find and fix the problem fast.
+ placeholder: |
+ 1. Start Zed
+ 2. Perform an action
+ 3. Zed crashes
validations:
required: true
- type: textarea
- id: environment
attributes:
- label: Zed Version and System Specs
- description: 'Open Zed, and in the command palette select "zed: copy system specs into clipboard"'
+ label: Zed version and system specs
+ description: |
+ Open the command palette in Zed, then type “zed: copy system specs into clipboard”.
placeholder: |
- Output of "zed: copy system specs into clipboard"
+ Zed: v0.215.0 (Zed Nightly bfe141ea79aa4984028934067ba75c48d99136ae)
+ OS: macOS 15.1
+ Memory: 36 GiB
+ Architecture: aarch64
validations:
required: true
- type: textarea
attributes:
- label: If applicable, attach your `Zed.log` file to this issue.
+ label: Attach Zed log file
description: |
- From the command palette, run `zed: open log` to see the last 1000 lines.
- Or run `zed: reveal log in file manager` to reveal the log file itself.
+ Open the command palette in Zed, then type `zed: open log` to see the last 1000 lines. Or type `zed: reveal log in file manager` in the command palette to reveal the log file itself.
value: |
Zed.log
diff --git a/.github/ISSUE_TEMPLATE/99_other.yml b/.github/ISSUE_TEMPLATE/99_other.yml
deleted file mode 100644
index 9383a576b1a7d43ea4bb4e02d911891555518532..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/99_other.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Other [Staff Only]
-description: Zed Staff Only
-body:
- - type: textarea
- attributes:
- label: Summary
- value: |
-
- SUMMARY_SENTENCE_HERE
-
- ### Description
-
- IF YOU DO NOT WORK FOR ZED INDUSTRIES DO NOT CREATE ISSUES WITH THIS TEMPLATE.
- THEY WILL BE AUTO-CLOSED AND MAY RESULT IN YOU BEING BANNED FROM THE ZED ISSUE TRACKER.
-
- FEATURE REQUESTS / SUPPORT REQUESTS SHOULD BE OPENED AS DISCUSSIONS:
- https://github.com/zed-industries/zed/discussions/new/choose
- validations:
- required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 3d0b2ce0af79944c9c86dba6187b0fd7d91c5b8c..9bf14ce72d5feb5da9f04bb1064e7351407e6f55 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,9 +1,9 @@
-# yaml-language-server: $schema=https://json.schemastore.org/github-issue-config.json
+# yaml-language-server: $schema=https://www.schemastore.org/github-issue-config.json
blank_issues_enabled: false
contact_links:
- - name: Feature Request
+ - name: Feature request
url: https://github.com/zed-industries/zed/discussions/new/choose
- about: To request a feature, open a new Discussion in one of the appropriate Discussion categories
- - name: "Zed Discord"
- url: https://zed.dev/community-links
- about: Real-time discussion and user support
+ about: To request a feature, open a new discussion under one of the appropriate categories.
+ - name: Our Discord community
+ url: https://discord.com/invite/zedindustries
+ about: Join our Discord server for real-time discussion and user support.
diff --git a/.github/actions/run_tests/action.yml b/.github/actions/run_tests/action.yml
index 3bc28249f3b8b2a08a48be040177530c5ecfd407..a071aba3a87dcf8e8f48f740115cfddf48b9f805 100644
--- a/.github/actions/run_tests/action.yml
+++ b/.github/actions/run_tests/action.yml
@@ -4,10 +4,8 @@ description: "Runs the tests"
runs:
using: "composite"
steps:
- - name: Install Rust
- shell: bash -euxo pipefail {0}
- run: |
- cargo install cargo-nextest --locked
+ - name: Install nextest
+ uses: taiki-e/install-action@nextest
- name: Install Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
diff --git a/.github/actions/run_tests_windows/action.yml b/.github/actions/run_tests_windows/action.yml
index d85d47cb969e22ca3c73c9ab8caca279a9b5ba88..307b73f363b7d5fd7a3c9e5082c4f17d622ec165 100644
--- a/.github/actions/run_tests_windows/action.yml
+++ b/.github/actions/run_tests_windows/action.yml
@@ -11,9 +11,8 @@ runs:
using: "composite"
steps:
- name: Install test runner
- shell: powershell
working-directory: ${{ inputs.working-directory }}
- run: cargo install cargo-nextest --locked
+ uses: taiki-e/install-action@nextest
- name: Install Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
diff --git a/.github/workflows/after_release.yml b/.github/workflows/after_release.yml
index cf77b429353e59697858434c3904a68b91ecc63a..21b9a8fe0e184773b35752565da6530bb666c6ec 100644
--- a/.github/workflows/after_release.yml
+++ b/.github/workflows/after_release.yml
@@ -5,13 +5,27 @@ on:
release:
types:
- published
+ workflow_dispatch:
+ inputs:
+ tag_name:
+ description: tag_name
+ required: true
+ type: string
+ prerelease:
+ description: prerelease
+ required: true
+ type: boolean
+ body:
+ description: body
+ type: string
+ default: ''
jobs:
rebuild_releases_page:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: after_release::rebuild_releases_page::refresh_cloud_releases
- run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name }}
+ run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name || inputs.tag_name }}
shell: bash -euxo pipefail {0}
- name: after_release::rebuild_releases_page::redeploy_zed_dev
run: npm exec --yes -- vercel@37 --token="$VERCEL_TOKEN" --scope zed-industries redeploy https://zed.dev
@@ -21,13 +35,13 @@ jobs:
post_to_discord:
needs:
- rebuild_releases_page
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- id: get-release-url
name: after_release::post_to_discord::get_release_url
run: |
- if [ "${{ github.event.release.prerelease }}" == "true" ]; then
+ if [ "${{ github.event.release.prerelease || inputs.prerelease }}" == "true" ]; then
URL="https://zed.dev/releases/preview"
else
URL="https://zed.dev/releases/stable"
@@ -40,9 +54,9 @@ jobs:
uses: 2428392/gh-truncate-string-action@b3ff790d21cf42af3ca7579146eedb93c8fb0757
with:
stringToTruncate: |
- 📣 Zed [${{ github.event.release.tag_name }}](<${{ steps.get-release-url.outputs.URL }}>) was just released!
+ 📣 Zed [${{ github.event.release.tag_name || inputs.tag_name }}](<${{ steps.get-release-url.outputs.URL }}>) was just released!
- ${{ github.event.release.body }}
+ ${{ github.event.release.body || inputs.body }}
maxLength: 2000
truncationSymbol: '...'
- name: after_release::post_to_discord::discord_webhook_action
@@ -56,22 +70,23 @@ jobs:
- id: set-package-name
name: after_release::publish_winget::set_package_name
run: |
- if [ "${{ github.event.release.prerelease }}" == "true" ]; then
- PACKAGE_NAME=ZedIndustries.Zed.Preview
- else
- PACKAGE_NAME=ZedIndustries.Zed
- fi
+ if ("${{ github.event.release.prerelease || inputs.prerelease }}" -eq "true") {
+ $PACKAGE_NAME = "ZedIndustries.Zed.Preview"
+ } else {
+ $PACKAGE_NAME = "ZedIndustries.Zed"
+ }
- echo "PACKAGE_NAME=$PACKAGE_NAME" >> "$GITHUB_OUTPUT"
- shell: bash -euxo pipefail {0}
+ echo "PACKAGE_NAME=$PACKAGE_NAME" >> $env:GITHUB_OUTPUT
+ shell: pwsh
- name: after_release::publish_winget::winget_releaser
uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f
with:
identifier: ${{ steps.set-package-name.outputs.PACKAGE_NAME }}
+ release-tag: ${{ github.event.release.tag_name || inputs.tag_name }}
max-versions-to-keep: 5
token: ${{ secrets.WINGET_TOKEN }}
create_sentry_release:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: steps::checkout_repo
@@ -86,3 +101,19 @@ jobs:
SENTRY_ORG: zed-dev
SENTRY_PROJECT: zed
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
+ notify_on_failure:
+ needs:
+ - rebuild_releases_page
+ - post_to_discord
+ - publish_winget
+ - create_sentry_release
+ if: failure()
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: release::notify_on_failure::notify_slack
+ run: |-
+ curl -X POST -H 'Content-type: application/json'\
+ --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
+ shell: bash -euxo pipefail {0}
+ env:
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}
diff --git a/.github/workflows/autofix_pr.yml b/.github/workflows/autofix_pr.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d3688a722aa107efb3dfb95351404f43c9aece65
--- /dev/null
+++ b/.github/workflows/autofix_pr.yml
@@ -0,0 +1,128 @@
+# Generated from xtask::workflows::autofix_pr
+# Rebuild with `cargo xtask workflows`.
+name: autofix_pr
+run-name: 'autofix PR #${{ inputs.pr_number }}'
+on:
+ workflow_dispatch:
+ inputs:
+ pr_number:
+ description: pr_number
+ required: true
+ type: string
+ run_clippy:
+ description: run_clippy
+ type: boolean
+ default: 'true'
+jobs:
+ run_autofix:
+ runs-on: namespace-profile-16x32-ubuntu-2204
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - name: autofix_pr::run_autofix::checkout_pr
+ run: gh pr checkout ${{ inputs.pr_number }}
+ shell: bash -euxo pipefail {0}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: steps::setup_cargo_config
+ run: |
+ mkdir -p ./../.cargo
+ cp ./.cargo/ci-config.toml ./../.cargo/config.toml
+ shell: bash -euxo pipefail {0}
+ - name: steps::cache_rust_dependencies_namespace
+ uses: namespacelabs/nscloud-cache-action@v1
+ with:
+ cache: rust
+ - name: steps::setup_linux
+ run: ./script/linux
+ shell: bash -euxo pipefail {0}
+ - name: steps::install_mold
+ run: ./script/install-mold
+ shell: bash -euxo pipefail {0}
+ - name: steps::download_wasi_sdk
+ run: ./script/download-wasi-sdk
+ shell: bash -euxo pipefail {0}
+ - name: steps::setup_pnpm
+ uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2
+ with:
+ version: '9'
+ - name: autofix_pr::run_autofix::run_prettier_fix
+ run: ./script/prettier --write
+ shell: bash -euxo pipefail {0}
+ - name: autofix_pr::run_autofix::run_cargo_fmt
+ run: cargo fmt --all
+ shell: bash -euxo pipefail {0}
+ - name: autofix_pr::run_autofix::run_clippy_fix
+ if: ${{ inputs.run_clippy }}
+ run: cargo clippy --workspace --release --all-targets --all-features --fix --allow-dirty --allow-staged
+ shell: bash -euxo pipefail {0}
+ - id: create-patch
+ name: autofix_pr::run_autofix::create_patch
+ run: |
+ if git diff --quiet; then
+ echo "No changes to commit"
+ echo "has_changes=false" >> "$GITHUB_OUTPUT"
+ else
+ git diff > autofix.patch
+ echo "has_changes=true" >> "$GITHUB_OUTPUT"
+ fi
+ shell: bash -euxo pipefail {0}
+ - name: upload artifact autofix-patch
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+ with:
+ name: autofix-patch
+ path: autofix.patch
+ if-no-files-found: ignore
+ retention-days: '1'
+ - name: steps::cleanup_cargo_config
+ if: always()
+ run: |
+ rm -rf ./../.cargo
+ shell: bash -euxo pipefail {0}
+ outputs:
+ has_changes: ${{ steps.create-patch.outputs.has_changes }}
+ commit_changes:
+ needs:
+ - run_autofix
+ if: needs.run_autofix.outputs.has_changes == 'true'
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - id: get-app-token
+ name: steps::authenticate_as_zippy
+ uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1
+ with:
+ app-id: ${{ secrets.ZED_ZIPPY_APP_ID }}
+ private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
+ - name: steps::checkout_repo_with_token
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ token: ${{ steps.get-app-token.outputs.token }}
+ - name: autofix_pr::commit_changes::checkout_pr
+ run: gh pr checkout ${{ inputs.pr_number }}
+ shell: bash -euxo pipefail {0}
+ env:
+ GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
+ - name: autofix_pr::download_patch_artifact
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
+ with:
+ name: autofix-patch
+ - name: autofix_pr::commit_changes::apply_patch
+ run: git apply autofix.patch
+ shell: bash -euxo pipefail {0}
+ - name: autofix_pr::commit_changes::commit_and_push
+ run: |
+ git commit -am "Autofix"
+ git push
+ shell: bash -euxo pipefail {0}
+ env:
+ GIT_COMMITTER_NAME: Zed Zippy
+ GIT_COMMITTER_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com
+ GIT_AUTHOR_NAME: Zed Zippy
+ GIT_AUTHOR_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com
+ GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
+concurrency:
+ group: ${{ github.workflow }}-${{ inputs.pr_number }}
+ cancel-in-progress: true
diff --git a/.github/workflows/bump_patch_version.yml b/.github/workflows/bump_patch_version.yml
index bfaf7a271b5e31b60c999c7dcf8d17538d135355..e1ae890043f31269a9c894f9f8ba408b3db81ffb 100644
--- a/.github/workflows/bump_patch_version.yml
+++ b/.github/workflows/bump_patch_version.yml
@@ -42,7 +42,7 @@ jobs:
exit 1
;;
esac
- which cargo-set-version > /dev/null || cargo install cargo-edit
+ which cargo-set-version > /dev/null || cargo install cargo-edit -f --no-default-features --features "set-version"
output="$(cargo set-version -p zed --bump patch 2>&1 | sed 's/.* //')"
export GIT_COMMITTER_NAME="Zed Bot"
export GIT_COMMITTER_EMAIL="hi@zed.dev"
diff --git a/.github/workflows/cherry_pick.yml b/.github/workflows/cherry_pick.yml
index 69a46558396bd04db9f43e5d401c74d14b07fc88..d4dee5154f2209521f3e9d183c05c118e8861521 100644
--- a/.github/workflows/cherry_pick.yml
+++ b/.github/workflows/cherry_pick.yml
@@ -1,6 +1,7 @@
# Generated from xtask::workflows::cherry_pick
# Rebuild with `cargo xtask workflows`.
name: cherry_pick
+run-name: 'cherry_pick to ${{ inputs.channel }} #${{ inputs.pr_number }}'
on:
workflow_dispatch:
inputs:
@@ -16,6 +17,10 @@ on:
description: channel
required: true
type: string
+ pr_number:
+ description: pr_number
+ required: true
+ type: string
jobs:
run_cherry_pick:
runs-on: namespace-profile-2x4-ubuntu-2404
@@ -25,7 +30,7 @@ jobs:
with:
clean: false
- id: get-app-token
- name: cherry_pick::run_cherry_pick::authenticate_as_zippy
+ name: steps::authenticate_as_zippy
uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1
with:
app-id: ${{ secrets.ZED_ZIPPY_APP_ID }}
diff --git a/.github/workflows/community_champion_auto_labeler.yml b/.github/workflows/community_champion_auto_labeler.yml
index c525bf4738f888b5ca84230982ff1f4f5da2db2f..d73b38320731e0a2f9a52ff863de5095eddb7b6a 100644
--- a/.github/workflows/community_champion_auto_labeler.yml
+++ b/.github/workflows/community_champion_auto_labeler.yml
@@ -13,13 +13,73 @@ jobs:
steps:
- name: Check if author is a community champion and apply label
uses: actions/github-script@v7
+ env:
+ COMMUNITY_CHAMPIONS: |
+ 0x2CA
+ 5brian
+ 5herlocked
+ abdelq
+ afgomez
+ AidanV
+ akbxr
+ AlvaroParker
+ amtoaer
+ artemevsevev
+ bajrangCoder
+ bcomnes
+ Be-ing
+ blopker
+ bnjjj
+ bobbymannino
+ CharlesChen0823
+ chbk
+ cppcoffee
+ davidbarsky
+ davewa
+ ddoemonn
+ djsauble
+ errmayank
+ fantacell
+ findrakecil
+ FloppyDisco
+ gko
+ huacnlee
+ imumesh18
+ jacobtread
+ jansol
+ jeffreyguenther
+ jenslys
+ jongretar
+ lemorage
+ lnay
+ marcocondrache
+ marius851000
+ mikebronner
+ ognevny
+ playdohface
+ RemcoSmitsDev
+ romaninsh
+ Simek
+ someone13574
+ sourcefrog
+ suxiaoshao
+ Takk8IS
+ thedadams
+ tidely
+ timvermeulen
+ valentinegb
+ versecafe
+ vitallium
+ warrenjokinen
+ WhySoBad
+ ya7010
+ Zertsov
with:
script: |
- const communityChampionBody = `${{ secrets.COMMUNITY_CHAMPIONS }}`;
-
- const communityChampions = communityChampionBody
+ const communityChampions = process.env.COMMUNITY_CHAMPIONS
.split('\n')
- .map(handle => handle.trim().toLowerCase());
+ .map(handle => handle.trim().toLowerCase())
+ .filter(handle => handle.length > 0);
let author;
if (context.eventName === 'issues') {
diff --git a/.github/workflows/community_close_stale_issues.yml b/.github/workflows/community_close_stale_issues.yml
index a38354c31709502d7c35bb43104691c0e63d9f4b..14c1a0a08338ee513a8269094b41ee404beef726 100644
--- a/.github/workflows/community_close_stale_issues.yml
+++ b/.github/workflows/community_close_stale_issues.yml
@@ -1,7 +1,7 @@
name: "Close Stale Issues"
on:
schedule:
- - cron: "0 7,9,11 * * 3"
+ - cron: "0 8 31 DEC *"
workflow_dispatch:
jobs:
@@ -15,14 +15,15 @@ jobs:
stale-issue-message: >
Hi there! 👋
- We're working to clean up our issue tracker by closing older issues that might not be relevant anymore. If you are able to reproduce this issue in the latest version of Zed, please let us know by commenting on this issue, and we will keep it open. If you can't reproduce it, feel free to close the issue yourself. Otherwise, we'll close it in 7 days.
+ We're working to clean up our issue tracker by closing older bugs that might not be relevant anymore. If you are able to reproduce this issue in the latest version of Zed, please let us know by commenting on this issue, and it will be kept open. If you can't reproduce it, feel free to close the issue yourself. Otherwise, it will close automatically in 14 days.
Thanks for your help!
close-issue-message: "This issue was closed due to inactivity. If you're still experiencing this problem, please open a new issue with a link to this issue."
- days-before-stale: 120
- days-before-close: 7
- any-of-issue-labels: "bug,panic / crash"
+ days-before-stale: 60
+ days-before-close: 14
+ only-issue-types: "Bug,Crash"
operations-per-run: 1000
ascending: true
enable-statistics: true
stale-issue-label: "stale"
+ exempt-issue-labels: "never stale"
diff --git a/.github/workflows/compare_perf.yml b/.github/workflows/compare_perf.yml
index 5bcb733f3f21c95e530d7c221df080997dfc24eb..48fc850f8f039d5c25071ba91381ea9f905ab811 100644
--- a/.github/workflows/compare_perf.yml
+++ b/.github/workflows/compare_perf.yml
@@ -39,8 +39,7 @@ jobs:
run: ./script/download-wasi-sdk
shell: bash -euxo pipefail {0}
- name: compare_perf::run_perf::install_hyperfine
- run: cargo install hyperfine
- shell: bash -euxo pipefail {0}
+ uses: taiki-e/install-action@hyperfine
- name: steps::git_checkout
run: git fetch origin ${{ inputs.base }} && git checkout ${{ inputs.base }}
shell: bash -euxo pipefail {0}
diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml
index 054767e5f1fd86c2a5b8fa2112802e797ec10f6e..9d6054eb3e7546088d29dd9c6316a3494ea6fb17 100644
--- a/.github/workflows/danger.yml
+++ b/.github/workflows/danger.yml
@@ -12,7 +12,7 @@ on:
- main
jobs:
danger:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: steps::checkout_repo
diff --git a/.github/workflows/deploy_collab.yml b/.github/workflows/deploy_collab.yml
index c61879faa8cd0a5dbdbed03a140f8e558f13322b..ce0c0eac40c8c34992f8838af396e75e6cecc0c8 100644
--- a/.github/workflows/deploy_collab.yml
+++ b/.github/workflows/deploy_collab.yml
@@ -43,9 +43,7 @@ jobs:
fetch-depth: 0
- name: Install cargo nextest
- shell: bash -euxo pipefail {0}
- run: |
- cargo install cargo-nextest --locked
+ uses: taiki-e/install-action@nextest
- name: Limit target directory size
shell: bash -euxo pipefail {0}
diff --git a/.github/workflows/extension_bump.yml b/.github/workflows/extension_bump.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31676e5c914719a34f8b2e61193475ed107cd2db
--- /dev/null
+++ b/.github/workflows/extension_bump.yml
@@ -0,0 +1,148 @@
+# Generated from xtask::workflows::extension_bump
+# Rebuild with `cargo xtask workflows`.
+name: extension_bump
+env:
+ CARGO_TERM_COLOR: always
+ RUST_BACKTRACE: '1'
+ CARGO_INCREMENTAL: '0'
+ ZED_EXTENSION_CLI_SHA: 7cfce605704d41ca247e3f84804bf323f6c6caaf
+on:
+ workflow_call:
+ inputs:
+ bump-type:
+ description: bump-type
+ type: string
+ default: patch
+ force-bump:
+ description: force-bump
+ required: true
+ type: boolean
+ secrets:
+ app-id:
+ description: The app ID used to create the PR
+ required: true
+ app-secret:
+ description: The app secret for the corresponding app ID
+ required: true
+jobs:
+ check_bump_needed:
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ fetch-depth: 0
+ - id: compare-versions-check
+ name: extension_bump::compare_versions
+ run: |
+ CURRENT_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)"
+ PR_PARENT_SHA="${{ github.event.pull_request.head.sha }}"
+
+ if [[ -n "$PR_PARENT_SHA" ]]; then
+ git checkout "$PR_PARENT_SHA"
+ elif BRANCH_PARENT_SHA="$(git merge-base origin/main origin/zed-zippy-autobump)"; then
+ git checkout "$BRANCH_PARENT_SHA"
+ else
+ git checkout "$(git log -1 --format=%H)"~1
+ fi
+
+ PARENT_COMMIT_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)"
+
+ [[ "$CURRENT_VERSION" == "$PARENT_COMMIT_VERSION" ]] && \
+ echo "needs_bump=true" >> "$GITHUB_OUTPUT" || \
+ echo "needs_bump=false" >> "$GITHUB_OUTPUT"
+
+ echo "current_version=${CURRENT_VERSION}" >> "$GITHUB_OUTPUT"
+ shell: bash -euxo pipefail {0}
+ outputs:
+ needs_bump: ${{ steps.compare-versions-check.outputs.needs_bump }}
+ current_version: ${{ steps.compare-versions-check.outputs.current_version }}
+ timeout-minutes: 1
+ bump_extension_version:
+ needs:
+ - check_bump_needed
+ if: |-
+ (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') &&
+ (inputs.force-bump == 'true' || needs.check_bump_needed.outputs.needs_bump == 'true')
+ runs-on: namespace-profile-8x16-ubuntu-2204
+ steps:
+ - id: generate-token
+ name: extension_bump::generate_token
+ uses: actions/create-github-app-token@v2
+ with:
+ app-id: ${{ secrets.app-id }}
+ private-key: ${{ secrets.app-secret }}
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - name: extension_bump::install_bump_2_version
+ run: pip install bump2version
+ shell: bash -euxo pipefail {0}
+ - id: bump-version
+ name: extension_bump::bump_version
+ run: |
+ OLD_VERSION="${{ needs.check_bump_needed.outputs.current_version }}"
+
+ BUMP_FILES=("extension.toml")
+ if [[ -f "Cargo.toml" ]]; then
+ BUMP_FILES+=("Cargo.toml")
+ fi
+
+ bump2version --verbose --current-version "$OLD_VERSION" --no-configured-files ${{ inputs.bump-type }} "${BUMP_FILES[@]}"
+
+ if [[ -f "Cargo.toml" ]]; then
+ cargo update --workspace
+ fi
+
+ NEW_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)"
+
+ echo "new_version=${NEW_VERSION}" >> "$GITHUB_OUTPUT"
+ shell: bash -euxo pipefail {0}
+ - name: extension_bump::create_pull_request
+ uses: peter-evans/create-pull-request@v7
+ with:
+ title: Bump version to ${{ steps.bump-version.outputs.new_version }}
+ body: This PR bumps the version of this extension to v${{ steps.bump-version.outputs.new_version }}
+ commit-message: Bump version to v${{ steps.bump-version.outputs.new_version }}
+ branch: zed-zippy-autobump
+ committer: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
+ base: main
+ delete-branch: true
+ token: ${{ steps.generate-token.outputs.token }}
+ sign-commits: true
+ assignees: ${{ github.actor }}
+ timeout-minutes: 1
+ create_version_label:
+ needs:
+ - check_bump_needed
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.check_bump_needed.outputs.needs_bump == 'false'
+ runs-on: namespace-profile-8x16-ubuntu-2204
+ steps:
+ - id: generate-token
+ name: extension_bump::generate_token
+ uses: actions/create-github-app-token@v2
+ with:
+ app-id: ${{ secrets.app-id }}
+ private-key: ${{ secrets.app-secret }}
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - name: extension_bump::create_version_tag
+ uses: actions/github-script@v7
+ with:
+ script: |-
+ github.rest.git.createRef({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ ref: 'refs/tags/v${{ needs.check_bump_needed.outputs.current_version }}',
+ sha: context.sha
+ })
+ github-token: ${{ steps.generate-token.outputs.token }}
+ timeout-minutes: 1
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
+ cancel-in-progress: true
diff --git a/.github/workflows/extension_release.yml b/.github/workflows/extension_release.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5212a79c3e55637aa932be62aea0a626af545a7c
--- /dev/null
+++ b/.github/workflows/extension_release.yml
@@ -0,0 +1,43 @@
+# Generated from xtask::workflows::extension_release
+# Rebuild with `cargo xtask workflows`.
+name: extension_release
+on:
+ workflow_call:
+ secrets:
+ app-id:
+ description: The app ID used to create the PR
+ required: true
+ app-secret:
+ description: The app secret for the corresponding app ID
+ required: true
+jobs:
+ create_release:
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
+ runs-on: namespace-profile-8x16-ubuntu-2204
+ steps:
+ - id: generate-token
+ name: extension_bump::generate_token
+ uses: actions/create-github-app-token@v2
+ with:
+ app-id: ${{ secrets.app-id }}
+ private-key: ${{ secrets.app-secret }}
+ owner: zed-industries
+ repositories: extensions
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - id: get-extension-id
+ name: extension_release::get_extension_id
+ run: |
+ EXTENSION_ID="$(sed -n 's/id = \"\(.*\)\"/\1/p' < extension.toml)"
+
+ echo "extension_id=${EXTENSION_ID}" >> "$GITHUB_OUTPUT"
+ shell: bash -euxo pipefail {0}
+ - name: extension_release::release_action
+ uses: huacnlee/zed-extension-action@v2
+ with:
+ extension-name: ${{ steps.get-extension-id.outputs.extension_id }}
+ push-to: zed-industries/extensions
+ env:
+ COMMITTER_TOKEN: ${{ steps.generate-token.outputs.token }}
diff --git a/.github/workflows/extension_tests.yml b/.github/workflows/extension_tests.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9f0917e388c74cffed8f342f7504bc111e6f5147
--- /dev/null
+++ b/.github/workflows/extension_tests.yml
@@ -0,0 +1,133 @@
+# Generated from xtask::workflows::extension_tests
+# Rebuild with `cargo xtask workflows`.
+name: extension_tests
+env:
+ CARGO_TERM_COLOR: always
+ RUST_BACKTRACE: '1'
+ CARGO_INCREMENTAL: '0'
+ ZED_EXTENSION_CLI_SHA: 7cfce605704d41ca247e3f84804bf323f6c6caaf
+on:
+ workflow_call: {}
+jobs:
+ orchestrate:
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }}
+ - id: filter
+ name: filter
+ run: |
+ if [ -z "$GITHUB_BASE_REF" ]; then
+ echo "Not in a PR context (i.e., push to main/stable/preview)"
+ COMPARE_REV="$(git rev-parse HEAD~1)"
+ else
+ echo "In a PR context comparing to pull_request.base.ref"
+ git fetch origin "$GITHUB_BASE_REF" --depth=350
+ COMPARE_REV="$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD)"
+ fi
+ CHANGED_FILES="$(git diff --name-only "$COMPARE_REV" ${{ github.sha }})"
+
+ check_pattern() {
+ local output_name="$1"
+ local pattern="$2"
+ local grep_arg="$3"
+
+ echo "$CHANGED_FILES" | grep "$grep_arg" "$pattern" && \
+ echo "${output_name}=true" >> "$GITHUB_OUTPUT" || \
+ echo "${output_name}=false" >> "$GITHUB_OUTPUT"
+ }
+
+ check_pattern "check_rust" '^(Cargo.lock|Cargo.toml|.*\.rs)$' -qP
+ check_pattern "check_extension" '^.*\.scm$' -qP
+ shell: bash -euxo pipefail {0}
+ outputs:
+ check_rust: ${{ steps.filter.outputs.check_rust }}
+ check_extension: ${{ steps.filter.outputs.check_extension }}
+ check_rust:
+ needs:
+ - orchestrate
+ if: needs.orchestrate.outputs.check_rust == 'true'
+ runs-on: namespace-profile-16x32-ubuntu-2204
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - name: steps::cache_rust_dependencies_namespace
+ uses: namespacelabs/nscloud-cache-action@v1
+ with:
+ cache: rust
+ - name: steps::cargo_fmt
+ run: cargo fmt --all -- --check
+ shell: bash -euxo pipefail {0}
+ - name: extension_tests::run_clippy
+ run: cargo clippy --release --all-targets --all-features -- --deny warnings
+ shell: bash -euxo pipefail {0}
+ - name: steps::cargo_install_nextest
+ uses: taiki-e/install-action@nextest
+ - name: steps::cargo_nextest
+ run: cargo nextest run --workspace --no-fail-fast
+ shell: bash -euxo pipefail {0}
+ env:
+ NEXTEST_NO_TESTS: warn
+ timeout-minutes: 3
+ check_extension:
+ needs:
+ - orchestrate
+ if: needs.orchestrate.outputs.check_extension == 'true'
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - id: cache-zed-extension-cli
+ name: extension_tests::cache_zed_extension_cli
+ uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
+ with:
+ path: zed-extension
+ key: zed-extension-${{ env.ZED_EXTENSION_CLI_SHA }}
+ - name: extension_tests::download_zed_extension_cli
+ if: steps.cache-zed-extension-cli.outputs.cache-hit != 'true'
+ run: |
+ wget --quiet "https://zed-extension-cli.nyc3.digitaloceanspaces.com/$ZED_EXTENSION_CLI_SHA/x86_64-unknown-linux-gnu/zed-extension"
+ chmod +x zed-extension
+ shell: bash -euxo pipefail {0}
+ - name: extension_tests::check
+ run: |
+ mkdir -p /tmp/ext-scratch
+ mkdir -p /tmp/ext-output
+ ./zed-extension --source-dir . --scratch-dir /tmp/ext-scratch --output-dir /tmp/ext-output
+ shell: bash -euxo pipefail {0}
+ timeout-minutes: 2
+ tests_pass:
+ needs:
+ - orchestrate
+ - check_rust
+ - check_extension
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always()
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: run_tests::tests_pass
+ run: |
+ set +x
+ EXIT_CODE=0
+
+ check_result() {
+ echo "* $1: $2"
+ if [[ "$2" != "skipped" && "$2" != "success" ]]; then EXIT_CODE=1; fi
+ }
+
+ check_result "orchestrate" "${{ needs.orchestrate.result }}"
+ check_result "check_rust" "${{ needs.check_rust.result }}"
+ check_result "check_extension" "${{ needs.check_extension.result }}"
+
+ exit $EXIT_CODE
+ shell: bash -euxo pipefail {0}
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
+ cancel-in-progress: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 25f8b00910f5d64e9319eb40943ae1b5b89d8f28..8cc63340902fb061c66e5896308f2cad9c31f947 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,7 +10,7 @@ on:
- v*
jobs:
run_tests_mac:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
@@ -29,14 +29,11 @@ jobs:
- name: steps::clippy
run: ./script/clippy
shell: bash -euxo pipefail {0}
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: bash -euxo pipefail {0}
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 300
shell: bash -euxo pipefail {0}
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: bash -euxo pipefail {0}
- name: steps::cleanup_cargo_config
if: always()
@@ -45,7 +42,7 @@ jobs:
shell: bash -euxo pipefail {0}
timeout-minutes: 60
run_tests_linux:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-16x32-ubuntu-2204
steps:
- name: steps::checkout_repo
@@ -77,14 +74,19 @@ jobs:
- name: steps::clippy
run: ./script/clippy
shell: bash -euxo pipefail {0}
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
+ - name: steps::trigger_autofix
+ if: failure() && github.event_name == 'pull_request' && github.actor != 'zed-zippy[bot]'
+ run: gh workflow run autofix_pr.yml -f pr_number=${{ github.event.pull_request.number }} -f run_clippy=true
shell: bash -euxo pipefail {0}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: steps::cargo_install_nextest
+ uses: taiki-e/install-action@nextest
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 250
shell: bash -euxo pipefail {0}
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: bash -euxo pipefail {0}
- name: steps::cleanup_cargo_config
if: always()
@@ -93,7 +95,7 @@ jobs:
shell: bash -euxo pipefail {0}
timeout-minutes: 60
run_tests_windows:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-32vcpu-windows-2022
steps:
- name: steps::checkout_repo
@@ -112,14 +114,11 @@ jobs:
- name: steps::clippy
run: ./script/clippy.ps1
shell: pwsh
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: pwsh
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than.ps1 250
shell: pwsh
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: pwsh
- name: steps::cleanup_cargo_config
if: always()
@@ -128,7 +127,7 @@ jobs:
shell: pwsh
timeout-minutes: 60
check_scripts:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: steps::checkout_repo
@@ -157,7 +156,7 @@ jobs:
shell: bash -euxo pipefail {0}
timeout-minutes: 60
create_draft_release:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: steps::checkout_repo
@@ -479,11 +478,31 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v') && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
+ - id: get-app-token
+ name: steps::authenticate_as_zippy
+ uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1
+ with:
+ app-id: ${{ secrets.ZED_ZIPPY_APP_ID }}
+ private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
- name: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
run: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
shell: bash -euxo pipefail {0}
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
+ notify_on_failure:
+ needs:
+ - upload_release_assets
+ - auto_release_preview
+ if: failure()
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: release::notify_on_failure::notify_slack
+ run: |-
+ curl -X POST -H 'Content-type: application/json'\
+ --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
+ shell: bash -euxo pipefail {0}
+ env:
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
cancel-in-progress: true
diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml
index 431308bd1cfdf6f4385a8f462edcab8c5769ba5f..d76244175accc3e816cbd7d5dc322d2529a0a236 100644
--- a/.github/workflows/release_nightly.yml
+++ b/.github/workflows/release_nightly.yml
@@ -12,7 +12,7 @@ on:
- cron: 0 7 * * *
jobs:
check_style:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
@@ -28,7 +28,7 @@ jobs:
shell: bash -euxo pipefail {0}
timeout-minutes: 60
run_tests_windows:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-32vcpu-windows-2022
steps:
- name: steps::checkout_repo
@@ -47,14 +47,11 @@ jobs:
- name: steps::clippy
run: ./script/clippy.ps1
shell: pwsh
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: pwsh
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than.ps1 250
shell: pwsh
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: pwsh
- name: steps::cleanup_cargo_config
if: always()
@@ -364,7 +361,7 @@ jobs:
needs:
- check_style
- run_tests_windows
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-32x64-ubuntu-2004
env:
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -395,7 +392,7 @@ jobs:
needs:
- check_style
- run_tests_windows
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-mini-macos
env:
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -437,7 +434,7 @@ jobs:
- bundle_mac_x86_64
- bundle_windows_aarch64
- bundle_windows_x86_64
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-4x8-ubuntu-2204
steps:
- name: steps::checkout_repo
@@ -493,3 +490,21 @@ jobs:
SENTRY_PROJECT: zed
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
timeout-minutes: 60
+ notify_on_failure:
+ needs:
+ - bundle_linux_aarch64
+ - bundle_linux_x86_64
+ - bundle_mac_aarch64
+ - bundle_mac_x86_64
+ - bundle_windows_aarch64
+ - bundle_windows_x86_64
+ if: failure()
+ runs-on: namespace-profile-2x4-ubuntu-2404
+ steps:
+ - name: release::notify_on_failure::notify_slack
+ run: |-
+ curl -X POST -H 'Content-type: application/json'\
+ --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
+ shell: bash -euxo pipefail {0}
+ env:
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}
diff --git a/.github/workflows/run_agent_evals.yml b/.github/workflows/run_agent_evals.yml
index 1a875aa2c463d264002f14264993b9c99ae1f49c..421d5a1c8003eaa42977339b4ab8e5e0df7ee014 100644
--- a/.github/workflows/run_agent_evals.yml
+++ b/.github/workflows/run_agent_evals.yml
@@ -6,6 +6,9 @@ env:
CARGO_INCREMENTAL: '0'
RUST_BACKTRACE: '1'
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
+ GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }}
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_EVAL_TELEMETRY: '1'
MODEL_NAME: ${{ inputs.model_name }}
@@ -48,6 +51,11 @@ jobs:
- name: run_agent_evals::agent_evals::run_eval
run: cargo run --package=eval -- --repetitions=8 --concurrency=1 --model "${MODEL_NAME}"
shell: bash -euxo pipefail {0}
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
+ GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }}
- name: steps::cleanup_cargo_config
if: always()
run: |
diff --git a/.github/workflows/run_bundling.yml b/.github/workflows/run_bundling.yml
index ddedd38ebedb647f07e162286365f4e6b95f45a2..f56e56ac7f139926085f33d6e97d3dea6e03a4bb 100644
--- a/.github/workflows/run_bundling.yml
+++ b/.github/workflows/run_bundling.yml
@@ -13,7 +13,7 @@ jobs:
bundle_linux_aarch64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4
env:
CARGO_INCREMENTAL: 0
@@ -56,7 +56,7 @@ jobs:
bundle_linux_x86_64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: namespace-profile-32x64-ubuntu-2004
env:
CARGO_INCREMENTAL: 0
@@ -99,7 +99,7 @@ jobs:
bundle_mac_aarch64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
@@ -145,7 +145,7 @@ jobs:
bundle_mac_x86_64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
@@ -191,7 +191,7 @@ jobs:
bundle_windows_aarch64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: self-32vcpu-windows-2022
env:
CARGO_INCREMENTAL: 0
@@ -229,7 +229,7 @@ jobs:
bundle_windows_x86_64:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
- (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
+ (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
runs-on: self-32vcpu-windows-2022
env:
CARGO_INCREMENTAL: 0
diff --git a/.github/workflows/run_cron_unit_evals.yml b/.github/workflows/run_cron_unit_evals.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cdfb51cc5b351d1079369aef3abfa845ca7d0428
--- /dev/null
+++ b/.github/workflows/run_cron_unit_evals.yml
@@ -0,0 +1,77 @@
+# Generated from xtask::workflows::run_cron_unit_evals
+# Rebuild with `cargo xtask workflows`.
+name: run_cron_unit_evals
+env:
+ CARGO_TERM_COLOR: always
+ CARGO_INCREMENTAL: '0'
+ RUST_BACKTRACE: '1'
+ ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
+on:
+ schedule:
+ - cron: 47 1 * * 2
+ workflow_dispatch: {}
+jobs:
+ cron_unit_evals:
+ runs-on: namespace-profile-16x32-ubuntu-2204
+ strategy:
+ matrix:
+ model:
+ - anthropic/claude-sonnet-4-5-latest
+ - anthropic/claude-opus-4-5-latest
+ - google/gemini-3-pro
+ - openai/gpt-5
+ fail-fast: false
+ steps:
+ - name: steps::checkout_repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ clean: false
+ - name: steps::setup_cargo_config
+ run: |
+ mkdir -p ./../.cargo
+ cp ./.cargo/ci-config.toml ./../.cargo/config.toml
+ shell: bash -euxo pipefail {0}
+ - name: steps::cache_rust_dependencies_namespace
+ uses: namespacelabs/nscloud-cache-action@v1
+ with:
+ cache: rust
+ - name: steps::setup_linux
+ run: ./script/linux
+ shell: bash -euxo pipefail {0}
+ - name: steps::install_mold
+ run: ./script/install-mold
+ shell: bash -euxo pipefail {0}
+ - name: steps::download_wasi_sdk
+ run: ./script/download-wasi-sdk
+ shell: bash -euxo pipefail {0}
+ - name: steps::cargo_install_nextest
+ uses: taiki-e/install-action@nextest
+ - name: steps::clear_target_dir_if_large
+ run: ./script/clear-target-dir-if-larger-than 250
+ shell: bash -euxo pipefail {0}
+ - name: ./script/run-unit-evals
+ run: ./script/run-unit-evals
+ shell: bash -euxo pipefail {0}
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
+ GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }}
+ ZED_AGENT_MODEL: ${{ matrix.model }}
+ - name: steps::cleanup_cargo_config
+ if: always()
+ run: |
+ rm -rf ./../.cargo
+ shell: bash -euxo pipefail {0}
+ - name: run_agent_evals::cron_unit_evals::send_failure_to_slack
+ if: ${{ failure() }}
+ uses: slackapi/slack-github-action@b0fa283ad8fea605de13dc3f449259339835fc52
+ with:
+ method: chat.postMessage
+ token: ${{ secrets.SLACK_APP_ZED_UNIT_EVALS_BOT_TOKEN }}
+ payload: |
+ channel: C04UDRNNJFQ
+ text: "Unit Evals Failed: https://github.com/zed-industries/zed/actions/runs/${{ github.run_id }}"
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
+ cancel-in-progress: true
diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml
index a7d0a145b6d26d964020f48c321556032ae567ed..a9a46b7a797faae793c87601d306a2aea80e6592 100644
--- a/.github/workflows/run_tests.yml
+++ b/.github/workflows/run_tests.yml
@@ -15,7 +15,7 @@ on:
- v[0-9]+.[0-9]+.x
jobs:
orchestrate:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: steps::checkout_repo
@@ -47,7 +47,7 @@ jobs:
}
check_pattern "run_action_checks" '^\.github/(workflows/|actions/|actionlint.yml)|tooling/xtask|script/' -qP
- check_pattern "run_docs" '^docs/' -qP
+ check_pattern "run_docs" '^(docs/|crates/.*\.rs)' -qP
check_pattern "run_licenses" '^(Cargo.lock|script/.*licenses)' -qP
check_pattern "run_nix" '^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' -qP
check_pattern "run_tests" '^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!run_tests)))' -qvP
@@ -59,7 +59,7 @@ jobs:
run_nix: ${{ steps.filter.outputs.run_nix }}
run_tests: ${{ steps.filter.outputs.run_tests }}
check_style:
- if: github.repository_owner == 'zed-industries'
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: namespace-profile-4x8-ubuntu-2204
steps:
- name: steps::checkout_repo
@@ -77,6 +77,15 @@ jobs:
- name: ./script/prettier
run: ./script/prettier
shell: bash -euxo pipefail {0}
+ - name: steps::cargo_fmt
+ run: cargo fmt --all -- --check
+ shell: bash -euxo pipefail {0}
+ - name: steps::trigger_autofix
+ if: failure() && github.event_name == 'pull_request' && github.actor != 'zed-zippy[bot]'
+ run: gh workflow run autofix_pr.yml -f pr_number=${{ github.event.pull_request.number }} -f run_clippy=false
+ shell: bash -euxo pipefail {0}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: ./script/check-todos
run: ./script/check-todos
shell: bash -euxo pipefail {0}
@@ -84,12 +93,9 @@ jobs:
run: ./script/check-keymaps
shell: bash -euxo pipefail {0}
- name: run_tests::check_style::check_for_typos
- uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1
+ uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06
with:
config: ./typos.toml
- - name: steps::cargo_fmt
- run: cargo fmt --all -- --check
- shell: bash -euxo pipefail {0}
timeout-minutes: 60
run_tests_windows:
needs:
@@ -113,14 +119,11 @@ jobs:
- name: steps::clippy
run: ./script/clippy.ps1
shell: pwsh
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: pwsh
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than.ps1 250
shell: pwsh
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: pwsh
- name: steps::cleanup_cargo_config
if: always()
@@ -163,14 +166,19 @@ jobs:
- name: steps::clippy
run: ./script/clippy
shell: bash -euxo pipefail {0}
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
+ - name: steps::trigger_autofix
+ if: failure() && github.event_name == 'pull_request' && github.actor != 'zed-zippy[bot]'
+ run: gh workflow run autofix_pr.yml -f pr_number=${{ github.event.pull_request.number }} -f run_clippy=true
shell: bash -euxo pipefail {0}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: steps::cargo_install_nextest
+ uses: taiki-e/install-action@nextest
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 250
shell: bash -euxo pipefail {0}
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: bash -euxo pipefail {0}
- name: steps::cleanup_cargo_config
if: always()
@@ -200,14 +208,11 @@ jobs:
- name: steps::clippy
run: ./script/clippy
shell: bash -euxo pipefail {0}
- - name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: bash -euxo pipefail {0}
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 300
shell: bash -euxo pipefail {0}
- name: steps::cargo_nextest
- run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
+ run: cargo nextest run --workspace --no-fail-fast
shell: bash -euxo pipefail {0}
- name: steps::cleanup_cargo_config
if: always()
@@ -500,7 +505,12 @@ jobs:
needs:
- orchestrate
if: needs.orchestrate.outputs.run_tests == 'true'
- runs-on: self-mini-macos
+ runs-on: namespace-profile-16x32-ubuntu-2204
+ env:
+ GIT_AUTHOR_NAME: Protobuf Action
+ GIT_AUTHOR_EMAIL: ci@zed.dev
+ GIT_COMMITTER_NAME: Protobuf Action
+ GIT_COMMITTER_EMAIL: ci@zed.dev
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -524,6 +534,7 @@ jobs:
uses: bufbuild/buf-setup-action@v1
with:
version: v1.29.0
+ github_token: ${{ secrets.GITHUB_TOKEN }}
- name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_breaking_action
uses: bufbuild/buf-breaking-action@v1
with:
@@ -545,7 +556,7 @@ jobs:
- check_scripts
- build_nix_linux_x86_64
- build_nix_mac_aarch64
- if: github.repository_owner == 'zed-industries' && always()
+ if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always()
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: run_tests::tests_pass
diff --git a/.github/workflows/run_unit_evals.yml b/.github/workflows/run_unit_evals.yml
index a41b4fb6d7058a97dcd5a98894a0d2c4687ceed4..8f64a5c8bcfd07d56279438795f817bfaa1e2e28 100644
--- a/.github/workflows/run_unit_evals.yml
+++ b/.github/workflows/run_unit_evals.yml
@@ -1,17 +1,26 @@
-# Generated from xtask::workflows::run_agent_evals
+# Generated from xtask::workflows::run_unit_evals
# Rebuild with `cargo xtask workflows`.
-name: run_agent_evals
+name: run_unit_evals
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: '0'
RUST_BACKTRACE: '1'
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
+ ZED_EVAL_TELEMETRY: '1'
+ MODEL_NAME: ${{ inputs.model_name }}
on:
- schedule:
- - cron: 47 1 * * 2
- workflow_dispatch: {}
+ workflow_dispatch:
+ inputs:
+ model_name:
+ description: model_name
+ required: true
+ type: string
+ commit_sha:
+ description: commit_sha
+ required: true
+ type: string
jobs:
- unit_evals:
+ run_unit_evals:
runs-on: namespace-profile-16x32-ubuntu-2204
steps:
- name: steps::checkout_repo
@@ -37,8 +46,7 @@ jobs:
run: ./script/download-wasi-sdk
shell: bash -euxo pipefail {0}
- name: steps::cargo_install_nextest
- run: cargo install cargo-nextest --locked
- shell: bash -euxo pipefail {0}
+ uses: taiki-e/install-action@nextest
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 250
shell: bash -euxo pipefail {0}
@@ -47,20 +55,15 @@ jobs:
shell: bash -euxo pipefail {0}
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- - name: run_agent_evals::unit_evals::send_failure_to_slack
- if: ${{ failure() }}
- uses: slackapi/slack-github-action@b0fa283ad8fea605de13dc3f449259339835fc52
- with:
- method: chat.postMessage
- token: ${{ secrets.SLACK_APP_ZED_UNIT_EVALS_BOT_TOKEN }}
- payload: |
- channel: C04UDRNNJFQ
- text: "Unit Evals Failed: https://github.com/zed-industries/zed/actions/runs/${{ github.run_id }}"
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
+ GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }}
+ UNIT_EVAL_COMMIT: ${{ inputs.commit_sha }}
- name: steps::cleanup_cargo_config
if: always()
run: |
rm -rf ./../.cargo
shell: bash -euxo pipefail {0}
concurrency:
- group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
+ group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.run_id }}
cancel-in-progress: true
diff --git a/.gitignore b/.gitignore
index 2a91a65b6eaef906681bf3f6e315de07b094c4b1..54faaf1374299ee8f97925a95a93b375c349d707 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
.DS_Store
.blob_store
.build
+.claude/settings.local.json
.envrc
.flatpak-builder
.idea
@@ -39,3 +40,6 @@ xcuserdata/
# Don't commit any secrets to the repo.
.env
.env.secret.toml
+
+# `nix build` output
+/result
diff --git a/.mailmap b/.mailmap
index db4632d6ca34346d3e8fa289222d7f310b7bdfe5..1e956c52cf76589fc016e1410122ccd94e4818ae 100644
--- a/.mailmap
+++ b/.mailmap
@@ -141,6 +141,9 @@ Uladzislau Kaminski
Uladzislau Kaminski
Vitaly Slobodin
Vitaly Slobodin
+Yara
+Yara
+Yara
Will Bradley
Will Bradley
WindSoilder
diff --git a/.rules b/.rules
index 82d15eb9e88299ee7c7fe6c717b2da2646e676a7..7c98c65d7e0eaf3ed0d57898dbd8acee28a220ae 100644
--- a/.rules
+++ b/.rules
@@ -26,6 +26,12 @@
});
```
+# Timers in tests
+
+* In GPUI tests, prefer GPUI executor timers over `smol::Timer::after(...)` when you need timeouts, delays, or to drive `run_until_parked()`:
+ - Use `cx.background_executor().timer(duration).await` (or `cx.background_executor.timer(duration).await` in `TestAppContext`) so the work is scheduled on GPUI's dispatcher.
+ - Avoid `smol::Timer::after(...)` for test timeouts when you rely on `run_until_parked()`, because it may not be tracked by GPUI's scheduler and can lead to "nothing left to run" when pumping.
+
# GPUI
GPUI is a UI framework which also provides primitives for state and concurrency management.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9cbac4af2b57f0350fa9f5665e110e0d6e7f6341..f7aceadce18788ae2b8bb9d0fe4b5f16225e70d2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -15,15 +15,17 @@ with the community to improve the product in ways we haven't thought of (or had
In particular we love PRs that are:
-- Fixes to existing bugs and issues.
-- Small enhancements to existing features, particularly to make them work for more people.
+- Fixing or extending the docs.
+- Fixing bugs.
+- Small enhancements to existing features to make them work for more people (making things work on more platforms/modes/whatever).
- Small extra features, like keybindings or actions you miss from other editors or extensions.
-- Work towards shipping larger features on our roadmap.
+- Part of a Community Program like [Let's Git Together](https://github.com/zed-industries/zed/issues/41541).
If you're looking for concrete ideas:
-- Our [top-ranking issues](https://github.com/zed-industries/zed/issues/5393) based on votes by the community.
-- Our [public roadmap](https://zed.dev/roadmap) contains a rough outline of our near-term priorities for Zed.
+- [Curated board of issues](https://github.com/orgs/zed-industries/projects/69) suitable for everyone from first-time contributors to seasoned community champions.
+- [Triaged bugs with confirmed steps to reproduce](https://github.com/zed-industries/zed/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3Astate%3Areproducible).
+- [Area labels](https://github.com/zed-industries/zed/labels?q=area%3A*) to browse bugs in a specific part of the product you care about (after clicking on an area label, add type:Bug to the search).
## Sending changes
@@ -37,9 +39,17 @@ like, sorry).
Although we will take a look, we tend to only merge about half the PRs that are
submitted. If you'd like your PR to have the best chance of being merged:
-- Include a clear description of what you're solving, and why it's important to you.
-- Include tests.
-- If it changes the UI, attach screenshots or screen recordings.
+- Make sure the change is **desired**: we're always happy to accept bugfixes,
+ but features should be confirmed with us first if you aim to avoid wasted
+ effort. If there isn't already a GitHub issue for your feature with staff
+ confirmation that we want it, start with a GitHub discussion rather than a PR.
+- Include a clear description of **what you're solving**, and why it's important.
+- Include **tests**.
+- If it changes the UI, attach **screenshots** or screen recordings.
+- Make the PR about **one thing only**, e.g. if it's a bugfix, don't add two
+ features and a refactoring on top of that.
+- Keep AI assistance under your judgement and responsibility: it's unlikely
+ we'll merge a vibe-coded PR that the author doesn't understand.
The internal advice for reviewers is as follows:
@@ -50,10 +60,9 @@ The internal advice for reviewers is as follows:
If you need more feedback from us: the best way is to be responsive to
Github comments, or to offer up time to pair with us.
-If you are making a larger change, or need advice on how to finish the change
-you're making, please open the PR early. We would love to help you get
-things right, and it's often easier to see how to solve a problem before the
-diff gets too big.
+If you need help deciding how to fix a bug, or finish implementing a feature
+that we've agreed we want, please open a PR early so we can discuss how to make
+the change with code in hand.
## Things we will (probably) not merge
@@ -61,11 +70,11 @@ Although there are few hard and fast rules, typically we don't merge:
- Anything that can be provided by an extension. For example a new language, or theme. For adding themes or support for a new language to Zed, check out our [docs on developing extensions](https://zed.dev/docs/extensions/developing-extensions).
- New file icons. Zed's default icon theme consists of icons that are hand-designed to fit together in a cohesive manner, please don't submit PRs with off-the-shelf SVGs.
+- Features where (in our subjective opinion) the extra complexity isn't worth it for the number of people who will benefit.
- Giant refactorings.
- Non-trivial changes with no tests.
- Stylistic code changes that do not alter any app logic. Reducing allocations, removing `.unwrap()`s, fixing typos is great; making code "more readable" — maybe not so much.
-- Features where (in our subjective opinion) the extra complexity isn't worth it for the number of people who will benefit.
-- Anything that seems completely AI generated.
+- Anything that seems AI-generated without understanding the output.
## Bird's-eye view of Zed
diff --git a/Cargo.lock b/Cargo.lock
index a3300a818c12f39406cc39848cae86eeb26a0a56..86b551b1895a0fd6747c35c3fcfe3859396665fa 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -37,6 +37,7 @@ dependencies = [
"terminal",
"ui",
"url",
+ "urlencoding",
"util",
"uuid",
"watch",
@@ -103,12 +104,22 @@ dependencies = [
"project",
"proto",
"release_channel",
+ "semver",
"smallvec",
"ui",
"util",
"workspace",
]
+[[package]]
+name = "addr2line"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
+dependencies = [
+ "gimli 0.31.1",
+]
+
[[package]]
name = "addr2line"
version = "0.25.1"
@@ -158,6 +169,7 @@ dependencies = [
"derive_more 0.99.20",
"editor",
"env_logger 0.11.8",
+ "eval_utils",
"fs",
"futures 0.3.31",
"git",
@@ -183,7 +195,7 @@ dependencies = [
"regex",
"reqwest_client",
"rust-embed",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -209,14 +221,14 @@ dependencies = [
"worktree",
"zed_env_vars",
"zlog",
- "zstd 0.11.2+zstd.1.5.2",
+ "zstd",
]
[[package]]
name = "agent-client-protocol"
-version = "0.7.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525705e39c11cd73f7bc784e3681a9386aa30c8d0630808d3dc2237eb4f9cb1b"
+checksum = "c2ffe7d502c1e451aafc5aff655000f84d09c9af681354ac0012527009b1af13"
dependencies = [
"agent-client-protocol-schema",
"anyhow",
@@ -225,22 +237,22 @@ dependencies = [
"derive_more 2.0.1",
"futures 0.3.31",
"log",
- "parking_lot",
"serde",
"serde_json",
]
[[package]]
name = "agent-client-protocol-schema"
-version = "0.6.2"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecf16c18fea41282d6bbadd1549a06be6836bddb1893f44a6235f340fa24e2af"
+checksum = "8af81cc2d5c3f9c04f73db452efd058333735ba9d51c2cf7ef33c9fee038e7e6"
dependencies = [
"anyhow",
"derive_more 2.0.1",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
+ "strum 0.27.2",
]
[[package]]
@@ -289,6 +301,7 @@ dependencies = [
name = "agent_settings"
version = "0.1.0"
dependencies = [
+ "agent-client-protocol",
"anyhow",
"cloud_llm_client",
"collections",
@@ -298,7 +311,7 @@ dependencies = [
"language_model",
"paths",
"project",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -322,10 +335,12 @@ dependencies = [
"assistant_slash_command",
"assistant_slash_commands",
"assistant_text_thread",
+ "async-fs",
"audio",
"buffer_diff",
"chrono",
"client",
+ "clock",
"cloud_llm_client",
"collections",
"command_palette_hooks",
@@ -333,6 +348,7 @@ dependencies = [
"context_server",
"db",
"editor",
+ "eval_utils",
"extension",
"extension_host",
"feature_flags",
@@ -341,8 +357,10 @@ dependencies = [
"futures 0.3.31",
"fuzzy",
"gpui",
+ "gpui_tokio",
"html_to_markdown",
"http_client",
+ "image",
"indoc",
"itertools 0.14.0",
"jsonschema",
@@ -366,12 +384,13 @@ dependencies = [
"prompt_store",
"proto",
"rand 0.9.2",
- "ref-cast",
"release_channel",
+ "reqwest_client",
"rope",
"rules_library",
- "schemars 1.0.4",
+ "schemars",
"search",
+ "semver",
"serde",
"serde_json",
"serde_json_lenient",
@@ -380,7 +399,6 @@ dependencies = [
"streaming_diff",
"task",
"telemetry",
- "telemetry_events",
"terminal",
"terminal_view",
"text",
@@ -392,13 +410,44 @@ dependencies = [
"ui_input",
"unindent",
"url",
- "urlencoding",
"util",
+ "uuid",
"watch",
"workspace",
"zed_actions",
]
+[[package]]
+name = "agent_ui_v2"
+version = "0.1.0"
+dependencies = [
+ "agent",
+ "agent_servers",
+ "agent_settings",
+ "agent_ui",
+ "anyhow",
+ "assistant_text_thread",
+ "chrono",
+ "db",
+ "editor",
+ "feature_flags",
+ "fs",
+ "fuzzy",
+ "gpui",
+ "menu",
+ "project",
+ "prompt_store",
+ "serde",
+ "serde_json",
+ "settings",
+ "text",
+ "time",
+ "time_format",
+ "ui",
+ "util",
+ "workspace",
+]
+
[[package]]
name = "ahash"
version = "0.7.8"
@@ -625,7 +674,7 @@ dependencies = [
"chrono",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -674,21 +723,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "argminmax"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70f13d10a41ac8d2ec79ee34178d61e6f47a29c2edfe7ef1721c7383b0359e65"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "array-init-cursor"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3"
-
[[package]]
name = "arraydeque"
version = "0.5.1"
@@ -842,7 +876,6 @@ dependencies = [
"fs",
"futures 0.3.31",
"fuzzy",
- "globset",
"gpui",
"html_to_markdown",
"http_client",
@@ -882,6 +915,7 @@ dependencies = [
"fuzzy",
"gpui",
"indoc",
+ "itertools 0.14.0",
"language",
"language_model",
"log",
@@ -900,7 +934,7 @@ dependencies = [
"settings",
"smallvec",
"smol",
- "telemetry_events",
+ "telemetry",
"text",
"ui",
"unindent",
@@ -1238,15 +1272,15 @@ dependencies = [
[[package]]
name = "async_zip"
-version = "0.0.17"
+version = "0.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b9f7252833d5ed4b00aa9604b563529dd5e11de9c23615de2dcdf91eb87b52"
+checksum = "0d8c50d65ce1b0e0cb65a785ff615f78860d7754290647d3b983208daa4f85e6"
dependencies = [
"async-compression",
"crc32fast",
"futures-lite 2.6.1",
"pin-project",
- "thiserror 1.0.69",
+ "thiserror 2.0.17",
]
[[package]]
@@ -1271,15 +1305,6 @@ dependencies = [
"num-traits",
]
-[[package]]
-name = "atoi_simd"
-version = "0.16.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2a49e05797ca52e312a0c658938b7d00693ef037799ef7187678f212d7684cf"
-dependencies = [
- "debug_unsafe",
-]
-
[[package]]
name = "atomic"
version = "0.5.3"
@@ -1341,6 +1366,7 @@ dependencies = [
"parking_lot",
"paths",
"release_channel",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -1376,6 +1402,7 @@ dependencies = [
"http_client",
"markdown_preview",
"release_channel",
+ "semver",
"serde",
"serde_json",
"smol",
@@ -1414,9 +1441,9 @@ dependencies = [
[[package]]
name = "aws-config"
-version = "1.8.8"
+version = "1.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37cf2b6af2a95a20e266782b4f76f1a5e12bf412a9db2de9c1e9123b9d8c0ad8"
+checksum = "1856b1b48b65f71a4dd940b1c0931f9a7b646d4a924b9828ffefc1454714668a"
dependencies = [
"aws-credential-types",
"aws-runtime",
@@ -1461,6 +1488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d"
dependencies = [
"aws-lc-sys",
+ "untrusted 0.7.1",
"zeroize",
]
@@ -1479,9 +1507,9 @@ dependencies = [
[[package]]
name = "aws-runtime"
-version = "1.5.12"
+version = "1.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa006bb32360ed90ac51203feafb9d02e3d21046e1fd3a450a404b90ea73e5d"
+checksum = "9f2402da1a5e16868ba98725e5d73f26b8116eaa892e56f2cd0bf5eec7985f70"
dependencies = [
"aws-credential-types",
"aws-sigv4",
@@ -1504,9 +1532,9 @@ dependencies = [
[[package]]
name = "aws-sdk-bedrockruntime"
-version = "1.109.0"
+version = "1.112.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbfdfd941dcb253c17bf70baddbf1e5b22f19e29d313d2e049bad4b1dadb2011"
+checksum = "c06c037e6823696d752702ec2bad758d3cf95d1b92b712c8ac7e93824b5e2391"
dependencies = [
"aws-credential-types",
"aws-runtime",
@@ -1586,9 +1614,9 @@ dependencies = [
[[package]]
name = "aws-sdk-sso"
-version = "1.86.0"
+version = "1.88.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a0abbfab841446cce6e87af853a3ba2cc1bc9afcd3f3550dd556c43d434c86d"
+checksum = "d05b276777560aa9a196dbba2e3aada4d8006d3d7eeb3ba7fe0c317227d933c4"
dependencies = [
"aws-credential-types",
"aws-runtime",
@@ -1608,9 +1636,9 @@ dependencies = [
[[package]]
name = "aws-sdk-ssooidc"
-version = "1.88.0"
+version = "1.90.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a68d675582afea0e94d38b6ca9c5aaae4ca14f1d36faa6edb19b42e687e70d7"
+checksum = "f9be14d6d9cd761fac3fd234a0f47f7ed6c0df62d83c0eeb7012750e4732879b"
dependencies = [
"aws-credential-types",
"aws-runtime",
@@ -1630,9 +1658,9 @@ dependencies = [
[[package]]
name = "aws-sdk-sts"
-version = "1.88.0"
+version = "1.90.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d30990923f4f675523c51eb1c0dec9b752fb267b36a61e83cbc219c9d86da715"
+checksum = "98a862d704c817d865c8740b62d8bbeb5adcb30965e93b471df8a5bcefa20a80"
dependencies = [
"aws-credential-types",
"aws-runtime",
@@ -1653,9 +1681,9 @@ dependencies = [
[[package]]
name = "aws-sigv4"
-version = "1.3.5"
+version = "1.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffc03068fbb9c8dd5ce1c6fb240678a5cffb86fb2b7b1985c999c4b83c8df68"
+checksum = "c35452ec3f001e1f2f6db107b6373f1f48f05ec63ba2c5c9fa91f07dad32af11"
dependencies = [
"aws-credential-types",
"aws-smithy-eventstream",
@@ -1712,9 +1740,9 @@ dependencies = [
[[package]]
name = "aws-smithy-eventstream"
-version = "0.60.12"
+version = "0.60.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9656b85088f8d9dc7ad40f9a6c7228e1e8447cdf4b046c87e152e0805dea02fa"
+checksum = "e29a304f8319781a39808847efb39561351b1bb76e933da7aa90232673638658"
dependencies = [
"aws-smithy-types",
"bytes 1.10.1",
@@ -1723,9 +1751,9 @@ dependencies = [
[[package]]
name = "aws-smithy-http"
-version = "0.62.4"
+version = "0.62.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3feafd437c763db26aa04e0cc7591185d0961e64c61885bece0fb9d50ceac671"
+checksum = "445d5d720c99eed0b4aa674ed00d835d9b1427dd73e04adaf2f94c6b2d6f9fca"
dependencies = [
"aws-smithy-eventstream",
"aws-smithy-runtime-api",
@@ -1733,6 +1761,7 @@ dependencies = [
"bytes 1.10.1",
"bytes-utils",
"futures-core",
+ "futures-util",
"http 0.2.12",
"http 1.3.1",
"http-body 0.4.6",
@@ -1744,9 +1773,9 @@ dependencies = [
[[package]]
name = "aws-smithy-http-client"
-version = "1.1.3"
+version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1053b5e587e6fa40ce5a79ea27957b04ba660baa02b28b7436f64850152234f1"
+checksum = "623254723e8dfd535f566ee7b2381645f8981da086b5c4aa26c0c41582bb1d2c"
dependencies = [
"aws-smithy-async",
"aws-smithy-runtime-api",
@@ -1774,9 +1803,9 @@ dependencies = [
[[package]]
name = "aws-smithy-json"
-version = "0.61.6"
+version = "0.61.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff418fc8ec5cadf8173b10125f05c2e7e1d46771406187b2c878557d4503390"
+checksum = "2db31f727935fc63c6eeae8b37b438847639ec330a9161ece694efba257e0c54"
dependencies = [
"aws-smithy-types",
]
@@ -1802,9 +1831,9 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime"
-version = "1.9.3"
+version = "1.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ab99739082da5347660c556689256438defae3bcefd66c52b095905730e404"
+checksum = "0bbe9d018d646b96c7be063dd07987849862b0e6d07c778aad7d93d1be6c1ef0"
dependencies = [
"aws-smithy-async",
"aws-smithy-http",
@@ -1826,9 +1855,9 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime-api"
-version = "1.9.1"
+version = "1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3683c5b152d2ad753607179ed71988e8cfd52964443b4f74fd8e552d0bbfeb46"
+checksum = "ec7204f9fd94749a7c53b26da1b961b4ac36bf070ef1e0b94bb09f79d4f6c193"
dependencies = [
"aws-smithy-async",
"aws-smithy-types",
@@ -1843,9 +1872,9 @@ dependencies = [
[[package]]
name = "aws-smithy-types"
-version = "1.3.3"
+version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f5b3a7486f6690ba25952cabf1e7d75e34d69eaff5081904a47bc79074d6457"
+checksum = "25f535879a207fce0db74b679cfc3e91a3159c8144d717d55f5832aea9eef46e"
dependencies = [
"base64-simd",
"bytes 1.10.1",
@@ -1869,18 +1898,18 @@ dependencies = [
[[package]]
name = "aws-smithy-xml"
-version = "0.60.11"
+version = "0.60.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9c34127e8c624bc2999f3b657e749c1393bedc9cd97b92a804db8ced4d2e163"
+checksum = "eab77cdd036b11056d2a30a7af7b775789fb024bf216acc13884c6c97752ae56"
dependencies = [
"xmlparser",
]
[[package]]
name = "aws-types"
-version = "1.3.9"
+version = "1.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2fd329bf0e901ff3f60425691410c69094dc2a1f34b331f37bfc4e9ac1565a1"
+checksum = "d79fb68e3d7fe5d4833ea34dc87d2e97d26d3086cb3da660bb6b1f76d98680b6"
dependencies = [
"aws-credential-types",
"aws-smithy-async",
@@ -1979,7 +2008,7 @@ version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
dependencies = [
- "addr2line",
+ "addr2line 0.25.1",
"cfg-if",
"libc",
"miniz_oxide",
@@ -2030,7 +2059,7 @@ dependencies = [
"aws-sdk-bedrockruntime",
"aws-smithy-types",
"futures 0.3.31",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"strum 0.27.2",
@@ -2060,26 +2089,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "bincode"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740"
-dependencies = [
- "bincode_derive",
- "serde",
- "unty",
-]
-
-[[package]]
-name = "bincode_derive"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09"
-dependencies = [
- "virtue",
-]
-
[[package]]
name = "bindgen"
version = "0.71.1"
@@ -2120,30 +2129,15 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "bit-set"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
-dependencies = [
- "bit-vec 0.6.3",
-]
-
[[package]]
name = "bit-set"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
dependencies = [
- "bit-vec 0.8.0",
+ "bit-vec",
]
-[[package]]
-name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
[[package]]
name = "bit-vec"
version = "0.8.0"
@@ -2247,19 +2241,6 @@ dependencies = [
"profiling",
]
-[[package]]
-name = "blake3"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
-dependencies = [
- "arrayref",
- "arrayvec",
- "cc",
- "cfg-if",
- "constant_time_eq 0.3.1",
-]
-
[[package]]
name = "block"
version = "0.1.6"
@@ -2322,9 +2303,9 @@ dependencies = [
[[package]]
name = "borrow-or-share"
-version = "0.2.2"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3eeab4423108c5d7c744f4d234de88d18d636100093ae04caf4825134b9c3a32"
+checksum = "dc0b364ead1874514c8c2855ab558056ebfeb775653e7ae45ff72f28f8f3166c"
[[package]]
name = "borsh"
@@ -2349,12 +2330,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "boxcar"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e"
-
[[package]]
name = "breadcrumbs"
version = "0.1.0"
@@ -2417,6 +2392,7 @@ dependencies = [
"rand 0.9.2",
"rope",
"serde_json",
+ "settings",
"sum_tree",
"text",
"unindent",
@@ -2520,9 +2496,6 @@ name = "bytes"
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
-dependencies = [
- "serde",
-]
[[package]]
name = "bytes-utils"
@@ -2575,7 +2548,7 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9225bdcf4e4a9a4c08bf16607908eb2fbf746828d5e0b5e019726dbf6571f201"
dependencies = [
- "darling 0.20.11",
+ "darling",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -2614,26 +2587,24 @@ dependencies = [
[[package]]
name = "calloop"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
+version = "0.14.3"
+source = "git+https://github.com/zed-industries/calloop#eb6b4fd17b9af5ecc226546bdd04185391b3e265"
dependencies = [
"bitflags 2.9.4",
- "log",
"polling",
- "rustix 0.38.44",
+ "rustix 1.1.2",
"slab",
- "thiserror 1.0.69",
+ "tracing",
]
[[package]]
name = "calloop-wayland-source"
-version = "0.3.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
+checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa"
dependencies = [
"calloop",
- "rustix 0.38.44",
+ "rustix 1.1.2",
"wayland-backend",
"wayland-client",
]
@@ -2811,15 +2782,6 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
-[[package]]
-name = "castaway"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
-dependencies = [
- "rustversion",
-]
-
[[package]]
name = "cbc"
version = "0.1.2"
@@ -2836,7 +2798,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff"
dependencies = [
"heck 0.4.1",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"proc-macro2",
"quote",
@@ -2849,9 +2811,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.41"
+version = "1.2.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7"
+checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -2927,12 +2889,24 @@ dependencies = [
"postage",
"release_channel",
"rpc",
+ "semver",
"settings",
"text",
"time",
"util",
]
+[[package]]
+name = "chardetng"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea"
+dependencies = [
+ "cfg-if",
+ "encoding_rs",
+ "memchr",
+]
+
[[package]]
name = "chrono"
version = "0.4.42"
@@ -2947,16 +2921,6 @@ dependencies = [
"windows-link 0.2.1",
]
-[[package]]
-name = "chrono-tz"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3"
-dependencies = [
- "chrono",
- "phf 0.12.1",
-]
-
[[package]]
name = "chunked_transfer"
version = "1.5.0"
@@ -3087,6 +3051,7 @@ dependencies = [
"rayon",
"release_channel",
"serde",
+ "serde_json",
"tempfile",
"util",
"windows 0.61.3",
@@ -3124,6 +3089,7 @@ dependencies = [
"release_channel",
"rpc",
"rustls-pki-types",
+ "semver",
"serde",
"serde_json",
"serde_urlencoded",
@@ -3197,25 +3163,11 @@ dependencies = [
"uuid",
]
-[[package]]
-name = "cloud_zeta2_prompt"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "cloud_llm_client",
- "indoc",
- "ordered-float 2.10.1",
- "rustc-hash 2.1.1",
- "schemars 1.0.4",
- "serde",
- "strum 0.27.2",
-]
-
[[package]]
name = "cmake"
-version = "0.1.54"
+version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0"
+checksum = "b042e5d8a74ae91bb0961acd039822472ec99f8ab0948cbf6d1369588f8be586"
dependencies = [
"cc",
]
@@ -3316,8 +3268,8 @@ name = "codestral"
version = "0.1.0"
dependencies = [
"anyhow",
- "edit_prediction",
"edit_prediction_context",
+ "edit_prediction_types",
"futures 0.3.31",
"gpui",
"http_client",
@@ -3407,7 +3359,6 @@ dependencies = [
"scrypt",
"sea-orm",
"sea-orm-macros",
- "semantic_version",
"semver",
"serde",
"serde_json",
@@ -3482,7 +3433,7 @@ dependencies = [
name = "collections"
version = "0.1.0"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"rustc-hash 2.1.1",
]
@@ -3508,17 +3459,6 @@ dependencies = [
"memchr",
]
-[[package]]
-name = "comfy-table"
-version = "7.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b"
-dependencies = [
- "crossterm",
- "unicode-segmentation",
- "unicode-width",
-]
-
[[package]]
name = "command-fds"
version = "0.3.2"
@@ -3572,21 +3512,6 @@ dependencies = [
"workspace",
]
-[[package]]
-name = "compact_str"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
-dependencies = [
- "castaway",
- "cfg-if",
- "itoa",
- "rustversion",
- "ryu",
- "serde",
- "static_assertions",
-]
-
[[package]]
name = "component"
version = "0.1.0"
@@ -3667,16 +3592,30 @@ dependencies = [
]
[[package]]
-name = "constant_time_eq"
-version = "0.1.5"
+name = "const_format"
+version = "0.2.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad"
+dependencies = [
+ "const_format_proc_macros",
+]
+
+[[package]]
+name = "const_format_proc_macros"
+version = "0.2.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
[[package]]
name = "constant_time_eq"
-version = "0.3.1"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "context_server"
@@ -3687,16 +3626,19 @@ dependencies = [
"collections",
"futures 0.3.31",
"gpui",
+ "http_client",
"log",
"net",
"parking_lot",
"postage",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
+ "slotmap",
"smol",
"tempfile",
+ "terminal",
"url",
"util",
]
@@ -3729,7 +3671,7 @@ dependencies = [
"command_palette_hooks",
"ctor",
"dirs 4.0.0",
- "edit_prediction",
+ "edit_prediction_types",
"editor",
"fs",
"futures 0.3.31",
@@ -3754,6 +3696,7 @@ dependencies = [
"task",
"theme",
"ui",
+ "url",
"util",
"workspace",
"zlog",
@@ -4004,20 +3947,38 @@ dependencies = [
"libc",
]
+[[package]]
+name = "cranelift-assembler-x64"
+version = "0.120.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5023e06632d8f351c2891793ccccfe4aef957954904392434038745fb6f1f68"
+dependencies = [
+ "cranelift-assembler-x64-meta",
+]
+
+[[package]]
+name = "cranelift-assembler-x64-meta"
+version = "0.120.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c4012b4c8c1f6eb05c0a0a540e3e1ee992631af51aa2bbb3e712903ce4fd65"
+dependencies = [
+ "cranelift-srcgen",
+]
+
[[package]]
name = "cranelift-bforest"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e15d04a0ce86cb36ead88ad68cf693ffd6cda47052b9e0ac114bc47fd9cd23c4"
+checksum = "4d6d883b4942ef3a7104096b8bc6f2d1a41393f159ac8de12aed27b25d67f895"
dependencies = [
"cranelift-entity",
]
[[package]]
name = "cranelift-bitset"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c6e3969a7ce267259ce244b7867c5d3bc9e65b0a87e81039588dfdeaede9f34"
+checksum = "db7b2ee9eec6ca8a716d900d5264d678fb2c290c58c46c8da7f94ee268175d17"
dependencies = [
"serde",
"serde_derive",
@@ -4025,11 +3986,12 @@ dependencies = [
[[package]]
name = "cranelift-codegen"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c22032c4cb42558371cf516bb47f26cdad1819d3475c133e93c49f50ebf304e"
+checksum = "aeda0892577afdce1ac2e9a983a55f8c5b87a59334e1f79d8f735a2d7ba4f4b4"
dependencies = [
"bumpalo",
+ "cranelift-assembler-x64",
"cranelift-bforest",
"cranelift-bitset",
"cranelift-codegen-meta",
@@ -4038,9 +4000,10 @@ dependencies = [
"cranelift-entity",
"cranelift-isle",
"gimli 0.31.1",
- "hashbrown 0.14.5",
+ "hashbrown 0.15.5",
"log",
"postcard",
+ "pulley-interpreter",
"regalloc2",
"rustc-hash 2.1.1",
"serde",
@@ -4052,33 +4015,36 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c904bc71c61b27fc57827f4a1379f29de64fe95653b620a3db77d59655eee0b8"
+checksum = "e461480d87f920c2787422463313326f67664e68108c14788ba1676f5edfcd15"
dependencies = [
+ "cranelift-assembler-x64-meta",
"cranelift-codegen-shared",
+ "cranelift-srcgen",
+ "pulley-interpreter",
]
[[package]]
name = "cranelift-codegen-shared"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40180f5497572f644ce88c255480981ae2ec1d7bb4d8e0c0136a13b87a2f2ceb"
+checksum = "976584d09f200c6c84c4b9ff7af64fc9ad0cb64dffa5780991edd3fe143a30a1"
[[package]]
name = "cranelift-control"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d132c6d0bd8a489563472afc171759da0707804a65ece7ceb15a8c6d7dd5ef"
+checksum = "46d43d70f4e17c545aa88dbf4c84d4200755d27c6e3272ebe4de65802fa6a955"
dependencies = [
"arbitrary",
]
[[package]]
name = "cranelift-entity"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d0d9618275474fbf679dd018ac6e009acbd6ae6850f6a67be33fb3b00b323"
+checksum = "d75418674520cb400c8772bfd6e11a62736c78fc1b6e418195696841d1bf91f1"
dependencies = [
"cranelift-bitset",
"serde",
@@ -4087,9 +4053,9 @@ dependencies = [
[[package]]
name = "cranelift-frontend"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fac41e16729107393174b0c9e3730fb072866100e1e64e80a1a963b2e484d57"
+checksum = "3c8b1a91c86687a344f3c52dd6dfb6e50db0dfa7f2e9c7711b060b3623e1fdeb"
dependencies = [
"cranelift-codegen",
"log",
@@ -4099,21 +4065,27 @@ dependencies = [
[[package]]
name = "cranelift-isle"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca20d576e5070044d0a72a9effc2deacf4d6aa650403189d8ea50126483944d"
+checksum = "711baa4e3432d4129295b39ec2b4040cc1b558874ba0a37d08e832e857db7285"
[[package]]
name = "cranelift-native"
-version = "0.116.1"
+version = "0.120.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8dee82f3f1f2c4cba9177f1cc5e350fe98764379bcd29340caa7b01f85076c7"
+checksum = "41c83e8666e3bcc5ffeaf6f01f356f0e1f9dcd69ce5511a1efd7ca5722001a3f"
dependencies = [
"cranelift-codegen",
"libc",
"target-lexicon 0.13.3",
]
+[[package]]
+name = "cranelift-srcgen"
+version = "0.120.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e3f4d783a55c64266d17dc67d2708852235732a100fc40dd9f1051adc64d7b"
+
[[package]]
name = "crash-context"
version = "0.6.3"
@@ -4142,7 +4114,7 @@ dependencies = [
name = "crashes"
version = "0.1.0"
dependencies = [
- "bincode 1.3.3",
+ "bincode",
"cfg-if",
"crash-handler",
"extension_host",
@@ -4155,7 +4127,8 @@ dependencies = [
"serde_json",
"smol",
"system_specs",
- "zstd 0.11.2+zstd.1.5.2",
+ "windows 0.61.3",
+ "zstd",
]
[[package]]
@@ -4301,31 +4274,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]]
-name = "crossterm"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
-dependencies = [
- "bitflags 2.9.4",
- "crossterm_winapi",
- "document-features",
- "parking_lot",
- "rustix 1.1.2",
- "winapi",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "crunchy"
-version = "0.2.4"
+name = "crunchy"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
@@ -4441,7 +4391,7 @@ checksum = "d74b6bcf49ebbd91f1b1875b706ea46545032a14003b5557b7dfa4bbeba6766e"
dependencies = [
"cc",
"codespan-reporting 0.13.0",
- "indexmap 2.11.4",
+ "indexmap",
"proc-macro2",
"quote",
"scratch",
@@ -4456,7 +4406,7 @@ checksum = "94ca2ad69673c4b35585edfa379617ac364bccd0ba0adf319811ba3a74ffa48a"
dependencies = [
"clap",
"codespan-reporting 0.13.0",
- "indexmap 2.11.4",
+ "indexmap",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -4474,7 +4424,7 @@ version = "1.0.187"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a8ebf0b6138325af3ec73324cb3a48b64d57721f17291b151206782e61f66cd"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -4503,7 +4453,7 @@ dependencies = [
"parking_lot",
"paths",
"proto",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -4522,7 +4472,7 @@ name = "dap-types"
version = "0.0.1"
source = "git+https://github.com/zed-industries/dap-types?rev=1b461b310481d01e02b2603c16d7144b926339f8#1b461b310481d01e02b2603c16d7144b926339f8"
dependencies = [
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
]
@@ -4559,18 +4509,8 @@ version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
dependencies = [
- "darling_core 0.20.11",
- "darling_macro 0.20.11",
-]
-
-[[package]]
-name = "darling"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
-dependencies = [
- "darling_core 0.21.3",
- "darling_macro 0.21.3",
+ "darling_core",
+ "darling_macro",
]
[[package]]
@@ -4587,38 +4527,13 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "darling_core"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.106",
-]
-
[[package]]
name = "darling_macro"
version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
- "darling_core 0.20.11",
- "quote",
- "syn 2.0.106",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
-dependencies = [
- "darling_core 0.21.3",
+ "darling_core",
"quote",
"syn 2.0.106",
]
@@ -4712,12 +4627,6 @@ dependencies = [
"util",
]
-[[package]]
-name = "debug_unsafe"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85d3cef41d236720ed453e102153a53e4cc3d2fde848c0078a50cf249e8e3e5b"
-
[[package]]
name = "debugger_tools"
version = "0.1.0"
@@ -4750,6 +4659,7 @@ dependencies = [
"db",
"debugger_tools",
"editor",
+ "feature_flags",
"file_icons",
"futures 0.3.31",
"fuzzy",
@@ -4768,7 +4678,7 @@ dependencies = [
"pretty_assertions",
"project",
"rpc",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -4784,6 +4694,7 @@ dependencies = [
"tree-sitter-go",
"tree-sitter-json",
"ui",
+ "ui_input",
"unindent",
"util",
"workspace",
@@ -4807,7 +4718,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
]
@@ -4922,7 +4833,7 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae5c625eda104c228c06ecaf988d1c60e542176bd7a490e60eeda3493244c0c9"
dependencies = [
- "darling 0.20.11",
+ "darling",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -5124,15 +5035,6 @@ dependencies = [
"zlog",
]
-[[package]]
-name = "document-features"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
-dependencies = [
- "litrs",
-]
-
[[package]]
name = "documented"
version = "0.9.2"
@@ -5282,41 +5184,105 @@ dependencies = [
name = "edit_prediction"
version = "0.1.0"
dependencies = [
+ "ai_onboarding",
+ "anyhow",
+ "arrayvec",
+ "brotli",
"client",
+ "clock",
+ "cloud_api_types",
+ "cloud_llm_client",
+ "collections",
+ "copilot",
+ "ctor",
+ "db",
+ "edit_prediction_context",
+ "edit_prediction_types",
+ "feature_flags",
+ "fs",
+ "futures 0.3.31",
"gpui",
+ "indoc",
+ "itertools 0.14.0",
"language",
+ "language_model",
+ "log",
+ "lsp",
+ "menu",
+ "open_ai",
+ "parking_lot",
+ "postage",
+ "pretty_assertions",
+ "project",
+ "pulldown-cmark 0.12.2",
+ "rand 0.9.2",
+ "regex",
+ "release_channel",
+ "semver",
+ "serde",
+ "serde_json",
+ "settings",
+ "strum 0.27.2",
+ "telemetry",
+ "telemetry_events",
+ "thiserror 2.0.17",
+ "ui",
+ "util",
+ "uuid",
+ "workspace",
+ "worktree",
+ "zed_actions",
+ "zeta_prompt",
+ "zlog",
]
[[package]]
-name = "edit_prediction_button"
+name = "edit_prediction_cli"
version = "0.1.0"
dependencies = [
+ "anthropic",
"anyhow",
+ "chrono",
+ "clap",
"client",
"cloud_llm_client",
- "codestral",
- "copilot",
+ "collections",
+ "debug_adapter_extension",
+ "dirs 4.0.0",
"edit_prediction",
- "editor",
- "feature_flags",
+ "extension",
"fs",
"futures 0.3.31",
"gpui",
+ "gpui_tokio",
+ "http_client",
"indoc",
"language",
- "lsp",
+ "language_extension",
+ "language_model",
+ "language_models",
+ "languages",
+ "libc",
+ "log",
+ "node_runtime",
"paths",
+ "pretty_assertions",
"project",
- "regex",
+ "prompt_store",
+ "release_channel",
+ "reqwest_client",
+ "serde",
"serde_json",
"settings",
- "supermaven",
- "telemetry",
- "theme",
- "ui",
- "workspace",
- "zed_actions",
- "zeta",
+ "shellexpand 2.1.2",
+ "smol",
+ "sqlez",
+ "sqlez_macros",
+ "terminal_view",
+ "util",
+ "wasmtime",
+ "watch",
+ "zeta_prompt",
]
[[package]]
@@ -5324,36 +5290,82 @@ name = "edit_prediction_context"
version = "0.1.0"
dependencies = [
"anyhow",
- "arrayvec",
- "clap",
"cloud_llm_client",
"collections",
+ "env_logger 0.11.8",
"futures 0.3.31",
"gpui",
- "hashbrown 0.15.5",
"indoc",
- "itertools 0.14.0",
"language",
"log",
- "ordered-float 2.10.1",
- "postage",
+ "lsp",
+ "parking_lot",
"pretty_assertions",
"project",
- "regex",
"serde",
"serde_json",
"settings",
- "slotmap",
- "strum 0.27.2",
+ "smallvec",
"text",
"tree-sitter",
- "tree-sitter-c",
- "tree-sitter-cpp",
- "tree-sitter-go",
"util",
+ "zeta_prompt",
"zlog",
]
+[[package]]
+name = "edit_prediction_types"
+version = "0.1.0"
+dependencies = [
+ "client",
+ "gpui",
+ "language",
+ "text",
+]
+
+[[package]]
+name = "edit_prediction_ui"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "buffer_diff",
+ "client",
+ "cloud_llm_client",
+ "codestral",
+ "command_palette_hooks",
+ "copilot",
+ "edit_prediction",
+ "edit_prediction_types",
+ "editor",
+ "feature_flags",
+ "fs",
+ "futures 0.3.31",
+ "git",
+ "gpui",
+ "indoc",
+ "language",
+ "log",
+ "lsp",
+ "markdown",
+ "menu",
+ "multi_buffer",
+ "paths",
+ "project",
+ "regex",
+ "serde_json",
+ "settings",
+ "supermaven",
+ "telemetry",
+ "text",
+ "theme",
+ "time",
+ "ui",
+ "util",
+ "workspace",
+ "zed_actions",
+ "zeta_prompt",
+]
+
[[package]]
name = "editor"
version = "0.1.0"
@@ -5370,8 +5382,9 @@ dependencies = [
"ctor",
"dap",
"db",
- "edit_prediction",
+ "edit_prediction_types",
"emojis",
+ "feature_flags",
"file_icons",
"fs",
"futures 0.3.31",
@@ -5398,7 +5411,8 @@ dependencies = [
"release_channel",
"rope",
"rpc",
- "schemars 1.0.4",
+ "schemars",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -5412,9 +5426,11 @@ dependencies = [
"text",
"theme",
"time",
+ "tracing",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-html",
+ "tree-sitter-md",
"tree-sitter-python",
"tree-sitter-rust",
"tree-sitter-typescript",
@@ -5430,6 +5446,7 @@ dependencies = [
"workspace",
"zed_actions",
"zlog",
+ "ztracing",
]
[[package]]
@@ -5705,12 +5722,6 @@ dependencies = [
"windows-sys 0.48.0",
]
-[[package]]
-name = "ethnum"
-version = "1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b"
-
[[package]]
name = "euclid"
version = "0.22.11"
@@ -5775,6 +5786,15 @@ dependencies = [
"watch",
]
+[[package]]
+name = "eval_utils"
+version = "0.1.0"
+dependencies = [
+ "gpui",
+ "serde",
+ "smol",
+]
+
[[package]]
name = "event-listener"
version = "2.5.3"
@@ -5855,15 +5875,18 @@ dependencies = [
"gpui",
"heck 0.5.0",
"http_client",
+ "indoc",
"language",
"log",
"lsp",
"parking_lot",
"pretty_assertions",
- "semantic_version",
+ "proto",
+ "semver",
"serde",
"serde_json",
"task",
+ "tempfile",
"toml 0.8.23",
"url",
"util",
@@ -5926,7 +5949,7 @@ dependencies = [
"release_channel",
"remote",
"reqwest_client",
- "semantic_version",
+ "semver",
"serde",
"serde_json",
"serde_json_lenient",
@@ -5965,7 +5988,7 @@ dependencies = [
"picker",
"project",
"release_channel",
- "semantic_version",
+ "semver",
"serde",
"settings",
"smallvec",
@@ -5985,40 +6008,17 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
-[[package]]
-name = "fallible-streaming-iterator"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
-
-[[package]]
-name = "fancy-regex"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
-dependencies = [
- "bit-set 0.5.3",
- "regex-automata",
- "regex-syntax",
-]
-
[[package]]
name = "fancy-regex"
-version = "0.14.0"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298"
+checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f"
dependencies = [
- "bit-set 0.8.0",
+ "bit-set",
"regex-automata",
"regex-syntax",
]
-[[package]]
-name = "fast-float2"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8eb564c5c7423d25c886fb561d1e4ee69f72354d16918afa32c08811f6b6a55"
-
[[package]]
name = "fast-srgb8"
version = "1.0.0"
@@ -6129,7 +6129,7 @@ dependencies = [
"picker",
"pretty_assertions",
"project",
- "schemars 1.0.4",
+ "schemars",
"search",
"serde",
"serde_json",
@@ -6177,9 +6177,9 @@ dependencies = [
[[package]]
name = "find-msvc-tools"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
+checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
[[package]]
name = "fixedbitset"
@@ -6194,7 +6194,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
dependencies = [
"crc32fast",
- "libz-rs-sys",
"miniz_oxide",
]
@@ -6230,9 +6229,9 @@ checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
[[package]]
name = "fluent-uri"
-version = "0.3.2"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1918b65d96df47d3591bed19c5cca17e3fa5d0707318e4b5ef2eae01764df7e5"
+checksum = "bc74ac4d8359ae70623506d512209619e5cf8f347124910440dbc221714b328e"
dependencies = [
"borrow-or-share",
"ref-cast",
@@ -6248,7 +6247,7 @@ dependencies = [
"futures-core",
"futures-sink",
"nanorand",
- "spin",
+ "spin 0.9.8",
]
[[package]]
@@ -6359,9 +6358,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
[[package]]
name = "fork"
-version = "0.2.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05dc8b302e04a1c27f4fe694439ef0f29779ca4edc205b7b58f00db04e29656d"
+checksum = "30268f1eefccc9d72f43692e8b89e659aeb52e84016c3b32b6e7e9f1c8f38f94"
dependencies = [
"libc",
]
@@ -6411,6 +6410,7 @@ dependencies = [
"git",
"gpui",
"ignore",
+ "is_executable",
"libc",
"log",
"notify 8.2.0",
@@ -6450,16 +6450,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "fs4"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4"
-dependencies = [
- "rustix 1.1.2",
- "windows-sys 0.59.0",
-]
-
[[package]]
name = "fs_benchmarks"
version = "0.1.0"
@@ -6921,7 +6911,21 @@ dependencies = [
]
[[package]]
-name = "generic-array"
+name = "generator"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "libc",
+ "log",
+ "rustversion",
+ "windows 0.61.3",
+]
+
+[[package]]
+name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
@@ -6970,13 +6974,13 @@ dependencies = [
[[package]]
name = "gh-workflow"
version = "0.8.0"
-source = "git+https://github.com/zed-industries/gh-workflow?rev=3eaa84abca0778eb54272f45a312cb24f9a0b435#3eaa84abca0778eb54272f45a312cb24f9a0b435"
+source = "git+https://github.com/zed-industries/gh-workflow?rev=09acfdf2bd5c1d6254abefd609c808ff73547b2c#09acfdf2bd5c1d6254abefd609c808ff73547b2c"
dependencies = [
"async-trait",
"derive_more 2.0.1",
"derive_setters",
"gh-workflow-macros",
- "indexmap 2.11.4",
+ "indexmap",
"merge",
"serde",
"serde_json",
@@ -6987,7 +6991,7 @@ dependencies = [
[[package]]
name = "gh-workflow-macros"
version = "0.8.0"
-source = "git+https://github.com/zed-industries/gh-workflow?rev=3eaa84abca0778eb54272f45a312cb24f9a0b435#3eaa84abca0778eb54272f45a312cb24f9a0b435"
+source = "git+https://github.com/zed-industries/gh-workflow?rev=09acfdf2bd5c1d6254abefd609c808ff73547b2c#09acfdf2bd5c1d6254abefd609c808ff73547b2c"
dependencies = [
"heck 0.5.0",
"quote",
@@ -7011,7 +7015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
dependencies = [
"fallible-iterator",
- "indexmap 2.11.4",
+ "indexmap",
"stable_deref_trait",
]
@@ -7041,7 +7045,7 @@ dependencies = [
"rand 0.9.2",
"regex",
"rope",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"smol",
@@ -7081,6 +7085,7 @@ dependencies = [
"gpui",
"http_client",
"indoc",
+ "itertools 0.14.0",
"pretty_assertions",
"regex",
"serde",
@@ -7110,6 +7115,7 @@ dependencies = [
"futures 0.3.31",
"fuzzy",
"git",
+ "git_hosting_providers",
"gpui",
"indoc",
"itertools 0.14.0",
@@ -7125,17 +7131,21 @@ dependencies = [
"picker",
"pretty_assertions",
"project",
+ "prompt_store",
+ "rand 0.9.2",
"recent_projects",
"remote",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
+ "smol",
"strum 0.27.2",
"telemetry",
"theme",
"time",
"time_format",
+ "tracing",
"ui",
"unindent",
"util",
@@ -7145,6 +7155,7 @@ dependencies = [
"zed_actions",
"zeroize",
"zlog",
+ "ztracing",
]
[[package]]
@@ -7231,7 +7242,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -7287,6 +7298,7 @@ dependencies = [
"calloop",
"calloop-wayland-source",
"cbindgen",
+ "circular-buffer",
"cocoa 0.26.0",
"cocoa-foundation 0.2.0",
"collections",
@@ -7313,6 +7325,7 @@ dependencies = [
"libc",
"log",
"lyon",
+ "mach2 0.5.0",
"media",
"metal",
"naga",
@@ -7334,14 +7347,15 @@ dependencies = [
"refineable",
"reqwest_client",
"resvg",
- "schemars 1.0.4",
+ "schemars",
"seahash",
- "semantic_version",
+ "semver",
"serde",
"serde_json",
"slotmap",
"smallvec",
"smol",
+ "spin 0.10.0",
"stacksafe",
"strum 0.27.2",
"sum_tree",
@@ -7421,7 +7435,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http 0.2.12",
- "indexmap 2.11.4",
+ "indexmap",
"slab",
"tokio",
"tokio-util",
@@ -7440,7 +7454,7 @@ dependencies = [
"futures-core",
"futures-sink",
"http 1.3.1",
- "indexmap 2.11.4",
+ "indexmap",
"slab",
"tokio",
"tokio-util",
@@ -7519,10 +7533,20 @@ dependencies = [
"allocator-api2",
"equivalent",
"foldhash 0.1.5",
- "rayon",
"serde",
]
+[[package]]
+name = "hashbrown"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash 0.2.0",
+]
+
[[package]]
name = "hashlink"
version = "0.8.4"
@@ -7620,7 +7644,7 @@ version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c255bdf46e07fb840d120a36dcc81f385140d7191c76a7391672675c01a55d"
dependencies = [
- "bincode 1.3.3",
+ "bincode",
"byteorder",
"heed-traits",
"serde",
@@ -7810,7 +7834,6 @@ dependencies = [
"tempfile",
"url",
"util",
- "zed-reqwest",
]
[[package]]
@@ -8203,17 +8226,6 @@ version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8"
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
- "serde",
-]
-
[[package]]
name = "indexmap"
version = "2.11.4"
@@ -8221,7 +8233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
dependencies = [
"equivalent",
- "hashbrown 0.15.5",
+ "hashbrown 0.16.1",
"serde",
"serde_core",
]
@@ -8391,7 +8403,7 @@ version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fb8251fb7bcd9ccd3725ed8deae9fe7db8e586495c9eb5b0c52e6233e5e75ea"
dependencies = [
- "bincode 1.3.3",
+ "bincode",
"crossbeam-channel",
"fnv",
"lazy_static",
@@ -8450,6 +8462,15 @@ dependencies = [
"once_cell",
]
+[[package]]
+name = "is_executable"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4"
+dependencies = [
+ "windows-sys 0.60.2",
+]
+
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@@ -8602,7 +8623,7 @@ dependencies = [
"language",
"paths",
"project",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -8614,21 +8635,21 @@ dependencies = [
[[package]]
name = "jsonschema"
-version = "0.30.0"
+version = "0.37.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b46a0365a611fbf1d2143104dcf910aada96fafd295bab16c60b802bf6fa1d"
+checksum = "73c9ffb2b5c56d58030e1b532d8e8389da94590515f118cf35b5cb68e4764a7e"
dependencies = [
"ahash 0.8.12",
- "base64 0.22.1",
"bytecount",
+ "data-encoding",
"email_address",
- "fancy-regex 0.14.0",
+ "fancy-regex",
"fraction",
+ "getrandom 0.3.4",
"idna",
"itoa",
"num-cmp",
"num-traits",
- "once_cell",
"percent-encoding",
"referencing",
"regex",
@@ -8636,6 +8657,7 @@ dependencies = [
"reqwest 0.12.24",
"serde",
"serde_json",
+ "unicode-general-category",
"uuid-simd",
]
@@ -8656,23 +8678,25 @@ dependencies = [
[[package]]
name = "jupyter-protocol"
-version = "0.6.0"
-source = "git+https://github.com/ConradIrwin/runtimed?rev=7130c804216b6914355d15d0b91ea91f6babd734#7130c804216b6914355d15d0b91ea91f6babd734"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9c047f6b5e551563af2ddb13dafed833f0ec5a5b0f9621d5ad740a9ff1e1095"
dependencies = [
- "anyhow",
"async-trait",
"bytes 1.10.1",
"chrono",
"futures 0.3.31",
"serde",
"serde_json",
+ "thiserror 2.0.17",
"uuid",
]
[[package]]
name = "jupyter-websocket-client"
-version = "0.9.0"
-source = "git+https://github.com/ConradIrwin/runtimed?rev=7130c804216b6914355d15d0b91ea91f6babd734#7130c804216b6914355d15d0b91ea91f6babd734"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4197fa926a6b0bddfed7377d9fed3d00a0dec44a1501e020097bd26604699cae"
dependencies = [
"anyhow",
"async-trait",
@@ -8681,6 +8705,7 @@ dependencies = [
"jupyter-protocol",
"serde",
"serde_json",
+ "tokio",
"url",
"uuid",
]
@@ -8718,7 +8743,6 @@ dependencies = [
"ui",
"ui_input",
"util",
- "vim",
"workspace",
"zed_actions",
]
@@ -8784,6 +8808,7 @@ dependencies = [
"ctor",
"diffy",
"ec4rs",
+ "encoding_rs",
"fs",
"futures 0.3.31",
"fuzzy",
@@ -8801,7 +8826,8 @@ dependencies = [
"rand 0.9.2",
"regex",
"rpc",
- "schemars 1.0.4",
+ "schemars",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -8864,23 +8890,25 @@ dependencies = [
"cloud_api_types",
"cloud_llm_client",
"collections",
+ "credentials_provider",
"futures 0.3.31",
"gpui",
"http_client",
"icons",
"image",
"log",
+ "open_ai",
"open_router",
"parking_lot",
"proto",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
"smol",
- "telemetry_events",
"thiserror 2.0.17",
"util",
+ "zed_env_vars",
]
[[package]]
@@ -8922,7 +8950,8 @@ dependencies = [
"partial-json-fixer",
"project",
"release_channel",
- "schemars 1.0.4",
+ "schemars",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -8936,7 +8965,6 @@ dependencies = [
"util",
"vercel",
"x_ai",
- "zed_env_vars",
]
[[package]]
@@ -8988,6 +9016,7 @@ dependencies = [
"project",
"proto",
"release_channel",
+ "semver",
"serde_json",
"settings",
"theme",
@@ -9011,6 +9040,7 @@ dependencies = [
"chrono",
"collections",
"futures 0.3.31",
+ "globset",
"gpui",
"http_client",
"itertools 0.14.0",
@@ -9032,11 +9062,14 @@ dependencies = [
"regex",
"rope",
"rust-embed",
+ "semver",
"serde",
"serde_json",
"serde_json_lenient",
"settings",
+ "smallvec",
"smol",
+ "snippet",
"task",
"terminal",
"text",
@@ -9072,7 +9105,7 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
dependencies = [
- "spin",
+ "spin 0.9.8",
]
[[package]]
@@ -9217,15 +9250,6 @@ dependencies = [
"webrtc-sys",
]
-[[package]]
-name = "libz-rs-sys"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd"
-dependencies = [
- "zlib-rs",
-]
-
[[package]]
name = "libz-sys"
version = "1.1.22"
@@ -9288,12 +9312,6 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
-[[package]]
-name = "litrs"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
-
[[package]]
name = "livekit"
version = "0.7.8"
@@ -9439,7 +9457,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
]
@@ -9463,6 +9481,19 @@ dependencies = [
"value-bag",
]
+[[package]]
+name = "loom"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
+dependencies = [
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "tracing",
+ "tracing-subscriber",
+]
+
[[package]]
name = "loop9"
version = "0.1.5"
@@ -9502,7 +9533,8 @@ dependencies = [
"parking_lot",
"postage",
"release_channel",
- "schemars 1.0.4",
+ "schemars",
+ "semver",
"serde",
"serde_json",
"smol",
@@ -9584,25 +9616,6 @@ dependencies = [
"num-traits",
]
-[[package]]
-name = "lz4"
-version = "1.28.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4"
-dependencies = [
- "lz4-sys",
-]
-
-[[package]]
-name = "lz4-sys"
-version = "1.11.1+lz4-1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6"
-dependencies = [
- "cc",
- "libc",
-]
-
[[package]]
name = "mac"
version = "0.1.1"
@@ -10014,6 +10027,18 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+[[package]]
+name = "miniprofiler_ui"
+version = "0.1.0"
+dependencies = [
+ "gpui",
+ "serde_json",
+ "smol",
+ "util",
+ "workspace",
+ "zed_actions",
+]
+
[[package]]
name = "miniz_oxide"
version = "0.8.9"
@@ -10070,7 +10095,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"strum 0.27.2",
@@ -10139,9 +10164,11 @@ dependencies = [
"sum_tree",
"text",
"theme",
+ "tracing",
"tree-sitter",
"util",
"zlog",
+ "ztracing",
]
[[package]]
@@ -10163,14 +10190,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632"
dependencies = [
"arrayvec",
- "bit-set 0.8.0",
+ "bit-set",
"bitflags 2.9.4",
"cfg_aliases 0.2.1",
"codespan-reporting 0.12.0",
"half",
"hashbrown 0.15.5",
"hexf-parse",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"num-traits",
"once_cell",
@@ -10218,8 +10245,9 @@ dependencies = [
[[package]]
name = "nbformat"
-version = "0.10.0"
-source = "git+https://github.com/ConradIrwin/runtimed?rev=7130c804216b6914355d15d0b91ea91f6babd734#7130c804216b6914355d15d0b91ea91f6babd734"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89c7229d604d847227002715e1235cd84e81919285d904ccb290a42ecc409348"
dependencies = [
"anyhow",
"chrono",
@@ -10452,15 +10480,6 @@ name = "notify-types"
version = "2.0.0"
source = "git+https://github.com/zed-industries/notify.git?rev=b4588b2e5aee68f4c0e100f140e808cbce7b1419#b4588b2e5aee68f4c0e100f140e808cbce7b1419"
-[[package]]
-name = "now"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0"
-dependencies = [
- "chrono",
-]
-
[[package]]
name = "ntapi"
version = "0.4.1"
@@ -10505,11 +10524,10 @@ dependencies = [
[[package]]
name = "num-bigint-dig"
-version = "0.8.4"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7"
dependencies = [
- "byteorder",
"lazy_static",
"libm",
"num-integer",
@@ -10844,7 +10862,7 @@ checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [
"crc32fast",
"hashbrown 0.15.5",
- "indexmap 2.11.4",
+ "indexmap",
"memchr",
]
@@ -10857,41 +10875,6 @@ dependencies = [
"memchr",
]
-[[package]]
-name = "object_store"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c1be0c6c22ec0817cdc77d3842f721a17fd30ab6965001415b5402a74e6b740"
-dependencies = [
- "async-trait",
- "base64 0.22.1",
- "bytes 1.10.1",
- "chrono",
- "form_urlencoded",
- "futures 0.3.31",
- "http 1.3.1",
- "http-body-util",
- "humantime",
- "hyper 1.7.0",
- "itertools 0.14.0",
- "parking_lot",
- "percent-encoding",
- "quick-xml 0.38.3",
- "rand 0.9.2",
- "reqwest 0.12.24",
- "ring",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "thiserror 2.0.17",
- "tokio",
- "tracing",
- "url",
- "walkdir",
- "wasm-bindgen-futures",
- "web-time",
-]
-
[[package]]
name = "ollama"
version = "0.1.0"
@@ -10899,7 +10882,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -10916,13 +10899,12 @@ dependencies = [
"documented",
"fs",
"fuzzy",
- "git",
"gpui",
"menu",
"notifications",
"picker",
"project",
- "schemars 1.0.4",
+ "schemars",
"serde",
"settings",
"telemetry",
@@ -11007,11 +10989,12 @@ dependencies = [
"futures 0.3.31",
"http_client",
"log",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
"strum 0.27.2",
+ "thiserror 2.0.17",
]
[[package]]
@@ -11021,7 +11004,7 @@ dependencies = [
"anyhow",
"futures 0.3.31",
"http_client",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -11525,7 +11508,7 @@ dependencies = [
[[package]]
name = "pet"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"clap",
"env_logger 0.10.2",
@@ -11550,6 +11533,7 @@ dependencies = [
"pet-python-utils",
"pet-reporter",
"pet-telemetry",
+ "pet-uv",
"pet-venv",
"pet-virtualenv",
"pet-virtualenvwrapper",
@@ -11562,7 +11546,7 @@ dependencies = [
[[package]]
name = "pet-conda"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"env_logger 0.10.2",
"lazy_static",
@@ -11581,7 +11565,7 @@ dependencies = [
[[package]]
name = "pet-core"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"clap",
"lazy_static",
@@ -11596,7 +11580,7 @@ dependencies = [
[[package]]
name = "pet-env-var-path"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"lazy_static",
"log",
@@ -11612,7 +11596,7 @@ dependencies = [
[[package]]
name = "pet-fs"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11621,7 +11605,7 @@ dependencies = [
[[package]]
name = "pet-global-virtualenvs"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11634,7 +11618,7 @@ dependencies = [
[[package]]
name = "pet-homebrew"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"lazy_static",
"log",
@@ -11652,7 +11636,7 @@ dependencies = [
[[package]]
name = "pet-jsonrpc"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"env_logger 0.10.2",
"log",
@@ -11665,7 +11649,7 @@ dependencies = [
[[package]]
name = "pet-linux-global-python"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11678,7 +11662,7 @@ dependencies = [
[[package]]
name = "pet-mac-commandlinetools"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11691,7 +11675,7 @@ dependencies = [
[[package]]
name = "pet-mac-python-org"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11704,7 +11688,7 @@ dependencies = [
[[package]]
name = "pet-mac-xcode"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11717,7 +11701,7 @@ dependencies = [
[[package]]
name = "pet-pipenv"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11730,7 +11714,7 @@ dependencies = [
[[package]]
name = "pet-pixi"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11742,7 +11726,7 @@ dependencies = [
[[package]]
name = "pet-poetry"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"base64 0.22.1",
"lazy_static",
@@ -11763,7 +11747,7 @@ dependencies = [
[[package]]
name = "pet-pyenv"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"lazy_static",
"log",
@@ -11781,7 +11765,7 @@ dependencies = [
[[package]]
name = "pet-python-utils"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"env_logger 0.10.2",
"lazy_static",
@@ -11798,7 +11782,7 @@ dependencies = [
[[package]]
name = "pet-reporter"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"env_logger 0.10.2",
"log",
@@ -11812,7 +11796,7 @@ dependencies = [
[[package]]
name = "pet-telemetry"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"env_logger 0.10.2",
"lazy_static",
@@ -11824,10 +11808,22 @@ dependencies = [
"regex",
]
+[[package]]
+name = "pet-uv"
+version = "0.1.0"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
+dependencies = [
+ "log",
+ "pet-core",
+ "pet-python-utils",
+ "serde",
+ "toml 0.9.8",
+]
+
[[package]]
name = "pet-venv"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11839,7 +11835,7 @@ dependencies = [
[[package]]
name = "pet-virtualenv"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11851,7 +11847,7 @@ dependencies = [
[[package]]
name = "pet-virtualenvwrapper"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"log",
"msvc_spectre_libs",
@@ -11864,7 +11860,7 @@ dependencies = [
[[package]]
name = "pet-windows-registry"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"lazy_static",
"log",
@@ -11882,7 +11878,7 @@ dependencies = [
[[package]]
name = "pet-windows-store"
version = "0.1.0"
-source = "git+https://github.com/microsoft/python-environment-tools.git?rev=e97b9508befa0062929da65a01054d25c4be861c#e97b9508befa0062929da65a01054d25c4be861c"
+source = "git+https://github.com/microsoft/python-environment-tools.git?rev=1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da#1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da"
dependencies = [
"lazy_static",
"log",
@@ -11902,7 +11898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
dependencies = [
"fixedbitset",
- "indexmap 2.11.4",
+ "indexmap",
]
[[package]]
@@ -12018,7 +12014,7 @@ dependencies = [
"env_logger 0.11.8",
"gpui",
"menu",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"theme",
@@ -12118,16 +12114,6 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
-[[package]]
-name = "planus"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3daf8e3d4b712abe1d690838f6e29fb76b76ea19589c4afa39ec30e12f62af71"
-dependencies = [
- "array-init-cursor",
- "hashbrown 0.15.5",
-]
-
[[package]]
name = "plist"
version = "1.8.0"
@@ -12135,7 +12121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07"
dependencies = [
"base64 0.22.1",
- "indexmap 2.11.4",
+ "indexmap",
"quick-xml 0.38.3",
"serde",
"time",
@@ -12196,559 +12182,54 @@ dependencies = [
]
[[package]]
-name = "polars"
-version = "0.51.0"
+name = "polling"
+version = "3.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5f7feb5d56b954e691dff22a8b2d78d77433dcc93c35fe21c3777fdc121b697"
+checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
dependencies = [
- "getrandom 0.2.16",
- "getrandom 0.3.4",
- "polars-arrow",
- "polars-core",
- "polars-error",
- "polars-io",
- "polars-lazy",
- "polars-ops",
- "polars-parquet",
- "polars-sql",
- "polars-time",
- "polars-utils",
- "version_check",
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix 1.1.2",
+ "windows-sys 0.61.2",
]
[[package]]
-name = "polars-arrow"
-version = "0.51.0"
+name = "pollster"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b4fed2343961b3eea3db2cee165540c3e1ad9d5782350cc55a9e76cf440148"
-dependencies = [
- "atoi_simd",
- "bitflags 2.9.4",
- "bytemuck",
- "chrono",
- "chrono-tz",
- "dyn-clone",
- "either",
- "ethnum",
- "getrandom 0.2.16",
- "getrandom 0.3.4",
- "hashbrown 0.15.5",
- "itoa",
- "lz4",
- "num-traits",
- "polars-arrow-format",
- "polars-error",
- "polars-schema",
- "polars-utils",
- "serde",
- "simdutf8",
- "streaming-iterator",
- "strum_macros 0.27.2",
- "version_check",
- "zstd 0.13.3",
-]
+checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7"
[[package]]
-name = "polars-arrow-format"
-version = "0.2.1"
+name = "pori"
+version = "0.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a556ac0ee744e61e167f34c1eb0013ce740e0ee6cd8c158b2ec0b518f10e6675"
+checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906"
dependencies = [
- "planus",
- "serde",
+ "nom 7.1.3",
]
[[package]]
-name = "polars-compute"
-version = "0.51.0"
+name = "portable-atomic"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+
+[[package]]
+name = "portable-atomic-util"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138785beda4e4a90a025219f09d0d15a671b2be9091513ede58e05db6ad4413f"
+checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
dependencies = [
- "atoi_simd",
- "bytemuck",
- "chrono",
- "either",
- "fast-float2",
- "hashbrown 0.15.5",
- "itoa",
- "num-traits",
- "polars-arrow",
- "polars-error",
- "polars-utils",
- "rand 0.9.2",
- "ryu",
- "serde",
- "skiplist",
- "strength_reduce",
- "strum_macros 0.27.2",
- "version_check",
+ "portable-atomic",
]
[[package]]
-name = "polars-core"
-version = "0.51.0"
+name = "portable-pty"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e77b1f08ef6dbb032bb1d0d3365464be950df9905f6827a95b24c4ca5518901d"
-dependencies = [
- "bitflags 2.9.4",
- "boxcar",
- "bytemuck",
- "chrono",
- "chrono-tz",
- "comfy-table",
- "either",
- "hashbrown 0.15.5",
- "indexmap 2.11.4",
- "itoa",
- "num-traits",
- "polars-arrow",
- "polars-compute",
- "polars-dtype",
- "polars-error",
- "polars-row",
- "polars-schema",
- "polars-utils",
- "rand 0.9.2",
- "rand_distr",
- "rayon",
- "regex",
- "serde",
- "serde_json",
- "strum_macros 0.27.2",
- "uuid",
- "version_check",
- "xxhash-rust",
-]
-
-[[package]]
-name = "polars-dtype"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89c43d0ea57168be4546c4d8064479ed8b29a9c79c31a0c7c367ee734b9b7158"
-dependencies = [
- "boxcar",
- "hashbrown 0.15.5",
- "polars-arrow",
- "polars-error",
- "polars-utils",
- "serde",
- "uuid",
-]
-
-[[package]]
-name = "polars-error"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9cb5d98f59f8b94673ee391840440ad9f0d2170afced95fc98aa86f895563c0"
-dependencies = [
- "object_store",
- "parking_lot",
- "polars-arrow-format",
- "regex",
- "signal-hook",
- "simdutf8",
-]
-
-[[package]]
-name = "polars-expr"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "343931b818cf136349135ba11dbc18c27683b52c3477b1ba8ca606cf5ab1965c"
-dependencies = [
- "bitflags 2.9.4",
- "hashbrown 0.15.5",
- "num-traits",
- "polars-arrow",
- "polars-compute",
- "polars-core",
- "polars-io",
- "polars-ops",
- "polars-plan",
- "polars-row",
- "polars-time",
- "polars-utils",
- "rand 0.9.2",
- "rayon",
- "recursive",
-]
-
-[[package]]
-name = "polars-io"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10388c64b8155122488229a881d1c6f4fdc393bc988e764ab51b182fcb2307e4"
-dependencies = [
- "async-trait",
- "atoi_simd",
- "blake3",
- "bytes 1.10.1",
- "chrono",
- "fast-float2",
- "fs4",
- "futures 0.3.31",
- "glob",
- "hashbrown 0.15.5",
- "home",
- "itoa",
- "memchr",
- "memmap2",
- "num-traits",
- "object_store",
- "percent-encoding",
- "polars-arrow",
- "polars-core",
- "polars-error",
- "polars-parquet",
- "polars-schema",
- "polars-time",
- "polars-utils",
- "rayon",
- "regex",
- "reqwest 0.12.24",
- "ryu",
- "serde",
- "serde_json",
- "simdutf8",
- "tokio",
- "tokio-util",
- "url",
-]
-
-[[package]]
-name = "polars-lazy"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fb6e2c6c2fa4ea0c660df1c06cf56960c81e7c2683877995bae3d4e3d408147"
-dependencies = [
- "bitflags 2.9.4",
- "chrono",
- "either",
- "memchr",
- "polars-arrow",
- "polars-compute",
- "polars-core",
- "polars-expr",
- "polars-io",
- "polars-mem-engine",
- "polars-ops",
- "polars-plan",
- "polars-stream",
- "polars-time",
- "polars-utils",
- "rayon",
- "version_check",
-]
-
-[[package]]
-name = "polars-mem-engine"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20a856e98e253587c28d8132a5e7e5a75cb2c44731ca090f1481d45f1d123771"
-dependencies = [
- "futures 0.3.31",
- "memmap2",
- "polars-arrow",
- "polars-core",
- "polars-error",
- "polars-expr",
- "polars-io",
- "polars-ops",
- "polars-plan",
- "polars-time",
- "polars-utils",
- "rayon",
- "recursive",
- "tokio",
-]
-
-[[package]]
-name = "polars-ops"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf6062173fdc9ba05775548beb66e76643a148d9aeadc9984ed712bc4babd76"
-dependencies = [
- "argminmax",
- "base64 0.22.1",
- "bytemuck",
- "chrono",
- "chrono-tz",
- "either",
- "hashbrown 0.15.5",
- "hex",
- "indexmap 2.11.4",
- "libm",
- "memchr",
- "num-traits",
- "polars-arrow",
- "polars-compute",
- "polars-core",
- "polars-error",
- "polars-schema",
- "polars-utils",
- "rayon",
- "regex",
- "regex-syntax",
- "strum_macros 0.27.2",
- "unicode-normalization",
- "unicode-reverse",
- "version_check",
-]
-
-[[package]]
-name = "polars-parquet"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc1d769180dec070df0dc4b89299b364bf2cfe32b218ecc4ddd8f1a49ae60669"
-dependencies = [
- "async-stream",
- "base64 0.22.1",
- "brotli",
- "bytemuck",
- "ethnum",
- "flate2",
- "futures 0.3.31",
- "hashbrown 0.15.5",
- "lz4",
- "num-traits",
- "polars-arrow",
- "polars-compute",
- "polars-error",
- "polars-parquet-format",
- "polars-utils",
- "serde",
- "simdutf8",
- "snap",
- "streaming-decompression",
- "zstd 0.13.3",
-]
-
-[[package]]
-name = "polars-parquet-format"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c025243dcfe8dbc57e94d9f82eb3bef10b565ab180d5b99bed87fd8aea319ce1"
-dependencies = [
- "async-trait",
- "futures 0.3.31",
-]
-
-[[package]]
-name = "polars-plan"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd3a2e33ae4484fe407ab2d2ba5684f0889d1ccf3ad6b844103c03638e6d0a0"
-dependencies = [
- "bitflags 2.9.4",
- "bytemuck",
- "bytes 1.10.1",
- "chrono",
- "chrono-tz",
- "either",
- "futures 0.3.31",
- "hashbrown 0.15.5",
- "memmap2",
- "num-traits",
- "percent-encoding",
- "polars-arrow",
- "polars-compute",
- "polars-core",
- "polars-error",
- "polars-io",
- "polars-ops",
- "polars-parquet",
- "polars-time",
- "polars-utils",
- "rayon",
- "recursive",
- "regex",
- "sha2",
- "strum_macros 0.27.2",
- "version_check",
-]
-
-[[package]]
-name = "polars-row"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18734f17e0e348724df3ae65f3ee744c681117c04b041cac969dfceb05edabc0"
-dependencies = [
- "bitflags 2.9.4",
- "bytemuck",
- "polars-arrow",
- "polars-compute",
- "polars-dtype",
- "polars-error",
- "polars-utils",
-]
-
-[[package]]
-name = "polars-schema"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6c1ab13e04d5167661a9854ed1ea0482b2ed9b8a0f1118dabed7cd994a85e3"
-dependencies = [
- "indexmap 2.11.4",
- "polars-error",
- "polars-utils",
- "serde",
- "version_check",
-]
-
-[[package]]
-name = "polars-sql"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4e7766da02cc1d464994404d3e88a7a0ccd4933df3627c325480fbd9bbc0a11"
-dependencies = [
- "bitflags 2.9.4",
- "hex",
- "polars-core",
- "polars-error",
- "polars-lazy",
- "polars-ops",
- "polars-plan",
- "polars-time",
- "polars-utils",
- "rand 0.9.2",
- "regex",
- "serde",
- "sqlparser",
-]
-
-[[package]]
-name = "polars-stream"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f6c6ca1ea01f9dea424d167e4f33f5ec44cd67fbfac9efd40575ed20521f14"
-dependencies = [
- "async-channel 2.5.0",
- "async-trait",
- "atomic-waker",
- "bitflags 2.9.4",
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-queue",
- "crossbeam-utils",
- "futures 0.3.31",
- "memmap2",
- "parking_lot",
- "percent-encoding",
- "pin-project-lite",
- "polars-arrow",
- "polars-core",
- "polars-error",
- "polars-expr",
- "polars-io",
- "polars-mem-engine",
- "polars-ops",
- "polars-parquet",
- "polars-plan",
- "polars-utils",
- "rand 0.9.2",
- "rayon",
- "recursive",
- "slotmap",
- "tokio",
- "tokio-util",
- "version_check",
-]
-
-[[package]]
-name = "polars-time"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6a3a6e279a7a984a0b83715660f9e880590c6129ec2104396bfa710bcd76dee"
-dependencies = [
- "atoi_simd",
- "bytemuck",
- "chrono",
- "chrono-tz",
- "now",
- "num-traits",
- "polars-arrow",
- "polars-compute",
- "polars-core",
- "polars-error",
- "polars-ops",
- "polars-utils",
- "rayon",
- "regex",
- "strum_macros 0.27.2",
-]
-
-[[package]]
-name = "polars-utils"
-version = "0.51.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57b267021b0e5422d7fbc70fd79e51b9f9a8466c585779373a18b0199e973f29"
-dependencies = [
- "bincode 2.0.1",
- "bytemuck",
- "bytes 1.10.1",
- "compact_str",
- "either",
- "flate2",
- "foldhash 0.1.5",
- "hashbrown 0.15.5",
- "indexmap 2.11.4",
- "libc",
- "memmap2",
- "num-traits",
- "polars-error",
- "rand 0.9.2",
- "raw-cpuid 11.6.0",
- "rayon",
- "regex",
- "rmp-serde",
- "serde",
- "serde_json",
- "serde_stacker",
- "slotmap",
- "stacker",
- "uuid",
- "version_check",
-]
-
-[[package]]
-name = "polling"
-version = "3.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
-dependencies = [
- "cfg-if",
- "concurrent-queue",
- "hermit-abi",
- "pin-project-lite",
- "rustix 1.1.2",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "pollster"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7"
-
-[[package]]
-name = "portable-atomic"
-version = "1.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
-
-[[package]]
-name = "portable-atomic-util"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
-dependencies = [
- "portable-atomic",
-]
-
-[[package]]
-name = "portable-pty"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a596a2b3d2752d94f51fac2d4a96737b8705dddd311a32b9af47211f08671e"
+checksum = "b4a596a2b3d2752d94f51fac2d4a96737b8705dddd311a32b9af47211f08671e"
dependencies = [
"anyhow",
"bitflags 1.3.2",
@@ -12995,8 +12476,10 @@ dependencies = [
"context_server",
"dap",
"dap_adapters",
+ "db",
+ "encoding_rs",
"extension",
- "fancy-regex 0.14.0",
+ "fancy-regex",
"fs",
"futures 0.3.31",
"fuzzy",
@@ -13007,7 +12490,7 @@ dependencies = [
"gpui",
"http_client",
"image",
- "indexmap 2.11.4",
+ "indexmap",
"itertools 0.14.0",
"language",
"log",
@@ -13024,7 +12507,7 @@ dependencies = [
"release_channel",
"remote",
"rpc",
- "schemars 1.0.4",
+ "schemars",
"semver",
"serde",
"serde_json",
@@ -13041,14 +12524,34 @@ dependencies = [
"terminal",
"text",
"toml 0.8.23",
+ "tracing",
"unindent",
"url",
"util",
"watch",
+ "wax",
"which 6.0.3",
"worktree",
"zeroize",
"zlog",
+ "ztracing",
+]
+
+[[package]]
+name = "project_benchmarks"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "client",
+ "futures 0.3.31",
+ "gpui",
+ "http_client",
+ "language",
+ "node_runtime",
+ "project",
+ "settings",
+ "watch",
]
[[package]]
@@ -13071,13 +12574,14 @@ dependencies = [
"pretty_assertions",
"project",
"rayon",
- "schemars 1.0.4",
+ "schemars",
"search",
"serde",
"serde_json",
"settings",
"smallvec",
"telemetry",
+ "tempfile",
"theme",
"ui",
"util",
@@ -13101,6 +12605,7 @@ dependencies = [
"picker",
"project",
"release_channel",
+ "semver",
"serde_json",
"settings",
"theme",
@@ -13346,13 +12851,12 @@ checksum = "bd348ff538bc9caeda7ee8cad2d1d48236a1f443c1fa3913c6a02fe0043b1dd3"
[[package]]
name = "pulley-interpreter"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62d95f8575df49a2708398182f49a888cf9dc30210fb1fd2df87c889edcee75d"
+checksum = "986beaef947a51d17b42b0ea18ceaa88450d35b6994737065ed505c39172db71"
dependencies = [
"cranelift-bitset",
"log",
- "sptr",
"wasmtime-math",
]
@@ -13431,7 +12935,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
dependencies = [
"memchr",
- "serde",
]
[[package]]
@@ -13733,6 +13236,7 @@ dependencies = [
"askpass",
"auto_update",
"dap",
+ "db",
"editor",
"extension_host",
"file_finder",
@@ -13744,12 +13248,14 @@ dependencies = [
"log",
"markdown",
"menu",
+ "node_runtime",
"ordered-float 2.10.1",
"paths",
"picker",
"project",
"release_channel",
"remote",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -13761,29 +13267,10 @@ dependencies = [
"util",
"windows-registry 0.6.1",
"workspace",
+ "worktree",
"zed_actions",
]
-[[package]]
-name = "recursive"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e"
-dependencies = [
- "recursive-proc-macro-impl",
- "stacker",
-]
-
-[[package]]
-name = "recursive-proc-macro-impl"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b"
-dependencies = [
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "redox_syscall"
version = "0.2.16"
@@ -13846,13 +13333,14 @@ dependencies = [
[[package]]
name = "referencing"
-version = "0.30.0"
+version = "0.37.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8eff4fa778b5c2a57e85c5f2fe3a709c52f0e60d23146e2151cbef5893f420e"
+checksum = "4283168a506f0dcbdce31c9f9cce3129c924da4c6bca46e46707fcb746d2d70c"
dependencies = [
"ahash 0.8.12",
"fluent-uri",
- "once_cell",
+ "getrandom 0.3.4",
+ "hashbrown 0.16.1",
"parking_lot",
"percent-encoding",
"serde_json",
@@ -13867,9 +13355,9 @@ dependencies = [
[[package]]
name = "regalloc2"
-version = "0.11.2"
+version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc06e6b318142614e4a48bc725abbf08ff166694835c43c9dae5a9009704639a"
+checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734"
dependencies = [
"allocator-api2",
"bumpalo",
@@ -13920,6 +13408,7 @@ name = "release_channel"
version = "0.1.0"
dependencies = [
"gpui",
+ "semver",
]
[[package]]
@@ -13939,7 +13428,8 @@ dependencies = [
"prost 0.9.0",
"release_channel",
"rpc",
- "schemars 1.0.4",
+ "schemars",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -13996,6 +13486,7 @@ dependencies = [
"paths",
"pretty_assertions",
"project",
+ "prompt_store",
"proto",
"rayon",
"release_channel",
@@ -14003,6 +13494,7 @@ dependencies = [
"reqwest_client",
"rpc",
"rust-embed",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -14010,6 +13502,7 @@ dependencies = [
"smol",
"sysinfo 0.37.2",
"task",
+ "theme",
"thiserror 2.0.17",
"toml 0.8.23",
"unindent",
@@ -14134,35 +13627,26 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
- "h2 0.4.12",
"http 1.3.1",
"http-body 1.0.1",
"http-body-util",
"hyper 1.7.0",
- "hyper-rustls 0.27.7",
"hyper-util",
"js-sys",
"log",
"percent-encoding",
"pin-project-lite",
- "quinn",
- "rustls 0.23.33",
- "rustls-native-certs 0.8.2",
- "rustls-pki-types",
"serde",
"serde_json",
"serde_urlencoded",
"sync_wrapper 1.0.2",
"tokio",
- "tokio-rustls 0.26.2",
- "tokio-util",
"tower 0.5.2",
"tower-http 0.6.6",
"tower-service",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
- "wasm-streams",
"web-sys",
]
@@ -14241,7 +13725,7 @@ dependencies = [
"cfg-if",
"getrandom 0.2.16",
"libc",
- "untrusted",
+ "untrusted 0.9.0",
"windows-sys 0.52.0",
]
@@ -14285,17 +13769,6 @@ dependencies = [
"paste",
]
-[[package]]
-name = "rmp-serde"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
-dependencies = [
- "byteorder",
- "rmp",
- "serde",
-]
-
[[package]]
name = "rmpv"
version = "1.3.0"
@@ -14332,9 +13805,11 @@ dependencies = [
"rand 0.9.2",
"rayon",
"sum_tree",
+ "tracing",
"unicode-segmentation",
"util",
"zlog",
+ "ztracing",
]
[[package]]
@@ -14365,14 +13840,14 @@ dependencies = [
"tracing",
"util",
"zlog",
- "zstd 0.11.2+zstd.1.5.2",
+ "zstd",
]
[[package]]
name = "rsa"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b"
+checksum = "40a0376c50d0358279d9d643e4bf7b7be212f1f4ff1da9070a7b54d22ef75c88"
dependencies = [
"const-oid",
"digest",
@@ -14422,25 +13897,26 @@ dependencies = [
[[package]]
name = "runtimelib"
-version = "0.25.0"
-source = "git+https://github.com/ConradIrwin/runtimed?rev=7130c804216b6914355d15d0b91ea91f6babd734#7130c804216b6914355d15d0b91ea91f6babd734"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "481b48894073a0096f28cbe9860af01fc1b861e55b3bc96afafc645ee3de62dc"
dependencies = [
- "anyhow",
"async-dispatcher",
"async-std",
+ "aws-lc-rs",
"base64 0.22.1",
"bytes 1.10.1",
"chrono",
"data-encoding",
- "dirs 5.0.1",
+ "dirs 6.0.0",
"futures 0.3.31",
"glob",
"jupyter-protocol",
- "ring",
"serde",
"serde_json",
"shellexpand 3.1.1",
"smol",
+ "thiserror 2.0.17",
"uuid",
"zeromq",
]
@@ -14708,7 +14184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
dependencies = [
"ring",
- "untrusted",
+ "untrusted 0.9.0",
]
[[package]]
@@ -14720,7 +14196,7 @@ dependencies = [
"aws-lc-rs",
"ring",
"rustls-pki-types",
- "untrusted",
+ "untrusted 0.9.0",
]
[[package]]
@@ -14826,24 +14302,13 @@ dependencies = [
"anyhow",
"clap",
"env_logger 0.11.8",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
+ "settings",
"theme",
]
-[[package]]
-name = "schemars"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
-dependencies = [
- "dyn-clone",
- "ref-cast",
- "serde",
- "serde_json",
-]
-
[[package]]
name = "schemars"
version = "1.0.4"
@@ -14851,7 +14316,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
dependencies = [
"dyn-clone",
- "indexmap 2.11.4",
+ "indexmap",
"ref-cast",
"schemars_derive",
"serde",
@@ -14950,7 +14415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
dependencies = [
"ring",
- "untrusted",
+ "untrusted 0.9.0",
]
[[package]]
@@ -15059,22 +14524,26 @@ dependencies = [
"editor",
"futures 0.3.31",
"gpui",
+ "itertools 0.14.0",
"language",
"lsp",
"menu",
+ "pretty_assertions",
"project",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
"smol",
"theme",
+ "tracing",
"ui",
"unindent",
"util",
"util_macros",
"workspace",
"zed_actions",
+ "ztracing",
]
[[package]]
@@ -15133,14 +14602,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749"
-[[package]]
-name = "semantic_version"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "serde",
-]
-
[[package]]
name = "semver"
version = "1.0.27"
@@ -15213,7 +14674,7 @@ version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"itoa",
"memchr",
"ryu",
@@ -15227,7 +14688,7 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e033097bf0d2b59a62b42c18ebbb797503839b26afdda2c4e1415cb6c813540"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"itoa",
"memchr",
"ryu",
@@ -15274,17 +14735,6 @@ dependencies = [
"serde_core",
]
-[[package]]
-name = "serde_stacker"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4936375d50c4be7eff22293a9344f8e46f323ed2b3c243e52f89138d9bb0f4a"
-dependencies = [
- "serde",
- "serde_core",
- "stacker",
-]
-
[[package]]
name = "serde_urlencoded"
version = "0.7.1"
@@ -15297,44 +14747,13 @@ dependencies = [
"serde",
]
-[[package]]
-name = "serde_with"
-version = "3.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5"
-dependencies = [
- "base64 0.22.1",
- "chrono",
- "hex",
- "indexmap 1.9.3",
- "indexmap 2.11.4",
- "schemars 0.9.0",
- "schemars 1.0.4",
- "serde_core",
- "serde_json",
- "serde_with_macros",
- "time",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "3.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27"
-dependencies = [
- "darling 0.21.3",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "serde_yaml"
version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"itoa",
"ryu",
"serde",
@@ -15382,12 +14801,11 @@ dependencies = [
"pretty_assertions",
"release_channel",
"rust-embed",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
"serde_repr",
- "serde_with",
"settings_json",
"settings_macros",
"smallvec",
@@ -15450,6 +14868,8 @@ dependencies = [
"assets",
"bm25",
"client",
+ "copilot",
+ "edit_prediction",
"editor",
"feature_flags",
"fs",
@@ -15458,6 +14878,7 @@ dependencies = [
"gpui",
"heck 0.5.0",
"language",
+ "language_models",
"log",
"menu",
"node_runtime",
@@ -15466,7 +14887,7 @@ dependencies = [
"pretty_assertions",
"project",
"release_channel",
- "schemars 1.0.4",
+ "schemars",
"search",
"serde",
"session",
@@ -15658,16 +15079,6 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
-[[package]]
-name = "skiplist"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f354fd282d3177c2951004953e2fdc4cb342fa159bbee8b829852b6a081c8ea1"
-dependencies = [
- "rand 0.9.2",
- "thiserror 2.0.17",
-]
-
[[package]]
name = "skrifa"
version = "0.37.0"
@@ -15743,12 +15154,6 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
-[[package]]
-name = "snap"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
-
[[package]]
name = "snippet"
version = "0.1.0"
@@ -15770,7 +15175,7 @@ dependencies = [
"indoc",
"parking_lot",
"paths",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -15795,26 +15200,6 @@ dependencies = [
"workspace",
]
-[[package]]
-name = "soa-rs"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b75ae4668062b095fda87ba54118697bed601f07f6c68bf50289a25ca0c8c935"
-dependencies = [
- "soa-rs-derive",
-]
-
-[[package]]
-name = "soa-rs-derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c09121507da587d3434e5929ce3321162f36bd3eff403873cb163c06b176913"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "socket2"
version = "0.5.10"
@@ -15853,6 +15238,15 @@ dependencies = [
"lock_api",
]
+[[package]]
+name = "spin"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591"
+dependencies = [
+ "lock_api",
+]
+
[[package]]
name = "spirv"
version = "0.3.0+sdk-1.3.268.0"
@@ -15925,15 +15319,6 @@ dependencies = [
"unicode_categories",
]
-[[package]]
-name = "sqlparser"
-version = "0.53.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8"
-dependencies = [
- "log",
-]
-
[[package]]
name = "sqlx"
version = "0.8.6"
@@ -15967,7 +15352,7 @@ dependencies = [
"futures-util",
"hashbrown 0.15.5",
"hashlink 0.10.0",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"memchr",
"once_cell",
@@ -16235,15 +15620,6 @@ dependencies = [
"ui",
]
-[[package]]
-name = "streaming-decompression"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf6cc3b19bfb128a8ad11026086e31d3ce9ad23f8ea37354b31383a187c44cf3"
-dependencies = [
- "fallible-streaming-iterator",
-]
-
[[package]]
name = "streaming-iterator"
version = "0.1.9"
@@ -16375,7 +15751,9 @@ dependencies = [
"log",
"rand 0.9.2",
"rayon",
+ "tracing",
"zlog",
+ "ztracing",
]
[[package]]
@@ -16385,7 +15763,7 @@ dependencies = [
"anyhow",
"client",
"collections",
- "edit_prediction",
+ "edit_prediction_types",
"editor",
"env_logger 0.11.8",
"futures 0.3.31",
@@ -16509,10 +15887,10 @@ checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb"
name = "svg_preview"
version = "0.1.0"
dependencies = [
- "editor",
"file_icons",
"gpui",
"language",
+ "multi_buffer",
"ui",
"workspace",
]
@@ -16888,6 +16266,7 @@ dependencies = [
"human_bytes",
"pciid-parser",
"release_channel",
+ "semver",
"serde",
"sysinfo 0.37.2",
]
@@ -16906,7 +16285,7 @@ dependencies = [
"menu",
"picker",
"project",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"settings",
@@ -16985,7 +16364,7 @@ dependencies = [
"parking_lot",
"pretty_assertions",
"proto",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -17035,7 +16414,7 @@ dependencies = [
name = "telemetry_events"
version = "0.1.0"
dependencies = [
- "semantic_version",
+ "semver",
"serde",
"serde_json",
]
@@ -17088,8 +16467,9 @@ dependencies = [
"rand 0.9.2",
"regex",
"release_channel",
- "schemars 1.0.4",
+ "schemars",
"serde",
+ "serde_json",
"settings",
"smol",
"sysinfo 0.37.2",
@@ -17099,6 +16479,7 @@ dependencies = [
"url",
"urlencoding",
"util",
+ "util_macros",
"windows 0.61.3",
]
@@ -17134,13 +16515,12 @@ dependencies = [
"project",
"rand 0.9.2",
"regex",
- "schemars 1.0.4",
+ "schemars",
"search",
"serde",
"serde_json",
"settings",
"shellexpand 2.1.2",
- "smol",
"task",
"terminal",
"theme",
@@ -17186,7 +16566,7 @@ dependencies = [
"palette",
"parking_lot",
"refineable",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -17216,7 +16596,7 @@ dependencies = [
"clap",
"collections",
"gpui",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"palette",
"serde",
@@ -17312,13 +16692,13 @@ dependencies = [
[[package]]
name = "tiktoken-rs"
-version = "0.8.0"
-source = "git+https://github.com/zed-industries/tiktoken-rs?rev=30c32a4522751699adeda0d5840c71c3b75ae73d#30c32a4522751699adeda0d5840c71c3b75ae73d"
+version = "0.9.1"
+source = "git+https://github.com/zed-industries/tiktoken-rs?rev=2570c4387a8505fb8f1d3f3557454b474f1e8271#2570c4387a8505fb8f1d3f3557454b474f1e8271"
dependencies = [
"anyhow",
"base64 0.22.1",
"bstr",
- "fancy-regex 0.13.0",
+ "fancy-regex",
"lazy_static",
"regex",
"rustc-hash 1.1.0",
@@ -17470,7 +16850,7 @@ dependencies = [
"project",
"remote",
"rpc",
- "schemars 1.0.4",
+ "schemars",
"serde",
"settings",
"smallvec",
@@ -17627,7 +17007,6 @@ dependencies = [
"futures-core",
"futures-io",
"futures-sink",
- "futures-util",
"pin-project-lite",
"tokio",
]
@@ -17659,7 +17038,7 @@ version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"serde_core",
"serde_spanned 1.0.3",
"toml_datetime 0.7.3",
@@ -17692,7 +17071,7 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"serde",
"serde_spanned 0.6.9",
"toml_datetime 0.6.11",
@@ -17706,7 +17085,7 @@ version = "0.23.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"toml_datetime 0.7.3",
"toml_parser",
"winnow",
@@ -17859,9 +17238,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
-version = "0.1.41"
+version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647"
dependencies = [
"log",
"pin-project-lite",
@@ -17871,9 +17250,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.30"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
@@ -17882,9 +17261,9 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.34"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
+checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
dependencies = [
"once_cell",
"valuable",
@@ -17913,9 +17292,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.3.20"
+version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
+checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
dependencies = [
"matchers",
"nu-ansi-term",
@@ -17932,6 +17311,38 @@ dependencies = [
"tracing-serde",
]
+[[package]]
+name = "tracing-tracy"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eaa1852afa96e0fe9e44caa53dc0bd2d9d05e0f2611ce09f97f8677af56e4ba"
+dependencies = [
+ "tracing-core",
+ "tracing-subscriber",
+ "tracy-client",
+]
+
+[[package]]
+name = "tracy-client"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91d722a05fe49b31fef971c4732a7d4aa6a18283d9ba46abddab35f484872947"
+dependencies = [
+ "loom",
+ "once_cell",
+ "tracy-client-sys",
+]
+
+[[package]]
+name = "tracy-client-sys"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fb391ac70462b3097a755618fbf9c8f95ecc1eb379a414f7b46f202ed10db1f"
+dependencies = [
+ "cc",
+ "windows-targets 0.52.6",
+]
+
[[package]]
name = "trait-variant"
version = "0.1.2"
@@ -17955,9 +17366,9 @@ dependencies = [
[[package]]
name = "tree-sitter"
-version = "0.25.10"
+version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87"
+checksum = "974d205cc395652cfa8b37daa053fe56eebd429acf8dc055503fee648dae981e"
dependencies = [
"cc",
"regex",
@@ -17970,9 +17381,9 @@ dependencies = [
[[package]]
name = "tree-sitter-bash"
-version = "0.25.0"
+version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871b0606e667e98a1237ebdc1b0d7056e0aebfdc3141d12b399865d4cb6ed8a6"
+checksum = "9e5ec769279cc91b561d3df0d8a5deb26b0ad40d183127f409494d6d8fc53062"
dependencies = [
"cc",
"tree-sitter-language",
@@ -18366,7 +17777,7 @@ dependencies = [
"icons",
"itertools 0.14.0",
"menu",
- "schemars 1.0.4",
+ "schemars",
"serde",
"settings",
"smallvec",
@@ -18450,6 +17861,12 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e"
+[[package]]
+name = "unicode-general-category"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f"
+
[[package]]
name = "unicode-ident"
version = "1.0.19"
@@ -18477,15 +17894,6 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
-[[package]]
-name = "unicode-reverse"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76"
-dependencies = [
- "unicode-segmentation",
-]
-
[[package]]
name = "unicode-script"
version = "0.5.7"
@@ -18536,15 +17944,15 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "untrusted"
-version = "0.9.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
-name = "unty"
-version = "0.0.4"
+name = "untrusted"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
@@ -18634,7 +18042,7 @@ dependencies = [
"rand 0.9.2",
"regex",
"rust-embed",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"serde_json_lenient",
@@ -18678,7 +18086,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b082222b4f6619906941c17eb2297fff4c2fb96cb60164170522942a200bd8"
dependencies = [
"outref",
- "uuid",
"vsimd",
]
@@ -18746,7 +18153,7 @@ name = "vercel"
version = "0.1.0"
dependencies = [
"anyhow",
- "schemars 1.0.4",
+ "schemars",
"serde",
"strum 0.27.2",
]
@@ -18786,9 +18193,11 @@ dependencies = [
"language",
"log",
"lsp",
+ "markdown_preview",
"menu",
"multi_buffer",
"nvim-rs",
+ "outline_panel",
"parking_lot",
"perf",
"picker",
@@ -18796,8 +18205,9 @@ dependencies = [
"project_panel",
"regex",
"release_channel",
- "schemars 1.0.4",
+ "schemars",
"search",
+ "semver",
"serde",
"serde_json",
"settings",
@@ -18821,12 +18231,6 @@ dependencies = [
"settings",
]
-[[package]]
-name = "virtue"
-version = "0.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1"
-
[[package]]
name = "vscode_theme"
version = "0.2.0"
@@ -19051,6 +18455,16 @@ dependencies = [
"wasmparser 0.227.1",
]
+[[package]]
+name = "wasm-encoder"
+version = "0.229.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38ba1d491ecacb085a2552025c10a675a6fddcbd03b1fc9b36c536010ce265d2"
+dependencies = [
+ "leb128fmt",
+ "wasmparser 0.229.0",
+]
+
[[package]]
name = "wasm-metadata"
version = "0.201.0"
@@ -19058,7 +18472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fd83062c17b9f4985d438603cde0a5e8c5c8198201a6937f778b607924c7da2"
dependencies = [
"anyhow",
- "indexmap 2.11.4",
+ "indexmap",
"serde",
"serde_derive",
"serde_json",
@@ -19076,7 +18490,7 @@ dependencies = [
"anyhow",
"auditable-serde",
"flate2",
- "indexmap 2.11.4",
+ "indexmap",
"serde",
"serde_derive",
"serde_json",
@@ -19106,7 +18520,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84e5df6dba6c0d7fafc63a450f1738451ed7a0b52295d83e868218fa286bf708"
dependencies = [
"bitflags 2.9.4",
- "indexmap 2.11.4",
+ "indexmap",
"semver",
]
@@ -19118,7 +18532,7 @@ checksum = "d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185"
dependencies = [
"bitflags 2.9.4",
"hashbrown 0.15.5",
- "indexmap 2.11.4",
+ "indexmap",
"semver",
"serde",
]
@@ -19131,27 +18545,41 @@ checksum = "0f51cad774fb3c9461ab9bccc9c62dfb7388397b5deda31bf40e8108ccd678b2"
dependencies = [
"bitflags 2.9.4",
"hashbrown 0.15.5",
- "indexmap 2.11.4",
+ "indexmap",
+ "semver",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.229.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cc3b1f053f5d41aa55640a1fa9b6d1b8a9e4418d118ce308d20e24ff3575a8c"
+dependencies = [
+ "bitflags 2.9.4",
+ "hashbrown 0.15.5",
+ "indexmap",
"semver",
+ "serde",
]
[[package]]
name = "wasmprinter"
-version = "0.221.3"
+version = "0.229.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7343c42a97f2926c7819ff81b64012092ae954c5d83ddd30c9fcdefd97d0b283"
+checksum = "d25dac01892684a99b8fbfaf670eb6b56edea8a096438c75392daeb83156ae2e"
dependencies = [
"anyhow",
"termcolor",
- "wasmparser 0.221.3",
+ "wasmparser 0.229.0",
]
[[package]]
name = "wasmtime"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11976a250672556d1c4c04c6d5d7656ac9192ac9edc42a4587d6c21460010e69"
+checksum = "57373e1d8699662fb791270ac5dfac9da5c14f618ecf940cdb29dc3ad9472a3c"
dependencies = [
+ "addr2line 0.24.2",
"anyhow",
"async-trait",
"bitflags 2.9.4",
@@ -19159,20 +18587,19 @@ dependencies = [
"cc",
"cfg-if",
"encoding_rs",
- "hashbrown 0.14.5",
- "indexmap 2.11.4",
+ "hashbrown 0.15.5",
+ "indexmap",
"libc",
"log",
"mach2 0.4.3",
"memfd",
"object 0.36.7",
"once_cell",
- "paste",
"postcard",
"psm",
"pulley-interpreter",
"rayon",
- "rustix 0.38.44",
+ "rustix 1.1.2",
"semver",
"serde",
"serde_derive",
@@ -19180,7 +18607,7 @@ dependencies = [
"sptr",
"target-lexicon 0.13.3",
"trait-variant",
- "wasmparser 0.221.3",
+ "wasmparser 0.229.0",
"wasmtime-asm-macros",
"wasmtime-component-macro",
"wasmtime-component-util",
@@ -19197,18 +18624,18 @@ dependencies = [
[[package]]
name = "wasmtime-asm-macros"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f178b0d125201fbe9f75beaf849bd3e511891f9e45ba216a5b620802ccf64f2"
+checksum = "bd0fc91372865167a695dc98d0d6771799a388a7541d3f34e939d0539d6583de"
dependencies = [
"cfg-if",
]
[[package]]
name = "wasmtime-c-api-impl"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea30cef3608f2de5797c7bbb94c1ba4f3676d9a7f81ae86ced1b512e2766ed0c"
+checksum = "46db556f1dccdd88e0672bd407162ab0036b72e5eccb0f4398d8251cba32dba1"
dependencies = [
"anyhow",
"log",
@@ -19219,9 +18646,9 @@ dependencies = [
[[package]]
name = "wasmtime-c-api-macros"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "022a79ebe1124d5d384d82463d7e61c6b4dd857d81f15cb8078974eeb86db65b"
+checksum = "315cc6bc8cdc66f296accb26d7625ae64c1c7b6da6f189e8a72ce6594bf7bd36"
dependencies = [
"proc-macro2",
"quote",
@@ -19229,9 +18656,9 @@ dependencies = [
[[package]]
name = "wasmtime-component-macro"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d74de6592ed945d0a602f71243982a304d5d02f1e501b638addf57f42d57dfaf"
+checksum = "25c9c7526675ff9a9794b115023c4af5128e3eb21389bfc3dc1fd344d549258f"
dependencies = [
"anyhow",
"proc-macro2",
@@ -19239,20 +18666,20 @@ dependencies = [
"syn 2.0.106",
"wasmtime-component-util",
"wasmtime-wit-bindgen",
- "wit-parser 0.221.3",
+ "wit-parser 0.229.0",
]
[[package]]
name = "wasmtime-component-util"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "707dc7b3c112ab5a366b30cfe2fb5b2f8e6a0f682f16df96a5ec582bfe6f056e"
+checksum = "cc42ec8b078875804908d797cb4950fec781d9add9684c9026487fd8eb3f6291"
[[package]]
name = "wasmtime-cranelift"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "366be722674d4bf153290fbcbc4d7d16895cc82fb3e869f8d550ff768f9e9e87"
+checksum = "b2bd72f0a6a0ffcc6a184ec86ac35c174e48ea0e97bbae277c8f15f8bf77a566"
dependencies = [
"anyhow",
"cfg-if",
@@ -19262,29 +18689,30 @@ dependencies = [
"cranelift-frontend",
"cranelift-native",
"gimli 0.31.1",
- "itertools 0.12.1",
+ "itertools 0.14.0",
"log",
"object 0.36.7",
+ "pulley-interpreter",
"smallvec",
"target-lexicon 0.13.3",
- "thiserror 1.0.69",
- "wasmparser 0.221.3",
+ "thiserror 2.0.17",
+ "wasmparser 0.229.0",
"wasmtime-environ",
"wasmtime-versioned-export-macros",
]
[[package]]
name = "wasmtime-environ"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdadc1af7097347aa276a4f008929810f726b5b46946971c660b6d421e9994ad"
+checksum = "e6187bb108a23eb25d2a92aa65d6c89fb5ed53433a319038a2558567f3011ff2"
dependencies = [
"anyhow",
"cpp_demangle",
"cranelift-bitset",
"cranelift-entity",
"gimli 0.31.1",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"object 0.36.7",
"postcard",
@@ -19294,22 +18722,22 @@ dependencies = [
"serde_derive",
"smallvec",
"target-lexicon 0.13.3",
- "wasm-encoder 0.221.3",
- "wasmparser 0.221.3",
+ "wasm-encoder 0.229.0",
+ "wasmparser 0.229.0",
"wasmprinter",
"wasmtime-component-util",
]
[[package]]
name = "wasmtime-fiber"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccba90d4119f081bca91190485650730a617be1fff5228f8c4757ce133d21117"
+checksum = "dc8965d2128c012329f390e24b8b2758dd93d01bf67e1a1a0dd3d8fd72f56873"
dependencies = [
"anyhow",
"cc",
"cfg-if",
- "rustix 0.38.44",
+ "rustix 1.1.2",
"wasmtime-asm-macros",
"wasmtime-versioned-export-macros",
"windows-sys 0.59.0",
@@ -19317,9 +18745,9 @@ dependencies = [
[[package]]
name = "wasmtime-jit-icache-coherence"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec5e8552e01692e6c2e5293171704fed8abdec79d1a6995a0870ab190e5747d1"
+checksum = "7af0e940cb062a45c0b3f01a926f77da5947149e99beb4e3dd9846d5b8f11619"
dependencies = [
"anyhow",
"cfg-if",
@@ -19329,24 +18757,24 @@ dependencies = [
[[package]]
name = "wasmtime-math"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29210ec2aa25e00f4d54605cedaf080f39ec01a872c5bd520ad04c67af1dde17"
+checksum = "acfca360e719dda9a27e26944f2754ff2fd5bad88e21919c42c5a5f38ddd93cb"
dependencies = [
"libm",
]
[[package]]
name = "wasmtime-slab"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb5821a96fa04ac14bc7b158bb3d5cd7729a053db5a74dad396cd513a5e5ccf"
+checksum = "48e240559cada55c4b24af979d5f6c95e0029f5772f32027ec3c62b258aaff65"
[[package]]
name = "wasmtime-versioned-export-macros"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ff86db216dc0240462de40c8290887a613dddf9685508eb39479037ba97b5b"
+checksum = "d0963c1438357a3d8c0efe152b4ef5259846c1cf8b864340270744fe5b3bae5e"
dependencies = [
"proc-macro2",
"quote",
@@ -19355,9 +18783,9 @@ dependencies = [
[[package]]
name = "wasmtime-wasi"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d1be69bfcab1bdac74daa7a1f9695ab992b9c8e21b9b061e7d66434097e0ca4"
+checksum = "4ae951b72c7c6749a1c15dcdfb6d940a2614c932b4a54f474636e78e2c744b4c"
dependencies = [
"anyhow",
"async-trait",
@@ -19372,30 +18800,43 @@ dependencies = [
"futures 0.3.31",
"io-extras",
"io-lifetimes",
- "rustix 0.38.44",
+ "rustix 1.1.2",
"system-interface",
- "thiserror 1.0.69",
+ "thiserror 2.0.17",
"tokio",
"tracing",
- "trait-variant",
"url",
"wasmtime",
+ "wasmtime-wasi-io",
"wiggle",
"windows-sys 0.59.0",
]
+[[package]]
+name = "wasmtime-wasi-io"
+version = "33.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a835790dcecc3d7051ec67da52ba9e04af25e1bc204275b9391e3f0042b10797"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytes 1.10.1",
+ "futures 0.3.31",
+ "wasmtime",
+]
+
[[package]]
name = "wasmtime-winch"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdbabfb8f20502d5e1d81092b9ead3682ae59988487aafcd7567387b7a43cf8f"
+checksum = "cbc3b117d03d6eeabfa005a880c5c22c06503bb8820f3aa2e30f0e8d87b6752f"
dependencies = [
"anyhow",
"cranelift-codegen",
"gimli 0.31.1",
"object 0.36.7",
"target-lexicon 0.13.3",
- "wasmparser 0.221.3",
+ "wasmparser 0.229.0",
"wasmtime-cranelift",
"wasmtime-environ",
"winch-codegen",
@@ -19403,14 +18844,14 @@ dependencies = [
[[package]]
name = "wasmtime-wit-bindgen"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8358319c2dd1e4db79e3c1c5d3a5af84956615343f9f89f4e4996a36816e06e6"
+checksum = "1382f4f09390eab0d75d4994d0c3b0f6279f86a571807ec67a8253c87cf6a145"
dependencies = [
"anyhow",
"heck 0.5.0",
- "indexmap 2.11.4",
- "wit-parser 0.221.3",
+ "indexmap",
+ "wit-parser 0.229.0",
]
[[package]]
@@ -19434,6 +18875,21 @@ dependencies = [
"zlog",
]
+[[package]]
+name = "wax"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d12a78aa0bab22d2f26ed1a96df7ab58e8a93506a3e20adb47c51a93b4e1357"
+dependencies = [
+ "const_format",
+ "itertools 0.11.0",
+ "nom 7.1.3",
+ "pori",
+ "regex",
+ "thiserror 1.0.69",
+ "walkdir",
+]
+
[[package]]
name = "wayland-backend"
version = "0.3.11"
@@ -19677,6 +19133,20 @@ dependencies = [
"winsafe",
]
+[[package]]
+name = "which_key"
+version = "0.1.0"
+dependencies = [
+ "command_palette",
+ "gpui",
+ "serde",
+ "settings",
+ "theme",
+ "ui",
+ "util",
+ "workspace",
+]
+
[[package]]
name = "whoami"
version = "1.6.1"
@@ -19689,14 +19159,14 @@ dependencies = [
[[package]]
name = "wiggle"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b9af35bc9629c52c261465320a9a07959164928b4241980ba1cf923b9e6751d"
+checksum = "649c1aca13ef9e9dccf2d5efbbebf12025bc5521c3fb7754355ef60f5eb810be"
dependencies = [
"anyhow",
"async-trait",
"bitflags 2.9.4",
- "thiserror 1.0.69",
+ "thiserror 2.0.17",
"tracing",
"wasmtime",
"wiggle-macro",
@@ -19704,24 +19174,23 @@ dependencies = [
[[package]]
name = "wiggle-generate"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cf267dd05673912c8138f4b54acabe6bd53407d9d1536f0fadb6520dd16e101"
+checksum = "164870fc34214ee42bd81b8ce9e7c179800fa1a7d4046d17a84e7f7bf422c8ad"
dependencies = [
"anyhow",
"heck 0.5.0",
"proc-macro2",
"quote",
- "shellexpand 2.1.2",
"syn 2.0.106",
"witx",
]
[[package]]
name = "wiggle-macro"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08c5c473d4198e6c2d377f3809f713ff0c110cab88a0805ae099a82119ee250c"
+checksum = "d873bb5b59ca703b5e41562e96a4796d1af61bf4cf80bf8a7abda755a380ec1c"
dependencies = [
"proc-macro2",
"quote",
@@ -19762,18 +19231,19 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winch-codegen"
-version = "29.0.1"
+version = "33.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f849ef2c5f46cb0a20af4b4487aaa239846e52e2c03f13fa3c784684552859c"
+checksum = "7914c296fbcef59d1b89a15e82384d34dc9669bc09763f2ef068a28dd3a64ebf"
dependencies = [
"anyhow",
+ "cranelift-assembler-x64",
"cranelift-codegen",
"gimli 0.31.1",
"regalloc2",
"smallvec",
"target-lexicon 0.13.3",
- "thiserror 1.0.69",
- "wasmparser 0.221.3",
+ "thiserror 2.0.17",
+ "wasmparser 0.229.0",
"wasmtime-cranelift",
"wasmtime-environ",
]
@@ -20562,7 +20032,7 @@ checksum = "d8a39a15d1ae2077688213611209849cad40e9e5cccf6e61951a425850677ff3"
dependencies = [
"anyhow",
"heck 0.4.1",
- "indexmap 2.11.4",
+ "indexmap",
"wasm-metadata 0.201.0",
"wit-bindgen-core 0.22.0",
"wit-component 0.201.0",
@@ -20576,7 +20046,7 @@ checksum = "9d0809dc5ba19e2e98661bf32fc0addc5a3ca5bf3a6a7083aa6ba484085ff3ce"
dependencies = [
"anyhow",
"heck 0.5.0",
- "indexmap 2.11.4",
+ "indexmap",
"prettyplease",
"syn 2.0.106",
"wasm-metadata 0.227.1",
@@ -20621,7 +20091,7 @@ checksum = "421c0c848a0660a8c22e2fd217929a0191f14476b68962afd2af89fd22e39825"
dependencies = [
"anyhow",
"bitflags 2.9.4",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"serde",
"serde_derive",
@@ -20640,7 +20110,7 @@ checksum = "635c3adc595422cbf2341a17fb73a319669cc8d33deed3a48368a841df86b676"
dependencies = [
"anyhow",
"bitflags 2.9.4",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"serde",
"serde_derive",
@@ -20659,7 +20129,7 @@ checksum = "196d3ecfc4b759a8573bf86a9b3f8996b304b3732e4c7de81655f875f6efdca6"
dependencies = [
"anyhow",
"id-arena",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"semver",
"serde",
@@ -20671,38 +20141,38 @@ dependencies = [
[[package]]
name = "wit-parser"
-version = "0.221.3"
+version = "0.227.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "896112579ed56b4a538b07a3d16e562d101ff6265c46b515ce0c701eef16b2ac"
+checksum = "ddf445ed5157046e4baf56f9138c124a0824d4d1657e7204d71886ad8ce2fc11"
dependencies = [
"anyhow",
"id-arena",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"semver",
"serde",
"serde_derive",
"serde_json",
"unicode-xid",
- "wasmparser 0.221.3",
+ "wasmparser 0.227.1",
]
[[package]]
name = "wit-parser"
-version = "0.227.1"
+version = "0.229.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddf445ed5157046e4baf56f9138c124a0824d4d1657e7204d71886ad8ce2fc11"
+checksum = "459c6ba62bf511d6b5f2a845a2a736822e38059c1cfa0b644b467bbbfae4efa6"
dependencies = [
"anyhow",
"id-arena",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"semver",
"serde",
"serde_derive",
"serde_json",
"unicode-xid",
- "wasmparser 0.227.1",
+ "wasmparser 0.229.0",
]
[[package]]
@@ -20731,13 +20201,16 @@ dependencies = [
"component",
"dap",
"db",
+ "feature_flags",
"fs",
"futures 0.3.31",
+ "git",
"gpui",
"http_client",
"itertools 0.14.0",
"language",
"log",
+ "markdown",
"menu",
"node_runtime",
"parking_lot",
@@ -20745,7 +20218,7 @@ dependencies = [
"pretty_assertions",
"project",
"remote",
- "schemars 1.0.4",
+ "schemars",
"serde",
"serde_json",
"session",
@@ -20771,8 +20244,10 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-lock 2.8.0",
+ "chardetng",
"clock",
"collections",
+ "encoding_rs",
"fs",
"futures 0.3.31",
"fuzzy",
@@ -20860,7 +20335,7 @@ name = "x_ai"
version = "0.1.0"
dependencies = [
"anyhow",
- "schemars 1.0.4",
+ "schemars",
"serde",
"strum 0.27.2",
]
@@ -20959,19 +20434,14 @@ dependencies = [
"cargo_toml",
"clap",
"gh-workflow",
- "indexmap 2.11.4",
+ "indexmap",
"indoc",
"serde",
+ "serde_json",
"toml 0.8.23",
"toml_edit 0.22.27",
]
-[[package]]
-name = "xxhash-rust"
-version = "0.8.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
-
[[package]]
name = "yaml-rust2"
version = "0.8.1"
@@ -21146,12 +20616,13 @@ dependencies = [
[[package]]
name = "zed"
-version = "0.213.0"
+version = "0.219.0"
dependencies = [
"acp_tools",
"activity_indicator",
"agent_settings",
"agent_ui",
+ "agent_ui_v2",
"anyhow",
"ashpd 0.11.0",
"askpass",
@@ -21159,11 +20630,11 @@ dependencies = [
"audio",
"auto_update",
"auto_update_ui",
- "backtrace",
- "bincode 1.3.3",
+ "bincode",
"breadcrumbs",
"call",
"channel",
+ "chrono",
"clap",
"cli",
"client",
@@ -21181,7 +20652,8 @@ dependencies = [
"debugger_tools",
"debugger_ui",
"diagnostics",
- "edit_prediction_button",
+ "edit_prediction",
+ "edit_prediction_ui",
"editor",
"env_logger 0.11.8",
"extension",
@@ -21221,8 +20693,8 @@ dependencies = [
"menu",
"migrator",
"mimalloc",
+ "miniprofiler_ui",
"nc",
- "nix 0.29.0",
"node_runtime",
"notifications",
"onboarding",
@@ -21246,6 +20718,7 @@ dependencies = [
"reqwest_client",
"rope",
"search",
+ "semver",
"serde",
"serde_json",
"session",
@@ -21264,7 +20737,6 @@ dependencies = [
"task",
"tasks_ui",
"telemetry",
- "telemetry_events",
"terminal_view",
"theme",
"theme_extension",
@@ -21272,6 +20744,7 @@ dependencies = [
"time",
"title_bar",
"toolchain_selector",
+ "tracing",
"tree-sitter-md",
"tree-sitter-rust",
"ui",
@@ -21286,17 +20759,16 @@ dependencies = [
"watch",
"web_search",
"web_search_providers",
+ "which_key",
"windows 0.61.3",
"winresource",
"workspace",
"zed-reqwest",
"zed_actions",
"zed_env_vars",
- "zeta",
- "zeta2",
- "zeta2_tools",
"zlog",
"zlog_settings",
+ "ztracing",
]
[[package]]
@@ -21411,7 +20883,7 @@ name = "zed_actions"
version = "0.1.0"
dependencies = [
"gpui",
- "schemars 1.0.4",
+ "schemars",
"serde",
"uuid",
]
@@ -21437,6 +20909,8 @@ dependencies = [
[[package]]
name = "zed_extension_api"
version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0729d50b4ca0a7e28e590bbe32e3ca0194d97ef654961451a424c661a366fca0"
dependencies = [
"serde",
"serde_json",
@@ -21445,9 +20919,7 @@ dependencies = [
[[package]]
name = "zed_extension_api"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0729d50b4ca0a7e28e590bbe32e3ca0194d97ef654961451a424c661a366fca0"
+version = "0.8.0"
dependencies = [
"serde",
"serde_json",
@@ -21463,23 +20935,23 @@ dependencies = [
[[package]]
name = "zed_html"
-version = "0.2.3"
+version = "0.3.0"
dependencies = [
- "zed_extension_api 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "zed_extension_api 0.7.0",
]
[[package]]
name = "zed_proto"
-version = "0.2.2"
+version = "0.3.0"
dependencies = [
- "zed_extension_api 0.1.0",
+ "zed_extension_api 0.7.0",
]
[[package]]
name = "zed_test_extension"
version = "0.1.0"
dependencies = [
- "zed_extension_api 0.7.0",
+ "zed_extension_api 0.8.0",
]
[[package]]
@@ -21607,184 +21079,10 @@ dependencies = [
]
[[package]]
-name = "zeta"
-version = "0.1.0"
-dependencies = [
- "ai_onboarding",
- "anyhow",
- "arrayvec",
- "call",
- "client",
- "clock",
- "cloud_api_types",
- "cloud_llm_client",
- "collections",
- "command_palette_hooks",
- "copilot",
- "ctor",
- "db",
- "edit_prediction",
- "editor",
- "feature_flags",
- "fs",
- "futures 0.3.31",
- "gpui",
- "http_client",
- "indoc",
- "itertools 0.14.0",
- "language",
- "language_model",
- "log",
- "menu",
- "parking_lot",
- "postage",
- "project",
- "rand 0.9.2",
- "regex",
- "release_channel",
- "reqwest_client",
- "rpc",
- "serde",
- "serde_json",
- "settings",
- "strum 0.27.2",
- "telemetry",
- "telemetry_events",
- "theme",
- "thiserror 2.0.17",
- "tree-sitter-go",
- "tree-sitter-rust",
- "ui",
- "util",
- "uuid",
- "workspace",
- "worktree",
- "zed_actions",
- "zlog",
-]
-
-[[package]]
-name = "zeta2"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "arrayvec",
- "chrono",
- "client",
- "clock",
- "cloud_llm_client",
- "cloud_zeta2_prompt",
- "collections",
- "edit_prediction",
- "edit_prediction_context",
- "feature_flags",
- "futures 0.3.31",
- "gpui",
- "indoc",
- "language",
- "language_model",
- "log",
- "lsp",
- "open_ai",
- "pretty_assertions",
- "project",
- "release_channel",
- "serde",
- "serde_json",
- "settings",
- "smol",
- "thiserror 2.0.17",
- "util",
- "uuid",
- "workspace",
- "worktree",
- "zlog",
-]
-
-[[package]]
-name = "zeta2_tools"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "chrono",
- "clap",
- "client",
- "cloud_llm_client",
- "cloud_zeta2_prompt",
- "collections",
- "edit_prediction_context",
- "editor",
- "feature_flags",
- "futures 0.3.31",
- "gpui",
- "indoc",
- "language",
- "log",
- "multi_buffer",
- "ordered-float 2.10.1",
- "pretty_assertions",
- "project",
- "serde",
- "serde_json",
- "settings",
- "telemetry",
- "text",
- "ui",
- "ui_input",
- "util",
- "workspace",
- "zeta2",
- "zlog",
-]
-
-[[package]]
-name = "zeta_cli"
+name = "zeta_prompt"
version = "0.1.0"
dependencies = [
- "anyhow",
- "chrono",
- "clap",
- "client",
- "cloud_llm_client",
- "cloud_zeta2_prompt",
- "collections",
- "debug_adapter_extension",
- "edit_prediction_context",
- "extension",
- "fs",
- "futures 0.3.31",
- "gpui",
- "gpui_tokio",
- "indoc",
- "language",
- "language_extension",
- "language_model",
- "language_models",
- "languages",
- "log",
- "node_runtime",
- "ordered-float 2.10.1",
- "paths",
- "polars",
- "pretty_assertions",
- "project",
- "prompt_store",
- "pulldown-cmark 0.12.2",
- "release_channel",
- "reqwest_client",
"serde",
- "serde_json",
- "settings",
- "shellexpand 2.1.2",
- "smol",
- "soa-rs",
- "terminal_view",
- "toml 0.8.23",
- "util",
- "watch",
- "zeta",
- "zeta2",
- "zlog",
]
[[package]]
@@ -21796,7 +21094,7 @@ dependencies = [
"aes",
"byteorder",
"bzip2",
- "constant_time_eq 0.1.5",
+ "constant_time_eq",
"crc32fast",
"crossbeam-utils",
"flate2",
@@ -21804,7 +21102,7 @@ dependencies = [
"pbkdf2 0.11.0",
"sha1",
"time",
- "zstd 0.11.2+zstd.1.5.2",
+ "zstd",
]
[[package]]
@@ -21817,17 +21115,11 @@ dependencies = [
"crc32fast",
"crossbeam-utils",
"displaydoc",
- "indexmap 2.11.4",
+ "indexmap",
"num_enum",
"thiserror 1.0.69",
]
-[[package]]
-name = "zlib-rs"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2"
-
[[package]]
name = "zlog"
version = "0.1.0"
@@ -21855,16 +21147,7 @@ version = "0.11.2+zstd.1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
dependencies = [
- "zstd-safe 5.0.2+zstd.1.5.2",
-]
-
-[[package]]
-name = "zstd"
-version = "0.13.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
-dependencies = [
- "zstd-safe 7.2.4",
+ "zstd-safe",
]
[[package]]
@@ -21877,15 +21160,6 @@ dependencies = [
"zstd-sys",
]
-[[package]]
-name = "zstd-safe"
-version = "7.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
-dependencies = [
- "zstd-sys",
-]
-
[[package]]
name = "zstd-sys"
version = "2.0.16+zstd.1.5.7"
@@ -21896,6 +21170,21 @@ dependencies = [
"pkg-config",
]
+[[package]]
+name = "ztracing"
+version = "0.1.0"
+dependencies = [
+ "tracing",
+ "tracing-subscriber",
+ "tracing-tracy",
+ "zlog",
+ "ztracing_macro",
+]
+
+[[package]]
+name = "ztracing_macro"
+version = "0.1.0"
+
[[package]]
name = "zune-core"
version = "0.4.12"
diff --git a/Cargo.toml b/Cargo.toml
index 579bc394e6f13963188f03b1b812a05eec43a7b4..703a34b63af901886e861dba3177e58b19c223f0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,6 +9,7 @@ members = [
"crates/agent_servers",
"crates/agent_settings",
"crates/agent_ui",
+ "crates/agent_ui_v2",
"crates/ai_onboarding",
"crates/anthropic",
"crates/askpass",
@@ -32,7 +33,6 @@ members = [
"crates/cloud_api_client",
"crates/cloud_api_types",
"crates/cloud_llm_client",
- "crates/cloud_zeta2_prompt",
"crates/collab",
"crates/collab_ui",
"crates/collections",
@@ -54,11 +54,12 @@ members = [
"crates/diagnostics",
"crates/docs_preprocessor",
"crates/edit_prediction",
- "crates/edit_prediction_button",
+ "crates/edit_prediction_types",
+ "crates/edit_prediction_ui",
"crates/edit_prediction_context",
- "crates/zeta2_tools",
"crates/editor",
"crates/eval",
+ "crates/eval_utils",
"crates/explorer_command_injector",
"crates/extension",
"crates/extension_api",
@@ -110,6 +111,7 @@ members = [
"crates/menu",
"crates/migrator",
"crates/mistral",
+ "crates/miniprofiler_ui",
"crates/multi_buffer",
"crates/nc",
"crates/net",
@@ -126,6 +128,7 @@ members = [
"crates/picker",
"crates/prettier",
"crates/project",
+ "crates/project_benchmarks",
"crates/project_panel",
"crates/project_symbols",
"crates/prompt_store",
@@ -145,7 +148,6 @@ members = [
"crates/rules_library",
"crates/schema_generator",
"crates/search",
- "crates/semantic_version",
"crates/session",
"crates/settings",
"crates/settings_json",
@@ -190,6 +192,7 @@ members = [
"crates/vercel",
"crates/vim",
"crates/vim_mode_setting",
+ "crates/which_key",
"crates/watch",
"crates/web_search",
"crates/web_search_providers",
@@ -199,11 +202,12 @@ members = [
"crates/zed",
"crates/zed_actions",
"crates/zed_env_vars",
- "crates/zeta",
- "crates/zeta2",
- "crates/zeta_cli",
+ "crates/edit_prediction_cli",
+ "crates/zeta_prompt",
"crates/zlog",
"crates/zlog_settings",
+ "crates/ztracing",
+ "crates/ztracing_macro",
#
# Extensions
@@ -240,9 +244,9 @@ action_log = { path = "crates/action_log" }
agent = { path = "crates/agent" }
activity_indicator = { path = "crates/activity_indicator" }
agent_ui = { path = "crates/agent_ui" }
+agent_ui_v2 = { path = "crates/agent_ui_v2" }
agent_settings = { path = "crates/agent_settings" }
agent_servers = { path = "crates/agent_servers" }
-ai = { path = "crates/ai" }
ai_onboarding = { path = "crates/ai_onboarding" }
anthropic = { path = "crates/anthropic" }
askpass = { path = "crates/askpass" }
@@ -252,7 +256,6 @@ assistant_slash_command = { path = "crates/assistant_slash_command" }
assistant_slash_commands = { path = "crates/assistant_slash_commands" }
audio = { path = "crates/audio" }
auto_update = { path = "crates/auto_update" }
-auto_update_helper = { path = "crates/auto_update_helper" }
auto_update_ui = { path = "crates/auto_update_ui" }
aws_http_client = { path = "crates/aws_http_client" }
bedrock = { path = "crates/bedrock" }
@@ -266,8 +269,6 @@ clock = { path = "crates/clock" }
cloud_api_client = { path = "crates/cloud_api_client" }
cloud_api_types = { path = "crates/cloud_api_types" }
cloud_llm_client = { path = "crates/cloud_llm_client" }
-cloud_zeta2_prompt = { path = "crates/cloud_zeta2_prompt" }
-collab = { path = "crates/collab" }
collab_ui = { path = "crates/collab_ui" }
collections = { path = "crates/collections", version = "0.1.0" }
command_palette = { path = "crates/command_palette" }
@@ -288,6 +289,7 @@ deepseek = { path = "crates/deepseek" }
derive_refineable = { path = "crates/refineable/derive_refineable" }
diagnostics = { path = "crates/diagnostics" }
editor = { path = "crates/editor" }
+eval_utils = { path = "crates/eval_utils" }
extension = { path = "crates/extension" }
extension_host = { path = "crates/extension_host" }
extensions_ui = { path = "crates/extensions_ui" }
@@ -311,10 +313,9 @@ http_client = { path = "crates/http_client" }
http_client_tls = { path = "crates/http_client_tls" }
icons = { path = "crates/icons" }
image_viewer = { path = "crates/image_viewer" }
-edit_prediction = { path = "crates/edit_prediction" }
-edit_prediction_button = { path = "crates/edit_prediction_button" }
+edit_prediction_types = { path = "crates/edit_prediction_types" }
+edit_prediction_ui = { path = "crates/edit_prediction_ui" }
edit_prediction_context = { path = "crates/edit_prediction_context" }
-zeta2_tools = { path = "crates/zeta2_tools" }
inspector_ui = { path = "crates/inspector_ui" }
install_cli = { path = "crates/install_cli" }
journal = { path = "crates/journal" }
@@ -341,6 +342,7 @@ menu = { path = "crates/menu" }
migrator = { path = "crates/migrator" }
mistral = { path = "crates/mistral" }
multi_buffer = { path = "crates/multi_buffer" }
+miniprofiler_ui = { path = "crates/miniprofiler_ui" }
nc = { path = "crates/nc" }
net = { path = "crates/net" }
node_runtime = { path = "crates/node_runtime" }
@@ -355,8 +357,6 @@ panel = { path = "crates/panel" }
paths = { path = "crates/paths" }
perf = { path = "tooling/perf" }
picker = { path = "crates/picker" }
-plugin = { path = "crates/plugin" }
-plugin_macros = { path = "crates/plugin_macros" }
prettier = { path = "crates/prettier" }
settings_profile_selector = { path = "crates/settings_profile_selector" }
project = { path = "crates/project" }
@@ -367,18 +367,15 @@ proto = { path = "crates/proto" }
recent_projects = { path = "crates/recent_projects" }
refineable = { path = "crates/refineable" }
release_channel = { path = "crates/release_channel" }
-scheduler = { path = "crates/scheduler" }
remote = { path = "crates/remote" }
remote_server = { path = "crates/remote_server" }
repl = { path = "crates/repl" }
reqwest_client = { path = "crates/reqwest_client" }
-rich_text = { path = "crates/rich_text" }
rodio = { git = "https://github.com/RustAudio/rodio", rev ="e2074c6c2acf07b57cf717e076bdda7a9ac6e70b", features = ["wav", "playback", "wav_output", "recording"] }
rope = { path = "crates/rope" }
rpc = { path = "crates/rpc" }
rules_library = { path = "crates/rules_library" }
search = { path = "crates/search" }
-semantic_version = { path = "crates/semantic_version" }
session = { path = "crates/session" }
settings = { path = "crates/settings" }
settings_json = { path = "crates/settings_json" }
@@ -390,7 +387,6 @@ snippets_ui = { path = "crates/snippets_ui" }
sqlez = { path = "crates/sqlez" }
sqlez_macros = { path = "crates/sqlez_macros" }
story = { path = "crates/story" }
-storybook = { path = "crates/storybook" }
streaming_diff = { path = "crates/streaming_diff" }
sum_tree = { path = "crates/sum_tree" }
supermaven = { path = "crates/supermaven" }
@@ -407,7 +403,6 @@ terminal_view = { path = "crates/terminal_view" }
text = { path = "crates/text" }
theme = { path = "crates/theme" }
theme_extension = { path = "crates/theme_extension" }
-theme_importer = { path = "crates/theme_importer" }
theme_selector = { path = "crates/theme_selector" }
time_format = { path = "crates/time_format" }
title_bar = { path = "crates/title_bar" }
@@ -421,6 +416,7 @@ util_macros = { path = "crates/util_macros" }
vercel = { path = "crates/vercel" }
vim = { path = "crates/vim" }
vim_mode_setting = { path = "crates/vim_mode_setting" }
+which_key = { path = "crates/which_key" }
watch = { path = "crates/watch" }
web_search = { path = "crates/web_search" }
@@ -431,16 +427,18 @@ x_ai = { path = "crates/x_ai" }
zed = { path = "crates/zed" }
zed_actions = { path = "crates/zed_actions" }
zed_env_vars = { path = "crates/zed_env_vars" }
-zeta = { path = "crates/zeta" }
-zeta2 = { path = "crates/zeta2" }
+edit_prediction = { path = "crates/edit_prediction" }
+zeta_prompt = { path = "crates/zeta_prompt" }
zlog = { path = "crates/zlog" }
zlog_settings = { path = "crates/zlog_settings" }
+ztracing = { path = "crates/ztracing" }
+ztracing_macro = { path = "crates/ztracing_macro" }
#
# External crates
#
-agent-client-protocol = { version = "0.7.0", features = ["unstable"] }
+agent-client-protocol = { version = "=0.9.0", features = ["unstable"] }
aho-corasick = "1.1"
alacritty_terminal = "0.25.1-rc1"
any_vec = "0.14"
@@ -458,16 +456,16 @@ async-tar = "0.5.1"
async-task = "4.7"
async-trait = "0.1"
async-tungstenite = "0.31.0"
-async_zip = { version = "0.0.17", features = ["deflate", "deflate64"] }
-aws-config = { version = "1.6.1", features = ["behavior-version-latest"] }
-aws-credential-types = { version = "1.2.2", features = [
+async_zip = { version = "0.0.18", features = ["deflate", "deflate64"] }
+aws-config = { version = "1.8.10", features = ["behavior-version-latest"] }
+aws-credential-types = { version = "1.2.8", features = [
"hardcoded-credentials",
] }
-aws-sdk-bedrockruntime = { version = "1.80.0", features = [
+aws-sdk-bedrockruntime = { version = "1.112.0", features = [
"behavior-version-latest",
] }
-aws-smithy-runtime-api = { version = "1.7.4", features = ["http-1x", "client"] }
-aws-smithy-types = { version = "1.3.0", features = ["http-body-1-x"] }
+aws-smithy-runtime-api = { version = "1.9.2", features = ["http-1x", "client"] }
+aws-smithy-types = { version = "1.3.4", features = ["http-body-1-x"] }
backtrace = "0.3"
base64 = "0.22"
bincode = "1.2.1"
@@ -475,14 +473,16 @@ bitflags = "2.6.0"
blade-graphics = { version = "0.7.0" }
blade-macros = { version = "0.3.0" }
blade-util = { version = "0.3.0" }
+brotli = "8.0.2"
bytes = "1.0"
cargo_metadata = "0.19"
cargo_toml = "0.21"
cfg-if = "1.0.3"
+chardetng = "0.1"
chrono = { version = "0.4", features = ["serde"] }
ciborium = "0.2"
circular-buffer = "1.0"
-clap = { version = "4.4", features = ["derive"] }
+clap = { version = "4.4", features = ["derive", "wrap_help"] }
cocoa = "=0.26.0"
cocoa-foundation = "=0.2.0"
convert_case = "0.8.0"
@@ -502,17 +502,16 @@ dotenvy = "0.15.0"
ec4rs = "1.1"
emojis = "0.6.1"
env_logger = "0.11"
+encoding_rs = "0.8"
exec = "0.3.1"
-fancy-regex = "0.14.0"
-fork = "0.2.0"
+fancy-regex = "0.16.0"
+fork = "0.4.0"
futures = "0.3"
-futures-batch = "0.6.1"
futures-lite = "1.13"
-gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "3eaa84abca0778eb54272f45a312cb24f9a0b435" }
+gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "09acfdf2bd5c1d6254abefd609c808ff73547b2c" }
git2 = { version = "0.20.1", default-features = false }
globset = "0.4"
handlebars = "4.3"
-hashbrown = "0.15.3"
heck = "0.5"
heed = { version = "0.21.0", features = ["read-txn-no-tls"] }
hex = "0.4.3"
@@ -529,10 +528,10 @@ indoc = "2"
inventory = "0.3.19"
itertools = "0.14.0"
json_dotpath = "1.1"
-jsonschema = "0.30.0"
+jsonschema = "0.37.0"
jsonwebtoken = "9.3"
-jupyter-protocol = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" }
-jupyter-websocket-client = { git = "https://github.com/ConradIrwin/runtimed" ,rev = "7130c804216b6914355d15d0b91ea91f6babd734" }
+jupyter-protocol = "0.10.0"
+jupyter-websocket-client = "0.15.0"
libc = "0.2"
libsqlite3-sys = { version = "0.30.1", features = ["bundled"] }
linkify = "0.10.0"
@@ -545,10 +544,9 @@ minidumper = "0.8"
moka = { version = "0.12.10", features = ["sync"] }
naga = { version = "25.0", features = ["wgsl-in"] }
nanoid = "0.4"
-nbformat = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" }
+nbformat = "0.15.0"
nix = "0.29"
num-format = "0.4.4"
-num-traits = "0.2"
objc = "0.2"
objc2-foundation = { version = "=0.3.1", default-features = false, features = [
"NSArray",
@@ -583,14 +581,13 @@ partial-json-fixer = "0.5.3"
parse_int = "0.9"
pciid-parser = "0.8.0"
pathdiff = "0.2"
-pet = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-conda = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-core = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-fs = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-pixi = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-poetry = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-reporter = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
-pet-virtualenv = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "e97b9508befa0062929da65a01054d25c4be861c" }
+pet = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-conda = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-core = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-fs = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-poetry = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-reporter = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
+pet-virtualenv = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "1e86914c3ce2f3a08c0cedbcb0615a7f9fa7a5da" }
portable-pty = "0.9.0"
postage = { version = "0.5", features = ["futures-traits"] }
pretty_assertions = { version = "1.3.0", features = ["unstable"] }
@@ -603,7 +600,6 @@ pulldown-cmark = { version = "0.12.0", default-features = false }
quote = "1.0.9"
rand = "0.9"
rayon = "1.8"
-ref-cast = "1.0.24"
regex = "1.5"
# WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io
reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
@@ -616,8 +612,8 @@ reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662
"stream",
], package = "zed-reqwest", version = "0.12.15-zed" }
rsa = "0.9.6"
-runtimelib = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734", default-features = false, features = [
- "async-dispatcher-runtime",
+runtimelib = { version = "0.30.0", default-features = false, features = [
+ "async-dispatcher-runtime", "aws-lc-rs"
] }
rust-embed = { version = "8.4", features = ["include-exclude"] }
rustc-hash = "2.1.0"
@@ -626,7 +622,7 @@ rustls-platform-verifier = "0.5.0"
# WARNING: If you change this, you must also publish a new version of zed-scap to crates.io
scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" }
schemars = { version = "1.0", features = ["indexmap2"] }
-semver = "1.0"
+semver = { version = "1.0", features = ["serde"] }
serde = { version = "1.0.221", features = ["derive", "rc"] }
serde_json = { version = "1.0.144", features = ["preserve_order", "raw_value"] }
serde_json_lenient = { version = "0.2", features = [
@@ -636,13 +632,12 @@ serde_json_lenient = { version = "0.2", features = [
serde_path_to_error = "0.1.17"
serde_repr = "0.1"
serde_urlencoded = "0.7"
-serde_with = "3.4.0"
sha2 = "0.10"
shellexpand = "2.1.0"
shlex = "1.3.0"
simplelog = "0.12.2"
slotmap = "1.0.6"
-smallvec = { version = "1.6", features = ["union"] }
+smallvec = { version = "1.6", features = ["union", "const_new"] }
smol = "2.0"
sqlformat = "0.2"
stacksafe = "0.1"
@@ -656,7 +651,7 @@ sysinfo = "0.37.0"
take-until = "0.2.0"
tempfile = "3.20.0"
thiserror = "2.0.12"
-tiktoken-rs = { git = "https://github.com/zed-industries/tiktoken-rs", rev = "30c32a4522751699adeda0d5840c71c3b75ae73d" }
+tiktoken-rs = { git = "https://github.com/zed-industries/tiktoken-rs", rev = "2570c4387a8505fb8f1d3f3557454b474f1e8271" }
time = { version = "0.3", features = [
"macros",
"parsing",
@@ -668,11 +663,12 @@ time = { version = "0.3", features = [
tiny_http = "0.8"
tokio = { version = "1" }
tokio-tungstenite = { version = "0.26", features = ["__rustls-tls"] }
+tokio-socks = { version = "0.5.2", default-features = false, features = ["futures-io", "tokio"] }
toml = "0.8"
toml_edit = { version = "0.22", default-features = false, features = ["display", "parse", "serde"] }
tower-http = "0.4.4"
-tree-sitter = { version = "0.25.10", features = ["wasm"] }
-tree-sitter-bash = "0.25.0"
+tree-sitter = { version = "0.26", features = ["wasm"] }
+tree-sitter-bash = "0.25.1"
tree-sitter-c = "0.23"
tree-sitter-cpp = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev = "5cb9b693cfd7bfacab1d9ff4acac1a4150700609" }
tree-sitter-css = "0.23"
@@ -694,6 +690,7 @@ tree-sitter-ruby = "0.23"
tree-sitter-rust = "0.24"
tree-sitter-typescript = { git = "https://github.com/zed-industries/tree-sitter-typescript", rev = "e2c53597d6a5d9cf7bbe8dccde576fe1e46c5899" } # https://github.com/tree-sitter/tree-sitter-typescript/pull/347
tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "baff0b51c64ef6a1fb1f8390f3ad6015b83ec13a" }
+tracing = "0.1.40"
unicase = "2.6"
unicode-script = "0.5.7"
unicode-segmentation = "1.10"
@@ -704,7 +701,7 @@ uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
walkdir = "2.5"
wasm-encoder = "0.221"
wasmparser = "0.221"
-wasmtime = { version = "29", default-features = false, features = [
+wasmtime = { version = "33", default-features = false, features = [
"async",
"demangle",
"runtime",
@@ -713,14 +710,15 @@ wasmtime = { version = "29", default-features = false, features = [
"incremental-cache",
"parallel-compilation",
] }
-wasmtime-wasi = "29"
+wasmtime-wasi = "33"
+wax = "0.6"
which = "6.0.0"
windows-core = "0.61"
-wit-component = "0.221"
yawc = "0.2.5"
zeroize = "1.8"
zstd = "0.11"
+
[workspace.dependencies.windows]
version = "0.61"
features = [
@@ -776,6 +774,7 @@ features = [
notify = { git = "https://github.com/zed-industries/notify.git", rev = "b4588b2e5aee68f4c0e100f140e808cbce7b1419" }
notify-types = { git = "https://github.com/zed-industries/notify.git", rev = "b4588b2e5aee68f4c0e100f140e808cbce7b1419" }
windows-capture = { git = "https://github.com/zed-industries/windows-capture.git", rev = "f0d6c1b6691db75461b732f6d5ff56eed002eeb9" }
+calloop = { git = "https://github.com/zed-industries/calloop" }
[profile.dev]
split-debuginfo = "unpacked"
@@ -789,14 +788,20 @@ codegen-units = 16
codegen-units = 16
[profile.dev.package]
+# proc-macros start
+gpui_macros = { opt-level = 3 }
+derive_refineable = { opt-level = 3 }
+settings_macros = { opt-level = 3 }
+sqlez_macros = { opt-level = 3, codegen-units = 1 }
+ui_macros = { opt-level = 3 }
+util_macros = { opt-level = 3 }
+quote = { opt-level = 3 }
+syn = { opt-level = 3 }
+proc-macro2 = { opt-level = 3 }
+# proc-macros end
+
taffy = { opt-level = 3 }
-cranelift-codegen = { opt-level = 3 }
-cranelift-codegen-meta = { opt-level = 3 }
-cranelift-codegen-shared = { opt-level = 3 }
resvg = { opt-level = 3 }
-rustybuzz = { opt-level = 3 }
-ttf-parser = { opt-level = 3 }
-wasmtime-cranelift = { opt-level = 3 }
wasmtime = { opt-level = 3 }
# Build single-source-file crates with cg=1 as it helps make `cargo build` of a whole workspace a bit faster
activity_indicator = { codegen-units = 1 }
@@ -805,12 +810,11 @@ breadcrumbs = { codegen-units = 1 }
collections = { codegen-units = 1 }
command_palette = { codegen-units = 1 }
command_palette_hooks = { codegen-units = 1 }
-extension_cli = { codegen-units = 1 }
feature_flags = { codegen-units = 1 }
file_icons = { codegen-units = 1 }
fsevent = { codegen-units = 1 }
image_viewer = { codegen-units = 1 }
-edit_prediction_button = { codegen-units = 1 }
+edit_prediction_ui = { codegen-units = 1 }
install_cli = { codegen-units = 1 }
journal = { codegen-units = 1 }
json_schema_store = { codegen-units = 1 }
@@ -825,12 +829,9 @@ project_symbols = { codegen-units = 1 }
refineable = { codegen-units = 1 }
release_channel = { codegen-units = 1 }
reqwest_client = { codegen-units = 1 }
-rich_text = { codegen-units = 1 }
-semantic_version = { codegen-units = 1 }
session = { codegen-units = 1 }
snippet = { codegen-units = 1 }
snippets_ui = { codegen-units = 1 }
-sqlez_macros = { codegen-units = 1 }
story = { codegen-units = 1 }
supermaven_api = { codegen-units = 1 }
telemetry_events = { codegen-units = 1 }
@@ -860,8 +861,6 @@ unexpected_cfgs = { level = "allow" }
dbg_macro = "deny"
todo = "deny"
-# This is not a style lint, see https://github.com/rust-lang/rust-clippy/pull/15454
-# Remove when the lint gets promoted to `suspicious`.
declare_interior_mutable_const = "deny"
redundant_clone = "deny"
diff --git a/Dockerfile-collab b/Dockerfile-collab
index a85fe93f198475534cb7396abe594f9d02eeb57b..188e7daddfb471c41b237ca75469355cfc866ae3 100644
--- a/Dockerfile-collab
+++ b/Dockerfile-collab
@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2
-FROM rust:1.90-bookworm as builder
+FROM rust:1.92-bookworm as builder
WORKDIR app
COPY . .
@@ -34,8 +34,4 @@ RUN apt-get update; \
linux-perf binutils
WORKDIR app
COPY --from=builder /app/collab /app/collab
-COPY --from=builder /app/crates/collab/migrations /app/migrations
-COPY --from=builder /app/crates/collab/migrations_llm /app/migrations_llm
-ENV MIGRATIONS_PATH=/app/migrations
-ENV LLM_DATABASE_MIGRATIONS_PATH=/app/migrations_llm
ENTRYPOINT ["/app/collab"]
diff --git a/README.md b/README.md
index d1e2a75beccc9b115bd3b2e09bcc812aebc98329..d3a5fd20526e5eae6826241dce2bb94e8533ecb3 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ Welcome to Zed, a high-performance, multiplayer code editor from the creators of
### Installation
-On macOS, Linux, and Windows you can [download Zed directly](https://zed.dev/download) or [install Zed via your local package manager](https://zed.dev/docs/linux#installing-via-a-package-manager).
+On macOS, Linux, and Windows you can [download Zed directly](https://zed.dev/download) or install Zed via your local package manager ([macOS](https://zed.dev/docs/installation#macos)/[Linux](https://zed.dev/docs/linux#installing-via-a-package-manager)/[Windows](https://zed.dev/docs/windows#package-managers)).
Other platforms are not yet available:
diff --git a/REVIEWERS.conl b/REVIEWERS.conl
index 230e6e4d3cc6e7cf51339ea84bfd1dac5e065c12..bca694d7a06fe1112f7f8bab158dad63a365ea74 100644
--- a/REVIEWERS.conl
+++ b/REVIEWERS.conl
@@ -28,7 +28,7 @@ ai
= @rtfeldman
audio
- = @dvdsk
+ = @yara-blue
crashes
= @p1n3appl3
@@ -43,7 +43,9 @@ design
= @danilo-leal
docs
+ = @miguelraz
= @probably-neb
+ = @yeskunall
extension
= @kubkon
@@ -51,6 +53,10 @@ extension
git
= @cole-miller
= @danilo-leal
+ = @yara-blue
+ = @kubkon
+ = @Anthony-Eid
+ = @cameron1024
gpui
= @Anthony-Eid
@@ -70,7 +76,7 @@ languages
linux
= @cole-miller
- = @dvdsk
+ = @yara-blue
= @p1n3appl3
= @probably-neb
= @smitbarmase
@@ -86,7 +92,7 @@ multi_buffer
= @SomeoneToIgnore
pickers
- = @dvdsk
+ = @yara-blue
= @p1n3appl3
= @SomeoneToIgnore
@@ -98,6 +104,12 @@ settings_ui
= @danilo-leal
= @probably-neb
+sum_tree
+ = @Veykril
+
+support
+ = @miguelraz
+
tasks
= @SomeoneToIgnore
= @Veykril
@@ -106,6 +118,9 @@ terminal
= @kubkon
= @Veykril
+text
+ = @Veykril
+
vim
= @ConradIrwin
= @dinocosta
@@ -115,3 +130,4 @@ vim
windows
= @localcc
= @reflectronic
+ = @Veykril
diff --git a/assets/icons/at_sign.svg b/assets/icons/at_sign.svg
new file mode 100644
index 0000000000000000000000000000000000000000..531c10c8dc151fb27f2a53d424ab57acecd7d03c
--- /dev/null
+++ b/assets/icons/at_sign.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/box.svg b/assets/icons/box.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7e1276c629fb8bdc5a7ed48d9e2de6369d4c2bb0
--- /dev/null
+++ b/assets/icons/box.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/icons/debug_step_back.svg b/assets/icons/debug_step_back.svg
deleted file mode 100644
index 61d45866f61cbabbd9a7ae9975809d342cb76ed5..0000000000000000000000000000000000000000
--- a/assets/icons/debug_step_back.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/assets/icons/debug_step_into.svg b/assets/icons/debug_step_into.svg
index 9a517fc7ca0762b17446a75cd90f39a91e1b51cf..0a5882354380b659425fecca2b4c6000516e422f 100644
--- a/assets/icons/debug_step_into.svg
+++ b/assets/icons/debug_step_into.svg
@@ -1 +1,5 @@
-
+
diff --git a/assets/icons/debug_step_out.svg b/assets/icons/debug_step_out.svg
index 147a44f930f34f6c3ddce94693a178a932129cb5..c128f56111f2b68d7229f9d2f61b6b2496f99bba 100644
--- a/assets/icons/debug_step_out.svg
+++ b/assets/icons/debug_step_out.svg
@@ -1 +1,5 @@
-
+
diff --git a/assets/icons/debug_step_over.svg b/assets/icons/debug_step_over.svg
index 336abc11deb866a128e8418dab47af01b6e4d3f6..5d8ccd5b7a20b2f8a108ab4c2e03694db4f6f8a8 100644
--- a/assets/icons/debug_step_over.svg
+++ b/assets/icons/debug_step_over.svg
@@ -1 +1,5 @@
-
+
diff --git a/assets/icons/file_icons/odin.svg b/assets/icons/file_icons/odin.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3b4ef8931943eb30279a998010e8df0632b08cf4
--- /dev/null
+++ b/assets/icons/file_icons/odin.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/git_branch_plus.svg b/assets/icons/git_branch_plus.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cf60ce66b4086ba57ef4c2e56f3554d548e863fc
--- /dev/null
+++ b/assets/icons/git_branch_plus.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/inception.svg b/assets/icons/inception.svg
new file mode 100644
index 0000000000000000000000000000000000000000..77a96c0b390ab9f2fe89143c2a89ba916000fabc
--- /dev/null
+++ b/assets/icons/inception.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/icons/sweep_ai.svg b/assets/icons/sweep_ai.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bf3459c7ea9896bc6c1d2297d1f7671cfc8a4d46
--- /dev/null
+++ b/assets/icons/sweep_ai.svg
@@ -0,0 +1,32 @@
+
diff --git a/assets/icons/zed_agent_two.svg b/assets/icons/zed_agent_two.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c352be84d2f1bea6da1f6a5be70b9420f019b6d6
--- /dev/null
+++ b/assets/icons/zed_agent_two.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json
index 57c799d8fd4f74478f5fdf469ff142e0c26e4503..ec21bc152edf969f57ac341e4b92f78c9e5da11a 100644
--- a/assets/keymaps/default-linux.json
+++ b/assets/keymaps/default-linux.json
@@ -25,7 +25,8 @@
"ctrl-shift-w": "workspace::CloseWindow",
"shift-escape": "workspace::ToggleZoom",
"open": "workspace::Open",
- "ctrl-o": "workspace::Open",
+ "ctrl-o": "workspace::OpenFiles",
+ "ctrl-k ctrl-o": "workspace::Open",
"ctrl-=": ["zed::IncreaseBufferFontSize", { "persist": false }],
"ctrl-+": ["zed::IncreaseBufferFontSize", { "persist": false }],
"ctrl--": ["zed::DecreaseBufferFontSize", { "persist": false }],
@@ -41,18 +42,18 @@
"ctrl-f11": "debugger::StepInto",
"shift-f11": "debugger::StepOut",
"f11": "zed::ToggleFullScreen",
- "ctrl-alt-z": "edit_prediction::RateCompletions",
+ "ctrl-alt-z": "edit_prediction::RatePredictions",
"ctrl-alt-shift-i": "edit_prediction::ToggleMenu",
"ctrl-alt-l": "lsp_tool::ToggleMenu",
- "ctrl-alt-.": "project_panel::ToggleHideHidden"
- }
+ "ctrl-alt-shift-s": "workspace::ToggleWorktreeSecurity",
+ },
},
{
"context": "Picker || menu",
"bindings": {
"up": "menu::SelectPrevious",
- "down": "menu::SelectNext"
- }
+ "down": "menu::SelectNext",
+ },
},
{
"context": "Editor",
@@ -63,7 +64,6 @@
"delete": "editor::Delete",
"tab": "editor::Tab",
"shift-tab": "editor::Backtab",
- "ctrl-k": "editor::CutToEndOfLine",
"ctrl-k ctrl-q": "editor::Rewrap",
"ctrl-k q": "editor::Rewrap",
"ctrl-backspace": ["editor::DeleteToPreviousWordStart", { "ignore_newlines": false, "ignore_brackets": false }],
@@ -125,8 +125,8 @@
"shift-f10": "editor::OpenContextMenu",
"ctrl-alt-shift-e": "editor::ToggleEditPrediction",
"f9": "editor::ToggleBreakpoint",
- "shift-f9": "editor::EditLogBreakpoint"
- }
+ "shift-f9": "editor::EditLogBreakpoint",
+ },
},
{
"context": "Editor && mode == full",
@@ -145,44 +145,44 @@
"ctrl-alt-e": "editor::SelectEnclosingSymbol",
"ctrl-shift-backspace": "editor::GoToPreviousChange",
"ctrl-shift-alt-backspace": "editor::GoToNextChange",
- "alt-enter": "editor::OpenSelectionsInMultibuffer"
- }
+ "alt-enter": "editor::OpenSelectionsInMultibuffer",
+ },
},
{
"context": "Editor && mode == full && edit_prediction",
"bindings": {
"alt-]": "editor::NextEditPrediction",
- "alt-[": "editor::PreviousEditPrediction"
- }
+ "alt-[": "editor::PreviousEditPrediction",
+ },
},
{
"context": "Editor && !edit_prediction",
"bindings": {
- "alt-\\": "editor::ShowEditPrediction"
- }
+ "alt-\\": "editor::ShowEditPrediction",
+ },
},
{
"context": "Editor && mode == auto_height",
"bindings": {
"ctrl-enter": "editor::Newline",
"shift-enter": "editor::Newline",
- "ctrl-shift-enter": "editor::NewlineBelow"
- }
+ "ctrl-shift-enter": "editor::NewlineBelow",
+ },
},
{
"context": "Markdown",
"bindings": {
"copy": "markdown::Copy",
"ctrl-insert": "markdown::Copy",
- "ctrl-c": "markdown::Copy"
- }
+ "ctrl-c": "markdown::Copy",
+ },
},
{
"context": "Editor && jupyter && !ContextEditor",
"bindings": {
"ctrl-shift-enter": "repl::Run",
- "ctrl-alt-enter": "repl::RunInPlace"
- }
+ "ctrl-alt-enter": "repl::RunInPlace",
+ },
},
{
"context": "Editor && !agent_diff",
@@ -190,8 +190,8 @@
"ctrl-k ctrl-r": "git::Restore",
"ctrl-alt-y": "git::ToggleStaged",
"alt-y": "git::StageAndNext",
- "alt-shift-y": "git::UnstageAndNext"
- }
+ "alt-shift-y": "git::UnstageAndNext",
+ },
},
{
"context": "Editor && editor_agent_diff",
@@ -200,8 +200,8 @@
"ctrl-n": "agent::Reject",
"ctrl-shift-y": "agent::KeepAll",
"ctrl-shift-n": "agent::RejectAll",
- "shift-ctrl-r": "agent::OpenAgentDiff"
- }
+ "shift-ctrl-r": "agent::OpenAgentDiff",
+ },
},
{
"context": "AgentDiff",
@@ -209,8 +209,8 @@
"ctrl-y": "agent::Keep",
"ctrl-n": "agent::Reject",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "ContextEditor > Editor",
@@ -226,8 +226,8 @@
"ctrl-k c": "assistant::CopyCode",
"ctrl-g": "search::SelectNextMatch",
"ctrl-shift-g": "search::SelectPreviousMatch",
- "ctrl-k l": "agent::OpenRulesLibrary"
- }
+ "ctrl-k l": "agent::OpenRulesLibrary",
+ },
},
{
"context": "AgentPanel",
@@ -240,50 +240,49 @@
"ctrl-alt-l": "agent::OpenRulesLibrary",
"ctrl-i": "agent::ToggleProfileSelector",
"ctrl-alt-/": "agent::ToggleModelSelector",
- "ctrl-shift-a": "agent::ToggleContextPicker",
"ctrl-shift-j": "agent::ToggleNavigationMenu",
"ctrl-alt-i": "agent::ToggleOptionsMenu",
"ctrl-alt-shift-n": "agent::ToggleNewThreadMenu",
"shift-alt-escape": "agent::ExpandMessageEditor",
"ctrl->": "agent::AddSelectionToThread",
- "ctrl-alt-e": "agent::RemoveAllContext",
"ctrl-shift-e": "project_panel::ToggleFocus",
"ctrl-shift-enter": "agent::ContinueThread",
"super-ctrl-b": "agent::ToggleBurnMode",
"alt-enter": "agent::ContinueWithBurnMode",
"ctrl-y": "agent::AllowOnce",
"ctrl-alt-y": "agent::AllowAlways",
- "ctrl-alt-z": "agent::RejectOnce"
- }
+ "ctrl-alt-z": "agent::RejectOnce",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AgentPanel > NavigationMenu",
"bindings": {
- "shift-backspace": "agent::DeleteRecentlyOpenThread"
- }
+ "shift-backspace": "agent::DeleteRecentlyOpenThread",
+ },
},
{
"context": "AgentPanel > Markdown",
"bindings": {
"copy": "markdown::CopyAsMarkdown",
"ctrl-insert": "markdown::CopyAsMarkdown",
- "ctrl-c": "markdown::CopyAsMarkdown"
- }
+ "ctrl-c": "markdown::CopyAsMarkdown",
+ },
},
{
"context": "AgentPanel && text_thread",
"bindings": {
"ctrl-n": "agent::NewTextThread",
- "ctrl-alt-t": "agent::NewThread"
- }
+ "ctrl-alt-t": "agent::NewThread",
+ },
},
{
"context": "AgentPanel && acp_thread",
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewExternalAgentThread",
- "ctrl-alt-t": "agent::NewThread"
- }
+ "ctrl-alt-t": "agent::NewThread",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && !use_modifier_to_send",
@@ -293,8 +292,8 @@
"ctrl-i": "agent::ToggleProfileSelector",
"shift-ctrl-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && use_modifier_to_send",
@@ -304,41 +303,30 @@
"ctrl-i": "agent::ToggleProfileSelector",
"shift-ctrl-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "EditMessageEditor > Editor",
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AgentFeedbackMessageEditor > Editor",
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
- },
- {
- "context": "ContextStrip",
- "bindings": {
- "up": "agent::FocusUp",
- "right": "agent::FocusRight",
- "left": "agent::FocusLeft",
- "down": "agent::FocusDown",
- "backspace": "agent::RemoveFocusedContext",
- "enter": "agent::AcceptSuggestedContext"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AcpThread > ModeSelector",
"bindings": {
- "ctrl-enter": "menu::Confirm"
- }
+ "ctrl-enter": "menu::Confirm",
+ },
},
{
"context": "AcpThread > Editor && !use_modifier_to_send",
@@ -347,8 +335,8 @@
"enter": "agent::Chat",
"shift-ctrl-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "AcpThread > Editor && use_modifier_to_send",
@@ -358,14 +346,15 @@
"shift-ctrl-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
"ctrl-shift-n": "agent::RejectAll",
- "shift-tab": "agent::CycleModeSelector"
- }
+ "shift-tab": "agent::CycleModeSelector",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "ThreadHistory",
"bindings": {
- "backspace": "agent::RemoveSelectedThread"
- }
+ "backspace": "agent::RemoveSelectedThread",
+ },
},
{
"context": "RulesLibrary",
@@ -373,8 +362,8 @@
"new": "rules_library::NewRule",
"ctrl-n": "rules_library::NewRule",
"ctrl-shift-s": "rules_library::ToggleDefaultRule",
- "ctrl-w": "workspace::CloseWindow"
- }
+ "ctrl-w": "workspace::CloseWindow",
+ },
},
{
"context": "BufferSearchBar",
@@ -387,22 +376,22 @@
"find": "search::FocusSearch",
"ctrl-f": "search::FocusSearch",
"ctrl-h": "search::ToggleReplace",
- "ctrl-l": "search::ToggleSelection"
- }
+ "ctrl-l": "search::ToggleSelection",
+ },
},
{
"context": "BufferSearchBar && in_replace > Editor",
"bindings": {
"enter": "search::ReplaceNext",
- "ctrl-enter": "search::ReplaceAll"
- }
+ "ctrl-enter": "search::ReplaceAll",
+ },
},
{
"context": "BufferSearchBar && !in_replace > Editor",
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar",
@@ -413,22 +402,22 @@
"ctrl-shift-f": "search::FocusSearch",
"ctrl-shift-h": "search::ToggleReplace",
"alt-ctrl-g": "search::ToggleRegex",
- "alt-ctrl-x": "search::ToggleRegex"
- }
+ "alt-ctrl-x": "search::ToggleRegex",
+ },
},
{
"context": "ProjectSearchBar > Editor",
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar && in_replace > Editor",
"bindings": {
"enter": "search::ReplaceNext",
- "ctrl-alt-enter": "search::ReplaceAll"
- }
+ "ctrl-alt-enter": "search::ReplaceAll",
+ },
},
{
"context": "ProjectSearchView",
@@ -436,8 +425,8 @@
"escape": "project_search::ToggleFocus",
"ctrl-shift-h": "search::ToggleReplace",
"alt-ctrl-g": "search::ToggleRegex",
- "alt-ctrl-x": "search::ToggleRegex"
- }
+ "alt-ctrl-x": "search::ToggleRegex",
+ },
},
{
"context": "Pane",
@@ -486,8 +475,8 @@
"ctrl-alt-shift-r": "search::ToggleRegex",
"ctrl-alt-shift-x": "search::ToggleRegex",
"alt-r": "search::ToggleRegex",
- "ctrl-k shift-enter": "pane::TogglePinTab"
- }
+ "ctrl-k shift-enter": "pane::TogglePinTab",
+ },
},
// Bindings from VS Code
{
@@ -514,6 +503,7 @@
"ctrl-k ctrl-i": "editor::Hover",
"ctrl-k ctrl-b": "editor::BlameHover",
"ctrl-/": ["editor::ToggleComments", { "advance_downwards": false }],
+ "ctrl-k ctrl-c": ["editor::ToggleComments", { "advance_downwards": false }],
"f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }],
"shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }],
"f2": "editor::Rename",
@@ -550,31 +540,31 @@
"ctrl-\\": "pane::SplitRight",
"ctrl-alt-shift-c": "editor::DisplayCursorNames",
"alt-.": "editor::GoToHunk",
- "alt-,": "editor::GoToPreviousHunk"
- }
+ "alt-,": "editor::GoToPreviousHunk",
+ },
},
{
"context": "Editor && extension == md",
"use_key_equivalents": true,
"bindings": {
"ctrl-k v": "markdown::OpenPreviewToTheSide",
- "ctrl-shift-v": "markdown::OpenPreview"
- }
+ "ctrl-shift-v": "markdown::OpenPreview",
+ },
},
{
"context": "Editor && extension == svg",
"use_key_equivalents": true,
"bindings": {
"ctrl-k v": "svg::OpenPreviewToTheSide",
- "ctrl-shift-v": "svg::OpenPreview"
- }
+ "ctrl-shift-v": "svg::OpenPreview",
+ },
},
{
"context": "Editor && mode == full",
"bindings": {
"ctrl-shift-o": "outline::Toggle",
- "ctrl-g": "go_to_line::Toggle"
- }
+ "ctrl-g": "go_to_line::Toggle",
+ },
},
{
"context": "Workspace",
@@ -630,8 +620,8 @@
"ctrl-alt-super-p": "settings_profile_selector::Toggle",
"ctrl-t": "project_symbols::Toggle",
"ctrl-p": "file_finder::Toggle",
- "ctrl-tab": "tab_switcher::Toggle",
"ctrl-shift-tab": ["tab_switcher::Toggle", { "select_last": true }],
+ "ctrl-tab": "tab_switcher::Toggle",
"ctrl-e": "file_finder::Toggle",
"f1": "command_palette::Toggle",
"ctrl-shift-p": "command_palette::Toggle",
@@ -668,28 +658,28 @@
// "foo-bar": ["task::Spawn", { "task_tag": "MyTag" }],
"f5": "debugger::Rerun",
"ctrl-f4": "workspace::CloseActiveDock",
- "ctrl-w": "workspace::CloseActiveDock"
- }
+ "ctrl-w": "workspace::CloseActiveDock",
+ },
},
{
"context": "Workspace && debugger_running",
"bindings": {
- "f5": "zed::NoAction"
- }
+ "f5": "zed::NoAction",
+ },
},
{
"context": "Workspace && debugger_stopped",
"bindings": {
- "f5": "debugger::Continue"
- }
+ "f5": "debugger::Continue",
+ },
},
{
"context": "ApplicationMenu",
"bindings": {
"f10": "menu::Cancel",
"left": "app_menu::ActivateMenuLeft",
- "right": "app_menu::ActivateMenuRight"
- }
+ "right": "app_menu::ActivateMenuRight",
+ },
},
// Bindings from Sublime Text
{
@@ -707,8 +697,8 @@
"ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
"ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart",
"ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
- "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd"
- }
+ "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd",
+ },
},
// Bindings from Atom
{
@@ -717,37 +707,37 @@
"ctrl-k up": "pane::SplitUp",
"ctrl-k down": "pane::SplitDown",
"ctrl-k left": "pane::SplitLeft",
- "ctrl-k right": "pane::SplitRight"
- }
+ "ctrl-k right": "pane::SplitRight",
+ },
},
// Bindings that should be unified with bindings for more general actions
{
"context": "Editor && renaming",
"bindings": {
- "enter": "editor::ConfirmRename"
- }
+ "enter": "editor::ConfirmRename",
+ },
},
{
"context": "Editor && showing_completions",
"bindings": {
"enter": "editor::ConfirmCompletion",
"shift-enter": "editor::ConfirmCompletionReplace",
- "tab": "editor::ComposeCompletion"
- }
+ "tab": "editor::ComposeCompletion",
+ },
},
{
"context": "Editor && in_snippet && has_next_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "tab": "editor::NextSnippetTabstop"
- }
+ "tab": "editor::NextSnippetTabstop",
+ },
},
{
"context": "Editor && in_snippet && has_previous_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "shift-tab": "editor::PreviousSnippetTabstop"
- }
+ "shift-tab": "editor::PreviousSnippetTabstop",
+ },
},
// Bindings for accepting edit predictions
//
@@ -759,22 +749,24 @@
"alt-tab": "editor::AcceptEditPrediction",
"alt-l": "editor::AcceptEditPrediction",
"tab": "editor::AcceptEditPrediction",
- "alt-right": "editor::AcceptPartialEditPrediction"
- }
+ "alt-right": "editor::AcceptNextWordEditPrediction",
+ "alt-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && edit_prediction_conflict",
"bindings": {
"alt-tab": "editor::AcceptEditPrediction",
"alt-l": "editor::AcceptEditPrediction",
- "alt-right": "editor::AcceptPartialEditPrediction"
- }
+ "alt-right": "editor::AcceptNextWordEditPrediction",
+ "alt-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && showing_code_actions",
"bindings": {
- "enter": "editor::ConfirmCodeAction"
- }
+ "enter": "editor::ConfirmCodeAction",
+ },
},
{
"context": "Editor && (showing_code_actions || showing_completions)",
@@ -784,29 +776,29 @@
"ctrl-n": "editor::ContextMenuNext",
"down": "editor::ContextMenuNext",
"pageup": "editor::ContextMenuFirst",
- "pagedown": "editor::ContextMenuLast"
- }
+ "pagedown": "editor::ContextMenuLast",
+ },
},
{
"context": "Editor && showing_signature_help && !showing_completions",
"bindings": {
"up": "editor::SignatureHelpPrevious",
- "down": "editor::SignatureHelpNext"
- }
+ "down": "editor::SignatureHelpNext",
+ },
},
// Custom bindings
{
"bindings": {
"ctrl-alt-shift-f": "workspace::FollowNextCollaborator",
// Only available in debug builds: opens an element inspector for development.
- "ctrl-alt-i": "dev::ToggleInspector"
- }
+ "ctrl-alt-i": "dev::ToggleInspector",
+ },
},
{
"context": "!Terminal",
"bindings": {
- "ctrl-shift-c": "collab_panel::ToggleFocus"
- }
+ "ctrl-shift-c": "collab_panel::ToggleFocus",
+ },
},
{
"context": "!ContextEditor > Editor && mode == full",
@@ -818,16 +810,17 @@
"ctrl-f8": "editor::GoToHunk",
"ctrl-shift-f8": "editor::GoToPreviousHunk",
"ctrl-enter": "assistant::InlineAssist",
- "ctrl-:": "editor::ToggleInlayHints"
- }
+ "ctrl-:": "editor::ToggleInlayHints",
+ },
},
{
"context": "PromptEditor",
"bindings": {
"ctrl-[": "agent::CyclePreviousInlineAssist",
"ctrl-]": "agent::CycleNextInlineAssist",
- "ctrl-alt-e": "agent::RemoveAllContext"
- }
+ "ctrl-shift-enter": "inline_assistant::ThumbsUpResult",
+ "ctrl-shift-backspace": "inline_assistant::ThumbsDownResult",
+ },
},
{
"context": "Prompt",
@@ -835,14 +828,14 @@
"left": "menu::SelectPrevious",
"right": "menu::SelectNext",
"h": "menu::SelectPrevious",
- "l": "menu::SelectNext"
- }
+ "l": "menu::SelectNext",
+ },
},
{
"context": "ProjectSearchBar && !in_replace",
"bindings": {
- "ctrl-enter": "project_search::SearchInNew"
- }
+ "ctrl-enter": "project_search::SearchInNew",
+ },
},
{
"context": "OutlinePanel && not_editing",
@@ -859,13 +852,14 @@
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
"alt-enter": "editor::OpenExcerpts",
- "ctrl-alt-enter": "editor::OpenExcerptsSplit"
- }
+ "ctrl-alt-enter": "editor::OpenExcerptsSplit",
+ },
},
{
"context": "ProjectPanel",
"bindings": {
"left": "project_panel::CollapseSelectedEntry",
+ "ctrl-left": "project_panel::CollapseAllEntries",
"right": "project_panel::ExpandSelectedEntry",
"new": "project_panel::NewFile",
"ctrl-n": "project_panel::NewFile",
@@ -897,20 +891,22 @@
"ctrl-alt-shift-f": "project_panel::NewSearchInDirectory",
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ProjectPanel && not_editing",
"bindings": {
- "space": "project_panel::Open"
- }
+ "space": "project_panel::Open",
+ },
},
{
"context": "GitPanel && ChangesList",
"bindings": {
- "up": "menu::SelectPrevious",
- "down": "menu::SelectNext",
+ "left": "git_panel::CollapseSelectedEntry",
+ "right": "git_panel::ExpandSelectedEntry",
+ "up": "git_panel::PreviousEntry",
+ "down": "git_panel::NextEntry",
"enter": "menu::Confirm",
"alt-y": "git::StageFile",
"alt-shift-y": "git::UnstageFile",
@@ -925,15 +921,15 @@
"backspace": ["git::RestoreFile", { "skip_prompt": false }],
"shift-delete": ["git::RestoreFile", { "skip_prompt": false }],
"ctrl-backspace": ["git::RestoreFile", { "skip_prompt": false }],
- "ctrl-delete": ["git::RestoreFile", { "skip_prompt": false }]
- }
+ "ctrl-delete": ["git::RestoreFile", { "skip_prompt": false }],
+ },
},
{
"context": "GitPanel && CommitEditor",
"use_key_equivalents": true,
"bindings": {
- "escape": "git::Cancel"
- }
+ "escape": "git::Cancel",
+ },
},
{
"context": "GitCommit > Editor",
@@ -942,8 +938,8 @@
"enter": "editor::Newline",
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
- "alt-l": "git::GenerateCommitMessage"
- }
+ "alt-l": "git::GenerateCommitMessage",
+ },
},
{
"context": "GitPanel",
@@ -959,8 +955,8 @@
"ctrl-space": "git::StageAll",
"ctrl-shift-space": "git::UnstageAll",
"ctrl-enter": "git::Commit",
- "ctrl-shift-enter": "git::Amend"
- }
+ "ctrl-shift-enter": "git::Amend",
+ },
},
{
"context": "GitDiff > Editor",
@@ -968,14 +964,14 @@
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
"ctrl-space": "git::StageAll",
- "ctrl-shift-space": "git::UnstageAll"
- }
+ "ctrl-shift-space": "git::UnstageAll",
+ },
},
{
"context": "AskPass > Editor",
"bindings": {
- "enter": "menu::Confirm"
- }
+ "enter": "menu::Confirm",
+ },
},
{
"context": "CommitEditor > Editor",
@@ -987,16 +983,16 @@
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
"alt-up": "git_panel::FocusChanges",
- "alt-l": "git::GenerateCommitMessage"
- }
+ "alt-l": "git::GenerateCommitMessage",
+ },
},
{
"context": "DebugPanel",
"bindings": {
"ctrl-t": "debugger::ToggleThreadPicker",
"ctrl-i": "debugger::ToggleSessionPicker",
- "shift-alt-escape": "debugger::ToggleExpandItem"
- }
+ "shift-alt-escape": "debugger::ToggleExpandItem",
+ },
},
{
"context": "VariableList",
@@ -1008,8 +1004,8 @@
"ctrl-alt-c": "variable_list::CopyVariableName",
"delete": "variable_list::RemoveWatch",
"backspace": "variable_list::RemoveWatch",
- "alt-enter": "variable_list::AddWatch"
- }
+ "alt-enter": "variable_list::AddWatch",
+ },
},
{
"context": "BreakpointList",
@@ -1017,35 +1013,35 @@
"space": "debugger::ToggleEnableBreakpoint",
"backspace": "debugger::UnsetBreakpoint",
"left": "debugger::PreviousBreakpointProperty",
- "right": "debugger::NextBreakpointProperty"
- }
+ "right": "debugger::NextBreakpointProperty",
+ },
},
{
"context": "CollabPanel && not_editing",
"bindings": {
"ctrl-backspace": "collab_panel::Remove",
- "space": "menu::Confirm"
- }
+ "space": "menu::Confirm",
+ },
},
{
"context": "CollabPanel",
"bindings": {
"alt-up": "collab_panel::MoveChannelUp",
"alt-down": "collab_panel::MoveChannelDown",
- "alt-enter": "collab_panel::OpenSelectedChannelNotes"
- }
+ "alt-enter": "collab_panel::OpenSelectedChannelNotes",
+ },
},
{
"context": "(CollabPanel && editing) > Editor",
"bindings": {
- "space": "collab_panel::InsertSpace"
- }
+ "space": "collab_panel::InsertSpace",
+ },
},
{
"context": "ChannelModal",
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "Picker > Editor",
@@ -1054,29 +1050,29 @@
"up": "menu::SelectPrevious",
"down": "menu::SelectNext",
"tab": "picker::ConfirmCompletion",
- "alt-enter": ["picker::ConfirmInput", { "secondary": false }]
- }
+ "alt-enter": ["picker::ConfirmInput", { "secondary": false }],
+ },
},
{
"context": "ChannelModal > Picker > Editor",
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "ToolchainSelector",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-a": "toolchain::AddToolchain"
- }
+ "ctrl-shift-a": "toolchain::AddToolchain",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor)",
"bindings": {
"ctrl-p": "file_finder::Toggle",
"ctrl-shift-a": "file_finder::ToggleSplitMenu",
- "ctrl-shift-i": "file_finder::ToggleFilterMenu"
- }
+ "ctrl-shift-i": "file_finder::ToggleFilterMenu",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
@@ -1085,8 +1081,8 @@
"ctrl-j": "pane::SplitDown",
"ctrl-k": "pane::SplitUp",
"ctrl-h": "pane::SplitLeft",
- "ctrl-l": "pane::SplitRight"
- }
+ "ctrl-l": "pane::SplitRight",
+ },
},
{
"context": "TabSwitcher",
@@ -1094,15 +1090,15 @@
"ctrl-shift-tab": "menu::SelectPrevious",
"ctrl-up": "menu::SelectPrevious",
"ctrl-down": "menu::SelectNext",
- "ctrl-backspace": "tab_switcher::CloseSelectedItem"
- }
+ "ctrl-backspace": "tab_switcher::CloseSelectedItem",
+ },
},
{
"context": "StashList || (StashList > Picker > Editor)",
"bindings": {
"ctrl-shift-backspace": "stash_picker::DropStashItem",
- "ctrl-shift-v": "stash_picker::ShowStashItem"
- }
+ "ctrl-shift-v": "stash_picker::ShowStashItem",
+ },
},
{
"context": "Terminal",
@@ -1147,65 +1143,69 @@
"ctrl-shift-r": "terminal::RerunTask",
"ctrl-alt-r": "terminal::RerunTask",
"alt-t": "terminal::RerunTask",
- "ctrl-shift-5": "pane::SplitRight"
- }
+ "ctrl-shift-5": "pane::SplitRight",
+ },
},
{
"context": "ZedPredictModal",
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ConfigureContextServerModal > Editor",
"bindings": {
"escape": "menu::Cancel",
"enter": "editor::Newline",
- "ctrl-enter": "menu::Confirm"
- }
+ "ctrl-enter": "menu::Confirm",
+ },
},
{
"context": "ContextServerToolsModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "OnboardingAiConfigurationModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "Diagnostics",
"use_key_equivalents": true,
"bindings": {
- "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh"
- }
+ "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh",
+ },
},
{
"context": "DebugConsole > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "menu::Confirm",
- "alt-enter": "console::WatchExpression"
- }
+ "alt-enter": "console::WatchExpression",
+ },
},
{
"context": "RunModal",
"bindings": {
"ctrl-tab": "pane::ActivateNextItem",
- "ctrl-shift-tab": "pane::ActivatePreviousItem"
- }
+ "ctrl-shift-tab": "pane::ActivatePreviousItem",
+ },
},
{
"context": "MarkdownPreview",
"bindings": {
- "pageup": "markdown::MovePageUp",
- "pagedown": "markdown::MovePageDown"
- }
+ "pageup": "markdown::ScrollPageUp",
+ "pagedown": "markdown::ScrollPageDown",
+ "up": "markdown::ScrollUp",
+ "down": "markdown::ScrollDown",
+ "alt-up": "markdown::ScrollUpByItem",
+ "alt-down": "markdown::ScrollDownByItem",
+ },
},
{
"context": "KeymapEditor",
@@ -1219,8 +1219,8 @@
"alt-enter": "keymap_editor::CreateBinding",
"ctrl-c": "keymap_editor::CopyAction",
"ctrl-shift-c": "keymap_editor::CopyContext",
- "ctrl-t": "keymap_editor::ShowMatchingKeybinds"
- }
+ "ctrl-t": "keymap_editor::ShowMatchingKeybinds",
+ },
},
{
"context": "KeystrokeInput",
@@ -1228,48 +1228,67 @@
"bindings": {
"enter": "keystroke_input::StartRecording",
"escape escape escape": "keystroke_input::StopRecording",
- "delete": "keystroke_input::ClearKeystrokes"
- }
+ "delete": "keystroke_input::ClearKeystrokes",
+ },
},
{
"context": "KeybindEditorModal",
"use_key_equivalents": true,
"bindings": {
"ctrl-enter": "menu::Confirm",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "KeybindEditorModal > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "menu::SelectPrevious",
- "down": "menu::SelectNext"
- }
+ "down": "menu::SelectNext",
+ },
},
{
"context": "Onboarding",
"use_key_equivalents": true,
"bindings": {
+ "ctrl-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "ctrl-0": ["zed::ResetUiFontSize", { "persist": false }],
"ctrl-enter": "onboarding::Finish",
"alt-shift-l": "onboarding::SignIn",
- "alt-shift-a": "onboarding::OpenAccount"
- }
+ "alt-shift-a": "onboarding::OpenAccount",
+ },
+ },
+ {
+ "context": "Welcome",
+ "use_key_equivalents": true,
+ "bindings": {
+ "ctrl-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "ctrl-0": ["zed::ResetUiFontSize", { "persist": false }],
+ "ctrl-1": ["welcome::OpenRecentProject", 0],
+ "ctrl-2": ["welcome::OpenRecentProject", 1],
+ "ctrl-3": ["welcome::OpenRecentProject", 2],
+ "ctrl-4": ["welcome::OpenRecentProject", 3],
+ "ctrl-5": ["welcome::OpenRecentProject", 4],
+ },
},
{
"context": "InvalidBuffer",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-enter": "workspace::OpenWithSystem"
- }
+ "ctrl-shift-enter": "workspace::OpenWithSystem",
+ },
},
{
"context": "GitWorktreeSelector || (GitWorktreeSelector > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-space": "git::WorktreeFromDefaultOnWindow",
- "ctrl-space": "git::WorktreeFromDefault"
- }
+ "ctrl-space": "git::WorktreeFromDefault",
+ },
},
{
"context": "SettingsWindow",
@@ -1279,6 +1298,7 @@
"escape": "workspace::CloseWindow",
"ctrl-m": "settings_editor::Minimize",
"ctrl-f": "search::FocusSearch",
+ "ctrl-,": "settings_editor::OpenCurrentFile",
"left": "settings_editor::ToggleFocusNav",
"ctrl-shift-e": "settings_editor::ToggleFocusNav",
// todo(settings_ui): cut this down based on the max files and overflow UI
@@ -1293,16 +1313,16 @@
"ctrl-9": ["settings_editor::FocusFile", 8],
"ctrl-0": ["settings_editor::FocusFile", 9],
"ctrl-pageup": "settings_editor::FocusPreviousFile",
- "ctrl-pagedown": "settings_editor::FocusNextFile"
- }
+ "ctrl-pagedown": "settings_editor::FocusNextFile",
+ },
},
{
"context": "StashDiff > Editor",
"bindings": {
"ctrl-space": "git::ApplyCurrentStash",
"ctrl-shift-space": "git::PopCurrentStash",
- "ctrl-shift-backspace": "git::DropCurrentStash"
- }
+ "ctrl-shift-backspace": "git::DropCurrentStash",
+ },
},
{
"context": "SettingsWindow > NavigationMenu",
@@ -1317,22 +1337,22 @@
"pageup": "settings_editor::FocusPreviousRootNavEntry",
"pagedown": "settings_editor::FocusNextRootNavEntry",
"home": "settings_editor::FocusFirstNavEntry",
- "end": "settings_editor::FocusLastNavEntry"
- }
+ "end": "settings_editor::FocusLastNavEntry",
+ },
},
{
- "context": "Zeta2Feedback > Editor",
+ "context": "EditPredictionContext > Editor",
"bindings": {
- "enter": "editor::Newline",
- "ctrl-enter up": "dev::Zeta2RatePredictionPositive",
- "ctrl-enter down": "dev::Zeta2RatePredictionNegative"
- }
+ "alt-left": "dev::EditPredictionContextGoBack",
+ "alt-right": "dev::EditPredictionContextGoForward",
+ },
},
{
- "context": "Zeta2Context > Editor",
+ "context": "GitBranchSelector || (GitBranchSelector > Picker > Editor)",
+ "use_key_equivalents": true,
"bindings": {
- "alt-left": "dev::Zeta2ContextGoBack",
- "alt-right": "dev::Zeta2ContextGoForward"
- }
- }
+ "ctrl-shift-backspace": "branch_picker::DeleteBranch",
+ "ctrl-shift-i": "branch_picker::FilterRemotes",
+ },
+ },
]
diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json
index 9d23eeb8cde071e20e5d3e4d7f873b1f668501b2..fd2605a6ad99177c887d6f804ec2ac70724f16f8 100644
--- a/assets/keymaps/default-macos.json
+++ b/assets/keymaps/default-macos.json
@@ -47,11 +47,12 @@
"cmd-m": "zed::Minimize",
"fn-f": "zed::ToggleFullScreen",
"ctrl-cmd-f": "zed::ToggleFullScreen",
- "ctrl-cmd-z": "edit_prediction::RateCompletions",
+ "ctrl-cmd-z": "edit_prediction::RatePredictions",
"ctrl-cmd-i": "edit_prediction::ToggleMenu",
"ctrl-cmd-l": "lsp_tool::ToggleMenu",
- "cmd-alt-.": "project_panel::ToggleHideHidden"
- }
+ "ctrl-cmd-c": "editor::DisplayCursorNames",
+ "ctrl-cmd-s": "workspace::ToggleWorktreeSecurity",
+ },
},
{
"context": "Editor",
@@ -148,8 +149,8 @@
"shift-f9": "editor::EditLogBreakpoint",
"ctrl-f12": "editor::GoToDeclaration",
"alt-ctrl-f12": "editor::GoToDeclarationSplit",
- "ctrl-cmd-e": "editor::ToggleEditPrediction"
- }
+ "ctrl-cmd-e": "editor::ToggleEditPrediction",
+ },
},
{
"context": "Editor && mode == full",
@@ -167,8 +168,8 @@
"cmd->": "agent::AddSelectionToThread",
"cmd-<": "assistant::InsertIntoEditor",
"cmd-alt-e": "editor::SelectEnclosingSymbol",
- "alt-enter": "editor::OpenSelectionsInMultibuffer"
- }
+ "alt-enter": "editor::OpenSelectionsInMultibuffer",
+ },
},
{
"context": "Editor && multibuffer",
@@ -177,23 +178,23 @@
"cmd-up": "editor::MoveToStartOfExcerpt",
"cmd-down": "editor::MoveToStartOfNextExcerpt",
"cmd-shift-up": "editor::SelectToStartOfExcerpt",
- "cmd-shift-down": "editor::SelectToStartOfNextExcerpt"
- }
+ "cmd-shift-down": "editor::SelectToStartOfNextExcerpt",
+ },
},
{
"context": "Editor && mode == full && edit_prediction",
"use_key_equivalents": true,
"bindings": {
"alt-tab": "editor::NextEditPrediction",
- "alt-shift-tab": "editor::PreviousEditPrediction"
- }
+ "alt-shift-tab": "editor::PreviousEditPrediction",
+ },
},
{
"context": "Editor && !edit_prediction",
"use_key_equivalents": true,
"bindings": {
- "alt-tab": "editor::ShowEditPrediction"
- }
+ "alt-tab": "editor::ShowEditPrediction",
+ },
},
{
"context": "Editor && mode == auto_height",
@@ -201,23 +202,23 @@
"bindings": {
"ctrl-enter": "editor::Newline",
"shift-enter": "editor::Newline",
- "ctrl-shift-enter": "editor::NewlineBelow"
- }
+ "ctrl-shift-enter": "editor::NewlineBelow",
+ },
},
{
"context": "Markdown",
"use_key_equivalents": true,
"bindings": {
- "cmd-c": "markdown::Copy"
- }
+ "cmd-c": "markdown::Copy",
+ },
},
{
"context": "Editor && jupyter && !ContextEditor",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-enter": "repl::Run",
- "ctrl-alt-enter": "repl::RunInPlace"
- }
+ "ctrl-alt-enter": "repl::RunInPlace",
+ },
},
{
"context": "Editor && !agent_diff && !AgentPanel",
@@ -226,8 +227,8 @@
"cmd-alt-z": "git::Restore",
"cmd-alt-y": "git::ToggleStaged",
"cmd-y": "git::StageAndNext",
- "cmd-shift-y": "git::UnstageAndNext"
- }
+ "cmd-shift-y": "git::UnstageAndNext",
+ },
},
{
"context": "AgentDiff",
@@ -236,8 +237,8 @@
"cmd-y": "agent::Keep",
"cmd-n": "agent::Reject",
"cmd-shift-y": "agent::KeepAll",
- "cmd-shift-n": "agent::RejectAll"
- }
+ "cmd-shift-n": "agent::RejectAll",
+ },
},
{
"context": "Editor && editor_agent_diff",
@@ -247,8 +248,8 @@
"cmd-n": "agent::Reject",
"cmd-shift-y": "agent::KeepAll",
"cmd-shift-n": "agent::RejectAll",
- "shift-ctrl-r": "agent::OpenAgentDiff"
- }
+ "shift-ctrl-r": "agent::OpenAgentDiff",
+ },
},
{
"context": "ContextEditor > Editor",
@@ -264,8 +265,9 @@
"cmd-k c": "assistant::CopyCode",
"cmd-g": "search::SelectNextMatch",
"cmd-shift-g": "search::SelectPreviousMatch",
- "cmd-k l": "agent::OpenRulesLibrary"
- }
+ "cmd-k l": "agent::OpenRulesLibrary",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AgentPanel",
@@ -279,50 +281,49 @@
"cmd-alt-p": "agent::ManageProfiles",
"cmd-i": "agent::ToggleProfileSelector",
"cmd-alt-/": "agent::ToggleModelSelector",
- "cmd-shift-a": "agent::ToggleContextPicker",
"cmd-shift-j": "agent::ToggleNavigationMenu",
"cmd-alt-m": "agent::ToggleOptionsMenu",
"cmd-alt-shift-n": "agent::ToggleNewThreadMenu",
"shift-alt-escape": "agent::ExpandMessageEditor",
"cmd->": "agent::AddSelectionToThread",
- "cmd-alt-e": "agent::RemoveAllContext",
"cmd-shift-e": "project_panel::ToggleFocus",
"cmd-ctrl-b": "agent::ToggleBurnMode",
"cmd-shift-enter": "agent::ContinueThread",
"alt-enter": "agent::ContinueWithBurnMode",
"cmd-y": "agent::AllowOnce",
"cmd-alt-y": "agent::AllowAlways",
- "cmd-alt-z": "agent::RejectOnce"
- }
+ "cmd-alt-z": "agent::RejectOnce",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AgentPanel > NavigationMenu",
"bindings": {
- "shift-backspace": "agent::DeleteRecentlyOpenThread"
- }
+ "shift-backspace": "agent::DeleteRecentlyOpenThread",
+ },
},
{
"context": "AgentPanel > Markdown",
"use_key_equivalents": true,
"bindings": {
- "cmd-c": "markdown::CopyAsMarkdown"
- }
+ "cmd-c": "markdown::CopyAsMarkdown",
+ },
},
{
"context": "AgentPanel && text_thread",
"use_key_equivalents": true,
"bindings": {
"cmd-n": "agent::NewTextThread",
- "cmd-alt-t": "agent::NewThread"
- }
+ "cmd-alt-n": "agent::NewExternalAgentThread",
+ },
},
{
"context": "AgentPanel && acp_thread",
"use_key_equivalents": true,
"bindings": {
"cmd-n": "agent::NewExternalAgentThread",
- "cmd-alt-t": "agent::NewThread"
- }
+ "cmd-alt-t": "agent::NewThread",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && !use_modifier_to_send",
@@ -333,8 +334,8 @@
"cmd-i": "agent::ToggleProfileSelector",
"shift-ctrl-r": "agent::OpenAgentDiff",
"cmd-shift-y": "agent::KeepAll",
- "cmd-shift-n": "agent::RejectAll"
- }
+ "cmd-shift-n": "agent::RejectAll",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && use_modifier_to_send",
@@ -345,8 +346,8 @@
"cmd-i": "agent::ToggleProfileSelector",
"shift-ctrl-r": "agent::OpenAgentDiff",
"cmd-shift-y": "agent::KeepAll",
- "cmd-shift-n": "agent::RejectAll"
- }
+ "cmd-shift-n": "agent::RejectAll",
+ },
},
{
"context": "EditMessageEditor > Editor",
@@ -354,8 +355,8 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AgentFeedbackMessageEditor > Editor",
@@ -363,32 +364,20 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
- },
- {
- "context": "ContextStrip",
- "use_key_equivalents": true,
- "bindings": {
- "up": "agent::FocusUp",
- "right": "agent::FocusRight",
- "left": "agent::FocusLeft",
- "down": "agent::FocusDown",
- "backspace": "agent::RemoveFocusedContext",
- "enter": "agent::AcceptSuggestedContext"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AgentConfiguration",
"bindings": {
- "ctrl--": "pane::GoBack"
- }
+ "ctrl--": "pane::GoBack",
+ },
},
{
"context": "AcpThread > ModeSelector",
"bindings": {
- "cmd-enter": "menu::Confirm"
- }
+ "cmd-enter": "menu::Confirm",
+ },
},
{
"context": "AcpThread > Editor && !use_modifier_to_send",
@@ -398,8 +387,9 @@
"shift-ctrl-r": "agent::OpenAgentDiff",
"cmd-shift-y": "agent::KeepAll",
"cmd-shift-n": "agent::RejectAll",
- "shift-tab": "agent::CycleModeSelector"
- }
+ "shift-tab": "agent::CycleModeSelector",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AcpThread > Editor && use_modifier_to_send",
@@ -409,20 +399,21 @@
"shift-ctrl-r": "agent::OpenAgentDiff",
"cmd-shift-y": "agent::KeepAll",
"cmd-shift-n": "agent::RejectAll",
- "shift-tab": "agent::CycleModeSelector"
- }
+ "shift-tab": "agent::CycleModeSelector",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "ThreadHistory",
"bindings": {
- "ctrl--": "pane::GoBack"
- }
+ "ctrl--": "pane::GoBack",
+ },
},
{
"context": "ThreadHistory > Editor",
"bindings": {
- "shift-backspace": "agent::RemoveSelectedThread"
- }
+ "shift-backspace": "agent::RemoveSelectedThread",
+ },
},
{
"context": "RulesLibrary",
@@ -430,8 +421,8 @@
"bindings": {
"cmd-n": "rules_library::NewRule",
"cmd-shift-s": "rules_library::ToggleDefaultRule",
- "cmd-w": "workspace::CloseWindow"
- }
+ "cmd-w": "workspace::CloseWindow",
+ },
},
{
"context": "BufferSearchBar",
@@ -445,24 +436,24 @@
"cmd-f": "search::FocusSearch",
"cmd-alt-f": "search::ToggleReplace",
"cmd-alt-l": "search::ToggleSelection",
- "cmd-shift-o": "outline::Toggle"
- }
+ "cmd-shift-o": "outline::Toggle",
+ },
},
{
"context": "BufferSearchBar && in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "search::ReplaceNext",
- "cmd-enter": "search::ReplaceAll"
- }
+ "cmd-enter": "search::ReplaceAll",
+ },
},
{
"context": "BufferSearchBar && !in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar",
@@ -474,24 +465,24 @@
"cmd-shift-f": "search::FocusSearch",
"cmd-shift-h": "search::ToggleReplace",
"alt-cmd-g": "search::ToggleRegex",
- "alt-cmd-x": "search::ToggleRegex"
- }
+ "alt-cmd-x": "search::ToggleRegex",
+ },
},
{
"context": "ProjectSearchBar > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar && in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "search::ReplaceNext",
- "cmd-enter": "search::ReplaceAll"
- }
+ "cmd-enter": "search::ReplaceAll",
+ },
},
{
"context": "ProjectSearchView",
@@ -502,8 +493,8 @@
"shift-enter": "project_search::ToggleAllSearchResults",
"cmd-shift-h": "search::ToggleReplace",
"alt-cmd-g": "search::ToggleRegex",
- "alt-cmd-x": "search::ToggleRegex"
- }
+ "alt-cmd-x": "search::ToggleRegex",
+ },
},
{
"context": "Pane",
@@ -533,8 +524,8 @@
"alt-cmd-w": "search::ToggleWholeWord",
"alt-cmd-f": "project_search::ToggleFilters",
"alt-cmd-x": "search::ToggleRegex",
- "cmd-k shift-enter": "pane::TogglePinTab"
- }
+ "cmd-k shift-enter": "pane::TogglePinTab",
+ },
},
// Bindings from VS Code
{
@@ -605,24 +596,23 @@
"cmd-k r": "editor::RevealInFileManager",
"cmd-k p": "editor::CopyPath",
"cmd-\\": "pane::SplitRight",
- "ctrl-cmd-c": "editor::DisplayCursorNames"
- }
+ },
},
{
"context": "Editor && extension == md",
"use_key_equivalents": true,
"bindings": {
"cmd-k v": "markdown::OpenPreviewToTheSide",
- "cmd-shift-v": "markdown::OpenPreview"
- }
+ "cmd-shift-v": "markdown::OpenPreview",
+ },
},
{
"context": "Editor && extension == svg",
"use_key_equivalents": true,
"bindings": {
"cmd-k v": "svg::OpenPreviewToTheSide",
- "cmd-shift-v": "svg::OpenPreview"
- }
+ "cmd-shift-v": "svg::OpenPreview",
+ },
},
{
"context": "Editor && mode == full",
@@ -631,8 +621,8 @@
"cmd-shift-o": "outline::Toggle",
"ctrl-g": "go_to_line::Toggle",
"cmd-shift-backspace": "editor::GoToPreviousChange",
- "cmd-shift-alt-backspace": "editor::GoToNextChange"
- }
+ "cmd-shift-alt-backspace": "editor::GoToNextChange",
+ },
},
{
"context": "Pane",
@@ -650,8 +640,8 @@
"ctrl-0": "pane::ActivateLastItem",
"ctrl--": "pane::GoBack",
"ctrl-_": "pane::GoForward",
- "cmd-shift-f": "pane::DeploySearch"
- }
+ "cmd-shift-f": "pane::DeploySearch",
+ },
},
{
"context": "Workspace",
@@ -699,8 +689,8 @@
"ctrl-alt-cmd-p": "settings_profile_selector::Toggle",
"cmd-t": "project_symbols::Toggle",
"cmd-p": "file_finder::Toggle",
- "ctrl-tab": "tab_switcher::Toggle",
"ctrl-shift-tab": ["tab_switcher::Toggle", { "select_last": true }],
+ "ctrl-tab": "tab_switcher::Toggle",
"cmd-shift-p": "command_palette::Toggle",
"cmd-shift-m": "diagnostics::Deploy",
"cmd-shift-e": "project_panel::ToggleFocus",
@@ -722,8 +712,8 @@
"cmd-k shift-down": "workspace::SwapPaneDown",
"cmd-shift-x": "zed::Extensions",
"f5": "debugger::Rerun",
- "cmd-w": "workspace::CloseActiveDock"
- }
+ "cmd-w": "workspace::CloseActiveDock",
+ },
},
{
"context": "Workspace && !Terminal",
@@ -734,26 +724,27 @@
// All task parameters are captured and unchanged between reruns by default.
// Use the `"reevaluate_context"` parameter to control this.
"cmd-alt-r": ["task::Rerun", { "reevaluate_context": false }],
- "ctrl-alt-shift-r": ["task::Spawn", { "reveal_target": "center" }]
+ "ctrl-alt-shift-r": ["task::Spawn", { "reveal_target": "center" }],
// also possible to spawn tasks by name:
// "foo-bar": ["task::Spawn", { "task_name": "MyTask", "reveal_target": "dock" }]
// or by tag:
// "foo-bar": ["task::Spawn", { "task_tag": "MyTag" }],
- }
+ },
},
{
"context": "Workspace && debugger_running",
"use_key_equivalents": true,
"bindings": {
- "f5": "zed::NoAction"
- }
+ "f5": "zed::NoAction",
+ "f11": "debugger::StepInto",
+ },
},
{
"context": "Workspace && debugger_stopped",
"use_key_equivalents": true,
"bindings": {
- "f5": "debugger::Continue"
- }
+ "f5": "debugger::Continue",
+ },
},
// Bindings from Sublime Text
{
@@ -774,8 +765,8 @@
"ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart",
"ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart",
"ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd",
- "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd"
- }
+ "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd",
+ },
},
// Bindings from Atom
{
@@ -785,16 +776,16 @@
"cmd-k up": "pane::SplitUp",
"cmd-k down": "pane::SplitDown",
"cmd-k left": "pane::SplitLeft",
- "cmd-k right": "pane::SplitRight"
- }
+ "cmd-k right": "pane::SplitRight",
+ },
},
// Bindings that should be unified with bindings for more general actions
{
"context": "Editor && renaming",
"use_key_equivalents": true,
"bindings": {
- "enter": "editor::ConfirmRename"
- }
+ "enter": "editor::ConfirmRename",
+ },
},
{
"context": "Editor && showing_completions",
@@ -802,45 +793,47 @@
"bindings": {
"enter": "editor::ConfirmCompletion",
"shift-enter": "editor::ConfirmCompletionReplace",
- "tab": "editor::ComposeCompletion"
- }
+ "tab": "editor::ComposeCompletion",
+ },
},
{
"context": "Editor && in_snippet && has_next_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "tab": "editor::NextSnippetTabstop"
- }
+ "tab": "editor::NextSnippetTabstop",
+ },
},
{
"context": "Editor && in_snippet && has_previous_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "shift-tab": "editor::PreviousSnippetTabstop"
- }
+ "shift-tab": "editor::PreviousSnippetTabstop",
+ },
},
{
"context": "Editor && edit_prediction",
"bindings": {
"alt-tab": "editor::AcceptEditPrediction",
"tab": "editor::AcceptEditPrediction",
- "ctrl-cmd-right": "editor::AcceptPartialEditPrediction"
- }
+ "ctrl-cmd-right": "editor::AcceptNextWordEditPrediction",
+ "ctrl-cmd-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && edit_prediction_conflict",
"use_key_equivalents": true,
"bindings": {
"alt-tab": "editor::AcceptEditPrediction",
- "ctrl-cmd-right": "editor::AcceptPartialEditPrediction"
- }
+ "ctrl-cmd-right": "editor::AcceptNextWordEditPrediction",
+ "ctrl-cmd-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && showing_code_actions",
"use_key_equivalents": true,
"bindings": {
- "enter": "editor::ConfirmCodeAction"
- }
+ "enter": "editor::ConfirmCodeAction",
+ },
},
{
"context": "Editor && (showing_code_actions || showing_completions)",
@@ -851,15 +844,15 @@
"down": "editor::ContextMenuNext",
"ctrl-n": "editor::ContextMenuNext",
"pageup": "editor::ContextMenuFirst",
- "pagedown": "editor::ContextMenuLast"
- }
+ "pagedown": "editor::ContextMenuLast",
+ },
},
{
"context": "Editor && showing_signature_help && !showing_completions",
"bindings": {
"up": "editor::SignatureHelpPrevious",
- "down": "editor::SignatureHelpNext"
- }
+ "down": "editor::SignatureHelpNext",
+ },
},
// Custom bindings
{
@@ -869,8 +862,8 @@
// TODO: Move this to a dock open action
"cmd-shift-c": "collab_panel::ToggleFocus",
// Only available in debug builds: opens an element inspector for development.
- "cmd-alt-i": "dev::ToggleInspector"
- }
+ "cmd-alt-i": "dev::ToggleInspector",
+ },
},
{
"context": "!ContextEditor > Editor && mode == full",
@@ -883,19 +876,20 @@
"cmd-f8": "editor::GoToHunk",
"cmd-shift-f8": "editor::GoToPreviousHunk",
"ctrl-enter": "assistant::InlineAssist",
- "ctrl-:": "editor::ToggleInlayHints"
- }
+ "ctrl-:": "editor::ToggleInlayHints",
+ },
},
{
"context": "PromptEditor",
"use_key_equivalents": true,
"bindings": {
- "cmd-shift-a": "agent::ToggleContextPicker",
"cmd-alt-/": "agent::ToggleModelSelector",
- "cmd-alt-e": "agent::RemoveAllContext",
+ "alt-tab": "agent::CycleFavoriteModels",
"ctrl-[": "agent::CyclePreviousInlineAssist",
- "ctrl-]": "agent::CycleNextInlineAssist"
- }
+ "ctrl-]": "agent::CycleNextInlineAssist",
+ "cmd-shift-enter": "inline_assistant::ThumbsUpResult",
+ "cmd-shift-backspace": "inline_assistant::ThumbsDownResult",
+ },
},
{
"context": "Prompt",
@@ -904,15 +898,15 @@
"left": "menu::SelectPrevious",
"right": "menu::SelectNext",
"h": "menu::SelectPrevious",
- "l": "menu::SelectNext"
- }
+ "l": "menu::SelectNext",
+ },
},
{
"context": "ProjectSearchBar && !in_replace",
"use_key_equivalents": true,
"bindings": {
- "cmd-enter": "project_search::SearchInNew"
- }
+ "cmd-enter": "project_search::SearchInNew",
+ },
},
{
"context": "OutlinePanel && not_editing",
@@ -928,14 +922,15 @@
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
"alt-enter": "editor::OpenExcerpts",
- "cmd-alt-enter": "editor::OpenExcerptsSplit"
- }
+ "cmd-alt-enter": "editor::OpenExcerptsSplit",
+ },
},
{
"context": "ProjectPanel",
"use_key_equivalents": true,
"bindings": {
"left": "project_panel::CollapseSelectedEntry",
+ "cmd-left": "project_panel::CollapseAllEntries",
"right": "project_panel::ExpandSelectedEntry",
"cmd-n": "project_panel::NewFile",
"cmd-d": "project_panel::Duplicate",
@@ -958,15 +953,15 @@
"cmd-alt-shift-f": "project_panel::NewSearchInDirectory",
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ProjectPanel && not_editing",
"use_key_equivalents": true,
"bindings": {
- "space": "project_panel::Open"
- }
+ "space": "project_panel::Open",
+ },
},
{
"context": "VariableList",
@@ -979,17 +974,19 @@
"cmd-alt-c": "variable_list::CopyVariableName",
"delete": "variable_list::RemoveWatch",
"backspace": "variable_list::RemoveWatch",
- "alt-enter": "variable_list::AddWatch"
- }
+ "alt-enter": "variable_list::AddWatch",
+ },
},
{
"context": "GitPanel && ChangesList",
"use_key_equivalents": true,
"bindings": {
- "up": "menu::SelectPrevious",
- "down": "menu::SelectNext",
- "cmd-up": "menu::SelectFirst",
- "cmd-down": "menu::SelectLast",
+ "up": "git_panel::PreviousEntry",
+ "down": "git_panel::NextEntry",
+ "cmd-up": "git_panel::FirstEntry",
+ "cmd-down": "git_panel::LastEntry",
+ "left": "git_panel::CollapseSelectedEntry",
+ "right": "git_panel::ExpandSelectedEntry",
"enter": "menu::Confirm",
"cmd-alt-y": "git::ToggleStaged",
"space": "git::ToggleStaged",
@@ -1003,15 +1000,15 @@
"backspace": ["git::RestoreFile", { "skip_prompt": false }],
"delete": ["git::RestoreFile", { "skip_prompt": false }],
"cmd-backspace": ["git::RestoreFile", { "skip_prompt": true }],
- "cmd-delete": ["git::RestoreFile", { "skip_prompt": true }]
- }
+ "cmd-delete": ["git::RestoreFile", { "skip_prompt": true }],
+ },
},
{
"context": "GitPanel && CommitEditor",
"use_key_equivalents": true,
"bindings": {
- "escape": "git::Cancel"
- }
+ "escape": "git::Cancel",
+ },
},
{
"context": "GitDiff > Editor",
@@ -1020,8 +1017,8 @@
"cmd-enter": "git::Commit",
"cmd-shift-enter": "git::Amend",
"cmd-ctrl-y": "git::StageAll",
- "cmd-ctrl-shift-y": "git::UnstageAll"
- }
+ "cmd-ctrl-shift-y": "git::UnstageAll",
+ },
},
{
"context": "CommitEditor > Editor",
@@ -1034,8 +1031,8 @@
"shift-tab": "git_panel::FocusChanges",
"alt-up": "git_panel::FocusChanges",
"shift-escape": "git::ExpandCommitEditor",
- "alt-tab": "git::GenerateCommitMessage"
- }
+ "alt-tab": "git::GenerateCommitMessage",
+ },
},
{
"context": "GitPanel",
@@ -1052,8 +1049,8 @@
"cmd-ctrl-y": "git::StageAll",
"cmd-ctrl-shift-y": "git::UnstageAll",
"cmd-enter": "git::Commit",
- "cmd-shift-enter": "git::Amend"
- }
+ "cmd-shift-enter": "git::Amend",
+ },
},
{
"context": "GitCommit > Editor",
@@ -1063,16 +1060,16 @@
"escape": "menu::Cancel",
"cmd-enter": "git::Commit",
"cmd-shift-enter": "git::Amend",
- "alt-tab": "git::GenerateCommitMessage"
- }
+ "alt-tab": "git::GenerateCommitMessage",
+ },
},
{
"context": "DebugPanel",
"bindings": {
"cmd-t": "debugger::ToggleThreadPicker",
"cmd-i": "debugger::ToggleSessionPicker",
- "shift-alt-escape": "debugger::ToggleExpandItem"
- }
+ "shift-alt-escape": "debugger::ToggleExpandItem",
+ },
},
{
"context": "BreakpointList",
@@ -1080,16 +1077,16 @@
"space": "debugger::ToggleEnableBreakpoint",
"backspace": "debugger::UnsetBreakpoint",
"left": "debugger::PreviousBreakpointProperty",
- "right": "debugger::NextBreakpointProperty"
- }
+ "right": "debugger::NextBreakpointProperty",
+ },
},
{
"context": "CollabPanel && not_editing",
"use_key_equivalents": true,
"bindings": {
"ctrl-backspace": "collab_panel::Remove",
- "space": "menu::Confirm"
- }
+ "space": "menu::Confirm",
+ },
},
{
"context": "CollabPanel",
@@ -1097,22 +1094,22 @@
"bindings": {
"alt-up": "collab_panel::MoveChannelUp",
"alt-down": "collab_panel::MoveChannelDown",
- "alt-enter": "collab_panel::OpenSelectedChannelNotes"
- }
+ "alt-enter": "collab_panel::OpenSelectedChannelNotes",
+ },
},
{
"context": "(CollabPanel && editing) > Editor",
"use_key_equivalents": true,
"bindings": {
- "space": "collab_panel::InsertSpace"
- }
+ "space": "collab_panel::InsertSpace",
+ },
},
{
"context": "ChannelModal",
"use_key_equivalents": true,
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "Picker > Editor",
@@ -1123,30 +1120,30 @@
"down": "menu::SelectNext",
"tab": "picker::ConfirmCompletion",
"alt-enter": ["picker::ConfirmInput", { "secondary": false }],
- "cmd-alt-enter": ["picker::ConfirmInput", { "secondary": true }]
- }
+ "cmd-alt-enter": ["picker::ConfirmInput", { "secondary": true }],
+ },
},
{
"context": "ChannelModal > Picker > Editor",
"use_key_equivalents": true,
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "ToolchainSelector",
"use_key_equivalents": true,
"bindings": {
- "cmd-shift-a": "toolchain::AddToolchain"
- }
+ "cmd-shift-a": "toolchain::AddToolchain",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"cmd-shift-a": "file_finder::ToggleSplitMenu",
- "cmd-shift-i": "file_finder::ToggleFilterMenu"
- }
+ "cmd-shift-i": "file_finder::ToggleFilterMenu",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
@@ -1156,8 +1153,8 @@
"cmd-j": "pane::SplitDown",
"cmd-k": "pane::SplitUp",
"cmd-h": "pane::SplitLeft",
- "cmd-l": "pane::SplitRight"
- }
+ "cmd-l": "pane::SplitRight",
+ },
},
{
"context": "TabSwitcher",
@@ -1166,16 +1163,16 @@
"ctrl-shift-tab": "menu::SelectPrevious",
"ctrl-up": "menu::SelectPrevious",
"ctrl-down": "menu::SelectNext",
- "ctrl-backspace": "tab_switcher::CloseSelectedItem"
- }
+ "ctrl-backspace": "tab_switcher::CloseSelectedItem",
+ },
},
{
"context": "StashList || (StashList > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-backspace": "stash_picker::DropStashItem",
- "ctrl-shift-v": "stash_picker::ShowStashItem"
- }
+ "ctrl-shift-v": "stash_picker::ShowStashItem",
+ },
},
{
"context": "Terminal",
@@ -1230,35 +1227,35 @@
"ctrl-alt-left": "pane::SplitLeft",
"ctrl-alt-right": "pane::SplitRight",
"cmd-d": "pane::SplitRight",
- "cmd-alt-r": "terminal::RerunTask"
- }
+ "cmd-alt-r": "terminal::RerunTask",
+ },
},
{
- "context": "RateCompletionModal",
+ "context": "RatePredictionsModal",
"use_key_equivalents": true,
"bindings": {
- "cmd-shift-enter": "zeta::ThumbsUpActiveCompletion",
- "cmd-shift-backspace": "zeta::ThumbsDownActiveCompletion",
+ "cmd-shift-enter": "zeta::ThumbsUpActivePrediction",
+ "cmd-shift-backspace": "zeta::ThumbsDownActivePrediction",
"shift-down": "zeta::NextEdit",
"shift-up": "zeta::PreviousEdit",
- "right": "zeta::PreviewCompletion"
- }
+ "right": "zeta::PreviewPrediction",
+ },
},
{
- "context": "RateCompletionModal > Editor",
+ "context": "RatePredictionsModal > Editor",
"use_key_equivalents": true,
"bindings": {
- "escape": "zeta::FocusCompletions",
- "cmd-shift-enter": "zeta::ThumbsUpActiveCompletion",
- "cmd-shift-backspace": "zeta::ThumbsDownActiveCompletion"
- }
+ "escape": "zeta::FocusPredictions",
+ "cmd-shift-enter": "zeta::ThumbsUpActivePrediction",
+ "cmd-shift-backspace": "zeta::ThumbsDownActivePrediction",
+ },
},
{
"context": "ZedPredictModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ConfigureContextServerModal > Editor",
@@ -1266,52 +1263,56 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "editor::Newline",
- "cmd-enter": "menu::Confirm"
- }
+ "cmd-enter": "menu::Confirm",
+ },
},
{
"context": "ContextServerToolsModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "OnboardingAiConfigurationModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "Diagnostics",
"use_key_equivalents": true,
"bindings": {
- "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh"
- }
+ "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh",
+ },
},
{
"context": "DebugConsole > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "menu::Confirm",
- "alt-enter": "console::WatchExpression"
- }
+ "alt-enter": "console::WatchExpression",
+ },
},
{
"context": "RunModal",
"use_key_equivalents": true,
"bindings": {
"ctrl-tab": "pane::ActivateNextItem",
- "ctrl-shift-tab": "pane::ActivatePreviousItem"
- }
+ "ctrl-shift-tab": "pane::ActivatePreviousItem",
+ },
},
{
"context": "MarkdownPreview",
"bindings": {
- "pageup": "markdown::MovePageUp",
- "pagedown": "markdown::MovePageDown"
- }
+ "pageup": "markdown::ScrollPageUp",
+ "pagedown": "markdown::ScrollPageDown",
+ "up": "markdown::ScrollUp",
+ "down": "markdown::ScrollDown",
+ "alt-up": "markdown::ScrollUpByItem",
+ "alt-down": "markdown::ScrollDownByItem",
+ },
},
{
"context": "KeymapEditor",
@@ -1324,8 +1325,8 @@
"alt-enter": "keymap_editor::CreateBinding",
"cmd-c": "keymap_editor::CopyAction",
"cmd-shift-c": "keymap_editor::CopyContext",
- "cmd-t": "keymap_editor::ShowMatchingKeybinds"
- }
+ "cmd-t": "keymap_editor::ShowMatchingKeybinds",
+ },
},
{
"context": "KeystrokeInput",
@@ -1333,48 +1334,67 @@
"bindings": {
"enter": "keystroke_input::StartRecording",
"escape escape escape": "keystroke_input::StopRecording",
- "delete": "keystroke_input::ClearKeystrokes"
- }
+ "delete": "keystroke_input::ClearKeystrokes",
+ },
},
{
"context": "KeybindEditorModal",
"use_key_equivalents": true,
"bindings": {
"cmd-enter": "menu::Confirm",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "KeybindEditorModal > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "menu::SelectPrevious",
- "down": "menu::SelectNext"
- }
+ "down": "menu::SelectNext",
+ },
},
{
"context": "Onboarding",
"use_key_equivalents": true,
"bindings": {
+ "cmd-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "cmd-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "cmd--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "cmd-0": ["zed::ResetUiFontSize", { "persist": false }],
"cmd-enter": "onboarding::Finish",
"alt-tab": "onboarding::SignIn",
- "alt-shift-a": "onboarding::OpenAccount"
- }
+ "alt-shift-a": "onboarding::OpenAccount",
+ },
+ },
+ {
+ "context": "Welcome",
+ "use_key_equivalents": true,
+ "bindings": {
+ "cmd-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "cmd-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "cmd--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "cmd-0": ["zed::ResetUiFontSize", { "persist": false }],
+ "cmd-1": ["welcome::OpenRecentProject", 0],
+ "cmd-2": ["welcome::OpenRecentProject", 1],
+ "cmd-3": ["welcome::OpenRecentProject", 2],
+ "cmd-4": ["welcome::OpenRecentProject", 3],
+ "cmd-5": ["welcome::OpenRecentProject", 4],
+ },
},
{
"context": "InvalidBuffer",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-enter": "workspace::OpenWithSystem"
- }
+ "ctrl-shift-enter": "workspace::OpenWithSystem",
+ },
},
{
"context": "GitWorktreeSelector || (GitWorktreeSelector > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-space": "git::WorktreeFromDefaultOnWindow",
- "ctrl-space": "git::WorktreeFromDefault"
- }
+ "ctrl-space": "git::WorktreeFromDefault",
+ },
},
{
"context": "SettingsWindow",
@@ -1384,6 +1404,7 @@
"escape": "workspace::CloseWindow",
"cmd-m": "settings_editor::Minimize",
"cmd-f": "search::FocusSearch",
+ "cmd-,": "settings_editor::OpenCurrentFile",
"left": "settings_editor::ToggleFocusNav",
"cmd-shift-e": "settings_editor::ToggleFocusNav",
// todo(settings_ui): cut this down based on the max files and overflow UI
@@ -1398,8 +1419,8 @@
"ctrl-9": ["settings_editor::FocusFile", 8],
"ctrl-0": ["settings_editor::FocusFile", 9],
"cmd-{": "settings_editor::FocusPreviousFile",
- "cmd-}": "settings_editor::FocusNextFile"
- }
+ "cmd-}": "settings_editor::FocusNextFile",
+ },
},
{
"context": "StashDiff > Editor",
@@ -1407,8 +1428,8 @@
"bindings": {
"ctrl-space": "git::ApplyCurrentStash",
"ctrl-shift-space": "git::PopCurrentStash",
- "ctrl-shift-backspace": "git::DropCurrentStash"
- }
+ "ctrl-shift-backspace": "git::DropCurrentStash",
+ },
},
{
"context": "SettingsWindow > NavigationMenu",
@@ -1423,22 +1444,22 @@
"pageup": "settings_editor::FocusPreviousRootNavEntry",
"pagedown": "settings_editor::FocusNextRootNavEntry",
"home": "settings_editor::FocusFirstNavEntry",
- "end": "settings_editor::FocusLastNavEntry"
- }
+ "end": "settings_editor::FocusLastNavEntry",
+ },
},
{
- "context": "Zeta2Feedback > Editor",
+ "context": "EditPredictionContext > Editor",
"bindings": {
- "enter": "editor::Newline",
- "cmd-enter up": "dev::Zeta2RatePredictionPositive",
- "cmd-enter down": "dev::Zeta2RatePredictionNegative"
- }
+ "alt-left": "dev::EditPredictionContextGoBack",
+ "alt-right": "dev::EditPredictionContextGoForward",
+ },
},
{
- "context": "Zeta2Context > Editor",
+ "context": "GitBranchSelector || (GitBranchSelector > Picker > Editor)",
+ "use_key_equivalents": true,
"bindings": {
- "alt-left": "dev::Zeta2ContextGoBack",
- "alt-right": "dev::Zeta2ContextGoForward"
- }
- }
+ "cmd-shift-backspace": "branch_picker::DeleteBranch",
+ "cmd-shift-i": "branch_picker::FilterRemotes",
+ },
+ },
]
diff --git a/assets/keymaps/default-windows.json b/assets/keymaps/default-windows.json
index 3fe5778e5c1219ee2b5fc9691ac876ec61debe06..4a700e2c9190a8ae23ed53edaa075703fa07b855 100644
--- a/assets/keymaps/default-windows.json
+++ b/assets/keymaps/default-windows.json
@@ -24,7 +24,8 @@
"ctrl-alt-enter": ["picker::ConfirmInput", { "secondary": true }],
"ctrl-shift-w": "workspace::CloseWindow",
"shift-escape": "workspace::ToggleZoom",
- "ctrl-o": "workspace::Open",
+ "ctrl-o": "workspace::OpenFiles",
+ "ctrl-k ctrl-o": "workspace::Open",
"ctrl-=": ["zed::IncreaseBufferFontSize", { "persist": false }],
"ctrl-shift-=": ["zed::IncreaseBufferFontSize", { "persist": false }],
"ctrl--": ["zed::DecreaseBufferFontSize", { "persist": false }],
@@ -36,22 +37,22 @@
"shift-f5": "debugger::Stop",
"ctrl-shift-f5": "debugger::RerunSession",
"f6": "debugger::Pause",
- "f7": "debugger::StepOver",
- "ctrl-f11": "debugger::StepInto",
+ "f10": "debugger::StepOver",
"shift-f11": "debugger::StepOut",
"f11": "zed::ToggleFullScreen",
"ctrl-shift-i": "edit_prediction::ToggleMenu",
"shift-alt-l": "lsp_tool::ToggleMenu",
- "ctrl-alt-.": "project_panel::ToggleHideHidden"
- }
+ "ctrl-shift-alt-c": "editor::DisplayCursorNames",
+ "ctrl-shift-alt-s": "workspace::ToggleWorktreeSecurity",
+ },
},
{
"context": "Picker || menu",
"use_key_equivalents": true,
"bindings": {
"up": "menu::SelectPrevious",
- "down": "menu::SelectNext"
- }
+ "down": "menu::SelectNext",
+ },
},
{
"context": "Editor",
@@ -63,7 +64,6 @@
"delete": "editor::Delete",
"tab": "editor::Tab",
"shift-tab": "editor::Backtab",
- "ctrl-k": "editor::CutToEndOfLine",
"ctrl-k ctrl-q": "editor::Rewrap",
"ctrl-k q": "editor::Rewrap",
"ctrl-backspace": ["editor::DeleteToPreviousWordStart", { "ignore_newlines": false, "ignore_brackets": false }],
@@ -118,10 +118,10 @@
"alt-g m": "git::OpenModifiedFiles",
"menu": "editor::OpenContextMenu",
"shift-f10": "editor::OpenContextMenu",
- "ctrl-shift-e": "editor::ToggleEditPrediction",
+ "ctrl-alt-e": "editor::ToggleEditPrediction",
"f9": "editor::ToggleBreakpoint",
- "shift-f9": "editor::EditLogBreakpoint"
- }
+ "shift-f9": "editor::EditLogBreakpoint",
+ },
},
{
"context": "Editor && mode == full",
@@ -140,23 +140,23 @@
"shift-alt-e": "editor::SelectEnclosingSymbol",
"ctrl-shift-backspace": "editor::GoToPreviousChange",
"ctrl-shift-alt-backspace": "editor::GoToNextChange",
- "alt-enter": "editor::OpenSelectionsInMultibuffer"
- }
+ "alt-enter": "editor::OpenSelectionsInMultibuffer",
+ },
},
{
"context": "Editor && mode == full && edit_prediction",
"use_key_equivalents": true,
"bindings": {
"alt-]": "editor::NextEditPrediction",
- "alt-[": "editor::PreviousEditPrediction"
- }
+ "alt-[": "editor::PreviousEditPrediction",
+ },
},
{
"context": "Editor && !edit_prediction",
"use_key_equivalents": true,
"bindings": {
- "alt-\\": "editor::ShowEditPrediction"
- }
+ "alt-\\": "editor::ShowEditPrediction",
+ },
},
{
"context": "Editor && mode == auto_height",
@@ -164,23 +164,23 @@
"bindings": {
"ctrl-enter": "editor::Newline",
"shift-enter": "editor::Newline",
- "ctrl-shift-enter": "editor::NewlineBelow"
- }
+ "ctrl-shift-enter": "editor::NewlineBelow",
+ },
},
{
"context": "Markdown",
"use_key_equivalents": true,
"bindings": {
- "ctrl-c": "markdown::Copy"
- }
+ "ctrl-c": "markdown::Copy",
+ },
},
{
"context": "Editor && jupyter && !ContextEditor",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-enter": "repl::Run",
- "ctrl-alt-enter": "repl::RunInPlace"
- }
+ "ctrl-alt-enter": "repl::RunInPlace",
+ },
},
{
"context": "Editor && !agent_diff",
@@ -188,8 +188,8 @@
"bindings": {
"ctrl-k ctrl-r": "git::Restore",
"alt-y": "git::StageAndNext",
- "shift-alt-y": "git::UnstageAndNext"
- }
+ "shift-alt-y": "git::UnstageAndNext",
+ },
},
{
"context": "Editor && editor_agent_diff",
@@ -199,8 +199,8 @@
"ctrl-n": "agent::Reject",
"ctrl-shift-y": "agent::KeepAll",
"ctrl-shift-n": "agent::RejectAll",
- "ctrl-shift-r": "agent::OpenAgentDiff"
- }
+ "ctrl-shift-r": "agent::OpenAgentDiff",
+ },
},
{
"context": "AgentDiff",
@@ -209,14 +209,14 @@
"ctrl-y": "agent::Keep",
"ctrl-n": "agent::Reject",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "ContextEditor > Editor",
"use_key_equivalents": true,
"bindings": {
- "ctrl-enter": "assistant::Assist",
+ "ctrl-i": "assistant::Assist",
"ctrl-s": "workspace::Save",
"ctrl-shift-,": "assistant::InsertIntoEditor",
"shift-enter": "assistant::Split",
@@ -226,8 +226,8 @@
"ctrl-k c": "assistant::CopyCode",
"ctrl-g": "search::SelectNextMatch",
"ctrl-shift-g": "search::SelectPreviousMatch",
- "ctrl-k l": "agent::OpenRulesLibrary"
- }
+ "ctrl-k l": "agent::OpenRulesLibrary",
+ },
},
{
"context": "AgentPanel",
@@ -241,51 +241,50 @@
"shift-alt-p": "agent::ManageProfiles",
"ctrl-i": "agent::ToggleProfileSelector",
"shift-alt-/": "agent::ToggleModelSelector",
- "ctrl-shift-a": "agent::ToggleContextPicker",
- "ctrl-shift-j": "agent::ToggleNavigationMenu",
- "ctrl-alt-i": "agent::ToggleOptionsMenu",
- // "ctrl-shift-alt-n": "agent::ToggleNewThreadMenu",
+ "shift-alt-j": "agent::ToggleNavigationMenu",
+ "shift-alt-i": "agent::ToggleOptionsMenu",
+ "ctrl-shift-alt-n": "agent::ToggleNewThreadMenu",
"shift-alt-escape": "agent::ExpandMessageEditor",
"ctrl-shift-.": "agent::AddSelectionToThread",
- "shift-alt-e": "agent::RemoveAllContext",
"ctrl-shift-e": "project_panel::ToggleFocus",
"ctrl-shift-enter": "agent::ContinueThread",
"super-ctrl-b": "agent::ToggleBurnMode",
"alt-enter": "agent::ContinueWithBurnMode",
- "ctrl-y": "agent::AllowOnce",
+ "shift-alt-a": "agent::AllowOnce",
"ctrl-alt-y": "agent::AllowAlways",
- "ctrl-alt-z": "agent::RejectOnce"
- }
+ "shift-alt-z": "agent::RejectOnce",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AgentPanel > NavigationMenu",
"use_key_equivalents": true,
"bindings": {
- "shift-backspace": "agent::DeleteRecentlyOpenThread"
- }
+ "shift-backspace": "agent::DeleteRecentlyOpenThread",
+ },
},
{
"context": "AgentPanel > Markdown",
"use_key_equivalents": true,
"bindings": {
- "ctrl-c": "markdown::CopyAsMarkdown"
- }
+ "ctrl-c": "markdown::CopyAsMarkdown",
+ },
},
{
"context": "AgentPanel && text_thread",
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewTextThread",
- "ctrl-alt-t": "agent::NewThread"
- }
+ "ctrl-alt-t": "agent::NewThread",
+ },
},
{
"context": "AgentPanel && acp_thread",
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewExternalAgentThread",
- "ctrl-alt-t": "agent::NewThread"
- }
+ "ctrl-alt-t": "agent::NewThread",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && !use_modifier_to_send",
@@ -296,8 +295,8 @@
"ctrl-i": "agent::ToggleProfileSelector",
"ctrl-shift-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "MessageEditor && !Picker > Editor && use_modifier_to_send",
@@ -308,8 +307,8 @@
"ctrl-i": "agent::ToggleProfileSelector",
"ctrl-shift-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
- "ctrl-shift-n": "agent::RejectAll"
- }
+ "ctrl-shift-n": "agent::RejectAll",
+ },
},
{
"context": "EditMessageEditor > Editor",
@@ -317,8 +316,8 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AgentFeedbackMessageEditor > Editor",
@@ -326,26 +325,14 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "menu::Confirm",
- "alt-enter": "editor::Newline"
- }
- },
- {
- "context": "ContextStrip",
- "use_key_equivalents": true,
- "bindings": {
- "up": "agent::FocusUp",
- "right": "agent::FocusRight",
- "left": "agent::FocusLeft",
- "down": "agent::FocusDown",
- "backspace": "agent::RemoveFocusedContext",
- "enter": "agent::AcceptSuggestedContext"
- }
+ "alt-enter": "editor::Newline",
+ },
},
{
"context": "AcpThread > ModeSelector",
"bindings": {
- "ctrl-enter": "menu::Confirm"
- }
+ "ctrl-enter": "menu::Confirm",
+ },
},
{
"context": "AcpThread > Editor && !use_modifier_to_send",
@@ -355,8 +342,9 @@
"ctrl-shift-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
"ctrl-shift-n": "agent::RejectAll",
- "shift-tab": "agent::CycleModeSelector"
- }
+ "shift-tab": "agent::CycleModeSelector",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "AcpThread > Editor && use_modifier_to_send",
@@ -366,15 +354,16 @@
"ctrl-shift-r": "agent::OpenAgentDiff",
"ctrl-shift-y": "agent::KeepAll",
"ctrl-shift-n": "agent::RejectAll",
- "shift-tab": "agent::CycleModeSelector"
- }
+ "shift-tab": "agent::CycleModeSelector",
+ "alt-tab": "agent::CycleFavoriteModels",
+ },
},
{
"context": "ThreadHistory",
"use_key_equivalents": true,
"bindings": {
- "backspace": "agent::RemoveSelectedThread"
- }
+ "backspace": "agent::RemoveSelectedThread",
+ },
},
{
"context": "RulesLibrary",
@@ -382,8 +371,8 @@
"bindings": {
"ctrl-n": "rules_library::NewRule",
"ctrl-shift-s": "rules_library::ToggleDefaultRule",
- "ctrl-w": "workspace::CloseWindow"
- }
+ "ctrl-w": "workspace::CloseWindow",
+ },
},
{
"context": "BufferSearchBar",
@@ -396,24 +385,24 @@
"alt-enter": "search::SelectAllMatches",
"ctrl-f": "search::FocusSearch",
"ctrl-h": "search::ToggleReplace",
- "ctrl-l": "search::ToggleSelection"
- }
+ "ctrl-l": "search::ToggleSelection",
+ },
},
{
"context": "BufferSearchBar && in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "search::ReplaceNext",
- "ctrl-enter": "search::ReplaceAll"
- }
+ "ctrl-enter": "search::ReplaceAll",
+ },
},
{
"context": "BufferSearchBar && !in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar",
@@ -422,24 +411,24 @@
"escape": "project_search::ToggleFocus",
"ctrl-shift-f": "search::FocusSearch",
"ctrl-shift-h": "search::ToggleReplace",
- "alt-r": "search::ToggleRegex" // vscode
- }
+ "alt-r": "search::ToggleRegex", // vscode
+ },
},
{
"context": "ProjectSearchBar > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "search::PreviousHistoryQuery",
- "down": "search::NextHistoryQuery"
- }
+ "down": "search::NextHistoryQuery",
+ },
},
{
"context": "ProjectSearchBar && in_replace > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "search::ReplaceNext",
- "ctrl-alt-enter": "search::ReplaceAll"
- }
+ "ctrl-alt-enter": "search::ReplaceAll",
+ },
},
{
"context": "ProjectSearchView",
@@ -447,8 +436,8 @@
"bindings": {
"escape": "project_search::ToggleFocus",
"ctrl-shift-h": "search::ToggleReplace",
- "alt-r": "search::ToggleRegex" // vscode
- }
+ "alt-r": "search::ToggleRegex", // vscode
+ },
},
{
"context": "Pane",
@@ -479,8 +468,10 @@
"ctrl-k ctrl-w": "workspace::CloseAllItemsAndPanes",
"back": "pane::GoBack",
"alt--": "pane::GoBack",
+ "alt-left": "pane::GoBack",
"forward": "pane::GoForward",
"alt-=": "pane::GoForward",
+ "alt-right": "pane::GoForward",
"f3": "search::SelectNextMatch",
"shift-f3": "search::SelectPreviousMatch",
"ctrl-shift-f": "project_search::ToggleFocus",
@@ -493,8 +484,8 @@
"shift-enter": "project_search::ToggleAllSearchResults",
"alt-r": "search::ToggleRegex",
// "ctrl-shift-alt-x": "search::ToggleRegex",
- "ctrl-k shift-enter": "pane::TogglePinTab"
- }
+ "ctrl-k shift-enter": "pane::TogglePinTab",
+ },
},
// Bindings from VS Code
{
@@ -503,8 +494,8 @@
"bindings": {
"ctrl-[": "editor::Outdent",
"ctrl-]": "editor::Indent",
- "ctrl-shift-alt-up": ["editor::AddSelectionAbove", { "skip_soft_wrap": true }], // Insert Cursor Above
- "ctrl-shift-alt-down": ["editor::AddSelectionBelow", { "skip_soft_wrap": true }], // Insert Cursor Below
+ "ctrl-alt-up": ["editor::AddSelectionAbove", { "skip_soft_wrap": true }], // Insert Cursor Above
+ "ctrl-alt-down": ["editor::AddSelectionBelow", { "skip_soft_wrap": true }], // Insert Cursor Below
"ctrl-shift-k": "editor::DeleteLine",
"alt-up": "editor::MoveLineUp",
"alt-down": "editor::MoveLineDown",
@@ -515,24 +506,21 @@
"ctrl-shift-l": "editor::SelectAllMatches", // Select all occurrences of current selection
"ctrl-f2": "editor::SelectAllMatches", // Select all occurrences of current word
"ctrl-d": ["editor::SelectNext", { "replace_newest": false }], // editor.action.addSelectionToNextFindMatch / find_under_expand
- "ctrl-shift-down": ["editor::SelectNext", { "replace_newest": false }], // editor.action.addSelectionToNextFindMatch
- "ctrl-shift-up": ["editor::SelectPrevious", { "replace_newest": false }], // editor.action.addSelectionToPreviousFindMatch
+ "ctrl-f3": ["editor::SelectNext", { "replace_newest": false }], // editor.action.addSelectionToNextFindMatch / find_under_expand
"ctrl-k ctrl-d": ["editor::SelectNext", { "replace_newest": true }], // editor.action.moveSelectionToNextFindMatch / find_under_expand_skip
- "ctrl-k ctrl-shift-d": ["editor::SelectPrevious", { "replace_newest": true }], // editor.action.moveSelectionToPreviousFindMatch
+ "ctrl-shift-f3": ["editor::SelectPrevious", { "replace_newest": false }], // editor.action.addSelectionToNextFindMatch / find_under_expand
"ctrl-k ctrl-i": "editor::Hover",
"ctrl-k ctrl-b": "editor::BlameHover",
+ "ctrl-k ctrl-f": "editor::FormatSelections",
"ctrl-/": ["editor::ToggleComments", { "advance_downwards": false }],
+ "ctrl-k ctrl-c": ["editor::ToggleComments", { "advance_downwards": false }],
"f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }],
"shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }],
"f2": "editor::Rename",
"f12": "editor::GoToDefinition",
"alt-f12": "editor::GoToDefinitionSplit",
- "ctrl-shift-f10": "editor::GoToDefinitionSplit",
"ctrl-f12": "editor::GoToImplementation",
- "shift-f12": "editor::GoToTypeDefinition",
- "ctrl-alt-f12": "editor::GoToTypeDefinitionSplit",
"shift-alt-f12": "editor::FindAllReferences",
- "ctrl-m": "editor::MoveToEnclosingBracket", // from jetbrains
"ctrl-shift-\\": "editor::MoveToEnclosingBracket",
"ctrl-shift-[": "editor::Fold",
"ctrl-shift-]": "editor::UnfoldLines",
@@ -556,34 +544,33 @@
"ctrl-k r": "editor::RevealInFileManager",
"ctrl-k p": "editor::CopyPath",
"ctrl-\\": "pane::SplitRight",
- "ctrl-shift-alt-c": "editor::DisplayCursorNames",
"alt-.": "editor::GoToHunk",
- "alt-,": "editor::GoToPreviousHunk"
- }
+ "alt-,": "editor::GoToPreviousHunk",
+ },
},
{
"context": "Editor && extension == md",
"use_key_equivalents": true,
"bindings": {
"ctrl-k v": "markdown::OpenPreviewToTheSide",
- "ctrl-shift-v": "markdown::OpenPreview"
- }
+ "ctrl-shift-v": "markdown::OpenPreview",
+ },
},
{
"context": "Editor && extension == svg",
"use_key_equivalents": true,
"bindings": {
"ctrl-k v": "svg::OpenPreviewToTheSide",
- "ctrl-shift-v": "svg::OpenPreview"
- }
+ "ctrl-shift-v": "svg::OpenPreview",
+ },
},
{
"context": "Editor && mode == full",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-o": "outline::Toggle",
- "ctrl-g": "go_to_line::Toggle"
- }
+ "ctrl-g": "go_to_line::Toggle",
+ },
},
{
"context": "Workspace",
@@ -631,8 +618,8 @@
"ctrl-alt-super-p": "settings_profile_selector::Toggle",
"ctrl-t": "project_symbols::Toggle",
"ctrl-p": "file_finder::Toggle",
- "ctrl-tab": "tab_switcher::Toggle",
"ctrl-shift-tab": ["tab_switcher::Toggle", { "select_last": true }],
+ "ctrl-tab": "tab_switcher::Toggle",
"ctrl-e": "file_finder::Toggle",
"f1": "command_palette::Toggle",
"ctrl-shift-p": "command_palette::Toggle",
@@ -667,22 +654,22 @@
// "foo-bar": ["task::Spawn", { "task_tag": "MyTag" }],
"f5": "debugger::Rerun",
"ctrl-f4": "workspace::CloseActiveDock",
- "ctrl-w": "workspace::CloseActiveDock"
- }
+ "ctrl-w": "workspace::CloseActiveDock",
+ },
},
{
"context": "Workspace && debugger_running",
"use_key_equivalents": true,
"bindings": {
- "f5": "zed::NoAction"
- }
+ "f5": "zed::NoAction",
+ },
},
{
"context": "Workspace && debugger_stopped",
"use_key_equivalents": true,
"bindings": {
- "f5": "debugger::Continue"
- }
+ "f5": "debugger::Continue",
+ },
},
{
"context": "ApplicationMenu",
@@ -690,8 +677,8 @@
"bindings": {
"f10": "menu::Cancel",
"left": "app_menu::ActivateMenuLeft",
- "right": "app_menu::ActivateMenuRight"
- }
+ "right": "app_menu::ActivateMenuRight",
+ },
},
// Bindings from Sublime Text
{
@@ -708,8 +695,8 @@
"ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
"ctrl-alt-right": "editor::MoveToNextSubwordEnd",
"ctrl-shift-alt-left": "editor::SelectToPreviousSubwordStart",
- "ctrl-shift-alt-right": "editor::SelectToNextSubwordEnd"
- }
+ "ctrl-shift-alt-right": "editor::SelectToNextSubwordEnd",
+ },
},
// Bindings from Atom
{
@@ -719,16 +706,16 @@
"ctrl-k up": "pane::SplitUp",
"ctrl-k down": "pane::SplitDown",
"ctrl-k left": "pane::SplitLeft",
- "ctrl-k right": "pane::SplitRight"
- }
+ "ctrl-k right": "pane::SplitRight",
+ },
},
// Bindings that should be unified with bindings for more general actions
{
"context": "Editor && renaming",
"use_key_equivalents": true,
"bindings": {
- "enter": "editor::ConfirmRename"
- }
+ "enter": "editor::ConfirmRename",
+ },
},
{
"context": "Editor && showing_completions",
@@ -736,22 +723,22 @@
"bindings": {
"enter": "editor::ConfirmCompletion",
"shift-enter": "editor::ConfirmCompletionReplace",
- "tab": "editor::ComposeCompletion"
- }
+ "tab": "editor::ComposeCompletion",
+ },
},
{
"context": "Editor && in_snippet && has_next_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "tab": "editor::NextSnippetTabstop"
- }
+ "tab": "editor::NextSnippetTabstop",
+ },
},
{
"context": "Editor && in_snippet && has_previous_tabstop && !showing_completions",
"use_key_equivalents": true,
"bindings": {
- "shift-tab": "editor::PreviousSnippetTabstop"
- }
+ "shift-tab": "editor::PreviousSnippetTabstop",
+ },
},
// Bindings for accepting edit predictions
//
@@ -764,8 +751,9 @@
"alt-tab": "editor::AcceptEditPrediction",
"alt-l": "editor::AcceptEditPrediction",
"tab": "editor::AcceptEditPrediction",
- "alt-right": "editor::AcceptPartialEditPrediction"
- }
+ "alt-right": "editor::AcceptNextWordEditPrediction",
+ "alt-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && edit_prediction_conflict",
@@ -773,15 +761,16 @@
"bindings": {
"alt-tab": "editor::AcceptEditPrediction",
"alt-l": "editor::AcceptEditPrediction",
- "alt-right": "editor::AcceptPartialEditPrediction"
- }
+ "alt-right": "editor::AcceptNextWordEditPrediction",
+ "alt-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Editor && showing_code_actions",
"use_key_equivalents": true,
"bindings": {
- "enter": "editor::ConfirmCodeAction"
- }
+ "enter": "editor::ConfirmCodeAction",
+ },
},
{
"context": "Editor && (showing_code_actions || showing_completions)",
@@ -792,16 +781,16 @@
"ctrl-n": "editor::ContextMenuNext",
"down": "editor::ContextMenuNext",
"pageup": "editor::ContextMenuFirst",
- "pagedown": "editor::ContextMenuLast"
- }
+ "pagedown": "editor::ContextMenuLast",
+ },
},
{
"context": "Editor && showing_signature_help && !showing_completions",
"use_key_equivalents": true,
"bindings": {
"up": "editor::SignatureHelpPrevious",
- "down": "editor::SignatureHelpNext"
- }
+ "down": "editor::SignatureHelpNext",
+ },
},
// Custom bindings
{
@@ -809,15 +798,15 @@
"bindings": {
"ctrl-shift-alt-f": "workspace::FollowNextCollaborator",
// Only available in debug builds: opens an element inspector for development.
- "shift-alt-i": "dev::ToggleInspector"
- }
+ "shift-alt-i": "dev::ToggleInspector",
+ },
},
{
"context": "!Terminal",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-c": "collab_panel::ToggleFocus"
- }
+ "ctrl-shift-c": "collab_panel::ToggleFocus",
+ },
},
{
"context": "!ContextEditor > Editor && mode == full",
@@ -830,8 +819,8 @@
"ctrl-f8": "editor::GoToHunk",
"ctrl-shift-f8": "editor::GoToPreviousHunk",
"ctrl-enter": "assistant::InlineAssist",
- "ctrl-shift-;": "editor::ToggleInlayHints"
- }
+ "ctrl-shift-;": "editor::ToggleInlayHints",
+ },
},
{
"context": "PromptEditor",
@@ -839,8 +828,9 @@
"bindings": {
"ctrl-[": "agent::CyclePreviousInlineAssist",
"ctrl-]": "agent::CycleNextInlineAssist",
- "shift-alt-e": "agent::RemoveAllContext"
- }
+ "ctrl-shift-enter": "inline_assistant::ThumbsUpResult",
+ "ctrl-shift-delete": "inline_assistant::ThumbsDownResult",
+ },
},
{
"context": "Prompt",
@@ -849,15 +839,15 @@
"left": "menu::SelectPrevious",
"right": "menu::SelectNext",
"h": "menu::SelectPrevious",
- "l": "menu::SelectNext"
- }
+ "l": "menu::SelectNext",
+ },
},
{
"context": "ProjectSearchBar && !in_replace",
"use_key_equivalents": true,
"bindings": {
- "ctrl-enter": "project_search::SearchInNew"
- }
+ "ctrl-enter": "project_search::SearchInNew",
+ },
},
{
"context": "OutlinePanel && not_editing",
@@ -872,14 +862,15 @@
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
"alt-enter": "editor::OpenExcerpts",
- "ctrl-alt-enter": "editor::OpenExcerptsSplit"
- }
+ "ctrl-alt-enter": "editor::OpenExcerptsSplit",
+ },
},
{
"context": "ProjectPanel",
"use_key_equivalents": true,
"bindings": {
"left": "project_panel::CollapseSelectedEntry",
+ "ctrl-left": "project_panel::CollapseAllEntries",
"right": "project_panel::ExpandSelectedEntry",
"ctrl-n": "project_panel::NewFile",
"alt-n": "project_panel::NewDirectory",
@@ -903,22 +894,24 @@
"ctrl-k ctrl-shift-f": "project_panel::NewSearchInDirectory",
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ProjectPanel && not_editing",
"use_key_equivalents": true,
"bindings": {
- "space": "project_panel::Open"
- }
+ "space": "project_panel::Open",
+ },
},
{
"context": "GitPanel && ChangesList",
"use_key_equivalents": true,
"bindings": {
- "up": "menu::SelectPrevious",
- "down": "menu::SelectNext",
+ "up": "git_panel::PreviousEntry",
+ "down": "git_panel::NextEntry",
+ "left": "git_panel::CollapseSelectedEntry",
+ "right": "git_panel::ExpandSelectedEntry",
"enter": "menu::Confirm",
"alt-y": "git::StageFile",
"shift-alt-y": "git::UnstageFile",
@@ -932,15 +925,15 @@
"backspace": ["git::RestoreFile", { "skip_prompt": false }],
"shift-delete": ["git::RestoreFile", { "skip_prompt": false }],
"ctrl-backspace": ["git::RestoreFile", { "skip_prompt": false }],
- "ctrl-delete": ["git::RestoreFile", { "skip_prompt": false }]
- }
+ "ctrl-delete": ["git::RestoreFile", { "skip_prompt": false }],
+ },
},
{
"context": "GitPanel && CommitEditor",
"use_key_equivalents": true,
"bindings": {
- "escape": "git::Cancel"
- }
+ "escape": "git::Cancel",
+ },
},
{
"context": "GitCommit > Editor",
@@ -950,8 +943,8 @@
"enter": "editor::Newline",
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
- "alt-l": "git::GenerateCommitMessage"
- }
+ "alt-l": "git::GenerateCommitMessage",
+ },
},
{
"context": "GitPanel",
@@ -968,8 +961,8 @@
"ctrl-space": "git::StageAll",
"ctrl-shift-space": "git::UnstageAll",
"ctrl-enter": "git::Commit",
- "ctrl-shift-enter": "git::Amend"
- }
+ "ctrl-shift-enter": "git::Amend",
+ },
},
{
"context": "GitDiff > Editor",
@@ -978,15 +971,15 @@
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
"ctrl-space": "git::StageAll",
- "ctrl-shift-space": "git::UnstageAll"
- }
+ "ctrl-shift-space": "git::UnstageAll",
+ },
},
{
"context": "AskPass > Editor",
"use_key_equivalents": true,
"bindings": {
- "enter": "menu::Confirm"
- }
+ "enter": "menu::Confirm",
+ },
},
{
"context": "CommitEditor > Editor",
@@ -999,8 +992,8 @@
"ctrl-enter": "git::Commit",
"ctrl-shift-enter": "git::Amend",
"alt-up": "git_panel::FocusChanges",
- "alt-l": "git::GenerateCommitMessage"
- }
+ "alt-l": "git::GenerateCommitMessage",
+ },
},
{
"context": "DebugPanel",
@@ -1008,8 +1001,8 @@
"bindings": {
"ctrl-t": "debugger::ToggleThreadPicker",
"ctrl-i": "debugger::ToggleSessionPicker",
- "shift-alt-escape": "debugger::ToggleExpandItem"
- }
+ "shift-alt-escape": "debugger::ToggleExpandItem",
+ },
},
{
"context": "VariableList",
@@ -1022,8 +1015,8 @@
"ctrl-alt-c": "variable_list::CopyVariableName",
"delete": "variable_list::RemoveWatch",
"backspace": "variable_list::RemoveWatch",
- "alt-enter": "variable_list::AddWatch"
- }
+ "alt-enter": "variable_list::AddWatch",
+ },
},
{
"context": "BreakpointList",
@@ -1032,16 +1025,16 @@
"space": "debugger::ToggleEnableBreakpoint",
"backspace": "debugger::UnsetBreakpoint",
"left": "debugger::PreviousBreakpointProperty",
- "right": "debugger::NextBreakpointProperty"
- }
+ "right": "debugger::NextBreakpointProperty",
+ },
},
{
"context": "CollabPanel && not_editing",
"use_key_equivalents": true,
"bindings": {
"ctrl-backspace": "collab_panel::Remove",
- "space": "menu::Confirm"
- }
+ "space": "menu::Confirm",
+ },
},
{
"context": "CollabPanel",
@@ -1049,22 +1042,22 @@
"bindings": {
"alt-up": "collab_panel::MoveChannelUp",
"alt-down": "collab_panel::MoveChannelDown",
- "alt-enter": "collab_panel::OpenSelectedChannelNotes"
- }
+ "alt-enter": "collab_panel::OpenSelectedChannelNotes",
+ },
},
{
"context": "(CollabPanel && editing) > Editor",
"use_key_equivalents": true,
"bindings": {
- "space": "collab_panel::InsertSpace"
- }
+ "space": "collab_panel::InsertSpace",
+ },
},
{
"context": "ChannelModal",
"use_key_equivalents": true,
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "Picker > Editor",
@@ -1074,22 +1067,22 @@
"up": "menu::SelectPrevious",
"down": "menu::SelectNext",
"tab": "picker::ConfirmCompletion",
- "alt-enter": ["picker::ConfirmInput", { "secondary": false }]
- }
+ "alt-enter": ["picker::ConfirmInput", { "secondary": false }],
+ },
},
{
"context": "ChannelModal > Picker > Editor",
"use_key_equivalents": true,
"bindings": {
- "tab": "channel_modal::ToggleMode"
- }
+ "tab": "channel_modal::ToggleMode",
+ },
},
{
"context": "ToolchainSelector",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-a": "toolchain::AddToolchain"
- }
+ "ctrl-shift-a": "toolchain::AddToolchain",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor)",
@@ -1097,8 +1090,8 @@
"bindings": {
"ctrl-p": "file_finder::Toggle",
"ctrl-shift-a": "file_finder::ToggleSplitMenu",
- "ctrl-shift-i": "file_finder::ToggleFilterMenu"
- }
+ "ctrl-shift-i": "file_finder::ToggleFilterMenu",
+ },
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
@@ -1108,8 +1101,8 @@
"ctrl-j": "pane::SplitDown",
"ctrl-k": "pane::SplitUp",
"ctrl-h": "pane::SplitLeft",
- "ctrl-l": "pane::SplitRight"
- }
+ "ctrl-l": "pane::SplitRight",
+ },
},
{
"context": "TabSwitcher",
@@ -1118,16 +1111,16 @@
"ctrl-shift-tab": "menu::SelectPrevious",
"ctrl-up": "menu::SelectPrevious",
"ctrl-down": "menu::SelectNext",
- "ctrl-backspace": "tab_switcher::CloseSelectedItem"
- }
+ "ctrl-backspace": "tab_switcher::CloseSelectedItem",
+ },
},
{
"context": "StashList || (StashList > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-backspace": "stash_picker::DropStashItem",
- "ctrl-shift-v": "stash_picker::ShowStashItem"
- }
+ "ctrl-shift-v": "stash_picker::ShowStashItem",
+ },
},
{
"context": "Terminal",
@@ -1139,7 +1132,7 @@
"shift-insert": "terminal::Paste",
"ctrl-v": "terminal::Paste",
"ctrl-shift-v": "terminal::Paste",
- "ctrl-enter": "assistant::InlineAssist",
+ "ctrl-i": "assistant::InlineAssist",
"alt-b": ["terminal::SendText", "\u001bb"],
"alt-f": ["terminal::SendText", "\u001bf"],
"alt-.": ["terminal::SendText", "\u001b."],
@@ -1151,6 +1144,8 @@
"ctrl-e": ["terminal::SendKeystroke", "ctrl-e"],
"ctrl-o": ["terminal::SendKeystroke", "ctrl-o"],
"ctrl-w": ["terminal::SendKeystroke", "ctrl-w"],
+ "ctrl-q": ["terminal::SendKeystroke", "ctrl-q"],
+ "ctrl-r": ["terminal::SendKeystroke", "ctrl-r"],
"ctrl-backspace": ["terminal::SendKeystroke", "ctrl-w"],
"ctrl-shift-a": "editor::SelectAll",
"ctrl-shift-f": "buffer_search::Deploy",
@@ -1172,21 +1167,21 @@
"ctrl-shift-r": "terminal::RerunTask",
"ctrl-alt-r": "terminal::RerunTask",
"alt-t": "terminal::RerunTask",
- "ctrl-shift-5": "pane::SplitRight"
- }
+ "ctrl-shift-5": "pane::SplitRight",
+ },
},
{
"context": "Terminal && selection",
"bindings": {
- "ctrl-c": "terminal::Copy"
- }
+ "ctrl-c": "terminal::Copy",
+ },
},
{
"context": "ZedPredictModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "ConfigureContextServerModal > Editor",
@@ -1194,53 +1189,57 @@
"bindings": {
"escape": "menu::Cancel",
"enter": "editor::Newline",
- "ctrl-enter": "menu::Confirm"
- }
+ "ctrl-enter": "menu::Confirm",
+ },
},
{
"context": "ContextServerToolsModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "OnboardingAiConfigurationModal",
"use_key_equivalents": true,
"bindings": {
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "Diagnostics",
"use_key_equivalents": true,
"bindings": {
- "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh"
- }
+ "ctrl-r": "diagnostics::ToggleDiagnosticsRefresh",
+ },
},
{
"context": "DebugConsole > Editor",
"use_key_equivalents": true,
"bindings": {
"enter": "menu::Confirm",
- "alt-enter": "console::WatchExpression"
- }
+ "alt-enter": "console::WatchExpression",
+ },
},
{
"context": "RunModal",
"use_key_equivalents": true,
"bindings": {
"ctrl-tab": "pane::ActivateNextItem",
- "ctrl-shift-tab": "pane::ActivatePreviousItem"
- }
+ "ctrl-shift-tab": "pane::ActivatePreviousItem",
+ },
},
{
"context": "MarkdownPreview",
"use_key_equivalents": true,
"bindings": {
- "pageup": "markdown::MovePageUp",
- "pagedown": "markdown::MovePageDown"
- }
+ "pageup": "markdown::ScrollPageUp",
+ "pagedown": "markdown::ScrollPageDown",
+ "up": "markdown::ScrollUp",
+ "down": "markdown::ScrollDown",
+ "alt-up": "markdown::ScrollUpByItem",
+ "alt-down": "markdown::ScrollDownByItem",
+ },
},
{
"context": "KeymapEditor",
@@ -1253,8 +1252,8 @@
"alt-enter": "keymap_editor::CreateBinding",
"ctrl-c": "keymap_editor::CopyAction",
"ctrl-shift-c": "keymap_editor::CopyContext",
- "ctrl-t": "keymap_editor::ShowMatchingKeybinds"
- }
+ "ctrl-t": "keymap_editor::ShowMatchingKeybinds",
+ },
},
{
"context": "KeystrokeInput",
@@ -1262,41 +1261,60 @@
"bindings": {
"enter": "keystroke_input::StartRecording",
"escape escape escape": "keystroke_input::StopRecording",
- "delete": "keystroke_input::ClearKeystrokes"
- }
+ "delete": "keystroke_input::ClearKeystrokes",
+ },
},
{
"context": "KeybindEditorModal",
"use_key_equivalents": true,
"bindings": {
"ctrl-enter": "menu::Confirm",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "KeybindEditorModal > Editor",
"use_key_equivalents": true,
"bindings": {
"up": "menu::SelectPrevious",
- "down": "menu::SelectNext"
- }
+ "down": "menu::SelectNext",
+ },
},
{
"context": "Onboarding",
"use_key_equivalents": true,
"bindings": {
+ "ctrl-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "ctrl-0": ["zed::ResetUiFontSize", { "persist": false }],
"ctrl-enter": "onboarding::Finish",
"alt-shift-l": "onboarding::SignIn",
- "shift-alt-a": "onboarding::OpenAccount"
- }
+ "shift-alt-a": "onboarding::OpenAccount",
+ },
+ },
+ {
+ "context": "Welcome",
+ "use_key_equivalents": true,
+ "bindings": {
+ "ctrl-=": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl-+": ["zed::IncreaseUiFontSize", { "persist": false }],
+ "ctrl--": ["zed::DecreaseUiFontSize", { "persist": false }],
+ "ctrl-0": ["zed::ResetUiFontSize", { "persist": false }],
+ "ctrl-1": ["welcome::OpenRecentProject", 0],
+ "ctrl-2": ["welcome::OpenRecentProject", 1],
+ "ctrl-3": ["welcome::OpenRecentProject", 2],
+ "ctrl-4": ["welcome::OpenRecentProject", 3],
+ "ctrl-5": ["welcome::OpenRecentProject", 4],
+ },
},
{
"context": "GitWorktreeSelector || (GitWorktreeSelector > Picker > Editor)",
"use_key_equivalents": true,
"bindings": {
"ctrl-shift-space": "git::WorktreeFromDefaultOnWindow",
- "ctrl-space": "git::WorktreeFromDefault"
- }
+ "ctrl-space": "git::WorktreeFromDefault",
+ },
},
{
"context": "SettingsWindow",
@@ -1306,6 +1324,7 @@
"escape": "workspace::CloseWindow",
"ctrl-m": "settings_editor::Minimize",
"ctrl-f": "search::FocusSearch",
+ "ctrl-,": "settings_editor::OpenCurrentFile",
"left": "settings_editor::ToggleFocusNav",
"ctrl-shift-e": "settings_editor::ToggleFocusNav",
// todo(settings_ui): cut this down based on the max files and overflow UI
@@ -1320,8 +1339,8 @@
"ctrl-9": ["settings_editor::FocusFile", 8],
"ctrl-0": ["settings_editor::FocusFile", 9],
"ctrl-pageup": "settings_editor::FocusPreviousFile",
- "ctrl-pagedown": "settings_editor::FocusNextFile"
- }
+ "ctrl-pagedown": "settings_editor::FocusNextFile",
+ },
},
{
"context": "StashDiff > Editor",
@@ -1329,8 +1348,8 @@
"bindings": {
"ctrl-space": "git::ApplyCurrentStash",
"ctrl-shift-space": "git::PopCurrentStash",
- "ctrl-shift-backspace": "git::DropCurrentStash"
- }
+ "ctrl-shift-backspace": "git::DropCurrentStash",
+ },
},
{
"context": "SettingsWindow > NavigationMenu",
@@ -1345,22 +1364,22 @@
"pageup": "settings_editor::FocusPreviousRootNavEntry",
"pagedown": "settings_editor::FocusNextRootNavEntry",
"home": "settings_editor::FocusFirstNavEntry",
- "end": "settings_editor::FocusLastNavEntry"
- }
+ "end": "settings_editor::FocusLastNavEntry",
+ },
},
{
- "context": "Zeta2Feedback > Editor",
+ "context": "EditPredictionContext > Editor",
"bindings": {
- "enter": "editor::Newline",
- "ctrl-enter up": "dev::Zeta2RatePredictionPositive",
- "ctrl-enter down": "dev::Zeta2RatePredictionNegative"
- }
+ "alt-left": "dev::EditPredictionContextGoBack",
+ "alt-right": "dev::EditPredictionContextGoForward",
+ },
},
{
- "context": "Zeta2Context > Editor",
+ "context": "GitBranchSelector || (GitBranchSelector > Picker > Editor)",
+ "use_key_equivalents": true,
"bindings": {
- "alt-left": "dev::Zeta2ContextGoBack",
- "alt-right": "dev::Zeta2ContextGoForward"
- }
- }
+ "ctrl-shift-backspace": "branch_picker::DeleteBranch",
+ "ctrl-shift-i": "branch_picker::FilterRemotes",
+ },
+ },
]
diff --git a/assets/keymaps/initial.json b/assets/keymaps/initial.json
index 8e4fe59f44ea7346a51e1c064ffa0553315da3b9..3a8d7f382aa57b39efc22845a17a4ef1bfd240ef 100644
--- a/assets/keymaps/initial.json
+++ b/assets/keymaps/initial.json
@@ -10,12 +10,12 @@
"context": "Workspace",
"bindings": {
// "shift shift": "file_finder::Toggle"
- }
+ },
},
{
"context": "Editor && vim_mode == insert",
"bindings": {
// "j k": "vim::NormalBefore"
- }
- }
+ },
+ },
]
diff --git a/assets/keymaps/linux/atom.json b/assets/keymaps/linux/atom.json
index 98992b19fac72055807063edae8b7b23652062d3..a15d4877aab79ac2e570697137ba89e3572d074e 100644
--- a/assets/keymaps/linux/atom.json
+++ b/assets/keymaps/linux/atom.json
@@ -4,15 +4,15 @@
"bindings": {
"ctrl-shift-f5": "workspace::Reload", // window:reload
"ctrl-k ctrl-n": "workspace::ActivatePreviousPane", // window:focus-next-pane
- "ctrl-k ctrl-p": "workspace::ActivateNextPane" // window:focus-previous-pane
- }
+ "ctrl-k ctrl-p": "workspace::ActivateNextPane", // window:focus-previous-pane
+ },
},
{
"context": "Editor",
"bindings": {
"ctrl-k ctrl-u": "editor::ConvertToUpperCase", // editor:upper-case
- "ctrl-k ctrl-l": "editor::ConvertToLowerCase" // editor:lower-case
- }
+ "ctrl-k ctrl-l": "editor::ConvertToLowerCase", // editor:lower-case
+ },
},
{
"context": "Editor && mode == full",
@@ -32,8 +32,8 @@
"ctrl-down": "editor::MoveLineDown", // editor:move-line-down
"ctrl-\\": "workspace::ToggleLeftDock", // tree-view:toggle
"ctrl-shift-m": "markdown::OpenPreviewToTheSide", // markdown-preview:toggle
- "ctrl-r": "outline::Toggle" // symbols-view:toggle-project-symbols
- }
+ "ctrl-r": "outline::Toggle", // symbols-view:toggle-project-symbols
+ },
},
{
"context": "BufferSearchBar",
@@ -41,8 +41,8 @@
"f3": ["editor::SelectNext", { "replace_newest": true }], // find-and-replace:find-next
"shift-f3": ["editor::SelectPrevious", { "replace_newest": true }], //find-and-replace:find-previous
"ctrl-f3": "search::SelectNextMatch", // find-and-replace:find-next-selected
- "ctrl-shift-f3": "search::SelectPreviousMatch" // find-and-replace:find-previous-selected
- }
+ "ctrl-shift-f3": "search::SelectPreviousMatch", // find-and-replace:find-previous-selected
+ },
},
{
"context": "Workspace",
@@ -50,8 +50,8 @@
"ctrl-\\": "workspace::ToggleLeftDock", // tree-view:toggle
"ctrl-k ctrl-b": "workspace::ToggleLeftDock", // tree-view:toggle
"ctrl-t": "file_finder::Toggle", // fuzzy-finder:toggle-file-finder
- "ctrl-r": "project_symbols::Toggle" // symbols-view:toggle-project-symbols
- }
+ "ctrl-r": "project_symbols::Toggle", // symbols-view:toggle-project-symbols
+ },
},
{
"context": "Pane",
@@ -65,8 +65,8 @@
"ctrl-6": ["pane::ActivateItem", 5], // tree-view:open-selected-entry-in-pane-6
"ctrl-7": ["pane::ActivateItem", 6], // tree-view:open-selected-entry-in-pane-7
"ctrl-8": ["pane::ActivateItem", 7], // tree-view:open-selected-entry-in-pane-8
- "ctrl-9": ["pane::ActivateItem", 8] // tree-view:open-selected-entry-in-pane-9
- }
+ "ctrl-9": ["pane::ActivateItem", 8], // tree-view:open-selected-entry-in-pane-9
+ },
},
{
"context": "ProjectPanel",
@@ -75,8 +75,8 @@
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
"ctrl-x": "project_panel::Cut", // tree-view:cut
"ctrl-c": "project_panel::Copy", // tree-view:copy
- "ctrl-v": "project_panel::Paste" // tree-view:paste
- }
+ "ctrl-v": "project_panel::Paste", // tree-view:paste
+ },
},
{
"context": "ProjectPanel && not_editing",
@@ -90,7 +90,7 @@
"d": "project_panel::Duplicate", // tree-view:duplicate
"home": "menu::SelectFirst", // core:move-to-top
"end": "menu::SelectLast", // core:move-to-bottom
- "shift-a": "project_panel::NewDirectory" // tree-view:add-folder
- }
- }
+ "shift-a": "project_panel::NewDirectory", // tree-view:add-folder
+ },
+ },
]
diff --git a/assets/keymaps/linux/cursor.json b/assets/keymaps/linux/cursor.json
index 4d2d13a90d96c31f72b1bb0ccc74608f81004eda..58a7309cf902a3f69f949830cace2200f41fb0fe 100644
--- a/assets/keymaps/linux/cursor.json
+++ b/assets/keymaps/linux/cursor.json
@@ -8,8 +8,8 @@
"ctrl-shift-i": "agent::ToggleFocus",
"ctrl-l": "agent::ToggleFocus",
"ctrl-shift-l": "agent::ToggleFocus",
- "ctrl-shift-j": "agent::OpenSettings"
- }
+ "ctrl-shift-j": "agent::OpenSettings",
+ },
},
{
"context": "Editor && mode == full",
@@ -20,18 +20,18 @@
"ctrl-shift-l": "agent::AddSelectionToThread", // In cursor uses "Ask" mode
"ctrl-l": "agent::AddSelectionToThread", // In cursor uses "Agent" mode
"ctrl-k": "assistant::InlineAssist",
- "ctrl-shift-k": "assistant::InsertIntoEditor"
- }
+ "ctrl-shift-k": "assistant::InsertIntoEditor",
+ },
},
{
"context": "InlineAssistEditor",
"use_key_equivalents": true,
"bindings": {
- "ctrl-shift-backspace": "editor::Cancel"
+ "ctrl-shift-backspace": "editor::Cancel",
// "alt-enter": // Quick Question
// "ctrl-shift-enter": // Full File Context
// "ctrl-shift-k": // Toggle input focus (editor <> inline assist)
- }
+ },
},
{
"context": "AgentPanel || ContextEditor || (MessageEditor > Editor)",
@@ -47,7 +47,7 @@
"ctrl-shift-backspace": "editor::Cancel",
"ctrl-r": "agent::NewThread",
"ctrl-shift-v": "editor::Paste",
- "ctrl-shift-k": "assistant::InsertIntoEditor"
+ "ctrl-shift-k": "assistant::InsertIntoEditor",
// "escape": "agent::ToggleFocus"
///// Enable when Zed supports multiple thread tabs
// "ctrl-t": // new thread tab
@@ -56,28 +56,29 @@
///// Enable if Zed adds support for keyboard navigation of thread elements
// "tab": // cycle to next message
// "shift-tab": // cycle to previous message
- }
+ },
},
{
"context": "Editor && editor_agent_diff",
"use_key_equivalents": true,
"bindings": {
"ctrl-enter": "agent::KeepAll",
- "ctrl-backspace": "agent::RejectAll"
- }
+ "ctrl-backspace": "agent::RejectAll",
+ },
},
{
"context": "Editor && mode == full && edit_prediction",
"use_key_equivalents": true,
"bindings": {
- "ctrl-right": "editor::AcceptPartialEditPrediction"
- }
+ "ctrl-right": "editor::AcceptNextWordEditPrediction",
+ "ctrl-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Terminal",
"use_key_equivalents": true,
"bindings": {
- "ctrl-k": "assistant::InlineAssist"
- }
- }
+ "ctrl-k": "assistant::InlineAssist",
+ },
+ },
]
diff --git a/assets/keymaps/linux/emacs.json b/assets/keymaps/linux/emacs.json
index c5cf22c81220bf286187252394f8fde26bdd6509..5b6f841de07ac2f9bd45c73e032dea0ede409007 100755
--- a/assets/keymaps/linux/emacs.json
+++ b/assets/keymaps/linux/emacs.json
@@ -5,8 +5,8 @@
[
{
"bindings": {
- "ctrl-g": "menu::Cancel"
- }
+ "ctrl-g": "menu::Cancel",
+ },
},
{
// Workaround to avoid falling back to default bindings.
@@ -18,8 +18,8 @@
"ctrl-g": null, // currently activates `go_to_line::Toggle` when there is nothing to cancel
"ctrl-x": null, // currently activates `editor::Cut` if no following key is pressed for 1 second
"ctrl-p": null, // currently activates `file_finder::Toggle` when the cursor is on the first character of the buffer
- "ctrl-n": null // currently activates `workspace::NewFile` when the cursor is on the last character of the buffer
- }
+ "ctrl-n": null, // currently activates `workspace::NewFile` when the cursor is on the last character of the buffer
+ },
},
{
"context": "Editor",
@@ -82,8 +82,8 @@
"ctrl-s": "buffer_search::Deploy", // isearch-forward
"ctrl-r": "buffer_search::Deploy", // isearch-backward
"alt-^": "editor::JoinLines", // join-line
- "alt-q": "editor::Rewrap" // fill-paragraph
- }
+ "alt-q": "editor::Rewrap", // fill-paragraph
+ },
},
{
"context": "Editor && selection_mode", // region selection
@@ -119,22 +119,22 @@
"alt->": "editor::SelectToEnd",
"ctrl-home": "editor::SelectToBeginning",
"ctrl-end": "editor::SelectToEnd",
- "ctrl-g": "editor::Cancel"
- }
+ "ctrl-g": "editor::Cancel",
+ },
},
{
"context": "Editor && (showing_code_actions || showing_completions)",
"bindings": {
"ctrl-p": "editor::ContextMenuPrevious",
- "ctrl-n": "editor::ContextMenuNext"
- }
+ "ctrl-n": "editor::ContextMenuNext",
+ },
},
{
"context": "Editor && showing_signature_help && !showing_completions",
"bindings": {
"ctrl-p": "editor::SignatureHelpPrevious",
- "ctrl-n": "editor::SignatureHelpNext"
- }
+ "ctrl-n": "editor::SignatureHelpNext",
+ },
},
// Example setting for using emacs-style tab
// (i.e. indent the current line / selection or perform symbol completion depending on context)
@@ -164,8 +164,8 @@
"ctrl-x ctrl-f": "file_finder::Toggle", // find-file
"ctrl-x ctrl-s": "workspace::Save", // save-buffer
"ctrl-x ctrl-w": "workspace::SaveAs", // write-file
- "ctrl-x s": "workspace::SaveAll" // save-some-buffers
- }
+ "ctrl-x s": "workspace::SaveAll", // save-some-buffers
+ },
},
{
// Workaround to enable using native emacs from the Zed terminal.
@@ -185,22 +185,22 @@
"ctrl-x ctrl-f": null, // find-file
"ctrl-x ctrl-s": null, // save-buffer
"ctrl-x ctrl-w": null, // write-file
- "ctrl-x s": null // save-some-buffers
- }
+ "ctrl-x s": null, // save-some-buffers
+ },
},
{
"context": "BufferSearchBar > Editor",
"bindings": {
"ctrl-s": "search::SelectNextMatch",
"ctrl-r": "search::SelectPreviousMatch",
- "ctrl-g": "buffer_search::Dismiss"
- }
+ "ctrl-g": "buffer_search::Dismiss",
+ },
},
{
"context": "Pane",
"bindings": {
"ctrl-alt-left": "pane::GoBack",
- "ctrl-alt-right": "pane::GoForward"
- }
- }
+ "ctrl-alt-right": "pane::GoForward",
+ },
+ },
]
diff --git a/assets/keymaps/linux/jetbrains.json b/assets/keymaps/linux/jetbrains.json
index cf28c43dbd7f8335f30ef7702e584bea5c0ba5e0..d3bf53a0d3694943252e0fccb2ac821cc6c2a6d3 100644
--- a/assets/keymaps/linux/jetbrains.json
+++ b/assets/keymaps/linux/jetbrains.json
@@ -1,18 +1,20 @@
[
{
"bindings": {
- "ctrl-alt-s": "zed::OpenSettingsFile",
+ "ctrl-alt-s": "zed::OpenSettings",
"ctrl-{": "pane::ActivatePreviousItem",
"ctrl-}": "pane::ActivateNextItem",
"shift-escape": null, // Unmap workspace::zoom
+ "ctrl-~": "git::Branch",
"ctrl-f2": "debugger::Stop",
"f6": "debugger::Pause",
"f7": "debugger::StepInto",
"f8": "debugger::StepOver",
"shift-f8": "debugger::StepOut",
"f9": "debugger::Continue",
- "alt-shift-f9": "debugger::Start"
- }
+ "shift-f9": "debugger::Start",
+ "alt-shift-f9": "debugger::Start",
+ },
},
{
"context": "Editor",
@@ -46,7 +48,7 @@
"alt-f7": "editor::FindAllReferences",
"ctrl-alt-f7": "editor::FindAllReferences",
"ctrl-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock
- "ctrl-alt-b": "editor::GoToDefinitionSplit", // Conflicts with workspace::ToggleRightDock
+ "ctrl-alt-b": "editor::GoToImplementation", // Conflicts with workspace::ToggleRightDock
"ctrl-shift-b": "editor::GoToTypeDefinition",
"ctrl-alt-shift-b": "editor::GoToTypeDefinitionSplit",
"f2": "editor::GoToDiagnostic",
@@ -60,24 +62,30 @@
"ctrl-shift-end": "editor::SelectToEnd",
"ctrl-f8": "editor::ToggleBreakpoint",
"ctrl-shift-f8": "editor::EditLogBreakpoint",
- "ctrl-shift-u": "editor::ToggleCase"
- }
+ "ctrl-shift-u": "editor::ToggleCase",
+ },
},
{
"context": "Editor && mode == full",
"bindings": {
"ctrl-f12": "outline::Toggle",
"ctrl-r": ["buffer_search::Deploy", { "replace_enabled": true }],
+ "ctrl-e": "file_finder::Toggle",
"ctrl-shift-n": "file_finder::Toggle",
+ "ctrl-alt-n": "file_finder::Toggle",
"ctrl-g": "go_to_line::Toggle",
- "alt-enter": "editor::ToggleCodeActions"
- }
+ "alt-enter": "editor::ToggleCodeActions",
+ "ctrl-space": "editor::ShowCompletions",
+ "ctrl-q": "editor::Hover",
+ "ctrl-p": "editor::ShowSignatureHelp",
+ "ctrl-\\": "assistant::InlineAssist",
+ },
},
{
"context": "BufferSearchBar",
"bindings": {
- "shift-enter": "search::SelectPreviousMatch"
- }
+ "shift-enter": "search::SelectPreviousMatch",
+ },
},
{
"context": "BufferSearchBar || ProjectSearchBar",
@@ -85,8 +93,8 @@
"alt-c": "search::ToggleCaseSensitive",
"alt-e": "search::ToggleSelection",
"alt-x": "search::ToggleRegex",
- "alt-w": "search::ToggleWholeWord"
- }
+ "alt-w": "search::ToggleWholeWord",
+ },
},
{
"context": "Workspace",
@@ -94,9 +102,13 @@
"ctrl-shift-f12": "workspace::ToggleAllDocks",
"ctrl-shift-r": ["pane::DeploySearch", { "replace_enabled": true }],
"alt-shift-f10": "task::Spawn",
+ "shift-f10": "task::Spawn",
+ "ctrl-f5": "task::Rerun",
"ctrl-e": "file_finder::Toggle",
- // "ctrl-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor
+ "ctrl-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor
"ctrl-shift-n": "file_finder::Toggle",
+ "ctrl-alt-n": "file_finder::Toggle",
+ "ctrl-n": "project_symbols::Toggle",
"ctrl-shift-a": "command_palette::Toggle",
"shift shift": "command_palette::Toggle",
"ctrl-alt-shift-n": "project_symbols::Toggle",
@@ -104,8 +116,8 @@
"alt-1": "project_panel::ToggleFocus",
"alt-5": "debug_panel::ToggleFocus",
"alt-6": "diagnostics::Deploy",
- "alt-7": "outline_panel::ToggleFocus"
- }
+ "alt-7": "outline_panel::ToggleFocus",
+ },
},
{
"context": "Pane", // this is to override the default Pane mappings to switch tabs
@@ -119,22 +131,24 @@
"alt-7": "outline_panel::ToggleFocus",
"alt-8": null, // Services (bottom dock)
"alt-9": null, // Git History (bottom dock)
- "alt-0": "git_panel::ToggleFocus"
- }
+ "alt-0": "git_panel::ToggleFocus",
+ },
},
{
"context": "Workspace || Editor",
"bindings": {
"alt-f12": "terminal_panel::Toggle",
- "ctrl-shift-k": "git::Push"
- }
+ "ctrl-shift-k": "git::Push",
+ },
},
{
"context": "Pane",
"bindings": {
"ctrl-alt-left": "pane::GoBack",
- "ctrl-alt-right": "pane::GoForward"
- }
+ "ctrl-alt-right": "pane::GoForward",
+ "alt-left": "pane::ActivatePreviousItem",
+ "alt-right": "pane::ActivateNextItem",
+ },
},
{
"context": "ProjectPanel",
@@ -144,21 +158,19 @@
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
"delete": ["project_panel::Trash", { "skip_prompt": false }],
"shift-delete": ["project_panel::Delete", { "skip_prompt": false }],
- "shift-f6": "project_panel::Rename"
- }
+ "shift-f6": "project_panel::Rename",
+ },
},
{
"context": "Terminal",
"bindings": {
"ctrl-shift-t": "workspace::NewTerminal",
"alt-f12": "workspace::CloseActiveDock",
- "alt-left": "pane::ActivatePreviousItem",
- "alt-right": "pane::ActivateNextItem",
"ctrl-up": "terminal::ScrollLineUp",
"ctrl-down": "terminal::ScrollLineDown",
"shift-pageup": "terminal::ScrollPageUp",
- "shift-pagedown": "terminal::ScrollPageDown"
- }
+ "shift-pagedown": "terminal::ScrollPageDown",
+ },
},
{ "context": "GitPanel", "bindings": { "alt-0": "workspace::CloseActiveDock" } },
{ "context": "ProjectPanel", "bindings": { "alt-1": "workspace::CloseActiveDock" } },
@@ -169,7 +181,7 @@
"context": "Dock || Workspace || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)",
"bindings": {
"escape": "editor::ToggleFocus",
- "shift-escape": "workspace::CloseActiveDock"
- }
- }
+ "shift-escape": "workspace::CloseActiveDock",
+ },
+ },
]
diff --git a/assets/keymaps/linux/sublime_text.json b/assets/keymaps/linux/sublime_text.json
index eefd59e5bd1aa48125d0c6e3d662f3cb4e270be7..1d689a6f5841a011768113257afbed2c447669ed 100644
--- a/assets/keymaps/linux/sublime_text.json
+++ b/assets/keymaps/linux/sublime_text.json
@@ -22,8 +22,8 @@
"ctrl-^": ["workspace::MoveItemToPane", { "destination": 5 }],
"ctrl-&": ["workspace::MoveItemToPane", { "destination": 6 }],
"ctrl-*": ["workspace::MoveItemToPane", { "destination": 7 }],
- "ctrl-(": ["workspace::MoveItemToPane", { "destination": 8 }]
- }
+ "ctrl-(": ["workspace::MoveItemToPane", { "destination": 8 }],
+ },
},
{
"context": "Editor",
@@ -55,20 +55,20 @@
"alt-right": "editor::MoveToNextSubwordEnd",
"alt-left": "editor::MoveToPreviousSubwordStart",
"alt-shift-right": "editor::SelectToNextSubwordEnd",
- "alt-shift-left": "editor::SelectToPreviousSubwordStart"
- }
+ "alt-shift-left": "editor::SelectToPreviousSubwordStart",
+ },
},
{
"context": "Editor && mode == full",
"bindings": {
- "ctrl-r": "outline::Toggle"
- }
+ "ctrl-r": "outline::Toggle",
+ },
},
{
"context": "Editor && !agent_diff",
"bindings": {
- "ctrl-k ctrl-z": "git::Restore"
- }
+ "ctrl-k ctrl-z": "git::Restore",
+ },
},
{
"context": "Pane",
@@ -83,15 +83,15 @@
"alt-6": ["pane::ActivateItem", 5],
"alt-7": ["pane::ActivateItem", 6],
"alt-8": ["pane::ActivateItem", 7],
- "alt-9": "pane::ActivateLastItem"
- }
+ "alt-9": "pane::ActivateLastItem",
+ },
},
{
"context": "Workspace",
"bindings": {
"ctrl-k ctrl-b": "workspace::ToggleLeftDock",
// "ctrl-0": "project_panel::ToggleFocus", // normally resets zoom
- "shift-ctrl-r": "project_symbols::Toggle"
- }
- }
+ "shift-ctrl-r": "project_symbols::Toggle",
+ },
+ },
]
diff --git a/assets/keymaps/macos/atom.json b/assets/keymaps/macos/atom.json
index ca015b667faa05db53d8fdc3bd82352d9bcc62aa..bf049fd3cb3eca8fe8049fa4e0810f82b10a5bbc 100644
--- a/assets/keymaps/macos/atom.json
+++ b/assets/keymaps/macos/atom.json
@@ -4,16 +4,16 @@
"bindings": {
"ctrl-alt-cmd-l": "workspace::Reload",
"cmd-k cmd-p": "workspace::ActivatePreviousPane",
- "cmd-k cmd-n": "workspace::ActivateNextPane"
- }
+ "cmd-k cmd-n": "workspace::ActivateNextPane",
+ },
},
{
"context": "Editor",
"bindings": {
"cmd-shift-backspace": "editor::DeleteToBeginningOfLine",
"cmd-k cmd-u": "editor::ConvertToUpperCase",
- "cmd-k cmd-l": "editor::ConvertToLowerCase"
- }
+ "cmd-k cmd-l": "editor::ConvertToLowerCase",
+ },
},
{
"context": "Editor && mode == full",
@@ -33,8 +33,8 @@
"ctrl-cmd-down": "editor::MoveLineDown",
"cmd-\\": "workspace::ToggleLeftDock",
"ctrl-shift-m": "markdown::OpenPreviewToTheSide",
- "cmd-r": "outline::Toggle"
- }
+ "cmd-r": "outline::Toggle",
+ },
},
{
"context": "BufferSearchBar",
@@ -42,8 +42,8 @@
"cmd-g": ["editor::SelectNext", { "replace_newest": true }],
"cmd-shift-g": ["editor::SelectPrevious", { "replace_newest": true }],
"cmd-f3": "search::SelectNextMatch",
- "cmd-shift-f3": "search::SelectPreviousMatch"
- }
+ "cmd-shift-f3": "search::SelectPreviousMatch",
+ },
},
{
"context": "Workspace",
@@ -51,8 +51,8 @@
"cmd-\\": "workspace::ToggleLeftDock",
"cmd-k cmd-b": "workspace::ToggleLeftDock",
"cmd-t": "file_finder::Toggle",
- "cmd-shift-r": "project_symbols::Toggle"
- }
+ "cmd-shift-r": "project_symbols::Toggle",
+ },
},
{
"context": "Pane",
@@ -67,8 +67,8 @@
"cmd-6": ["pane::ActivateItem", 5],
"cmd-7": ["pane::ActivateItem", 6],
"cmd-8": ["pane::ActivateItem", 7],
- "cmd-9": "pane::ActivateLastItem"
- }
+ "cmd-9": "pane::ActivateLastItem",
+ },
},
{
"context": "ProjectPanel",
@@ -77,8 +77,8 @@
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
"cmd-x": "project_panel::Cut",
"cmd-c": "project_panel::Copy",
- "cmd-v": "project_panel::Paste"
- }
+ "cmd-v": "project_panel::Paste",
+ },
},
{
"context": "ProjectPanel && not_editing",
@@ -92,7 +92,7 @@
"d": "project_panel::Duplicate",
"home": "menu::SelectFirst",
"end": "menu::SelectLast",
- "shift-a": "project_panel::NewDirectory"
- }
- }
+ "shift-a": "project_panel::NewDirectory",
+ },
+ },
]
diff --git a/assets/keymaps/macos/cursor.json b/assets/keymaps/macos/cursor.json
index 97abc7dd819485850107eca6762fc1ed60ec0515..93e259db37ac718d2e0258d83e4de436a0a378fd 100644
--- a/assets/keymaps/macos/cursor.json
+++ b/assets/keymaps/macos/cursor.json
@@ -8,8 +8,8 @@
"cmd-shift-i": "agent::ToggleFocus",
"cmd-l": "agent::ToggleFocus",
"cmd-shift-l": "agent::ToggleFocus",
- "cmd-shift-j": "agent::OpenSettings"
- }
+ "cmd-shift-j": "agent::OpenSettings",
+ },
},
{
"context": "Editor && mode == full",
@@ -20,19 +20,19 @@
"cmd-shift-l": "agent::AddSelectionToThread", // In cursor uses "Ask" mode
"cmd-l": "agent::AddSelectionToThread", // In cursor uses "Agent" mode
"cmd-k": "assistant::InlineAssist",
- "cmd-shift-k": "assistant::InsertIntoEditor"
- }
+ "cmd-shift-k": "assistant::InsertIntoEditor",
+ },
},
{
"context": "InlineAssistEditor",
"use_key_equivalents": true,
"bindings": {
"cmd-shift-backspace": "editor::Cancel",
- "cmd-enter": "menu::Confirm"
+ "cmd-enter": "menu::Confirm",
// "alt-enter": // Quick Question
// "cmd-shift-enter": // Full File Context
// "cmd-shift-k": // Toggle input focus (editor <> inline assist)
- }
+ },
},
{
"context": "AgentPanel || ContextEditor || (MessageEditor > Editor)",
@@ -48,7 +48,7 @@
"cmd-shift-backspace": "editor::Cancel",
"cmd-r": "agent::NewThread",
"cmd-shift-v": "editor::Paste",
- "cmd-shift-k": "assistant::InsertIntoEditor"
+ "cmd-shift-k": "assistant::InsertIntoEditor",
// "escape": "agent::ToggleFocus"
///// Enable when Zed supports multiple thread tabs
// "cmd-t": // new thread tab
@@ -57,28 +57,29 @@
///// Enable if Zed adds support for keyboard navigation of thread elements
// "tab": // cycle to next message
// "shift-tab": // cycle to previous message
- }
+ },
},
{
"context": "Editor && editor_agent_diff",
"use_key_equivalents": true,
"bindings": {
"cmd-enter": "agent::KeepAll",
- "cmd-backspace": "agent::RejectAll"
- }
+ "cmd-backspace": "agent::RejectAll",
+ },
},
{
"context": "Editor && mode == full && edit_prediction",
"use_key_equivalents": true,
"bindings": {
- "cmd-right": "editor::AcceptPartialEditPrediction"
- }
+ "cmd-right": "editor::AcceptNextWordEditPrediction",
+ "cmd-down": "editor::AcceptNextLineEditPrediction",
+ },
},
{
"context": "Terminal",
"use_key_equivalents": true,
"bindings": {
- "cmd-k": "assistant::InlineAssist"
- }
- }
+ "cmd-k": "assistant::InlineAssist",
+ },
+ },
]
diff --git a/assets/keymaps/macos/emacs.json b/assets/keymaps/macos/emacs.json
index ea831c0c059ea082d002f3af01b8d97be9e86616..2f11e2ce00e8b60a0f1c85b5aeb204e866491a45 100755
--- a/assets/keymaps/macos/emacs.json
+++ b/assets/keymaps/macos/emacs.json
@@ -6,8 +6,8 @@
{
"context": "!GitPanel",
"bindings": {
- "ctrl-g": "menu::Cancel"
- }
+ "ctrl-g": "menu::Cancel",
+ },
},
{
// Workaround to avoid falling back to default bindings.
@@ -15,8 +15,8 @@
// NOTE: must be declared before the `Editor` override.
"context": "Editor",
"bindings": {
- "ctrl-g": null // currently activates `go_to_line::Toggle` when there is nothing to cancel
- }
+ "ctrl-g": null, // currently activates `go_to_line::Toggle` when there is nothing to cancel
+ },
},
{
"context": "Editor",
@@ -79,8 +79,8 @@
"ctrl-s": "buffer_search::Deploy", // isearch-forward
"ctrl-r": "buffer_search::Deploy", // isearch-backward
"alt-^": "editor::JoinLines", // join-line
- "alt-q": "editor::Rewrap" // fill-paragraph
- }
+ "alt-q": "editor::Rewrap", // fill-paragraph
+ },
},
{
"context": "Editor && selection_mode", // region selection
@@ -116,22 +116,22 @@
"alt->": "editor::SelectToEnd",
"ctrl-home": "editor::SelectToBeginning",
"ctrl-end": "editor::SelectToEnd",
- "ctrl-g": "editor::Cancel"
- }
+ "ctrl-g": "editor::Cancel",
+ },
},
{
"context": "Editor && (showing_code_actions || showing_completions)",
"bindings": {
"ctrl-p": "editor::ContextMenuPrevious",
- "ctrl-n": "editor::ContextMenuNext"
- }
+ "ctrl-n": "editor::ContextMenuNext",
+ },
},
{
"context": "Editor && showing_signature_help && !showing_completions",
"bindings": {
"ctrl-p": "editor::SignatureHelpPrevious",
- "ctrl-n": "editor::SignatureHelpNext"
- }
+ "ctrl-n": "editor::SignatureHelpNext",
+ },
},
// Example setting for using emacs-style tab
// (i.e. indent the current line / selection or perform symbol completion depending on context)
@@ -161,8 +161,8 @@
"ctrl-x ctrl-f": "file_finder::Toggle", // find-file
"ctrl-x ctrl-s": "workspace::Save", // save-buffer
"ctrl-x ctrl-w": "workspace::SaveAs", // write-file
- "ctrl-x s": "workspace::SaveAll" // save-some-buffers
- }
+ "ctrl-x s": "workspace::SaveAll", // save-some-buffers
+ },
},
{
// Workaround to enable using native emacs from the Zed terminal.
@@ -182,22 +182,22 @@
"ctrl-x ctrl-f": null, // find-file
"ctrl-x ctrl-s": null, // save-buffer
"ctrl-x ctrl-w": null, // write-file
- "ctrl-x s": null // save-some-buffers
- }
+ "ctrl-x s": null, // save-some-buffers
+ },
},
{
"context": "BufferSearchBar > Editor",
"bindings": {
"ctrl-s": "search::SelectNextMatch",
"ctrl-r": "search::SelectPreviousMatch",
- "ctrl-g": "buffer_search::Dismiss"
- }
+ "ctrl-g": "buffer_search::Dismiss",
+ },
},
{
"context": "Pane",
"bindings": {
"ctrl-alt-left": "pane::GoBack",
- "ctrl-alt-right": "pane::GoForward"
- }
- }
+ "ctrl-alt-right": "pane::GoForward",
+ },
+ },
]
diff --git a/assets/keymaps/macos/jetbrains.json b/assets/keymaps/macos/jetbrains.json
index e5e5aeb0b8516285136438d40b57fb17fc9a9777..9946d8b124957349181db659259174d906d08d3a 100644
--- a/assets/keymaps/macos/jetbrains.json
+++ b/assets/keymaps/macos/jetbrains.json
@@ -5,14 +5,16 @@
"cmd-}": "pane::ActivateNextItem",
"cmd-0": "git_panel::ToggleFocus", // overrides `cmd-0` zoom reset
"shift-escape": null, // Unmap workspace::zoom
+ "cmd-~": "git::Branch",
"ctrl-f2": "debugger::Stop",
"f6": "debugger::Pause",
"f7": "debugger::StepInto",
"f8": "debugger::StepOver",
"shift-f8": "debugger::StepOut",
"f9": "debugger::Continue",
- "alt-shift-f9": "debugger::Start"
- }
+ "shift-f9": "debugger::Start",
+ "alt-shift-f9": "debugger::Start",
+ },
},
{
"context": "Editor",
@@ -45,7 +47,7 @@
"alt-f7": "editor::FindAllReferences",
"cmd-alt-f7": "editor::FindAllReferences",
"cmd-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock
- "cmd-alt-b": "editor::GoToDefinitionSplit",
+ "cmd-alt-b": "editor::GoToImplementation",
"cmd-shift-b": "editor::GoToTypeDefinition",
"cmd-alt-shift-b": "editor::GoToTypeDefinitionSplit",
"f2": "editor::GoToDiagnostic",
@@ -58,24 +60,30 @@
"cmd-shift-end": "editor::SelectToEnd",
"ctrl-f8": "editor::ToggleBreakpoint",
"ctrl-shift-f8": "editor::EditLogBreakpoint",
- "cmd-shift-u": "editor::ToggleCase"
- }
+ "cmd-shift-u": "editor::ToggleCase",
+ },
},
{
"context": "Editor && mode == full",
"bindings": {
"cmd-f12": "outline::Toggle",
"cmd-r": ["buffer_search::Deploy", { "replace_enabled": true }],
- "cmd-shift-o": "file_finder::Toggle",
"cmd-l": "go_to_line::Toggle",
- "alt-enter": "editor::ToggleCodeActions"
- }
+ "cmd-e": "file_finder::Toggle",
+ "cmd-shift-o": "file_finder::Toggle",
+ "cmd-shift-n": "file_finder::Toggle",
+ "alt-enter": "editor::ToggleCodeActions",
+ "ctrl-space": "editor::ShowCompletions",
+ "cmd-j": "editor::Hover",
+ "cmd-p": "editor::ShowSignatureHelp",
+ "cmd-\\": "assistant::InlineAssist",
+ },
},
{
"context": "BufferSearchBar",
"bindings": {
- "shift-enter": "search::SelectPreviousMatch"
- }
+ "shift-enter": "search::SelectPreviousMatch",
+ },
},
{
"context": "BufferSearchBar || ProjectSearchBar",
@@ -87,8 +95,8 @@
"ctrl-alt-c": "search::ToggleCaseSensitive",
"ctrl-alt-e": "search::ToggleSelection",
"ctrl-alt-w": "search::ToggleWholeWord",
- "ctrl-alt-x": "search::ToggleRegex"
- }
+ "ctrl-alt-x": "search::ToggleRegex",
+ },
},
{
"context": "Workspace",
@@ -96,9 +104,13 @@
"cmd-shift-f12": "workspace::ToggleAllDocks",
"cmd-shift-r": ["pane::DeploySearch", { "replace_enabled": true }],
"ctrl-alt-r": "task::Spawn",
+ "shift-f10": "task::Spawn",
+ "cmd-f5": "task::Rerun",
"cmd-e": "file_finder::Toggle",
- // "cmd-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor
+ "cmd-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor
"cmd-shift-o": "file_finder::Toggle",
+ "cmd-shift-n": "file_finder::Toggle",
+ "cmd-n": "project_symbols::Toggle",
"cmd-shift-a": "command_palette::Toggle",
"shift shift": "command_palette::Toggle",
"cmd-alt-o": "project_symbols::Toggle", // JetBrains: Go to Symbol
@@ -106,8 +118,8 @@
"cmd-1": "project_panel::ToggleFocus",
"cmd-5": "debug_panel::ToggleFocus",
"cmd-6": "diagnostics::Deploy",
- "cmd-7": "outline_panel::ToggleFocus"
- }
+ "cmd-7": "outline_panel::ToggleFocus",
+ },
},
{
"context": "Pane", // this is to override the default Pane mappings to switch tabs
@@ -121,22 +133,24 @@
"cmd-7": "outline_panel::ToggleFocus",
"cmd-8": null, // Services (bottom dock)
"cmd-9": null, // Git History (bottom dock)
- "cmd-0": "git_panel::ToggleFocus"
- }
+ "cmd-0": "git_panel::ToggleFocus",
+ },
},
{
"context": "Workspace || Editor",
"bindings": {
"alt-f12": "terminal_panel::Toggle",
- "cmd-shift-k": "git::Push"
- }
+ "cmd-shift-k": "git::Push",
+ },
},
{
"context": "Pane",
"bindings": {
"cmd-alt-left": "pane::GoBack",
- "cmd-alt-right": "pane::GoForward"
- }
+ "cmd-alt-right": "pane::GoForward",
+ "alt-left": "pane::ActivatePreviousItem",
+ "alt-right": "pane::ActivateNextItem",
+ },
},
{
"context": "ProjectPanel",
@@ -147,8 +161,8 @@
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
"delete": ["project_panel::Trash", { "skip_prompt": false }],
"shift-delete": ["project_panel::Delete", { "skip_prompt": false }],
- "shift-f6": "project_panel::Rename"
- }
+ "shift-f6": "project_panel::Rename",
+ },
},
{
"context": "Terminal",
@@ -158,8 +172,8 @@
"cmd-up": "terminal::ScrollLineUp",
"cmd-down": "terminal::ScrollLineDown",
"shift-pageup": "terminal::ScrollPageUp",
- "shift-pagedown": "terminal::ScrollPageDown"
- }
+ "shift-pagedown": "terminal::ScrollPageDown",
+ },
},
{ "context": "GitPanel", "bindings": { "cmd-0": "workspace::CloseActiveDock" } },
{ "context": "ProjectPanel", "bindings": { "cmd-1": "workspace::CloseActiveDock" } },
@@ -170,7 +184,7 @@
"context": "Dock || Workspace || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)",
"bindings": {
"escape": "editor::ToggleFocus",
- "shift-escape": "workspace::CloseActiveDock"
- }
- }
+ "shift-escape": "workspace::CloseActiveDock",
+ },
+ },
]
diff --git a/assets/keymaps/macos/sublime_text.json b/assets/keymaps/macos/sublime_text.json
index d1bffca755b611d9046d4b7e794d2303835227a2..f4ae1ce5dda4e2c0dd21e97bd3a411dd4a4f3663 100644
--- a/assets/keymaps/macos/sublime_text.json
+++ b/assets/keymaps/macos/sublime_text.json
@@ -22,8 +22,8 @@
"ctrl-^": ["workspace::MoveItemToPane", { "destination": 5 }],
"ctrl-&": ["workspace::MoveItemToPane", { "destination": 6 }],
"ctrl-*": ["workspace::MoveItemToPane", { "destination": 7 }],
- "ctrl-(": ["workspace::MoveItemToPane", { "destination": 8 }]
- }
+ "ctrl-(": ["workspace::MoveItemToPane", { "destination": 8 }],
+ },
},
{
"context": "Editor",
@@ -57,20 +57,20 @@
"ctrl-right": "editor::MoveToNextSubwordEnd",
"ctrl-left": "editor::MoveToPreviousSubwordStart",
"ctrl-shift-right": "editor::SelectToNextSubwordEnd",
- "ctrl-shift-left": "editor::SelectToPreviousSubwordStart"
- }
+ "ctrl-shift-left": "editor::SelectToPreviousSubwordStart",
+ },
},
{
"context": "Editor && mode == full",
"bindings": {
- "cmd-r": "outline::Toggle"
- }
+ "cmd-r": "outline::Toggle",
+ },
},
{
"context": "Editor && !agent_diff",
"bindings": {
- "cmd-k cmd-z": "git::Restore"
- }
+ "cmd-k cmd-z": "git::Restore",
+ },
},
{
"context": "Pane",
@@ -85,8 +85,8 @@
"cmd-6": ["pane::ActivateItem", 5],
"cmd-7": ["pane::ActivateItem", 6],
"cmd-8": ["pane::ActivateItem", 7],
- "cmd-9": "pane::ActivateLastItem"
- }
+ "cmd-9": "pane::ActivateLastItem",
+ },
},
{
"context": "Workspace",
@@ -95,7 +95,7 @@
"cmd-t": "file_finder::Toggle",
"shift-cmd-r": "project_symbols::Toggle",
// Currently busted: https://github.com/zed-industries/feedback/issues/898
- "ctrl-0": "project_panel::ToggleFocus"
- }
- }
+ "ctrl-0": "project_panel::ToggleFocus",
+ },
+ },
]
diff --git a/assets/keymaps/macos/textmate.json b/assets/keymaps/macos/textmate.json
index f91f39b7f5c079f81b5fcf8e28e2092a33ff1aa4..90450e60af7147f1394eb6cb4c1efc389edad2d0 100644
--- a/assets/keymaps/macos/textmate.json
+++ b/assets/keymaps/macos/textmate.json
@@ -2,8 +2,8 @@
{
"bindings": {
"cmd-shift-o": "projects::OpenRecent",
- "cmd-alt-tab": "project_panel::ToggleFocus"
- }
+ "cmd-alt-tab": "project_panel::ToggleFocus",
+ },
},
{
"context": "Editor && mode == full",
@@ -15,8 +15,8 @@
"cmd-enter": "editor::NewlineBelow",
"cmd-alt-enter": "editor::NewlineAbove",
"cmd-shift-l": "editor::SelectLine",
- "cmd-shift-t": "outline::Toggle"
- }
+ "cmd-shift-t": "outline::Toggle",
+ },
},
{
"context": "Editor",
@@ -41,30 +41,30 @@
"ctrl-u": "editor::ConvertToUpperCase",
"ctrl-shift-u": "editor::ConvertToLowerCase",
"ctrl-alt-u": "editor::ConvertToUpperCamelCase",
- "ctrl-_": "editor::ConvertToSnakeCase"
- }
+ "ctrl-_": "editor::ConvertToSnakeCase",
+ },
},
{
"context": "BufferSearchBar",
"bindings": {
"ctrl-s": "search::SelectNextMatch",
- "ctrl-shift-s": "search::SelectPreviousMatch"
- }
+ "ctrl-shift-s": "search::SelectPreviousMatch",
+ },
},
{
"context": "Workspace",
"bindings": {
"cmd-alt-ctrl-d": "workspace::ToggleLeftDock",
"cmd-t": "file_finder::Toggle",
- "cmd-shift-t": "project_symbols::Toggle"
- }
+ "cmd-shift-t": "project_symbols::Toggle",
+ },
},
{
"context": "Pane",
"bindings": {
"alt-cmd-r": "search::ToggleRegex",
- "ctrl-tab": "project_panel::ToggleFocus"
- }
+ "ctrl-tab": "project_panel::ToggleFocus",
+ },
},
{
"context": "ProjectPanel",
@@ -75,11 +75,11 @@
"return": "project_panel::Rename",
"cmd-c": "project_panel::Copy",
"cmd-v": "project_panel::Paste",
- "cmd-alt-c": "project_panel::CopyPath"
- }
+ "cmd-alt-c": "project_panel::CopyPath",
+ },
},
{
"context": "Dock",
- "bindings": {}
- }
+ "bindings": {},
+ },
]
diff --git a/assets/keymaps/storybook.json b/assets/keymaps/storybook.json
index 9b92fbe1a3844043e379647d1dd6c57e082fdf77..432bdc7004a4c66b52e20282aba924611b204aa1 100644
--- a/assets/keymaps/storybook.json
+++ b/assets/keymaps/storybook.json
@@ -27,7 +27,7 @@
"backspace": "editor::Backspace",
"delete": "editor::Delete",
"left": "editor::MoveLeft",
- "right": "editor::MoveRight"
- }
- }
+ "right": "editor::MoveRight",
+ },
+ },
]
diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json
index c7b83daab67689d10a6b7c1e28312ceff4551e08..6e5d3423872a7dd83234b28e67c5082b36bd858f 100644
--- a/assets/keymaps/vim.json
+++ b/assets/keymaps/vim.json
@@ -180,10 +180,9 @@
"ctrl-w g shift-d": "editor::GoToTypeDefinitionSplit",
"ctrl-w space": "editor::OpenExcerptsSplit",
"ctrl-w g space": "editor::OpenExcerptsSplit",
- "ctrl-6": "pane::AlternateFile",
"ctrl-^": "pane::AlternateFile",
- ".": "vim::Repeat"
- }
+ ".": "vim::Repeat",
+ },
},
{
"context": "vim_mode == normal || vim_mode == visual || vim_mode == operator",
@@ -224,8 +223,8 @@
"] r": "vim::GoToNextReference",
// tree-sitter related commands
"[ x": "vim::SelectLargerSyntaxNode",
- "] x": "vim::SelectSmallerSyntaxNode"
- }
+ "] x": "vim::SelectSmallerSyntaxNode",
+ },
},
{
"context": "vim_mode == normal",
@@ -262,16 +261,16 @@
"[ d": "editor::GoToPreviousDiagnostic",
"] c": "editor::GoToHunk",
"[ c": "editor::GoToPreviousHunk",
- "g c": "vim::PushToggleComments"
- }
+ "g c": "vim::PushToggleComments",
+ },
},
{
"context": "VimControl && VimCount",
"bindings": {
"0": ["vim::Number", 0],
":": "vim::CountCommand",
- "%": "vim::GoToPercentage"
- }
+ "%": "vim::GoToPercentage",
+ },
},
{
"context": "vim_mode == visual",
@@ -323,8 +322,8 @@
"g w": "vim::Rewrap",
"g ?": "vim::ConvertToRot13",
// "g ?": "vim::ConvertToRot47",
- "\"": "vim::PushRegister"
- }
+ "\"": "vim::PushRegister",
+ },
},
{
"context": "vim_mode == helix_select",
@@ -344,8 +343,8 @@
"ctrl-pageup": "pane::ActivatePreviousItem",
"ctrl-pagedown": "pane::ActivateNextItem",
".": "vim::Repeat",
- "alt-.": "vim::RepeatFind"
- }
+ "alt-.": "vim::RepeatFind",
+ },
},
{
"context": "vim_mode == insert",
@@ -375,8 +374,8 @@
"ctrl-r": "vim::PushRegister",
"insert": "vim::ToggleReplace",
"ctrl-o": "vim::TemporaryNormal",
- "ctrl-s": "editor::ShowSignatureHelp"
- }
+ "ctrl-s": "editor::ShowSignatureHelp",
+ },
},
{
"context": "showing_completions",
@@ -384,8 +383,8 @@
"ctrl-d": "vim::ScrollDown",
"ctrl-u": "vim::ScrollUp",
"ctrl-e": "vim::LineDown",
- "ctrl-y": "vim::LineUp"
- }
+ "ctrl-y": "vim::LineUp",
+ },
},
{
"context": "(vim_mode == normal || vim_mode == helix_normal) && !menu",
@@ -410,22 +409,31 @@
"shift-s": "vim::SubstituteLine",
"\"": "vim::PushRegister",
"ctrl-pagedown": "pane::ActivateNextItem",
- "ctrl-pageup": "pane::ActivatePreviousItem"
- }
+ "ctrl-pageup": "pane::ActivatePreviousItem",
+ },
},
{
- "context": "vim_mode == helix_normal && !menu",
+ "context": "VimControl && vim_mode == helix_normal && !menu",
"bindings": {
+ "j": ["vim::Down", { "display_lines": true }],
+ "down": ["vim::Down", { "display_lines": true }],
+ "k": ["vim::Up", { "display_lines": true }],
+ "up": ["vim::Up", { "display_lines": true }],
+ "g j": "vim::Down",
+ "g down": "vim::Down",
+ "g k": "vim::Up",
+ "g up": "vim::Up",
+ "escape": "vim::SwitchToHelixNormalMode",
"i": "vim::HelixInsert",
"a": "vim::HelixAppend",
- "ctrl-[": "editor::Cancel"
- }
+ "ctrl-[": "editor::Cancel",
+ },
},
{
"context": "vim_mode == helix_select && !menu",
"bindings": {
- "escape": "vim::SwitchToHelixNormalMode"
- }
+ "escape": "vim::SwitchToHelixNormalMode",
+ },
},
{
"context": "(vim_mode == helix_normal || vim_mode == helix_select) && !menu",
@@ -445,9 +453,9 @@
"shift-r": "editor::Paste",
"`": "vim::ConvertToLowerCase",
"alt-`": "vim::ConvertToUpperCase",
- "insert": "vim::InsertBefore",
+ "insert": "vim::InsertBefore", // not a helix default
"shift-u": "editor::Redo",
- "ctrl-r": "vim::Redo",
+ "ctrl-r": "vim::Redo", // not a helix default
"y": "vim::HelixYank",
"p": "vim::HelixPaste",
"shift-p": ["vim::HelixPaste", { "before": true }],
@@ -476,31 +484,40 @@
"alt-p": "editor::SelectPreviousSyntaxNode",
"alt-n": "editor::SelectNextSyntaxNode",
+ // Search
+ "n": "vim::HelixSelectNext",
+ "shift-n": "vim::HelixSelectPrevious",
+
// Goto mode
"g e": "vim::EndOfDocument",
"g h": "vim::StartOfLine",
"g l": "vim::EndOfLine",
- "g s": "vim::FirstNonWhitespace", // "g s" default behavior is "space s"
+ "g s": "vim::FirstNonWhitespace",
"g t": "vim::WindowTop",
"g c": "vim::WindowMiddle",
"g b": "vim::WindowBottom",
- "g r": "editor::FindAllReferences", // zed specific
+ "g r": "editor::FindAllReferences",
"g n": "pane::ActivateNextItem",
- "shift-l": "pane::ActivateNextItem",
+ "shift-l": "pane::ActivateNextItem", // not a helix default
"g p": "pane::ActivatePreviousItem",
- "shift-h": "pane::ActivatePreviousItem",
- "g .": "vim::HelixGotoLastModification", // go to last modification
+ "shift-h": "pane::ActivatePreviousItem", // not a helix default
+ "g .": "vim::HelixGotoLastModification",
+ "g o": "editor::ToggleSelectedDiffHunks", // Zed specific
+ "g shift-o": "git::ToggleStaged", // Zed specific
+ "g shift-r": "git::Restore", // Zed specific
+ "g u": "git::StageAndNext", // Zed specific
+ "g shift-u": "git::UnstageAndNext", // Zed specific
// Window mode
+ "space w v": "pane::SplitDown",
+ "space w s": "pane::SplitRight",
"space w h": "workspace::ActivatePaneLeft",
- "space w l": "workspace::ActivatePaneRight",
- "space w k": "workspace::ActivatePaneUp",
"space w j": "workspace::ActivatePaneDown",
+ "space w k": "workspace::ActivatePaneUp",
+ "space w l": "workspace::ActivatePaneRight",
"space w q": "pane::CloseActiveItem",
- "space w s": "pane::SplitRight",
- "space w r": "pane::SplitRight",
- "space w v": "pane::SplitDown",
- "space w d": "pane::SplitDown",
+ "space w r": "pane::SplitRight", // not a helix default
+ "space w d": "pane::SplitDown", // not a helix default
// Space mode
"space f": "file_finder::Toggle",
@@ -514,6 +531,7 @@
"space c": "editor::ToggleComments",
"space p": "editor::Paste",
"space y": "editor::Copy",
+ "space /": "pane::DeploySearch",
// Other
":": "command_palette::Toggle",
@@ -521,24 +539,22 @@
"]": ["vim::PushHelixNext", { "around": true }],
"[": ["vim::PushHelixPrevious", { "around": true }],
"g q": "vim::PushRewrap",
- "g w": "vim::PushRewrap"
- // "tab": "pane::ActivateNextItem",
- // "shift-tab": "pane::ActivatePrevItem",
- }
+ "g w": "vim::PushRewrap", // not a helix default & clashes with helix `goto_word`
+ },
},
{
"context": "vim_mode == insert && !(showing_code_actions || showing_completions)",
"bindings": {
"ctrl-p": "editor::ShowWordCompletions",
- "ctrl-n": "editor::ShowWordCompletions"
- }
+ "ctrl-n": "editor::ShowWordCompletions",
+ },
},
{
"context": "(vim_mode == insert || vim_mode == normal) && showing_signature_help && !showing_completions",
"bindings": {
"ctrl-p": "editor::SignatureHelpPrevious",
- "ctrl-n": "editor::SignatureHelpNext"
- }
+ "ctrl-n": "editor::SignatureHelpNext",
+ },
},
{
"context": "vim_mode == replace",
@@ -554,8 +570,8 @@
"backspace": "vim::UndoReplace",
"tab": "vim::Tab",
"enter": "vim::Enter",
- "insert": "vim::InsertBefore"
- }
+ "insert": "vim::InsertBefore",
+ },
},
{
"context": "vim_mode == waiting",
@@ -567,14 +583,14 @@
"escape": "vim::ClearOperators",
"ctrl-k": ["vim::PushDigraph", {}],
"ctrl-v": ["vim::PushLiteral", {}],
- "ctrl-q": ["vim::PushLiteral", {}]
- }
+ "ctrl-q": ["vim::PushLiteral", {}],
+ },
},
{
"context": "Editor && vim_mode == waiting && (vim_operator == ys || vim_operator == cs)",
"bindings": {
- "escape": "vim::SwitchToNormalMode"
- }
+ "escape": "vim::SwitchToNormalMode",
+ },
},
{
"context": "vim_mode == operator",
@@ -582,8 +598,8 @@
"ctrl-c": "vim::ClearOperators",
"ctrl-[": "vim::ClearOperators",
"escape": "vim::ClearOperators",
- "g c": "vim::Comment"
- }
+ "g c": "vim::Comment",
+ },
},
{
"context": "vim_operator == a || vim_operator == i || vim_operator == cs || vim_operator == helix_next || vim_operator == helix_previous",
@@ -620,14 +636,14 @@
"shift-i": ["vim::IndentObj", { "include_below": true }],
"f": "vim::Method",
"c": "vim::Class",
- "e": "vim::EntireFile"
- }
+ "e": "vim::EntireFile",
+ },
},
{
"context": "vim_operator == helix_m",
"bindings": {
- "m": "vim::Matching"
- }
+ "m": "vim::Matching",
+ },
},
{
"context": "vim_operator == helix_next",
@@ -644,8 +660,8 @@
"x": "editor::SelectSmallerSyntaxNode",
"d": "editor::GoToDiagnostic",
"c": "editor::GoToHunk",
- "space": "vim::InsertEmptyLineBelow"
- }
+ "space": "vim::InsertEmptyLineBelow",
+ },
},
{
"context": "vim_operator == helix_previous",
@@ -662,8 +678,8 @@
"x": "editor::SelectLargerSyntaxNode",
"d": "editor::GoToPreviousDiagnostic",
"c": "editor::GoToPreviousHunk",
- "space": "vim::InsertEmptyLineAbove"
- }
+ "space": "vim::InsertEmptyLineAbove",
+ },
},
{
"context": "vim_operator == c",
@@ -671,8 +687,8 @@
"c": "vim::CurrentLine",
"x": "vim::Exchange",
"d": "editor::Rename", // zed specific
- "s": ["vim::PushChangeSurrounds", {}]
- }
+ "s": ["vim::PushChangeSurrounds", {}],
+ },
},
{
"context": "vim_operator == d",
@@ -684,36 +700,36 @@
"shift-o": "git::ToggleStaged",
"p": "git::Restore", // "d p"
"u": "git::StageAndNext", // "d u"
- "shift-u": "git::UnstageAndNext" // "d shift-u"
- }
+ "shift-u": "git::UnstageAndNext", // "d shift-u"
+ },
},
{
"context": "vim_operator == gu",
"bindings": {
"g u": "vim::CurrentLine",
- "u": "vim::CurrentLine"
- }
+ "u": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == gU",
"bindings": {
"g shift-u": "vim::CurrentLine",
- "shift-u": "vim::CurrentLine"
- }
+ "shift-u": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == g~",
"bindings": {
"g ~": "vim::CurrentLine",
- "~": "vim::CurrentLine"
- }
+ "~": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == g?",
"bindings": {
"g ?": "vim::CurrentLine",
- "?": "vim::CurrentLine"
- }
+ "?": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == gq",
@@ -721,66 +737,66 @@
"g q": "vim::CurrentLine",
"q": "vim::CurrentLine",
"g w": "vim::CurrentLine",
- "w": "vim::CurrentLine"
- }
+ "w": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == y",
"bindings": {
"y": "vim::CurrentLine",
"v": "vim::PushForcedMotion",
- "s": ["vim::PushAddSurrounds", {}]
- }
+ "s": ["vim::PushAddSurrounds", {}],
+ },
},
{
"context": "vim_operator == ys",
"bindings": {
- "s": "vim::CurrentLine"
- }
+ "s": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == >",
"bindings": {
- ">": "vim::CurrentLine"
- }
+ ">": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == <",
"bindings": {
- "<": "vim::CurrentLine"
- }
+ "<": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == eq",
"bindings": {
- "=": "vim::CurrentLine"
- }
+ "=": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == sh",
"bindings": {
- "!": "vim::CurrentLine"
- }
+ "!": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == gc",
"bindings": {
- "c": "vim::CurrentLine"
- }
+ "c": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == gR",
"bindings": {
"r": "vim::CurrentLine",
- "shift-r": "vim::CurrentLine"
- }
+ "shift-r": "vim::CurrentLine",
+ },
},
{
"context": "vim_operator == cx",
"bindings": {
"x": "vim::CurrentLine",
- "c": "vim::ClearExchange"
- }
+ "c": "vim::ClearExchange",
+ },
},
{
"context": "vim_mode == literal",
@@ -822,15 +838,15 @@
"tab": ["vim::Literal", ["tab", "\u0009"]],
// zed extensions:
"backspace": ["vim::Literal", ["backspace", "\u0008"]],
- "delete": ["vim::Literal", ["delete", "\u007F"]]
- }
+ "delete": ["vim::Literal", ["delete", "\u007F"]],
+ },
},
{
"context": "BufferSearchBar && !in_replace",
"bindings": {
"enter": "vim::SearchSubmit",
- "escape": "buffer_search::Dismiss"
- }
+ "escape": "buffer_search::Dismiss",
+ },
},
{
"context": "VimControl && !menu || !Editor && !Terminal",
@@ -853,6 +869,8 @@
"ctrl-w shift-right": "workspace::SwapPaneRight",
"ctrl-w shift-up": "workspace::SwapPaneUp",
"ctrl-w shift-down": "workspace::SwapPaneDown",
+ "ctrl-w x": "workspace::SwapPaneAdjacent",
+ "ctrl-w ctrl-x": "workspace::SwapPaneAdjacent",
"ctrl-w shift-h": "workspace::MovePaneLeft",
"ctrl-w shift-l": "workspace::MovePaneRight",
"ctrl-w shift-k": "workspace::MovePaneUp",
@@ -889,15 +907,19 @@
"ctrl-w ctrl-n": "workspace::NewFileSplitHorizontal",
"ctrl-w n": "workspace::NewFileSplitHorizontal",
"g t": "vim::GoToTab",
- "g shift-t": "vim::GoToPreviousTab"
- }
+ "g shift-t": "vim::GoToPreviousTab",
+ },
},
{
"context": "!Editor && !Terminal",
"bindings": {
":": "command_palette::Toggle",
- "g /": "pane::DeploySearch"
- }
+ "g /": "pane::DeploySearch",
+ "] b": "pane::ActivateNextItem",
+ "[ b": "pane::ActivatePreviousItem",
+ "] shift-b": "pane::ActivateLastItem",
+ "[ shift-b": ["pane::ActivateItem", 0],
+ },
},
{
// netrw compatibility
@@ -947,17 +969,45 @@
"6": ["vim::Number", 6],
"7": ["vim::Number", 7],
"8": ["vim::Number", 8],
- "9": ["vim::Number", 9]
- }
+ "9": ["vim::Number", 9],
+ },
},
{
"context": "OutlinePanel && not_editing",
"bindings": {
- "j": "menu::SelectNext",
- "k": "menu::SelectPrevious",
+ "h": "outline_panel::CollapseSelectedEntry",
+ "j": "vim::MenuSelectNext",
+ "k": "vim::MenuSelectPrevious",
+ "down": "vim::MenuSelectNext",
+ "up": "vim::MenuSelectPrevious",
+ "l": "outline_panel::ExpandSelectedEntry",
"shift-g": "menu::SelectLast",
- "g g": "menu::SelectFirst"
- }
+ "g g": "menu::SelectFirst",
+ "-": "outline_panel::SelectParent",
+ "enter": "editor::ToggleFocus",
+ "/": "menu::Cancel",
+ "ctrl-u": "outline_panel::ScrollUp",
+ "ctrl-d": "outline_panel::ScrollDown",
+ "z t": "outline_panel::ScrollCursorTop",
+ "z z": "outline_panel::ScrollCursorCenter",
+ "z b": "outline_panel::ScrollCursorBottom",
+ "0": ["vim::Number", 0],
+ "1": ["vim::Number", 1],
+ "2": ["vim::Number", 2],
+ "3": ["vim::Number", 3],
+ "4": ["vim::Number", 4],
+ "5": ["vim::Number", 5],
+ "6": ["vim::Number", 6],
+ "7": ["vim::Number", 7],
+ "8": ["vim::Number", 8],
+ "9": ["vim::Number", 9],
+ },
+ },
+ {
+ "context": "OutlinePanel && editing",
+ "bindings": {
+ "enter": "menu::Cancel",
+ },
},
{
"context": "GitPanel && ChangesList",
@@ -972,8 +1022,8 @@
"x": "git::ToggleStaged",
"shift-x": "git::StageAll",
"g x": "git::StageRange",
- "shift-u": "git::UnstageAll"
- }
+ "shift-u": "git::UnstageAll",
+ },
},
{
"context": "Editor && mode == auto_height && VimControl",
@@ -984,8 +1034,8 @@
"#": null,
"*": null,
"n": null,
- "shift-n": null
- }
+ "shift-n": null,
+ },
},
{
"context": "Picker > Editor",
@@ -994,29 +1044,29 @@
"ctrl-u": "editor::DeleteToBeginningOfLine",
"ctrl-w": "editor::DeleteToPreviousWordStart",
"ctrl-p": "menu::SelectPrevious",
- "ctrl-n": "menu::SelectNext"
- }
+ "ctrl-n": "menu::SelectNext",
+ },
},
{
"context": "GitCommit > Editor && VimControl && vim_mode == normal",
"bindings": {
"ctrl-c": "menu::Cancel",
- "escape": "menu::Cancel"
- }
+ "escape": "menu::Cancel",
+ },
},
{
"context": "Editor && edit_prediction",
"bindings": {
// This is identical to the binding in the base keymap, but the vim bindings above to
// "vim::Tab" shadow it, so it needs to be bound again.
- "tab": "editor::AcceptEditPrediction"
- }
+ "tab": "editor::AcceptEditPrediction",
+ },
},
{
"context": "MessageEditor > Editor && VimControl",
"bindings": {
- "enter": "agent::Chat"
- }
+ "enter": "agent::Chat",
+ },
},
{
"context": "os != macos && Editor && edit_prediction_conflict",
@@ -1024,8 +1074,8 @@
// alt-l is provided as an alternative to tab/alt-tab. and will be displayed in the UI. This
// is because alt-tab may not be available, as it is often used for window switching on Linux
// and Windows.
- "alt-l": "editor::AcceptEditPrediction"
- }
+ "alt-l": "editor::AcceptEditPrediction",
+ },
},
{
"context": "SettingsWindow > NavigationMenu && !search",
@@ -1035,7 +1085,16 @@
"k": "settings_editor::FocusPreviousNavEntry",
"j": "settings_editor::FocusNextNavEntry",
"g g": "settings_editor::FocusFirstNavEntry",
- "shift-g": "settings_editor::FocusLastNavEntry"
- }
- }
+ "shift-g": "settings_editor::FocusLastNavEntry",
+ },
+ },
+ {
+ "context": "MarkdownPreview",
+ "bindings": {
+ "ctrl-u": "markdown::ScrollPageUp",
+ "ctrl-d": "markdown::ScrollPageDown",
+ "ctrl-y": "markdown::ScrollUp",
+ "ctrl-e": "markdown::ScrollDown",
+ },
+ },
]
diff --git a/assets/prompts/content_prompt_v2.hbs b/assets/prompts/content_prompt_v2.hbs
new file mode 100644
index 0000000000000000000000000000000000000000..826aada8c04863c21d756cf99beb64e582ed4906
--- /dev/null
+++ b/assets/prompts/content_prompt_v2.hbs
@@ -0,0 +1,40 @@
+{{#if language_name}}
+Here's a file of {{language_name}} that the user is going to ask you to make an edit to.
+{{else}}
+Here's a file of text that the user is going to ask you to make an edit to.
+{{/if}}
+
+The section you'll need to rewrite is marked with tags.
+
+
+{{{document_content}}}
+
+
+{{#if is_truncated}}
+The context around the relevant section has been truncated (possibly in the middle of a line) for brevity.
+{{/if}}
+
+And here's the section to rewrite based on that prompt again for reference:
+
+
+{{{rewrite_section}}}
+
+
+{{#if diagnostic_errors}}
+Below are the diagnostic errors visible to the user. If the user requests problems to be fixed, use this information, but do not try to fix these errors if the user hasn't asked you to.
+
+{{#each diagnostic_errors}}
+
+ {{line_number}}
+ {{error_message}}
+ {{code_content}}
+
+{{/each}}
+{{/if}}
+
+Only make changes that are necessary to fulfill the prompt, leave everything else as-is. All surrounding {{content_type}} will be preserved.
+
+Start at the indentation level in the original file in the rewritten {{content_type}}.
+
+IMPORTANT: You MUST use one of the provided tools to make the rewrite or to provide an explanation as to why the user's request cannot be fulfilled. You MUST NOT send back unstructured text. If you need to make a statement or ask a question you MUST use one of the tools to do so.
+It is an error if you try to make a change that cannot be made simply by editing the rewrite_section.
diff --git a/assets/settings/default.json b/assets/settings/default.json
index d8c800081246dcf937f7380399d726dd3d349679..e7df5ef0bf2d3bc805c79f79811d9929343544ef 100644
--- a/assets/settings/default.json
+++ b/assets/settings/default.json
@@ -12,7 +12,7 @@
"theme": {
"mode": "system",
"light": "One Light",
- "dark": "One Dark"
+ "dark": "One Dark",
},
"icon_theme": "Zed (Default)",
// The name of a base set of key bindings to use.
@@ -29,7 +29,7 @@
// Features that can be globally enabled or disabled
"features": {
// Which edit prediction provider to use.
- "edit_prediction_provider": "zed"
+ "edit_prediction_provider": "zed",
},
// The name of a font to use for rendering text in the editor
// ".ZedMono" currently aliases to Lilex
@@ -69,7 +69,7 @@
// The OpenType features to enable for text in the UI
"ui_font_features": {
// Disable ligatures:
- "calt": false
+ "calt": false,
},
// The weight of the UI font in standard CSS units from 100 to 900.
"ui_font_weight": 400,
@@ -87,7 +87,7 @@
"border_size": 0.0,
// Opacity of the inactive panes. 0 means transparent, 1 means opaque.
// Values are clamped to the [0.0, 1.0] range.
- "inactive_opacity": 1.0
+ "inactive_opacity": 1.0,
},
// Layout mode of the bottom dock. Defaults to "contained"
// choices: contained, full, left_aligned, right_aligned
@@ -103,12 +103,12 @@
"left_padding": 0.2,
// The relative width of the right padding of the central pane from the
// workspace when the centered layout is used.
- "right_padding": 0.2
+ "right_padding": 0.2,
},
// Image viewer settings
"image_viewer": {
// The unit for image file sizes: "binary" (KiB, MiB) or decimal (KB, MB)
- "unit": "binary"
+ "unit": "binary",
},
// Determines the modifier to be used to add multiple cursors with the mouse. The open hover link mouse gestures will adapt such that it do not conflict with the multicursor modifier.
//
@@ -175,6 +175,16 @@
//
// Default: true
"zoomed_padding": true,
+ // What draws Zed's window decorations (titlebar):
+ // 1. Client application (Zed) draws its own window decorations
+ // "client"
+ // 2. Display server draws the window decorations. Not supported by GNOME Wayland.
+ // "server"
+ //
+ // This requires restarting Zed for changes to take effect.
+ //
+ // Default: "client"
+ "window_decorations": "client",
// Whether to use the system provided dialogs for Open and Save As.
// When set to false, Zed will use the built-in keyboard-first pickers.
"use_system_path_prompts": true,
@@ -255,6 +265,12 @@
// Whether to display inline and alongside documentation for items in the
// completions menu
"show_completion_documentation": true,
+ // Whether to colorize brackets in the editor.
+ // (also known as "rainbow brackets")
+ //
+ // The colors that are used for different indentation levels are defined in the theme (theme key: `accents`).
+ // They can be customized by using theme overrides.
+ "colorize_brackets": false,
// When to show the scrollbar in the completion menu.
// This setting can take four values:
//
@@ -280,7 +296,7 @@
// When true, enables drag and drop text selection in buffer.
"enabled": true,
// The delay in milliseconds that must elapse before drag and drop is allowed. Otherwise, a new text selection is created.
- "delay": 300
+ "delay": 300,
},
// What to do when go to definition yields no results.
//
@@ -384,14 +400,14 @@
// Visible characters used to render whitespace when show_whitespaces is enabled.
"whitespace_map": {
"space": "•",
- "tab": "→"
+ "tab": "→",
},
// Settings related to calls in Zed
"calls": {
// Join calls with the microphone live by default
"mute_on_join": false,
// Share your project when you are the first to join a channel
- "share_on_join": false
+ "share_on_join": false,
},
// Toolbar related settings
"toolbar": {
@@ -404,7 +420,7 @@
// Whether to show agent review buttons in the editor toolbar.
"agent_review": true,
// Whether to show code action buttons in the editor toolbar.
- "code_actions": false
+ "code_actions": false,
},
// Whether to allow windows to tab together based on the user’s tabbing preference (macOS only).
"use_system_window_tabs": false,
@@ -420,10 +436,12 @@
"show_onboarding_banner": true,
// Whether to show user picture in the titlebar.
"show_user_picture": true,
+ // Whether to show the user menu in the titlebar.
+ "show_user_menu": true,
// Whether to show the sign in button in the titlebar.
"show_sign_in": true,
// Whether to show the menus in the titlebar.
- "show_menus": false
+ "show_menus": false,
},
"audio": {
// Opt into the new audio system.
@@ -456,7 +474,7 @@
// the future we will migrate by setting this to false
//
// You need to rejoin a call for this setting to apply
- "experimental.legacy_audio_compatible": true
+ "experimental.legacy_audio_compatible": true,
},
// Scrollbar related settings
"scrollbar": {
@@ -495,8 +513,8 @@
// When false, forcefully disables the horizontal scrollbar. Otherwise, obey other settings.
"horizontal": true,
// When false, forcefully disables the vertical scrollbar. Otherwise, obey other settings.
- "vertical": true
- }
+ "vertical": true,
+ },
},
// Minimap related settings
"minimap": {
@@ -544,7 +562,7 @@
// 3. "gutter" or "none" to not highlight the current line in the minimap.
"current_line_highlight": null,
// Maximum number of columns to display in the minimap.
- "max_width_columns": 80
+ "max_width_columns": 80,
},
// Enable middle-click paste on Linux.
"middle_click_paste": true,
@@ -567,7 +585,7 @@
// Whether to show fold buttons in the gutter.
"folds": true,
// Minimum number of characters to reserve space for in the gutter.
- "min_line_number_digits": 4
+ "min_line_number_digits": 4,
},
"indent_guides": {
// Whether to show indent guides in the editor.
@@ -588,7 +606,7 @@
//
// 1. "disabled"
// 2. "indent_aware"
- "background_coloring": "disabled"
+ "background_coloring": "disabled",
},
// Whether the editor will scroll beyond the last line.
"scroll_beyond_last_line": "one_page",
@@ -607,7 +625,7 @@
"fast_scroll_sensitivity": 4.0,
"sticky_scroll": {
// Whether to stick scopes to the top of the editor.
- "enabled": false
+ "enabled": false,
},
"relative_line_numbers": "disabled",
// If 'search_wrap' is disabled, search result do not wrap around the end of the file.
@@ -625,7 +643,7 @@
// Whether to interpret the search query as a regular expression.
"regex": false,
// Whether to center the cursor on each search match when navigating.
- "center_on_match": false
+ "center_on_match": false,
},
// When to populate a new search's query based on the text under the cursor.
// This setting can take the following three values:
@@ -668,8 +686,8 @@
"shift": false,
"alt": false,
"platform": false,
- "function": false
- }
+ "function": false,
+ },
},
// Whether to resize all the panels in a dock when resizing the dock.
// Can be a combination of "left", "right" and "bottom".
@@ -717,7 +735,7 @@
// "always"
// 5. Never show the scrollbar:
// "never"
- "show": null
+ "show": null,
},
// Which files containing diagnostic errors/warnings to mark in the project panel.
// This setting can take the following three values:
@@ -740,16 +758,33 @@
// "always"
// 2. Never show indent guides:
// "never"
- "show": "always"
+ "show": "always",
},
+ // Sort order for entries in the project panel.
+ // This setting can take three values:
+ //
+ // 1. Show directories first, then files:
+ // "directories_first"
+ // 2. Mix directories and files together:
+ // "mixed"
+ // 3. Show files first, then directories:
+ // "files_first"
+ "sort_mode": "directories_first",
// Whether to enable drag-and-drop operations in the project panel.
"drag_and_drop": true,
// Whether to hide the root entry when only one folder is open in the window.
"hide_root": false,
// Whether to hide the hidden entries in the project panel.
"hide_hidden": false,
- // Whether to automatically open files when pasting them in the project panel.
- "open_file_on_paste": true
+ // Settings for automatically opening files.
+ "auto_open": {
+ // Whether to automatically open newly created files in the editor.
+ "on_create": true,
+ // Whether to automatically open files after pasting or duplicating them.
+ "on_paste": true,
+ // Whether to automatically open files dropped from external sources.
+ "on_drop": true,
+ },
},
"outline_panel": {
// Whether to show the outline panel button in the status bar
@@ -782,7 +817,7 @@
// "always"
// 2. Never show indent guides:
// "never"
- "show": "always"
+ "show": "always",
},
// Scrollbar-related settings
"scrollbar": {
@@ -799,11 +834,11 @@
// "always"
// 5. Never show the scrollbar:
// "never"
- "show": null
+ "show": null,
},
// Default depth to expand outline items in the current file.
// Set to 0 to collapse all items that have children, 1 or higher to collapse items at that depth or deeper.
- "expand_outlines_with_depth": 100
+ "expand_outlines_with_depth": 100,
},
"collaboration_panel": {
// Whether to show the collaboration panel button in the status bar.
@@ -811,7 +846,7 @@
// Where to dock the collaboration panel. Can be 'left' or 'right'.
"dock": "left",
// Default width of the collaboration panel.
- "default_width": 240
+ "default_width": 240,
},
"git_panel": {
// Whether to show the git panel button in the status bar.
@@ -837,18 +872,22 @@
//
// Default: false
"collapse_untracked_diff": false,
+ /// Whether to show entries with tree or flat view in the panel
+ ///
+ /// Default: false
+ "tree_view": false,
"scrollbar": {
// When to show the scrollbar in the git panel.
//
// Choices: always, auto, never, system
// Default: inherits editor scrollbar settings
// "show": null
- }
+ },
},
"message_editor": {
// Whether to automatically replace emoji shortcodes with emoji characters.
// For example: typing `:wave:` gets replaced with `👋`.
- "auto_replace_emoji_shortcode": true
+ "auto_replace_emoji_shortcode": true,
},
"notification_panel": {
// Whether to show the notification panel button in the status bar.
@@ -856,9 +895,11 @@
// Where to dock the notification panel. Can be 'left' or 'right'.
"dock": "right",
// Default width of the notification panel.
- "default_width": 380
+ "default_width": 380,
},
"agent": {
+ // Whether the inline assistant should use streaming tools, when available
+ "inline_assistant_use_streaming_tools": true,
// Whether the agent is enabled.
"enabled": true,
// What completion mode to start new threads in, if available. Can be 'normal' or 'burn'.
@@ -867,6 +908,8 @@
"button": true,
// Where to dock the agent panel. Can be 'left', 'right' or 'bottom'.
"dock": "right",
+ // Where to dock the agents panel. Can be 'left' or 'right'.
+ "agents_panel_dock": "left",
// Default width when the agent panel is docked to the left or right.
"default_width": 640,
// Default height when the agent panel is docked to the bottom.
@@ -878,7 +921,7 @@
// The provider to use.
"provider": "zed.dev",
// The model to use.
- "model": "claude-sonnet-4"
+ "model": "claude-sonnet-4",
},
// Additional parameters for language model requests. When making a request to a model, parameters will be taken
// from the last entry in this list that matches the model's provider and name. In each entry, both provider
@@ -929,12 +972,14 @@
"now": true,
"find_path": true,
"read_file": true,
+ "restore_file_from_disk": true,
+ "save_file": true,
"open": true,
"grep": true,
"terminal": true,
"thinking": true,
- "web_search": true
- }
+ "web_search": true,
+ },
},
"ask": {
"name": "Ask",
@@ -951,14 +996,14 @@
"open": true,
"grep": true,
"thinking": true,
- "web_search": true
- }
+ "web_search": true,
+ },
},
"minimal": {
"name": "Minimal",
"enable_all_context_servers": false,
- "tools": {}
- }
+ "tools": {},
+ },
},
// Where to show notifications when the agent has either completed
// its response, or else needs confirmation before it can run a
@@ -987,7 +1032,7 @@
// Minimum number of lines to display in the agent message editor.
//
// Default: 4
- "message_editor_min_lines": 4
+ "message_editor_min_lines": 4,
},
// Whether the screen sharing icon is shown in the os status bar.
"show_call_status_icon": true,
@@ -1022,7 +1067,7 @@
// Whether or not to show the navigation history buttons.
"show_nav_history_buttons": true,
// Whether or not to show the tab bar buttons.
- "show_tab_bar_buttons": true
+ "show_tab_bar_buttons": true,
},
// Settings related to the editor's tabs
"tabs": {
@@ -1061,19 +1106,28 @@
// "errors"
// 3. Mark files with errors and warnings:
// "all"
- "show_diagnostics": "off"
+ "show_diagnostics": "off",
},
// Settings related to preview tabs.
"preview_tabs": {
// Whether preview tabs should be enabled.
// Preview tabs allow you to open files in preview mode, where they close automatically
- // when you switch to another file unless you explicitly pin them.
+ // when you open another preview tab.
// This is useful for quickly viewing files without cluttering your workspace.
"enabled": true,
+ // Whether to open tabs in preview mode when opened from the project panel with a single click.
+ "enable_preview_from_project_panel": true,
// Whether to open tabs in preview mode when selected from the file finder.
"enable_preview_from_file_finder": false,
- // Whether a preview tab gets replaced when code navigation is used to navigate away from the tab.
- "enable_preview_from_code_navigation": false
+ // Whether to open tabs in preview mode when opened from a multibuffer.
+ "enable_preview_from_multibuffer": true,
+ // Whether to open tabs in preview mode when code navigation is used to open a multibuffer.
+ "enable_preview_multibuffer_from_code_navigation": false,
+ // Whether to open tabs in preview mode when code navigation is used to open a single file.
+ "enable_preview_file_from_code_navigation": true,
+ // Whether to keep tabs in preview mode when code navigation is used to navigate away from them.
+ // If `enable_preview_file_from_code_navigation` or `enable_preview_multibuffer_from_code_navigation` is also true, the new tab may replace the existing one.
+ "enable_keep_preview_on_code_navigation": false,
},
// Settings related to the file finder.
"file_finder": {
@@ -1117,7 +1171,7 @@
// * "all": Use all gitignored files
// * "indexed": Use only the files Zed had indexed
// * "smart": Be smart and search for ignored when called from a gitignored worktree
- "include_ignored": "smart"
+ "include_ignored": "smart",
},
// Whether or not to remove any trailing whitespace from lines of a buffer
// before saving it.
@@ -1176,12 +1230,19 @@
"tab_size": 4,
// What debuggers are preferred by default for all languages.
"debuggers": [],
+ // Whether to enable word diff highlighting in the editor.
+ //
+ // When enabled, changed words within modified lines are highlighted
+ // to show exactly what changed.
+ //
+ // Default: true
+ "word_diff_enabled": true,
// Control what info is collected by Zed.
"telemetry": {
// Send debug info like crash reports.
"diagnostics": true,
// Send anonymized usage data like what languages you're using Zed with.
- "metrics": true
+ "metrics": true,
},
// Whether to disable all AI features in Zed.
//
@@ -1215,7 +1276,7 @@
"enabled": true,
// Minimum time to wait before pulling diagnostics from the language server(s).
// 0 turns the debounce off.
- "debounce_ms": 50
+ "debounce_ms": 50,
},
// Settings for inline diagnostics
"inline": {
@@ -1233,8 +1294,8 @@
"min_column": 0,
// The minimum severity of the diagnostics to show inline.
// Inherits editor's diagnostics' max severity settings when `null`.
- "max_severity": null
- }
+ "max_severity": null,
+ },
},
// Files or globs of files that will be excluded by Zed entirely. They will be skipped during file
// scans, file searches, and not be displayed in the project file tree. Takes precedence over `file_scan_inclusions`.
@@ -1248,7 +1309,7 @@
"**/.DS_Store",
"**/Thumbs.db",
"**/.classpath",
- "**/.settings"
+ "**/.settings",
],
// Files or globs of files that will be included by Zed, even when ignored by git. This is useful
// for files that are not tracked by git, but are still important to your project. Note that globs
@@ -1283,14 +1344,14 @@
// Whether or not to display the git commit summary on the same line.
"show_commit_summary": false,
// The minimum column number to show the inline blame information at
- "min_column": 0
+ "min_column": 0,
},
"blame": {
- "show_avatar": true
+ "show_avatar": true,
},
// Control which information is shown in the branch picker.
"branch_picker": {
- "show_author_name": true
+ "show_author_name": true,
},
// How git hunks are displayed visually in the editor.
// This setting can take two values:
@@ -1299,7 +1360,10 @@
// "hunk_style": "staged_hollow"
// 2. Show unstaged hunks hollow and staged hunks filled:
// "hunk_style": "unstaged_hollow"
- "hunk_style": "staged_hollow"
+ "hunk_style": "staged_hollow",
+ // Should the name or path be displayed first in the git view.
+ // "path_style": "file_name_first" or "file_path_first"
+ "path_style": "file_name_first",
},
// The list of custom Git hosting providers.
"git_hosting_providers": [
@@ -1314,6 +1378,8 @@
// "load_direnv": "direct"
// 2. Load direnv configuration through the shell hook, works for POSIX shells and fish.
// "load_direnv": "shell_hook"
+ // 3. Don't load direnv configuration at all.
+ // "load_direnv": "disabled"
"load_direnv": "direct",
"edit_predictions": {
// A list of globs representing files that edit predictions should be disabled for.
@@ -1331,7 +1397,7 @@
"**/secrets.yml",
"**/.zed/settings.json", // zed project settings
"/**/zed/settings.json", // zed user settings
- "/**/zed/keymap.json"
+ "/**/zed/keymap.json",
],
// When to show edit predictions previews in buffer.
// This setting takes two possible values:
@@ -1349,15 +1415,16 @@
"copilot": {
"enterprise_uri": null,
"proxy": null,
- "proxy_no_verify": null
+ "proxy_no_verify": null,
},
"codestral": {
- "model": null,
- "max_tokens": null
+ "api_url": "https://codestral.mistral.ai",
+ "model": "codestral-latest",
+ "max_tokens": 150,
},
// Whether edit predictions are enabled when editing text threads in the agent panel.
// This setting has no effect if globally disabled.
- "enabled_in_text_threads": true
+ "enabled_in_text_threads": true,
},
// Settings specific to journaling
"journal": {
@@ -1367,7 +1434,7 @@
// May take 2 values:
// 1. hour12
// 2. hour24
- "hour_format": "hour12"
+ "hour_format": "hour12",
},
// Status bar-related settings.
"status_bar": {
@@ -1378,7 +1445,7 @@
// Whether to show the cursor position button in the status bar.
"cursor_position_button": true,
// Whether to show active line endings button in the status bar.
- "line_endings_button": false
+ "line_endings_button": false,
},
// Settings specific to the terminal
"terminal": {
@@ -1405,7 +1472,7 @@
"default_height": 320,
// What working directory to use when launching the terminal.
// May take 4 values:
- // 1. Use the current file's project directory. Will Fallback to the
+ // 1. Use the current file's project directory. Fallback to the
// first project directory strategy if unsuccessful
// "working_directory": "current_project_directory"
// 2. Use the first project in this workspace's directory
@@ -1499,8 +1566,8 @@
// Preferred Conda manager to use when activating Conda environments.
// Values: "auto", "conda", "mamba", "micromamba"
// Default: "auto"
- "conda_manager": "auto"
- }
+ "conda_manager": "auto",
+ },
},
"toolbar": {
// Whether to display the terminal title in its toolbar's breadcrumbs.
@@ -1508,7 +1575,7 @@
//
// The shell running in the terminal needs to be configured to emit the title.
// Example: `echo -e "\e]2;New Title\007";`
- "breadcrumbs": false
+ "breadcrumbs": false,
},
// Scrollbar-related settings
"scrollbar": {
@@ -1525,7 +1592,7 @@
// "always"
// 5. Never show the scrollbar:
// "never"
- "show": null
+ "show": null,
},
// Set the terminal's font size. If this option is not included,
// the terminal will default to matching the buffer's font size.
@@ -1543,6 +1610,8 @@
// Default: 10_000, maximum: 100_000 (all bigger values set will be treated as 100_000), 0 disables the scrolling.
// Existing terminals will not pick up this change until they are recreated.
"max_scroll_history_lines": 10000,
+ // The multiplier for scrolling speed in the terminal.
+ "scroll_multiplier": 1.0,
// The minimum APCA perceptual contrast between foreground and background colors.
// APCA (Accessible Perceptual Contrast Algorithm) is more accurate than WCAG 2.x,
// especially for dark mode. Values range from 0 to 106.
@@ -1557,7 +1626,55 @@
//
// Most terminal themes have APCA values of 40-70.
// A value of 45 preserves colorful themes while ensuring legibility.
- "minimum_contrast": 45
+ "minimum_contrast": 45,
+ // Regexes used to identify paths for hyperlink navigation. Supports optional named capture
+ // groups `path`, `line`, `column`, and `link`. If none of these are present, the entire match
+ // is the hyperlink target. If `path` is present, it is the hyperlink target, along with `line`
+ // and `column` if present. `link` may be used to customize what text in terminal is part of the
+ // hyperlink. If `link` is not present, the text of the entire match is used. If `line` and
+ // `column` are not present, the default built-in line and column suffix processing is used
+ // which parses `line:column` and `(line,column)` variants. The default value handles Python
+ // diagnostics and common path, line, column syntaxes. This can be extended or replaced to
+ // handle specific scenarios. For example, to enable support for hyperlinking paths which
+ // contain spaces in rust output,
+ //
+ // [
+ // "\\s+(-->|:::|at) (?(?.+?))(:$|$)",
+ // "\\s+(Compiling|Checking|Documenting) [^(]+\\((?(?.+))\\)"
+ // ],
+ //
+ // could be used. Processing stops at the first regex with a match, even if no link is
+ // produced which is the case when the cursor is not over the hyperlinked text. For best
+ // performance it is recommended to order regexes from most common to least common. For
+ // readability and documentation, each regex may be an array of strings which are collected
+ // into one multi-line regex string for use in terminal path hyperlink detection.
+ "path_hyperlink_regexes": [
+ // Python-style diagnostics
+ "File \"(?[^\"]+)\", line (?[0-9]+)",
+ // Common path syntax with optional line, column, description, trailing punctuation, or
+ // surrounding symbols or quotes
+ [
+ "(?x)",
+ "(?",
+ " (",
+ " # multi-char path: first char (not opening delimiter or space)",
+ " [^({\\[<\"'`\\ ]",
+ " # middle chars: non-space, and colon/paren only if not followed by digit/paren",
+ " ([^\\ :(]|[:(][^0-9()])*",
+ " # last char: not closing delimiter or colon",
+ " [^()}\\]>\"'`.,;:\\ ]",
+ " |",
+ " # single-char path: not delimiter, punctuation, or space",
+ " [^(){}\\[\\]<>\"'`.,;:\\ ]",
+ " )",
+ " # optional line/column suffix (included in path for PathWithPosition::parse_str)",
+ " (:+[0-9]+(:[0-9]+)?|:?\\([0-9]+([,:]?[0-9]+)?\\))?",
+ ")",
+ ],
+ ],
+ // Timeout for hover and Cmd-click path hyperlink discovery in milliseconds. Specifying a
+ // timeout of `0` will disable path hyperlinking in terminal.
+ "path_hyperlink_timeout_ms": 1,
},
"code_actions_on_format": {},
// Settings related to running tasks.
@@ -1573,7 +1690,7 @@
// * Zed task from history (e.g. one-off task was spawned before)
//
// Default: true
- "prefer_lsp": true
+ "prefer_lsp": true,
},
// An object whose keys are language names, and whose values
// are arrays of filenames or extensions of files that should
@@ -1588,9 +1705,14 @@
// }
//
"file_types": {
- "JSONC": ["**/.zed/**/*.json", "**/zed/**/*.json", "**/Zed/**/*.json", "**/.vscode/**/*.json", "tsconfig*.json"],
+ "JSONC": [
+ "**/.zed/*.json",
+ "**/.vscode/**/*.json",
+ "**/{zed,Zed}/{settings,keymap,tasks,debug}.json",
+ "tsconfig*.json",
+ ],
"Markdown": [".rules", ".cursorrules", ".windsurfrules", ".clinerules"],
- "Shell Script": [".env.*"]
+ "Shell Script": [".env.*"],
},
// Settings for which version of Node.js and NPM to use when installing
// language servers and Copilot.
@@ -1606,14 +1728,14 @@
// `path`, but not `npm_path`, Zed will assume that `npm` is located at
// `${path}/../npm`.
"path": null,
- "npm_path": null
+ "npm_path": null,
},
// The extensions that Zed should automatically install on startup.
//
// If you don't want any of these extensions, add this field to your settings
// and change the value to `false`.
"auto_install_extensions": {
- "html": true
+ "html": true,
},
// The capabilities granted to extensions.
//
@@ -1621,7 +1743,7 @@
"granted_extension_capabilities": [
{ "kind": "process:exec", "command": "*", "args": ["**"] },
{ "kind": "download_file", "host": "*", "path": ["**"] },
- { "kind": "npm:install", "package": "*" }
+ { "kind": "npm:install", "package": "*" },
],
// Controls how completions are processed for this language.
"completions": {
@@ -1672,7 +1794,7 @@
// 4. "replace_suffix"
// Behaves like `"replace"` if the text after the cursor is a suffix of the completion, and like
// `"insert"` otherwise.
- "lsp_insert_mode": "replace_suffix"
+ "lsp_insert_mode": "replace_suffix",
},
// Different settings for specific languages.
"languages": {
@@ -1680,113 +1802,116 @@
"language_servers": ["astro-language-server", "..."],
"prettier": {
"allowed": true,
- "plugins": ["prettier-plugin-astro"]
- }
+ "plugins": ["prettier-plugin-astro"],
+ },
},
"Blade": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"C": {
"format_on_save": "off",
"use_on_type_format": false,
"prettier": {
- "allowed": false
- }
+ "allowed": false,
+ },
},
"C++": {
"format_on_save": "off",
"use_on_type_format": false,
"prettier": {
- "allowed": false
- }
+ "allowed": false,
+ },
+ },
+ "CSharp": {
+ "language_servers": ["roslyn", "!omnisharp", "..."],
},
"CSS": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"Dart": {
- "tab_size": 2
+ "tab_size": 2,
},
"Diff": {
"show_edit_predictions": false,
"remove_trailing_whitespace_on_save": false,
- "ensure_final_newline_on_save": false
+ "ensure_final_newline_on_save": false,
},
"Elixir": {
- "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."]
+ "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."],
},
"Elm": {
- "tab_size": 4
+ "tab_size": 4,
},
"Erlang": {
- "language_servers": ["erlang-ls", "!elp", "..."]
+ "language_servers": ["erlang-ls", "!elp", "..."],
},
"Git Commit": {
"allow_rewrap": "anywhere",
"soft_wrap": "editor_width",
- "preferred_line_length": 72
+ "preferred_line_length": 72,
},
"Go": {
"hard_tabs": true,
"code_actions_on_format": {
- "source.organizeImports": true
+ "source.organizeImports": true,
},
- "debuggers": ["Delve"]
+ "debuggers": ["Delve"],
},
"GraphQL": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"HEEX": {
- "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."]
+ "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."],
},
"HTML": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"HTML+ERB": {
- "language_servers": ["herb", "!ruby-lsp", "..."]
+ "language_servers": ["herb", "!ruby-lsp", "..."],
},
"Java": {
"prettier": {
"allowed": true,
- "plugins": ["prettier-plugin-java"]
- }
+ "plugins": ["prettier-plugin-java"],
+ },
},
"JavaScript": {
"language_servers": ["!typescript-language-server", "vtsls", "..."],
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"JSON": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"JSONC": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"JS+ERB": {
- "language_servers": ["!ruby-lsp", "..."]
+ "language_servers": ["!ruby-lsp", "..."],
},
"Kotlin": {
- "language_servers": ["!kotlin-language-server", "kotlin-lsp", "..."]
+ "language_servers": ["!kotlin-language-server", "kotlin-lsp", "..."],
},
"LaTeX": {
"formatter": "language_server",
"language_servers": ["texlab", "..."],
"prettier": {
"allowed": true,
- "plugins": ["prettier-plugin-latex"]
- }
+ "plugins": ["prettier-plugin-latex"],
+ },
},
"Markdown": {
"format_on_save": "off",
@@ -1794,136 +1919,145 @@
"remove_trailing_whitespace_on_save": false,
"allow_rewrap": "anywhere",
"soft_wrap": "editor_width",
+ "completions": {
+ "words": "disabled",
+ },
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"PHP": {
- "language_servers": ["phpactor", "!intelephense", "..."],
+ "language_servers": ["phpactor", "!intelephense", "!phptools", "..."],
"prettier": {
"allowed": true,
"plugins": ["@prettier/plugin-php"],
- "parser": "php"
- }
+ "parser": "php",
+ },
},
"Plain Text": {
"allow_rewrap": "anywhere",
- "soft_wrap": "editor_width"
+ "soft_wrap": "editor_width",
+ "completions": {
+ "words": "disabled",
+ },
+ },
+ "Proto": {
+ "language_servers": ["buf", "!protols", "!protobuf-language-server", "..."],
},
"Python": {
"code_actions_on_format": {
- "source.organizeImports.ruff": true
+ "source.organizeImports.ruff": true,
},
"formatter": {
"language_server": {
- "name": "ruff"
- }
+ "name": "ruff",
+ },
},
"debuggers": ["Debugpy"],
- "language_servers": ["basedpyright", "ruff", "!ty", "!pyrefly", "!pyright", "!pylsp", "..."]
+ "language_servers": ["basedpyright", "ruff", "!ty", "!pyrefly", "!pyright", "!pylsp", "..."],
},
"Ruby": {
- "language_servers": ["solargraph", "!ruby-lsp", "!rubocop", "!sorbet", "!steep", "..."]
+ "language_servers": ["solargraph", "!ruby-lsp", "!rubocop", "!sorbet", "!steep", "..."],
},
"Rust": {
- "debuggers": ["CodeLLDB"]
+ "debuggers": ["CodeLLDB"],
},
"SCSS": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"Starlark": {
- "language_servers": ["starpls", "!buck2-lsp", "..."]
+ "language_servers": ["starpls", "!buck2-lsp", "..."],
},
"Svelte": {
"language_servers": ["svelte-language-server", "..."],
"prettier": {
"allowed": true,
- "plugins": ["prettier-plugin-svelte"]
- }
+ "plugins": ["prettier-plugin-svelte"],
+ },
},
"TSX": {
"language_servers": ["!typescript-language-server", "vtsls", "..."],
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"Twig": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"TypeScript": {
"language_servers": ["!typescript-language-server", "vtsls", "..."],
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"SystemVerilog": {
"format_on_save": "off",
"language_servers": ["!slang", "..."],
- "use_on_type_format": false
+ "use_on_type_format": false,
},
"Vue.js": {
"language_servers": ["vue-language-server", "vtsls", "..."],
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"XML": {
"prettier": {
"allowed": true,
- "plugins": ["@prettier/plugin-xml"]
- }
+ "plugins": ["@prettier/plugin-xml"],
+ },
},
"YAML": {
"prettier": {
- "allowed": true
- }
+ "allowed": true,
+ },
},
"YAML+ERB": {
- "language_servers": ["!ruby-lsp", "..."]
+ "language_servers": ["!ruby-lsp", "..."],
},
"Zig": {
- "language_servers": ["zls", "..."]
- }
+ "language_servers": ["zls", "..."],
+ },
},
// Different settings for specific language models.
"language_models": {
"anthropic": {
- "api_url": "https://api.anthropic.com"
+ "api_url": "https://api.anthropic.com",
},
"bedrock": {},
"google": {
- "api_url": "https://generativelanguage.googleapis.com"
+ "api_url": "https://generativelanguage.googleapis.com",
},
"ollama": {
- "api_url": "http://localhost:11434"
+ "api_url": "http://localhost:11434",
},
"openai": {
- "api_url": "https://api.openai.com/v1"
+ "api_url": "https://api.openai.com/v1",
},
"openai_compatible": {},
"open_router": {
- "api_url": "https://openrouter.ai/api/v1"
+ "api_url": "https://openrouter.ai/api/v1",
},
"lmstudio": {
- "api_url": "http://localhost:1234/api/v0"
+ "api_url": "http://localhost:1234/api/v0",
},
"deepseek": {
- "api_url": "https://api.deepseek.com/v1"
+ "api_url": "https://api.deepseek.com/v1",
},
"mistral": {
- "api_url": "https://api.mistral.ai/v1"
+ "api_url": "https://api.mistral.ai/v1",
},
"vercel": {
- "api_url": "https://api.v0.dev/v1"
+ "api_url": "https://api.v0.dev/v1",
},
"x_ai": {
- "api_url": "https://api.x.ai/v1"
+ "api_url": "https://api.x.ai/v1",
},
- "zed.dev": {}
+ "zed.dev": {},
},
"session": {
// Whether or not to restore unsaved buffers on restart.
@@ -1932,7 +2066,13 @@
// dirty files when closing the application.
//
// Default: true
- "restore_unsaved_buffers": true
+ "restore_unsaved_buffers": true,
+ // Whether or not to skip worktree trust checks.
+ // When trusted, project settings are synchronized automatically,
+ // language and MCP servers are downloaded and started automatically.
+ //
+ // Default: false
+ "trust_all_worktrees": false,
},
// Zed's Prettier integration settings.
// Allows to enable/disable formatting with Prettier
@@ -1950,11 +2090,11 @@
// "singleQuote": true
// Forces Prettier integration to use a specific parser name when formatting files with the language
// when set to a non-empty string.
- "parser": ""
+ "parser": "",
},
// Settings for auto-closing of JSX tags.
"jsx_tag_auto_close": {
- "enabled": true
+ "enabled": true,
},
// LSP Specific settings.
"lsp": {
@@ -1975,19 +2115,19 @@
// Specify the DAP name as a key here.
"CodeLLDB": {
"env": {
- "RUST_LOG": "info"
- }
- }
+ "RUST_LOG": "info",
+ },
+ },
},
// Common language server settings.
"global_lsp_settings": {
// Whether to show the LSP servers button in the status bar.
- "button": true
+ "button": true,
},
// Jupyter settings
"jupyter": {
"enabled": true,
- "kernel_selections": {}
+ "kernel_selections": {},
// Specify the language name as the key and the kernel name as the value.
// "kernel_selections": {
// "python": "conda-base"
@@ -2001,7 +2141,7 @@
"max_columns": 128,
// Maximum number of lines to keep in REPL's scrollback buffer.
// Clamped with [4, 256] range.
- "max_lines": 32
+ "max_lines": 32,
},
// Vim settings
"vim": {
@@ -2015,7 +2155,14 @@
// Specify the mode as the key and the shape as the value.
// The mode can be one of the following: "normal", "replace", "insert", "visual".
// The shape can be one of the following: "block", "bar", "underline", "hollow".
- "cursor_shape": {}
+ "cursor_shape": {},
+ },
+ // Which-key popup settings
+ "which_key": {
+ // Whether to show the which-key popup when holding down key combinations.
+ "enabled": false,
+ // Delay in milliseconds before showing the which-key popup.
+ "delay_ms": 1000,
},
// The server to connect to. If the environment variable
// ZED_SERVER_URL is set, it will override this setting.
@@ -2040,6 +2187,18 @@
"dev": {
// "theme": "Andromeda"
},
+ // Settings overrides to use when using Linux.
+ "linux": {},
+ // Settings overrides to use when using macOS.
+ "macos": {},
+ // Settings overrides to use when using Windows.
+ "windows": {
+ "languages": {
+ "PHP": {
+ "language_servers": ["intelephense", "!phpactor", "!phptools", "..."],
+ },
+ },
+ },
// Whether to show full labels in line indicator or short ones
//
// Values:
@@ -2097,7 +2256,7 @@
"dock": "bottom",
"log_dap_communications": true,
"format_dap_log_messages": true,
- "button": true
+ "button": true,
},
// Configures any number of settings profiles that are temporarily applied on
// top of your existing user settings when selected from
@@ -2124,5 +2283,5 @@
// Useful for filtering out noisy logs or enabling more verbose logging.
//
// Example: {"log": {"client": "warn"}}
- "log": {}
+ "log": {},
}
diff --git a/assets/settings/initial_debug_tasks.json b/assets/settings/initial_debug_tasks.json
index af4512bd51aa82d57ce62e605b45ee61e8f98030..851289392a65aecfca17e00d4c123823ac9e21cb 100644
--- a/assets/settings/initial_debug_tasks.json
+++ b/assets/settings/initial_debug_tasks.json
@@ -8,7 +8,7 @@
"adapter": "Debugpy",
"program": "$ZED_FILE",
"request": "launch",
- "cwd": "$ZED_WORKTREE_ROOT"
+ "cwd": "$ZED_WORKTREE_ROOT",
},
{
"label": "Debug active JavaScript file",
@@ -16,7 +16,7 @@
"program": "$ZED_FILE",
"request": "launch",
"cwd": "$ZED_WORKTREE_ROOT",
- "type": "pwa-node"
+ "type": "pwa-node",
},
{
"label": "JavaScript debug terminal",
@@ -24,6 +24,6 @@
"request": "launch",
"cwd": "$ZED_WORKTREE_ROOT",
"console": "integratedTerminal",
- "type": "pwa-node"
- }
+ "type": "pwa-node",
+ },
]
diff --git a/assets/settings/initial_server_settings.json b/assets/settings/initial_server_settings.json
index d6ec33e60128380378610a273a1bbdff1ecdbaa8..29aa569b105157df7ec48164e2066fdac72c7b41 100644
--- a/assets/settings/initial_server_settings.json
+++ b/assets/settings/initial_server_settings.json
@@ -3,5 +3,5 @@
// For a full list of overridable settings, and general information on settings,
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
{
- "lsp": {}
+ "lsp": {},
}
diff --git a/assets/settings/initial_tasks.json b/assets/settings/initial_tasks.json
index a79e98063237ca297a89b0d151bd48149061b7bb..5bedafbd3a1e75a755598e37cd673742e146fdcc 100644
--- a/assets/settings/initial_tasks.json
+++ b/assets/settings/initial_tasks.json
@@ -47,8 +47,8 @@
// Whether to show the task line in the output of the spawned task, defaults to `true`.
"show_summary": true,
// Whether to show the command line in the output of the spawned task, defaults to `true`.
- "show_command": true
+ "show_command": true,
// Represents the tags for inline runnable indicators, or spawning multiple tasks at once.
// "tags": []
- }
+ },
]
diff --git a/assets/settings/initial_user_settings.json b/assets/settings/initial_user_settings.json
index 5ac2063bdb481e057a2d124c1e72f998390b066b..8b573854895a03243803a71a91a35af647f45ca2 100644
--- a/assets/settings/initial_user_settings.json
+++ b/assets/settings/initial_user_settings.json
@@ -12,6 +12,6 @@
"theme": {
"mode": "system",
"light": "One Light",
- "dark": "One Dark"
- }
+ "dark": "One Dark",
+ },
}
diff --git a/assets/themes/ayu/ayu.json b/assets/themes/ayu/ayu.json
index 7c84c603bda7fd7590067ec9f566f3582ba6aefd..e2b7c3c91fca46ab0e4064719bea5c8793faaccc 100644
--- a/assets/themes/ayu/ayu.json
+++ b/assets/themes/ayu/ayu.json
@@ -45,6 +45,7 @@
"tab.inactive_background": "#1f2127ff",
"tab.active_background": "#0d1016ff",
"search.match_background": "#5ac2fe66",
+ "search.active_match_background": "#ea570166",
"panel.background": "#1f2127ff",
"panel.focused_border": "#5ac1feff",
"pane.focused_border": null,
@@ -436,6 +437,7 @@
"tab.inactive_background": "#ececedff",
"tab.active_background": "#fcfcfcff",
"search.match_background": "#3b9ee566",
+ "search.active_match_background": "#f88b3666",
"panel.background": "#ececedff",
"panel.focused_border": "#3b9ee5ff",
"pane.focused_border": null,
@@ -827,6 +829,7 @@
"tab.inactive_background": "#353944ff",
"tab.active_background": "#242835ff",
"search.match_background": "#73cffe66",
+ "search.active_match_background": "#fd722b66",
"panel.background": "#353944ff",
"panel.focused_border": null,
"pane.focused_border": null,
diff --git a/assets/themes/gruvbox/gruvbox.json b/assets/themes/gruvbox/gruvbox.json
index a0f0a3ad637a4d212c8bf38f95f2e8424919d6bf..16ae188712f7a800ab4fb8a81a2d24cac99da56b 100644
--- a/assets/themes/gruvbox/gruvbox.json
+++ b/assets/themes/gruvbox/gruvbox.json
@@ -46,6 +46,7 @@
"tab.inactive_background": "#3a3735ff",
"tab.active_background": "#282828ff",
"search.match_background": "#83a59866",
+ "search.active_match_background": "#c09f3f66",
"panel.background": "#3a3735ff",
"panel.focused_border": "#83a598ff",
"pane.focused_border": null,
@@ -70,33 +71,33 @@
"editor.document_highlight.read_background": "#83a5981a",
"editor.document_highlight.write_background": "#92847466",
"terminal.background": "#282828ff",
- "terminal.foreground": "#fbf1c7ff",
+ "terminal.foreground": "#ebdbb2ff",
"terminal.bright_foreground": "#fbf1c7ff",
- "terminal.dim_foreground": "#282828ff",
+ "terminal.dim_foreground": "#766b5dff",
"terminal.ansi.black": "#282828ff",
- "terminal.ansi.bright_black": "#73675eff",
+ "terminal.ansi.bright_black": "#928374ff",
"terminal.ansi.dim_black": "#fbf1c7ff",
- "terminal.ansi.red": "#fb4a35ff",
- "terminal.ansi.bright_red": "#93201dff",
- "terminal.ansi.dim_red": "#ffaa95ff",
- "terminal.ansi.green": "#b7bb26ff",
- "terminal.ansi.bright_green": "#605c1bff",
- "terminal.ansi.dim_green": "#e0dc98ff",
- "terminal.ansi.yellow": "#f9bd2fff",
- "terminal.ansi.bright_yellow": "#91611bff",
- "terminal.ansi.dim_yellow": "#fedc9bff",
- "terminal.ansi.blue": "#83a598ff",
- "terminal.ansi.bright_blue": "#414f4aff",
- "terminal.ansi.dim_blue": "#c0d2cbff",
- "terminal.ansi.magenta": "#d3869bff",
- "terminal.ansi.bright_magenta": "#8e5868ff",
- "terminal.ansi.dim_magenta": "#ff9ebbff",
- "terminal.ansi.cyan": "#8ec07cff",
- "terminal.ansi.bright_cyan": "#45603eff",
- "terminal.ansi.dim_cyan": "#c7dfbdff",
- "terminal.ansi.white": "#fbf1c7ff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#fb4934ff",
+ "terminal.ansi.dim_red": "#8e1814ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#b8bb26ff",
+ "terminal.ansi.dim_green": "#6a6912ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#fabd2fff",
+ "terminal.ansi.dim_yellow": "#966a17ff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#83a598ff",
+ "terminal.ansi.dim_blue": "#305d5fff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#d3869bff",
+ "terminal.ansi.dim_magenta": "#7c455eff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#8ec07cff",
+ "terminal.ansi.dim_cyan": "#496e4aff",
+ "terminal.ansi.white": "#a89984ff",
+ "terminal.ansi.bright_white": "#fbf1c7ff",
+ "terminal.ansi.dim_white": "#766b5dff",
"link_text.hover": "#83a598ff",
"version_control.added": "#b7bb26ff",
"version_control.modified": "#f9bd2fff",
@@ -452,6 +453,7 @@
"tab.inactive_background": "#393634ff",
"tab.active_background": "#1d2021ff",
"search.match_background": "#83a59866",
+ "search.active_match_background": "#c9653666",
"panel.background": "#393634ff",
"panel.focused_border": "#83a598ff",
"pane.focused_border": null,
@@ -476,33 +478,33 @@
"editor.document_highlight.read_background": "#83a5981a",
"editor.document_highlight.write_background": "#92847466",
"terminal.background": "#1d2021ff",
- "terminal.foreground": "#fbf1c7ff",
+ "terminal.foreground": "#ebdbb2ff",
"terminal.bright_foreground": "#fbf1c7ff",
- "terminal.dim_foreground": "#1d2021ff",
- "terminal.ansi.black": "#1d2021ff",
- "terminal.ansi.bright_black": "#73675eff",
+ "terminal.dim_foreground": "#766b5dff",
+ "terminal.ansi.black": "#282828ff",
+ "terminal.ansi.bright_black": "#928374ff",
"terminal.ansi.dim_black": "#fbf1c7ff",
- "terminal.ansi.red": "#fb4a35ff",
- "terminal.ansi.bright_red": "#93201dff",
- "terminal.ansi.dim_red": "#ffaa95ff",
- "terminal.ansi.green": "#b7bb26ff",
- "terminal.ansi.bright_green": "#605c1bff",
- "terminal.ansi.dim_green": "#e0dc98ff",
- "terminal.ansi.yellow": "#f9bd2fff",
- "terminal.ansi.bright_yellow": "#91611bff",
- "terminal.ansi.dim_yellow": "#fedc9bff",
- "terminal.ansi.blue": "#83a598ff",
- "terminal.ansi.bright_blue": "#414f4aff",
- "terminal.ansi.dim_blue": "#c0d2cbff",
- "terminal.ansi.magenta": "#d3869bff",
- "terminal.ansi.bright_magenta": "#8e5868ff",
- "terminal.ansi.dim_magenta": "#ff9ebbff",
- "terminal.ansi.cyan": "#8ec07cff",
- "terminal.ansi.bright_cyan": "#45603eff",
- "terminal.ansi.dim_cyan": "#c7dfbdff",
- "terminal.ansi.white": "#fbf1c7ff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#fb4934ff",
+ "terminal.ansi.dim_red": "#8e1814ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#b8bb26ff",
+ "terminal.ansi.dim_green": "#6a6912ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#fabd2fff",
+ "terminal.ansi.dim_yellow": "#966a17ff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#83a598ff",
+ "terminal.ansi.dim_blue": "#305d5fff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#d3869bff",
+ "terminal.ansi.dim_magenta": "#7c455eff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#8ec07cff",
+ "terminal.ansi.dim_cyan": "#496e4aff",
+ "terminal.ansi.white": "#a89984ff",
+ "terminal.ansi.bright_white": "#fbf1c7ff",
+ "terminal.ansi.dim_white": "#766b5dff",
"link_text.hover": "#83a598ff",
"version_control.added": "#b7bb26ff",
"version_control.modified": "#f9bd2fff",
@@ -858,6 +860,7 @@
"tab.inactive_background": "#3b3735ff",
"tab.active_background": "#32302fff",
"search.match_background": "#83a59866",
+ "search.active_match_background": "#aea85166",
"panel.background": "#3b3735ff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -882,33 +885,33 @@
"editor.document_highlight.read_background": "#83a5981a",
"editor.document_highlight.write_background": "#92847466",
"terminal.background": "#32302fff",
- "terminal.foreground": "#fbf1c7ff",
+ "terminal.foreground": "#ebdbb2ff",
"terminal.bright_foreground": "#fbf1c7ff",
- "terminal.dim_foreground": "#32302fff",
- "terminal.ansi.black": "#32302fff",
- "terminal.ansi.bright_black": "#73675eff",
+ "terminal.dim_foreground": "#766b5dff",
+ "terminal.ansi.black": "#282828ff",
+ "terminal.ansi.bright_black": "#928374ff",
"terminal.ansi.dim_black": "#fbf1c7ff",
- "terminal.ansi.red": "#fb4a35ff",
- "terminal.ansi.bright_red": "#93201dff",
- "terminal.ansi.dim_red": "#ffaa95ff",
- "terminal.ansi.green": "#b7bb26ff",
- "terminal.ansi.bright_green": "#605c1bff",
- "terminal.ansi.dim_green": "#e0dc98ff",
- "terminal.ansi.yellow": "#f9bd2fff",
- "terminal.ansi.bright_yellow": "#91611bff",
- "terminal.ansi.dim_yellow": "#fedc9bff",
- "terminal.ansi.blue": "#83a598ff",
- "terminal.ansi.bright_blue": "#414f4aff",
- "terminal.ansi.dim_blue": "#c0d2cbff",
- "terminal.ansi.magenta": "#d3869bff",
- "terminal.ansi.bright_magenta": "#8e5868ff",
- "terminal.ansi.dim_magenta": "#ff9ebbff",
- "terminal.ansi.cyan": "#8ec07cff",
- "terminal.ansi.bright_cyan": "#45603eff",
- "terminal.ansi.dim_cyan": "#c7dfbdff",
- "terminal.ansi.white": "#fbf1c7ff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#fb4934ff",
+ "terminal.ansi.dim_red": "#8e1814ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#b8bb26ff",
+ "terminal.ansi.dim_green": "#6a6912ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#fabd2fff",
+ "terminal.ansi.dim_yellow": "#966a17ff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#83a598ff",
+ "terminal.ansi.dim_blue": "#305d5fff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#d3869bff",
+ "terminal.ansi.dim_magenta": "#7c455eff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#8ec07cff",
+ "terminal.ansi.dim_cyan": "#496e4aff",
+ "terminal.ansi.white": "#a89984ff",
+ "terminal.ansi.bright_white": "#fbf1c7ff",
+ "terminal.ansi.dim_white": "#766b5dff",
"link_text.hover": "#83a598ff",
"version_control.added": "#b7bb26ff",
"version_control.modified": "#f9bd2fff",
@@ -1264,6 +1267,7 @@
"tab.inactive_background": "#ecddb4ff",
"tab.active_background": "#fbf1c7ff",
"search.match_background": "#0b667866",
+ "search.active_match_background": "#ba2d1166",
"panel.background": "#ecddb4ff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -1291,30 +1295,30 @@
"terminal.foreground": "#282828ff",
"terminal.bright_foreground": "#282828ff",
"terminal.dim_foreground": "#fbf1c7ff",
- "terminal.ansi.black": "#282828ff",
- "terminal.ansi.bright_black": "#0b6678ff",
- "terminal.ansi.dim_black": "#5f5650ff",
- "terminal.ansi.red": "#9d0308ff",
- "terminal.ansi.bright_red": "#db8b7aff",
- "terminal.ansi.dim_red": "#4e1207ff",
- "terminal.ansi.green": "#797410ff",
- "terminal.ansi.bright_green": "#bfb787ff",
- "terminal.ansi.dim_green": "#3e3a11ff",
- "terminal.ansi.yellow": "#b57615ff",
- "terminal.ansi.bright_yellow": "#e2b88bff",
- "terminal.ansi.dim_yellow": "#5c3a12ff",
- "terminal.ansi.blue": "#0b6678ff",
- "terminal.ansi.bright_blue": "#8fb0baff",
- "terminal.ansi.dim_blue": "#14333bff",
- "terminal.ansi.magenta": "#8f3e71ff",
- "terminal.ansi.bright_magenta": "#c76da0ff",
- "terminal.ansi.dim_magenta": "#5c2848ff",
- "terminal.ansi.cyan": "#437b59ff",
- "terminal.ansi.bright_cyan": "#9fbca8ff",
- "terminal.ansi.dim_cyan": "#253e2eff",
- "terminal.ansi.white": "#fbf1c7ff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.black": "#fbf1c7ff",
+ "terminal.ansi.bright_black": "#928374ff",
+ "terminal.ansi.dim_black": "#7c6f64ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#9d0006ff",
+ "terminal.ansi.dim_red": "#c31c16ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#79740eff",
+ "terminal.ansi.dim_green": "#929015ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#b57614ff",
+ "terminal.ansi.dim_yellow": "#cf8e1aff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#076678ff",
+ "terminal.ansi.dim_blue": "#356f77ff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#8f3f71ff",
+ "terminal.ansi.dim_magenta": "#a85580ff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#427b58ff",
+ "terminal.ansi.dim_cyan": "#5f9166ff",
+ "terminal.ansi.white": "#7c6f64ff",
+ "terminal.ansi.bright_white": "#282828ff",
+ "terminal.ansi.dim_white": "#282828ff",
"link_text.hover": "#0b6678ff",
"version_control.added": "#797410ff",
"version_control.modified": "#b57615ff",
@@ -1670,6 +1674,7 @@
"tab.inactive_background": "#ecddb5ff",
"tab.active_background": "#f9f5d7ff",
"search.match_background": "#0b667866",
+ "search.active_match_background": "#dc351466",
"panel.background": "#ecddb5ff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -1697,30 +1702,30 @@
"terminal.foreground": "#282828ff",
"terminal.bright_foreground": "#282828ff",
"terminal.dim_foreground": "#f9f5d7ff",
- "terminal.ansi.black": "#282828ff",
- "terminal.ansi.bright_black": "#73675eff",
- "terminal.ansi.dim_black": "#f9f5d7ff",
- "terminal.ansi.red": "#9d0308ff",
- "terminal.ansi.bright_red": "#db8b7aff",
- "terminal.ansi.dim_red": "#4e1207ff",
- "terminal.ansi.green": "#797410ff",
- "terminal.ansi.bright_green": "#bfb787ff",
- "terminal.ansi.dim_green": "#3e3a11ff",
- "terminal.ansi.yellow": "#b57615ff",
- "terminal.ansi.bright_yellow": "#e2b88bff",
- "terminal.ansi.dim_yellow": "#5c3a12ff",
- "terminal.ansi.blue": "#0b6678ff",
- "terminal.ansi.bright_blue": "#8fb0baff",
- "terminal.ansi.dim_blue": "#14333bff",
- "terminal.ansi.magenta": "#8f3e71ff",
- "terminal.ansi.bright_magenta": "#c76da0ff",
- "terminal.ansi.dim_magenta": "#5c2848ff",
- "terminal.ansi.cyan": "#437b59ff",
- "terminal.ansi.bright_cyan": "#9fbca8ff",
- "terminal.ansi.dim_cyan": "#253e2eff",
- "terminal.ansi.white": "#f9f5d7ff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.black": "#fbf1c7ff",
+ "terminal.ansi.bright_black": "#928374ff",
+ "terminal.ansi.dim_black": "#7c6f64ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#9d0006ff",
+ "terminal.ansi.dim_red": "#c31c16ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#79740eff",
+ "terminal.ansi.dim_green": "#929015ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#b57614ff",
+ "terminal.ansi.dim_yellow": "#cf8e1aff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#076678ff",
+ "terminal.ansi.dim_blue": "#356f77ff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#8f3f71ff",
+ "terminal.ansi.dim_magenta": "#a85580ff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#427b58ff",
+ "terminal.ansi.dim_cyan": "#5f9166ff",
+ "terminal.ansi.white": "#7c6f64ff",
+ "terminal.ansi.bright_white": "#282828ff",
+ "terminal.ansi.dim_white": "#282828ff",
"link_text.hover": "#0b6678ff",
"version_control.added": "#797410ff",
"version_control.modified": "#b57615ff",
@@ -2076,6 +2081,7 @@
"tab.inactive_background": "#ecdcb3ff",
"tab.active_background": "#f2e5bcff",
"search.match_background": "#0b667866",
+ "search.active_match_background": "#d7331466",
"panel.background": "#ecdcb3ff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -2103,30 +2109,30 @@
"terminal.foreground": "#282828ff",
"terminal.bright_foreground": "#282828ff",
"terminal.dim_foreground": "#f2e5bcff",
- "terminal.ansi.black": "#282828ff",
- "terminal.ansi.bright_black": "#73675eff",
- "terminal.ansi.dim_black": "#f2e5bcff",
- "terminal.ansi.red": "#9d0308ff",
- "terminal.ansi.bright_red": "#db8b7aff",
- "terminal.ansi.dim_red": "#4e1207ff",
- "terminal.ansi.green": "#797410ff",
- "terminal.ansi.bright_green": "#bfb787ff",
- "terminal.ansi.dim_green": "#3e3a11ff",
- "terminal.ansi.yellow": "#b57615ff",
- "terminal.ansi.bright_yellow": "#e2b88bff",
- "terminal.ansi.dim_yellow": "#5c3a12ff",
- "terminal.ansi.blue": "#0b6678ff",
- "terminal.ansi.bright_blue": "#8fb0baff",
- "terminal.ansi.dim_blue": "#14333bff",
- "terminal.ansi.magenta": "#8f3e71ff",
- "terminal.ansi.bright_magenta": "#c76da0ff",
- "terminal.ansi.dim_magenta": "#5c2848ff",
- "terminal.ansi.cyan": "#437b59ff",
- "terminal.ansi.bright_cyan": "#9fbca8ff",
- "terminal.ansi.dim_cyan": "#253e2eff",
- "terminal.ansi.white": "#f2e5bcff",
- "terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#b0a189ff",
+ "terminal.ansi.black": "#fbf1c7ff",
+ "terminal.ansi.bright_black": "#928374ff",
+ "terminal.ansi.dim_black": "#7c6f64ff",
+ "terminal.ansi.red": "#cc241dff",
+ "terminal.ansi.bright_red": "#9d0006ff",
+ "terminal.ansi.dim_red": "#c31c16ff",
+ "terminal.ansi.green": "#98971aff",
+ "terminal.ansi.bright_green": "#79740eff",
+ "terminal.ansi.dim_green": "#929015ff",
+ "terminal.ansi.yellow": "#d79921ff",
+ "terminal.ansi.bright_yellow": "#b57614ff",
+ "terminal.ansi.dim_yellow": "#cf8e1aff",
+ "terminal.ansi.blue": "#458588ff",
+ "terminal.ansi.bright_blue": "#076678ff",
+ "terminal.ansi.dim_blue": "#356f77ff",
+ "terminal.ansi.magenta": "#b16286ff",
+ "terminal.ansi.bright_magenta": "#8f3f71ff",
+ "terminal.ansi.dim_magenta": "#a85580ff",
+ "terminal.ansi.cyan": "#689d6aff",
+ "terminal.ansi.bright_cyan": "#427b58ff",
+ "terminal.ansi.dim_cyan": "#5f9166ff",
+ "terminal.ansi.white": "#7c6f64ff",
+ "terminal.ansi.bright_white": "#282828ff",
+ "terminal.ansi.dim_white": "#282828ff",
"link_text.hover": "#0b6678ff",
"version_control.added": "#797410ff",
"version_control.modified": "#b57615ff",
diff --git a/assets/themes/one/one.json b/assets/themes/one/one.json
index 6849cd05dc70752216789ae04e81fad232f7b14b..13f94991ad44fc997144a3d44527dcbce5231504 100644
--- a/assets/themes/one/one.json
+++ b/assets/themes/one/one.json
@@ -45,6 +45,7 @@
"tab.inactive_background": "#2f343eff",
"tab.active_background": "#282c33ff",
"search.match_background": "#74ade866",
+ "search.active_match_background": "#e8af7466",
"panel.background": "#2f343eff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -67,37 +68,39 @@
"editor.active_wrap_guide": "#c8ccd41a",
"editor.document_highlight.read_background": "#74ade81a",
"editor.document_highlight.write_background": "#555a6366",
- "terminal.background": "#282c33ff",
- "terminal.foreground": "#dce0e5ff",
+ "terminal.background": "#282c34ff",
+ "terminal.foreground": "#abb2bfff",
"terminal.bright_foreground": "#dce0e5ff",
- "terminal.dim_foreground": "#282c33ff",
- "terminal.ansi.black": "#282c33ff",
- "terminal.ansi.bright_black": "#525561ff",
- "terminal.ansi.dim_black": "#dce0e5ff",
- "terminal.ansi.red": "#d07277ff",
- "terminal.ansi.bright_red": "#673a3cff",
- "terminal.ansi.dim_red": "#eab7b9ff",
- "terminal.ansi.green": "#a1c181ff",
- "terminal.ansi.bright_green": "#4d6140ff",
- "terminal.ansi.dim_green": "#d1e0bfff",
- "terminal.ansi.yellow": "#dec184ff",
- "terminal.ansi.bright_yellow": "#e5c07bff",
- "terminal.ansi.dim_yellow": "#f1dfc1ff",
- "terminal.ansi.blue": "#74ade8ff",
- "terminal.ansi.bright_blue": "#385378ff",
- "terminal.ansi.dim_blue": "#bed5f4ff",
- "terminal.ansi.magenta": "#b477cfff",
- "terminal.ansi.bright_magenta": "#d6b4e4ff",
- "terminal.ansi.dim_magenta": "#612a79ff",
- "terminal.ansi.cyan": "#6eb4bfff",
- "terminal.ansi.bright_cyan": "#3a565bff",
- "terminal.ansi.dim_cyan": "#b9d9dfff",
- "terminal.ansi.white": "#dce0e5ff",
+ "terminal.dim_foreground": "#636d83ff",
+ "terminal.ansi.black": "#282c34ff",
+ "terminal.ansi.bright_black": "#636d83ff",
+ "terminal.ansi.dim_black": "#3b3f4aff",
+ "terminal.ansi.red": "#e06c75ff",
+ "terminal.ansi.bright_red": "#EA858Bff",
+ "terminal.ansi.dim_red": "#a7545aff",
+ "terminal.ansi.green": "#98c379ff",
+ "terminal.ansi.bright_green": "#AAD581ff",
+ "terminal.ansi.dim_green": "#6d8f59ff",
+ "terminal.ansi.yellow": "#e5c07bff",
+ "terminal.ansi.bright_yellow": "#FFD885ff",
+ "terminal.ansi.dim_yellow": "#b8985bff",
+ "terminal.ansi.blue": "#61afefff",
+ "terminal.ansi.bright_blue": "#85C1FFff",
+ "terminal.ansi.dim_blue": "#457cadff",
+ "terminal.ansi.magenta": "#c678ddff",
+ "terminal.ansi.bright_magenta": "#D398EBff",
+ "terminal.ansi.dim_magenta": "#8d54a0ff",
+ "terminal.ansi.cyan": "#56b6c2ff",
+ "terminal.ansi.bright_cyan": "#6ED5DEff",
+ "terminal.ansi.dim_cyan": "#3c818aff",
+ "terminal.ansi.white": "#abb2bfff",
"terminal.ansi.bright_white": "#fafafaff",
- "terminal.ansi.dim_white": "#575d65ff",
+ "terminal.ansi.dim_white": "#8f969bff",
"link_text.hover": "#74ade8ff",
"version_control.added": "#27a657ff",
"version_control.modified": "#d3b020ff",
+ "version_control.word_added": "#2EA04859",
+ "version_control.word_deleted": "#78081BCC",
"version_control.deleted": "#e06c76ff",
"version_control.conflict_marker.ours": "#a1c1811a",
"version_control.conflict_marker.theirs": "#74ade81a",
@@ -446,6 +449,7 @@
"tab.inactive_background": "#ebebecff",
"tab.active_background": "#fafafaff",
"search.match_background": "#5c79e266",
+ "search.active_match_background": "#d0a92366",
"panel.background": "#ebebecff",
"panel.focused_border": null,
"pane.focused_border": null,
@@ -469,36 +473,38 @@
"editor.document_highlight.read_background": "#5c78e225",
"editor.document_highlight.write_background": "#a3a3a466",
"terminal.background": "#fafafaff",
- "terminal.foreground": "#242529ff",
- "terminal.bright_foreground": "#242529ff",
- "terminal.dim_foreground": "#fafafaff",
- "terminal.ansi.black": "#242529ff",
- "terminal.ansi.bright_black": "#747579ff",
- "terminal.ansi.dim_black": "#97979aff",
- "terminal.ansi.red": "#d36151ff",
- "terminal.ansi.bright_red": "#f0b0a4ff",
- "terminal.ansi.dim_red": "#6f312aff",
- "terminal.ansi.green": "#669f59ff",
- "terminal.ansi.bright_green": "#b2cfa9ff",
- "terminal.ansi.dim_green": "#354d2eff",
- "terminal.ansi.yellow": "#dec184ff",
- "terminal.ansi.bright_yellow": "#826221ff",
- "terminal.ansi.dim_yellow": "#786441ff",
- "terminal.ansi.blue": "#5c78e2ff",
- "terminal.ansi.bright_blue": "#b5baf2ff",
- "terminal.ansi.dim_blue": "#2d3d75ff",
- "terminal.ansi.magenta": "#984ea5ff",
- "terminal.ansi.bright_magenta": "#cea6d3ff",
- "terminal.ansi.dim_magenta": "#4b2a50ff",
- "terminal.ansi.cyan": "#3a82b7ff",
- "terminal.ansi.bright_cyan": "#a3bedaff",
- "terminal.ansi.dim_cyan": "#254058ff",
- "terminal.ansi.white": "#fafafaff",
+ "terminal.foreground": "#2a2c33ff",
+ "terminal.bright_foreground": "#2a2c33ff",
+ "terminal.dim_foreground": "#bbbbbbff",
+ "terminal.ansi.black": "#000000ff",
+ "terminal.ansi.bright_black": "#000000ff",
+ "terminal.ansi.dim_black": "#555555ff",
+ "terminal.ansi.red": "#de3e35ff",
+ "terminal.ansi.bright_red": "#de3e35ff",
+ "terminal.ansi.dim_red": "#9c2b26ff",
+ "terminal.ansi.green": "#3f953aff",
+ "terminal.ansi.bright_green": "#3f953aff",
+ "terminal.ansi.dim_green": "#2b6927ff",
+ "terminal.ansi.yellow": "#d2b67cff",
+ "terminal.ansi.bright_yellow": "#d2b67cff",
+ "terminal.ansi.dim_yellow": "#a48c5aff",
+ "terminal.ansi.blue": "#2f5af3ff",
+ "terminal.ansi.bright_blue": "#2f5af3ff",
+ "terminal.ansi.dim_blue": "#2140abff",
+ "terminal.ansi.magenta": "#950095ff",
+ "terminal.ansi.bright_magenta": "#a00095ff",
+ "terminal.ansi.dim_magenta": "#6a006aff",
+ "terminal.ansi.cyan": "#3f953aff",
+ "terminal.ansi.bright_cyan": "#3f953aff",
+ "terminal.ansi.dim_cyan": "#2b6927ff",
+ "terminal.ansi.white": "#bbbbbbff",
"terminal.ansi.bright_white": "#ffffffff",
- "terminal.ansi.dim_white": "#aaaaaaff",
+ "terminal.ansi.dim_white": "#888888ff",
"link_text.hover": "#5c78e2ff",
"version_control.added": "#27a657ff",
"version_control.modified": "#d3b020ff",
+ "version_control.word_added": "#2EA04859",
+ "version_control.word_deleted": "#F85149CC",
"version_control.deleted": "#e06c76ff",
"conflict": "#a48819ff",
"conflict.background": "#faf2e6ff",
diff --git a/clippy.toml b/clippy.toml
index 0ce7a6cd68d4e8210788eb7a67aa06c742cc8274..9dd246074a06c4db7b66eff7a83ef68e3612c378 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -14,6 +14,7 @@ disallowed-methods = [
{ path = "std::process::Command::stderr", reason = "`smol::process::Command::from()` does not preserve stdio configuration", replacement = "smol::process::Command::stderr" },
{ path = "serde_json::from_reader", reason = "Parsing from a buffer is much slower than first reading the buffer into a Vec/String, see https://github.com/serde-rs/json/issues/160#issuecomment-253446892. Use `serde_json::from_slice` instead." },
{ path = "serde_json_lenient::from_reader", reason = "Parsing from a buffer is much slower than first reading the buffer into a Vec/String, see https://github.com/serde-rs/json/issues/160#issuecomment-253446892, Use `serde_json_lenient::from_slice` instead." },
+ { path = "cocoa::foundation::NSString::alloc", reason = "NSString must be autoreleased to avoid memory leaks. Use `ns_string()` helper instead." },
]
disallowed-types = [
# { path = "std::collections::HashMap", replacement = "collections::HashMap" },
diff --git a/crates/acp_thread/Cargo.toml b/crates/acp_thread/Cargo.toml
index 8ef6f1a52c8b207658d59a1e6b877964df9e42ce..70f2e4d259f1611fb42ebc0b064d278c8b3b9c4d 100644
--- a/crates/acp_thread/Cargo.toml
+++ b/crates/acp_thread/Cargo.toml
@@ -46,6 +46,7 @@ url.workspace = true
util.workspace = true
uuid.workspace = true
watch.workspace = true
+urlencoding.workspace = true
[dev-dependencies]
env_logger.workspace = true
diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs
index a63dabf1fb25258b6f4255a5c67682165371b255..2ec6347fd4aa088d7ae2cc8f5a7b6cef37d3b202 100644
--- a/crates/acp_thread/src/acp_thread.rs
+++ b/crates/acp_thread/src/acp_thread.rs
@@ -43,6 +43,7 @@ pub struct UserMessage {
pub content: ContentBlock,
pub chunks: Vec,
pub checkpoint: Option,
+ pub indented: bool,
}
#[derive(Debug)]
@@ -73,6 +74,7 @@ impl UserMessage {
#[derive(Debug, PartialEq)]
pub struct AssistantMessage {
pub chunks: Vec,
+ pub indented: bool,
}
impl AssistantMessage {
@@ -123,6 +125,14 @@ pub enum AgentThreadEntry {
}
impl AgentThreadEntry {
+ pub fn is_indented(&self) -> bool {
+ match self {
+ Self::UserMessage(message) => message.indented,
+ Self::AssistantMessage(message) => message.indented,
+ Self::ToolCall(_) => false,
+ }
+ }
+
pub fn to_markdown(&self, cx: &App) -> String {
match self {
Self::UserMessage(message) => message.to_markdown(cx),
@@ -201,17 +211,19 @@ impl ToolCall {
};
let mut content = Vec::with_capacity(tool_call.content.len());
for item in tool_call.content {
- content.push(ToolCallContent::from_acp(
+ if let Some(item) = ToolCallContent::from_acp(
item,
language_registry.clone(),
path_style,
terminals,
cx,
- )?);
+ )? {
+ content.push(item);
+ }
}
let result = Self {
- id: tool_call.id,
+ id: tool_call.tool_call_id,
label: cx
.new(|cx| Markdown::new(title.into(), Some(language_registry.clone()), None, cx)),
kind: tool_call.kind,
@@ -241,6 +253,7 @@ impl ToolCall {
locations,
raw_input,
raw_output,
+ ..
} = fields;
if let Some(kind) = kind {
@@ -262,21 +275,29 @@ impl ToolCall {
}
if let Some(content) = content {
- let new_content_len = content.len();
+ let mut new_content_len = content.len();
let mut content = content.into_iter();
// Reuse existing content if we can
for (old, new) in self.content.iter_mut().zip(content.by_ref()) {
- old.update_from_acp(new, language_registry.clone(), path_style, terminals, cx)?;
+ let valid_content =
+ old.update_from_acp(new, language_registry.clone(), path_style, terminals, cx)?;
+ if !valid_content {
+ new_content_len -= 1;
+ }
}
for new in content {
- self.content.push(ToolCallContent::from_acp(
+ if let Some(new) = ToolCallContent::from_acp(
new,
language_registry.clone(),
path_style,
terminals,
cx,
- )?)
+ )? {
+ self.content.push(new);
+ } else {
+ new_content_len -= 1;
+ }
}
self.content.truncate(new_content_len);
}
@@ -347,13 +368,13 @@ impl ToolCall {
let buffer = buffer.await.log_err()?;
let position = buffer
.update(cx, |buffer, _| {
+ let snapshot = buffer.snapshot();
if let Some(row) = location.line {
- let snapshot = buffer.snapshot();
let column = snapshot.indent_size_for_line(row).len;
let point = snapshot.clip_point(Point::new(row, column), Bias::Left);
snapshot.anchor_before(point)
} else {
- Anchor::MIN
+ Anchor::min_for_buffer(snapshot.remote_id())
}
})
.ok()?;
@@ -425,6 +446,7 @@ impl From for ToolCallStatus {
acp::ToolCallStatus::InProgress => Self::InProgress,
acp::ToolCallStatus::Completed => Self::Completed,
acp::ToolCallStatus::Failed => Self::Failed,
+ _ => Self::Pending,
}
}
}
@@ -537,7 +559,7 @@ impl ContentBlock {
..
}) => Self::resource_link_md(&uri, path_style),
acp::ContentBlock::Image(image) => Self::image_md(&image),
- acp::ContentBlock::Audio(_) | acp::ContentBlock::Resource(_) => String::new(),
+ _ => String::new(),
}
}
@@ -591,15 +613,17 @@ impl ToolCallContent {
path_style: PathStyle,
terminals: &HashMap>,
cx: &mut App,
- ) -> Result {
+ ) -> Result