Commit Graph
31406 Commits
Author SHA1 Message Date
KCaverly 655ec92da6 add worktree previously indexed functionality to vector db 2023-07-26 09:17:04 -04:00
Conrad Irwin 44f4f14010 Add a mode indicator for vim (#2763)
Release Notes:

- vim: add a mode indicator
([#409](https://github.com/zed-industries/community/issues/409))

Now updated screenshots with @iamnbutler 
<img width="1043" alt="Screenshot 2023-07-25 at 11 11 57"
src="https://github.com/zed-industries/zed/assets/94272/8301479a-8b58-42d8-81a1-bc40e1e0a4df">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 00"
src="https://github.com/zed-industries/zed/assets/94272/89c3b8bd-9cbc-4fd7-ad10-dac5538ed3a3">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 12"
src="https://github.com/zed-industries/zed/assets/94272/adc87fe3-a720-4779-853b-df9443407046">
2023-07-25 20:18:23 -06:00
Nathan Sobo 8277425558 Merge branch 'paint-context' into cells 2023-07-25 17:36:05 -06:00
Nathan Sobo d43ef7e00b Pass PaintContext to Element::paint
I want to use this on another branch, but it's a sweeping change,
so this prepares the ground for it. This can always be reverted if
it doesn't work out.
2023-07-25 17:32:31 -06:00
Nathan Sobo 7148b06bc4 WIP 2023-07-25 16:33:58 -06:00
KCaverly a399e9f41c update project search to only show semantic button visible with semantic_index enabled 2023-07-25 16:26:37 -04:00
Joseph T. Lyons 2d7b0074a6 Add sort lines command (#2786)
This PR adds command palette actions for:

- `sort lines case sensitive`
- `sort lines case insensitive`
- `reverse lines`
- `shuffle lines`

Closes out:

- https://github.com/zed-industries/community/issues/658

and partially closing out:

- https://github.com/zed-industries/community/issues/57 (which is
currently a top-ranked issue)

There are issues with dedupe lines and I didn't try to tackle converting
variable names between different conventions. I'll likely close out 57
with a note to just upvote the remaining individual issues

Release Notes:

- added command palette actions for `sort lines case sensitive`, `sort
lines case insensitive`, `reverse lines`, and`shuffle lines`
(([#57](https://github.com/zed-industries/community/issues/57)),
([#658](https://github.com/zed-industries/community/issues/658)))
2023-07-25 15:39:45 -04:00
KCaverly eb8aaebf66 move visible text to just start anchor with context lines for semantic search 2023-07-25 15:24:27 -04:00
KCaverly 65a6489a79 update semantic index tests for elixir 2023-07-25 15:20:35 -04:00
Joseph T. Lyons a8b628ce9f Add tests for manipulate_lines() 2023-07-25 15:17:16 -04:00
Conrad IrwinandMikayla Maki e81bab4e2e A little refactor
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-07-25 12:55:01 -06:00
Joseph T. Lyons 3a8579b79b Remove { and } from single-line closure 2023-07-25 14:48:11 -04:00
Mikayla Maki b500a49036 Merge branch 'main' into quinn/nix 2023-07-25 11:34:57 -07:00
Mikayla Maki d2a6264731 Add support for Elm and GLSL (#2782)
This adds tree-sitter grammars for both Elm and GLSL, with injections
for GLSL embedded within Elm. It also adds an `outline.scm` for Elm,
though limitations in the tree-sitter grammar meant that I wasn't able
to get it looking exactly how I'd have liked.

In particular, it wasn't clear how to nicely annotate functions in the
outline as being functions, or how to prevent the fields of a record
declaration from being increasingly indented.


![image](https://github.com/zed-industries/zed/assets/285821/544bc00b-3bfc-4ec7-be9d-764b9f0292ab)

![image](https://github.com/zed-industries/zed/assets/285821/74e57e95-bf87-4989-ae29-a2f625141bcf)

![image](https://github.com/zed-industries/zed/assets/285821/9e283c78-66d5-4c15-9827-1b5b446cdc37)

fixes https://github.com/zed-industries/community/issues/598

Release Notes:
- Added syntax highlighting for the Elm and GLSL languages
2023-07-25 11:34:22 -07:00
Joseph T. LyonsandMikayla Maki e3dae4eacb Fix code computing new selections
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-07-25 14:04:25 -04:00
KCaverly d3aacb692d update semantic index tests for cpp 2023-07-25 13:30:38 -04:00
Conrad IrwinandNate Butler 8fd9cba675 Update status bar theming
Co-Authored-By: Nate Butler <iamnbutler@gmail.com>
2023-07-25 11:06:41 -06:00
Joseph T. LyonsandJulia f702d3536a Fix rand import and tweak callbacks
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-07-25 11:44:13 -04:00
KCaverly a5972b022f update semantic index tests for javascript 2023-07-25 10:38:37 -04:00
Joseph T. Lyons 385367b6c9 WIP 2023-07-25 10:33:20 -04:00
Nathan Sobo b2d85f95c2 WIP 2023-07-24 23:27:14 -06:00
Joseph T. Lyons e7724c8621 Add open file in project finder via space (#2785)
@mikayla-maki for 👀 

[This PR added in the ability to rename a file via
`enter`](https://github.com/zed-industries/zed/pull/2784). Previously,
`enter` was used to both open a file and confirm a rename, so this PR
changes the opening of a file to use `space`, which is what VS Code
uses. It also makes a bit more sense because now `enter` is just used to
start a rename and confirm the rename, vs being used for 2 different
actions.

N/A on the release notes, as I adjusted the release note in the
previously-tagged PR.

Release Notes:

- N/A
2023-07-24 16:35:01 -04:00
Max Brunsfeld 4f2579494c More git status optimizations (#2779)
Follow-up to https://github.com/zed-industries/zed/pull/2777
Refs https://github.com/zed-industries/community/issues/1770

In this PR, I reworked the way that git statuses are retrieved. In a
huge repository like `WebKit`, the really slow part of computing a list
of git statuses is the *unstaged* portion of the diff. For the *staged*
diff, `git` can avoid comparing the contents of unchanged directories,
because the index contains hashes of every tree. But for the *unstaged*
portion, Git needs to compare every file in the worktree against the
index. In the common case, when there are no changes, it's enough to
check the `mtime` of every file (because the index stores the mtimes of
files when they are added). But this still requires an `lstat` call to
retrieve each file's metadata.

I realized that this is redundant work, because the worktree is
*already* calling `lstat` on every file, and caching their metadata. So
in this PR, I've changed the `Repository` API so that there are separate
methods for retrieving a file's *staged* and *unstaged* statuses. The
*staged* statuses are retrieved in one giant batch, like before, to
reduce our git calls (which also have an inherent cost). But the
`unstaged` statuses are retrieved one-by-one, after we load files'
mtimes. Often, all that's required is an index lookup, and an mtime
comparison.

With this optimization, it once again becomes pretty responsive to open
`WebKit` or `chromium` in Zed.

Release Notes:

- Optimized the loading of project file when working in very large git
repositories
2023-07-24 11:23:32 -07:00
Quinn Wilton e2cdf03336 Highlight all Elm function calls 2023-07-24 10:55:15 -07:00
Quinn Wilton ad8a056344 Add all Elm functions to the outline, including locals 2023-07-24 10:45:46 -07:00
Quinn Wilton 3e1304534c Highlight qualified Elm function calls 2023-07-24 10:45:15 -07:00
Quinn Wilton 802d3edc07 Highlight Elm arrows as keywords 2023-07-24 10:44:56 -07:00
Mikayla Maki f22ff36ec8 Remove unbound highlight queries 2023-07-24 09:01:15 -07:00
Conrad Irwin b45bbd6bd4 Better method ordering 2023-07-24 09:57:51 -06:00
Mikayla Maki 8af4eb8c49 Touch up elm tree sitter integration 2023-07-24 08:52:51 -07:00
Conrad Irwin 1fccc35107 Refactor mode indicator to remove itself
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.
2023-07-24 09:51:54 -06:00
Mikayla Maki c2df957496 Implement cascading resize algorithm 2023-07-24 08:04:46 -07:00
Kirill Bulatov 9b1e8583b7 Fixes a crash when SelectAllMatches action was called on no matches 2023-07-24 15:42:10 +03:00
Quinn Wilton d8f5a09bed Add outline.scm for Elm 2023-07-24 00:58:59 -07:00
Quinn Wilton c546e9fefb Add tree-sitter-glsl 2023-07-23 22:22:11 -07:00
Quinn Wilton a227a38a35 Add tree-sitter-elm 2023-07-23 22:22:11 -07:00
Max Brunsfeld 511307ebe5 Fix pathspec in staged_statuses
Enable non-literal matching so that directory paths match
all files contained within them.
2023-07-23 21:36:29 -07:00
Quinn Wilton 7926770f1a Add tree-sitter-nix 2023-07-23 17:24:50 -07:00
Mikayla Maki d06a2775b8 Add drag end events
Fix left dragging cascade
WIP: Implement right dragging, WIP: use drag end events to set and reset state around initial flex orientation
2023-07-23 13:28:30 -07:00
Mikayla Maki 499599ab50 WIP: cascade split resizes 2023-07-23 01:20:25 -07:00
Mikayla Maki 5541447694 Refactor resize handle code to be amenable to cascading resizes 2023-07-22 21:48:45 -07:00
Max Brunsfeld ab164495c8 Fix filtering of staged statuses 2023-07-22 17:53:58 -07:00
Max Brunsfeld 2e1af62222 Rely on git status for any paths not matching the git index 2023-07-22 17:47:36 -07:00
Kirill Bulatov 58c3c412d1 Focus project panel on directory select 2023-07-23 00:12:25 +03:00
Max Brunsfeld bf9410bbb7 Optimize full file status via passing in known file mtime 2023-07-22 11:53:26 -07:00
Max Brunsfeld 143e0d5e8b Compute unstaged git status separately, to take advantage of our cached file mtimes 2023-07-21 17:58:43 -07:00
Max Brunsfeld da4f477e1f Only fetch statuses for changed paths 2023-07-21 17:08:31 -07:00
Max Brunsfeld 956a700cb8 Don't call git status when ignored files change 2023-07-21 17:05:42 -07:00
Kirill Bulatov ce61715f02 Open paths starting with ~ from terminal click 2023-07-22 01:34:25 +03:00
Conrad Irwin 92115eb5bf Add support for adding/removing status items 2023-07-21 16:06:14 -06:00