Commit log

fbe0108 Highlight Elm arrows as keywords

Quinn Wilton created

4110513 Add MacOS standard key binding for file renames

Mikayla Maki created

d95c4fd Remove unbound highlight queries

Mikayla Maki created

baa16a2 Better method ordering

Conrad Irwin created

ea74734 Touch up elm tree sitter integration

Mikayla Maki created

43d94e3 Refactor mode indicator to remove itself

Click to expand commit body
One of the problems we had is that the status_bar shows a gap between
items, and we want to not add an additional gap for an invisible status
indicator.

Conrad Irwin created

25e4bce Implement cascading resize algorithm

Mikayla Maki created

52154f7 Fixes a crash when SelectAllMatches action was called on no matches (#2783)

Click to expand commit body
Release Notes:

- Fixes a crash when SelectAllMatches action was called on no matches

Kirill Bulatov created

7dccb48 Fixes a crash when SelectAllMatches action was called on no matches

Kirill Bulatov created

6ad0852 Add outline.scm for Elm

Quinn Wilton created

dd504f5 Add tree-sitter-glsl

Quinn Wilton created

a4914fc Add tree-sitter-elm

Quinn Wilton created

8fff0b0 Fix pathspec in staged_statuses

Click to expand commit body
Enable non-literal matching so that directory paths match
all files contained within them.

Max Brunsfeld created

fe388ed Add tree-sitter-nix

Quinn Wilton created

429a2fc Add drag end events

Click to expand commit body
Fix left dragging cascade
WIP: Implement right dragging, WIP: use drag end events to set and reset state around initial flex orientation

Mikayla Maki created

28ee05b WIP: cascade split resizes

Mikayla Maki created

b4b53eb Refactor resize handle code to be amenable to cascading resizes

Mikayla Maki created

a3a9d02 Fix filtering of staged statuses

Max Brunsfeld created

b338ffe Rely on git status for any paths not matching the git index

Max Brunsfeld created

e091519 In terminal, open paths starting with ~ and focus on project panel when opening directories (#2780)

Click to expand commit body
Further improves terminal navigation with cmd+click, now allowing to
open paths starting with `~` (if they are present otherwise) and
focusing project panel with highlighted entry for the directories
opened.

Release Notes:

- Further improves terminal navigation with cmd+click, now allowing to
open paths starting with `~` (if they are present otherwise) and
focusing project panel with highlighted entry for the directories
opened.

Kirill Bulatov created

f05095a Focus project panel on directory select

Kirill Bulatov created

6c09782 Optimize full file status via passing in known file mtime

Max Brunsfeld created

51d311a Compute unstaged git status separately, to take advantage of our cached file mtimes

Max Brunsfeld created

ff08640 Only fetch statuses for changed paths

Max Brunsfeld created

05b1611 Don't call git status when ignored files change

Max Brunsfeld created

dcaf8a9 Open paths starting with ~ from terminal click

Kirill Bulatov created

d14a484 Add support for adding/removing status items

Conrad Irwin created

4589164 Add a mode indicator for vim

Click to expand commit body
This is the second most common remaining complaint (after :w not
working).

Fixes: zed-industries/community#409

Conrad Irwin created

7788eab Avoid performance bottlenecks from `git status` calls during worktree scanning (#2777)

Click to expand commit body
Closes
https://linear.app/zed-industries/issue/Z-2689/huge-slowdown-when-working-in-large-git-repositories-like-webkit
Closes https://github.com/zed-industries/community/issues/1770

In large git repositories (like Webkit), `git status` can be very slow.
And our current approach of retrieving git statuses (one by one as we
load paths), causes catastrophic slowdowns in these repos. This PR
further optimizes our retrieval of git statuses (started in
https://github.com/zed-industries/zed/pull/2728), so that when scanning
a directory, we only load git statuses once, in a single batch, at the
beginning of the scan.

There is still an initial lag when opening `WebKit` in Zed, while the
initial git status runs. But once this call completes, everything is
fast. Let's come back to this problem later.

For now, this makes Zed's directory scanning massively more efficient,
even in the case of normal-sized repos like `zed`. The git status code
was a huge percentage of zed's CPU usage when launching. Here is that
code, highlighted in a flamegraph before and after this change:

Before:

![before](https://github.com/zed-industries/zed/assets/326587/627012f2-6131-44ac-95c2-ea4a4531cb24)

After:

![after](https://github.com/zed-industries/zed/assets/326587/a11a3e1b-e925-4bff-a421-ea71cb4de85d)


Release Notes:

- Fixed a bug where project paths took a very long time to load when
working in large git repositories
([#1770](https://github.com/zed-industries/community/issues/1770))

Max Brunsfeld created

bd9118f Do not scroll when selecting all (#2778)

Click to expand commit body
In big buffers, when I press `cmd-a`, the view gets scrolled to the very
bottom.
Usually it's now that I want, I can scroll to bottom with `cmd-down`
separately, and selecting all text is used for copy-pasting it
somewhere, no need to scroll anywhere for that — I can get back to the
same place later.

Release Notes:

- Removed the scroll to the end of the editor after `editor::SelectAll`
action

Kirill Bulatov created

c538504 Do not scroll when selecting all

Kirill Bulatov created

4bd415f Retrieve git statuses in one batch when scanning dirs

Max Brunsfeld created

25ea07c When renaming in project panel, select file names without extensions (#2776)

Click to expand commit body
Closes
https://github.com/zed-industries/community/issues/1789#issuecomment-1646061712

<img width="196" alt="Screenshot 2023-07-21 at 23 23 47"
src="https://github.com/zed-industries/zed/assets/2690773/f5c7025b-6dc8-4f0c-81e5-3cc98a3a9c8b">
<img width="197" alt="Screenshot 2023-07-21 at 23 23 52"
src="https://github.com/zed-industries/zed/assets/2690773/596f8ab0-15e0-4285-be34-ce4c276b686f">

When renaming in project panel, select file names without extensions.

Release Notes:

- Improved project panel rename by selecting file names without
extensions

Kirill Bulatov created

33b215a Add search in directory action in the project panel (#2774)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/1153
Closes https://github.com/zed-industries/community/issues/1326

<img width="432" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/a50ee073-9d2e-4e5c-ae5e-23312693c540">

Adds an `project_panel::NewSearchInDirectory` action ("alt-shift-f"
default) in the project editor context to open a new project search in
the selected directory.

Release Notes:

- Adds an action to open project search in the project panel's directory

Kirill Bulatov created

f2c9738 Put our downloaded copy of Node in the env for every NPM action (#2775)

Click to expand commit body
Intelephense (PHP language server) has a dependency on `protobufjs`
which invokes `node` in the `postinstall` script and if the user did not
have a system Node runtime installed that would fail. Have this use our
downloaded installation too

Fixes
https://linear.app/zed-industries/issue/Z-2687/php-language-server-failed

Release Notes:
- Fixed PHP language server installation on systems without a system
Node installation.

Julia created

804da68 When renaming in project panel, select file names without extensions

Kirill Bulatov created

2d81599 Put our downloaded copy of Node in the env for every NPM action

Click to expand commit body
Intelephense (PHP language server) has a dependency on `protobufjs`
which invokes `node` in the `postinstall` script and if the user did
not have a system Node runtime installed that would fail. Have this
use our downloaded installation too

Julia created

595bc16 Add search in directory action in the project panel

Kirill Bulatov created

e002d9e Avoid panic from assuming a vim operator exists on the operator stack (#2773)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-338/operator-popped-when-no-operator-was-on-the-stack-this-likely-means

Release Notes:
- Fixed a panic that could occur when invoking a Vim object without an
operator.

Julia created

243a1a8 Avoid panic from assuming a vim operator exists on the operator stack

Julia created

56c657f Vim shortcuts (#2760)

Click to expand commit body
Refactors some of the vim bindings to make the vim.json file less
obtuse.

Release Notes:

- vim: add `;` and `,` to repeat last `{f,F,t,T}`
- vim: add zed-specific shortcuts for common IDE actions:
- - `g A` to find all references
- - `g .` to open the code actions menu.
- - `c d` for rename

Conrad Irwin created

4772e4c vim: add , and ;

Conrad Irwin created

a50d30b Quality of life shortcuts for code actions

Conrad Irwin created

8ba69c1 refactor: Remove G/Z Namespace support

Click to expand commit body
This previously enabled things like `d g g` to work, but we can
fix that instead by not clearing out pending vim state on change.

Either way, it is unnecessary and causes some user-confusion
(zed-industries/community#176), so remove this code for now; and use
comments to organize the file a bit instead.

Conrad Irwin created

bf25834 Fix shift-enter in search (#2772)

Click to expand commit body
Fixes shift-enter to go to previous result.

Release Notes:

- To type a newline in search use `ctrl-enter` (or `ctrl-shift-enter`
for a newline below).

Conrad Irwin created

8072792 Fix shift-enter in search

Click to expand commit body
If you want to type a newline in an auto_height editor, ctrl and
ctrl-shift are your friends.

Conrad Irwin created

5f89de0 Add key binding to close all docks (#2769)

Click to expand commit body
Fixes:
https://linear.app/zed-industries/issue/Z-2680/add-a-close-all-docks-action

I frequently get stuck in this state:

<img width="1608" alt="SCR-20230721-dgvs"
src="https://github.com/zed-industries/zed/assets/19867440/13257e6d-f75a-4d1c-9718-153499e90c60">

I could zoom, but I dont want to in this case, I just want to close
everything, to get back to a truly decluttered state. Running 3 toggle
commands is cumbersome. I'd like to be able to close all docks with one
action.

I added an action with the key binding `alt-cmd-y` (similar
to`alt-cmd-t`, which is used to close all tabs). My original choice was
`alt-cmd-d` (`d` for dock), but that is the default macOS key binding to
hide the system dock.


Release Notes:

- Added a `workspace: close all docks` action (deployed via
`alt-cmd-y`).

Joseph T. Lyons created

1610e27 feat(workspace): add action for closing inactive editors on all panes

Alex Viscreanu created

35400d5 Do not highlight fake URLs in terminal (#2770)

Click to expand commit body
Closes https://github.com/zed-industries/community/issues/1794
See also https://github.com/alacritty/alacritty/pull/7101

Release Notes:

- Fixed terminal incorrectly highlighting certain strings as URLs

Kirill Bulatov created

cd36206 Do not highlight fake URLs in terminal

Kirill Bulatov created