Commit Graph
11670 Commits
Author SHA1 Message Date
Antonio Scandurra de0f53b39f Ensure SemanticIndex::search waits for indexing to complete 2023-09-06 11:40:59 +02:00
Antonio Scandurra c802680084 Clip ranges returned by SemanticIndex::search
The files may have changed since the last time they were parsed, so the
ranges returned by `SemanticIndex::search` may be out of bounds.
2023-09-06 09:41:51 +02:00
Antonio ScandurraandKyle Caverly 95b72a73ad Re-index project when a worktree is registered
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 17:17:58 +02:00
Antonio ScandurraandKyle Caverly 3c70b127bd Simplify SemanticIndex::index_project
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:54:48 +02:00
Antonio ScandurraandKyle Caverly 6b1dc63fc0 Retrieve embeddings based on pending files
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:16:12 +02:00
Antonio ScandurraandKyle Caverly 7b5a41dda2 Move retrieval of embeddings from the db into reindex_changed_files
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:09:24 +02:00
Antonio Scandurra d4cff68475 🎨 2023-09-05 15:52:36 +02:00
KCaverly 8dbc0fe033 update pragma settings for improved database performance 2023-09-01 17:07:20 -04:00
KCaverlyandMax 54235f4fb1 updated embeddings background delay to 5 minutes
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:04:09 -04:00
KCaverlyandMax e86964eb5d optimize insert file in vector database
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:01:37 -04:00
KCaverlyandAntonio 524533cfb2 flush embeddings queue when no files are parsed for 250 milliseconds
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-01 11:24:08 -04:00
KCaverlyandAntonio c4db914f0a move embeddings queue to use single hashmap for all changed paths
Co-authored-by: Antonio <me@as-cii.com>
2023-09-01 08:59:25 -04:00
KCaverly afa59abbcd WIP: work towards wiring up a embeddings_for_digest hashmap that is stored for all indexed files 2023-08-31 16:42:39 -04:00
KCaverly 50cfb067e7 fill embeddings with database values and skip during embeddings queue 2023-08-31 13:19:17 -04:00
Antonio Scandurra 220533ff1a WIP 2023-08-31 18:00:57 +02:00
Antonio ScandurraandKyle Caverly 2503d54d19 Rename Sha1 to DocumentDigest
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 18:00:36 +02:00
Antonio ScandurraandKyle Caverly 3001a46f69 Reify Embedding/Sha1 structs that can be (de)serialized from SQL
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 17:55:43 +02:00
Antonio ScandurraandKyle Caverly c763e728d1 Write to and read from the database in a transactional way
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 16:59:54 +02:00
Antonio ScandurraandKyle Caverly 35440be98e Abstract away how database transactions are executed
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 16:54:11 +02:00
KCaverly 7d4d6c871b fix bug for truncation ensuring no valid inputs are sent to openai 2023-08-30 17:42:16 -04:00
KCaverlyandMax 5abad58b0d moved semantic index to use embeddings queue to batch and managed for atomic database writes
Co-authored-by: Max <max@zed.dev>
2023-08-30 16:58:45 -04:00
KCaverlyandMax 76ce52df4e move queuing to embedding_queue functionality and update embedding provider to include trait items for max tokens per batch"
Co-authored-by: Max <max@zed.dev>
2023-08-30 16:01:28 -04:00
KCaverly 9781047156 move truncation to parsing step leveraging the EmbeddingProvider trait 2023-08-30 12:13:26 -04:00
KCaverly 76caea80f7 add should_truncate to embedding providers 2023-08-30 11:58:45 -04:00
KCaverly e377ada1a9 added token count to documents during parsing 2023-08-30 11:05:46 -04:00
KCaverlyandMax a7e6a65deb reindex files in the background after they have not been edited for 10 minutes
Co-authored-by: Max <max@zed.dev>
2023-08-29 17:14:44 -04:00
KCaverly 4f8b95cf0d add proper handling for open ai rate limit delays 2023-08-29 15:44:51 -04:00
Conrad Irwin dd577074f2 vim: Fix relative motions (#2888)
This changes vim motions to be relative to fold lines, not display
lines, to match the behaviour of vim.

This is necessary for relative line numbers to make sense (as the most
important thing is you can do `3j` to get th e line that is numbered 3).


Release Notes:

- vim: Fix handling of motions when `soft_wrap` is enabled in zed. Like
in vim `j,k,up,down,$,^,0,home,end` will all now navigate in file
coordinates not display coordinates.
- vim: Add `g {j,k,up,down,$,^,0,home,end}` to navigate in display
coordinates.
- vim: Add `z o` and `z c` to open and close folds.
- vim: Add `z f` in visual mode to fold selection.

Note: this may be a jarring change if you're grown used to the current
behaviour of `j` and `k`. You can make the issue less acute by setting
`"soft_wrap":"none"` in your settings; or you can manually copy the
bindings for `g j` to the binding for `j` (etc.) in your keymap.json to
preserve the existing behaviour.
2023-08-29 11:19:37 -07:00
Kirill Bulatov 859ac1e97f Add a default binding for toggling inlay hints (#2910)
Release Notes:

- Add a `"ctrl-shift-:": "editor::ToggleInlayHints"` default binding
2023-08-29 21:09:46 +03:00
Kirill Bulatov bbb222b6fc Add a default binding for toggling inlay hints 2023-08-29 20:56:26 +03:00
Max Brunsfeld 7ae5ee699f Debounce code action and document highlight requests (#2905)
Lately, I've been finding Rust-analyzer unusably slow when editing large
files (like `editor_tests.rs`, or `integration_tests.rs`). When I
profile the Rust-analyzer process, I see that it sometimes saturates up
to 10 cores processing a queue of code actions requests.

Additionally, sometimes when collaborating on large files like these, we
see long delays in propagating buffer operations. I'm still not sure why
this is happening, but whenever I look at the server logs in Datadog, I
see that there are remote `CodeActions` and `DocumentHighlights`
messages being processed that take upwards of 30 seconds. I think what
may be happening is that many such requests are resolving at once, and
the responses are taking up too much of the host's bandwidth.

I think that both of these problems are caused by us sending way too
many code action and document highlight requests to rust-analyzer. This
PR adds a simple debounce between changing selections and making these
requests.

From my local testing, this debounce makes Rust-analyzer *much* more
responsive when moving the cursor around a large file like
`editor_tests.rs`.
2023-08-29 09:30:36 -07:00
Piotr Osiewicz ea0e5e880e chore: Use IsTerminal trait instead of relying on libc to detect stdout being a terminal (#2908)
IsTerminal was added in 1.70.

Release Notes:
- N/A
2023-08-29 15:56:50 +02:00
Nathan Sobo 396558755e Testing: Update build script to make local testing easier (#2903)
* `script/bundle -l` will only build for the current architecture and
skip DMG creation. It will also copy to `/Applications`.
* `script/bundle -l "My Bundle"` will name the bundle after your
provided name.
* Passing `-f` will overwrite. Passing `-o` will also open the
application.
2023-08-29 07:07:35 -06:00
Kirill Bulatov 1c6964ee96 Trim off surrounding [] when parsing terminal hover links (#2906)
Follow-up of https://github.com/zed-industries/zed/pull/2899

Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.

Release Notes:

- N/A
2023-08-29 10:49:33 +03:00
Kirill Bulatov 7c498feb85 Trim off surrounding [] when parsing terminal hover links
Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.
2023-08-29 10:40:20 +03:00
Max Brunsfeld 791f6cf9e7 Update some tests to reflect code action debouncing 2023-08-28 17:45:32 -07:00
Max Brunsfeld 5142049515 Demote some Peer logging to trace level 2023-08-28 17:45:19 -07:00
Max Brunsfeld 89eab78cf7 Debounce document highlight and code actions requests 2023-08-28 15:48:55 -07:00
Nathan Sobo a1d2ae3095 Add -l option to build script
When you pass -l, we build for the local architecture only and copy the
resulting app bundle to /Applications. You can provide a bundle name as
an optional argument.
2023-08-28 13:32:30 -06:00
Piotr Osiewicz 9aad602af7 chore: Bump memchr to 2.6.0 (#2902)
Fresh off the press, memchr 2.6.0 adds vector search routines for
aarch64. That directly improves our search performance for both text and
regex searches. Per BurntSushi's claims, the simple string searches in
ripgrep got ~2 times faster (more details available in
https://github.com/BurntSushi/memchr/pull/129).

Release Notes:

- N/A
2023-08-28 18:20:10 +02:00
Piotr Osiewicz 07b9c6c302 language: Make Buffer::new take an explicit ID (#2900)
See Linear description for the full explanation of the issue. This PR is
mostly a mechanical change, except for the one case where we do pass in
an explicit `next_id` instead of `model_id` in project.rs.

Release Notes:
- Fixed a bug where some results were not reported in project search in
presence of unnamed buffers.
2023-08-28 11:51:50 +02:00
Kirill Bulatov 81a5043b61 Allow [ and ] symbols in terminal links (#2899)
Deals with https://github.com/zed-industries/community/issues/1865

` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.

Release Notes:

- Allow `[` and `]` symbols in terminal links
2023-08-28 11:40:52 +03:00
Kirill Bulatov 506ec01df3 Allow [ and ] symbols in terminal links
` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.
2023-08-28 11:19:57 +03:00
Kirill Bulatov 3bfe78b1df Use proper property names for inlay hint resolve capabilities 2023-08-28 00:27:59 +03:00
Kirill Bulatov 805ae1be80 More inlay hover fixes (#2898)
Better handle edge cases around cmd+hover around inlays:
* distinguish between same text anchors' trigger: inlay and text
triggers can have the same anchor, but are different
* forbid cmd+click on inlay that has no label part with location
selected
* properly omit throttled inlays that are outside of the visible range

Release Notes:

- N/A
2023-08-27 19:57:31 +03:00
Kirill Bulatov 38da2a587a Fix the tests 2023-08-27 19:41:15 +03:00
Kirill Bulatov 81e70905bb Do not allow cmd+click in invalid inlay context 2023-08-27 19:12:32 +03:00
Kirill Bulatov 693e91f335 Properly compare previous hover trigger point when hover changes 2023-08-27 18:23:40 +03:00
Kirill Bulatov dad64edde1 Better highlight hint ranges 2023-08-27 15:14:45 +03:00
Kirill Bulatov 5cf51211b6 Use better names, simplify 2023-08-27 00:01:31 +03:00