Commit graph

11827 commits

Author SHA1 Message Date
Joseph T. Lyons
9272e9354a
Add operation for opening channel notes in channel-based calls (#2933)
Release Notes:

- N/A
2023-09-05 17:24:19 -04:00
Joseph T. Lyons
653d4976cd Add operation for opening channel notes in channel based calls 2023-09-05 17:13:09 -04:00
Kyle Caverly
49af2874bb
Eager background indexing (#2928)
This PR ships a series of optimizations for the semantic search engine.
Mostly focused on removing invalid states, optimizing requests to
OpenAI, and reducing token usage.

Release Notes (Preview-Only):

- Added eager incremental indexing in the background on a debounce.
- Added a local embeddings cache for reducing redundant calls to OpenAI.
- Moved to an Embeddings Queue model which ensures optimal batch sizes
at the token level, and atomic file & document writes.
- Adjusted OpenAI Embedding API requests to use provided backoff delays
during Rate Limiting.
- Removed flush races between parsing files step and embedding queue
steps.
- Moved truncation to parsing step reducing the probability that OpenAI
encounters bad data.
2023-09-05 13:15:54 -04:00
Conrad Irwin
c2c04616b4
vim S (#2929)
Release Notes:
- vim: Add `S` to substitute line ([#1897](https://github.com/zed-industries/community/issues/1897)).
2023-09-05 09:39:08 -06:00
Conrad Irwin
27143e2fb4
Split ContextMenu actions (#2931)
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.
2023-09-05 09:38:08 -06:00
Nate Butler
4855063151
Fix cropped search filters (#2932)
Because of the way we set up tools that add rows inside the toolbar it
is complicated to tighten up the spacing inside the toolbar.

This PR just reverts the changes I made previously. We'll need to
properly add rows below the toolbar instead of rendering search inside
of it to have non-equal height tools be able to descend from it.

Release Notes:

- Preview – Fixed an issue where search filters were partially cut off
in the UI.
2023-09-05 10:49:38 -04:00
Nate Butler
e2479a7172 Fix cropped search filters 2023-09-05 10:24:49 -04:00
Kirill Bulatov
42976b6014
Add LSP logs clear button (#2913)
LSP logs tend to accumulate and hinder performance (e.g. search is
slower over 20 MB of json files).
Add a way to clear them.

Release Notes:

- N/A
2023-09-05 12:11:35 +03:00
Conrad Irwin
56db21d54b Split ContextMenu actions
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.
2023-09-02 21:04:19 -06:00
Conrad Irwin
55dd0b176c Use consistent naming 2023-09-02 19:52:18 -06:00
Conrad Irwin
3a7b551e33 Fix tests with no neovim 2023-09-02 19:43:05 -06:00
KCaverly
8dbc0fe033 update pragma settings for improved database performance 2023-09-01 17:07:20 -04:00
Conrad Irwin
da16167db1
Fix find_{,preceding}boundary to work on buffer text (#2912)
Fixes movement::find_boundary to work on the buffer, not on display
points.

The user-visible impact is that the "until end of word" commands now
correctly go to the end of a soft-wrapped word (instead of to the first
character of the wrapped line).

It also fixes a bug where the callback passed to these methods was
called with the content of inlay hints.

[[PR Description]]

Release Notes:

- fix finding end of word on soft-wrapped lines
2023-09-01 12:14:16 -07:00
Conrad Irwin
af12977d17 vim: Add S to substitute line
For zed-industries/community#1897
2023-09-01 13:13:59 -06:00
Conrad Irwin
aa7b65bbaf Merge branch 'main' into vim-softwrap-word 2023-09-01 12:23:56 -06:00
Conrad Irwin
0e41c6c5b3
Fix accidental visual selection on scroll (#2927)
Release Notes:

- vim: Fix bug where scrolling vertically would sometimes enter visual
mode
2023-09-01 10:58:10 -07:00
Conrad Irwin
6d7949654b Fix accidental visual selection on scroll
As part of this fix partial page distance calculations to more closely
match vim.
2023-09-01 11:14:27 -06:00
KCaverly
54235f4fb1 updated embeddings background delay to 5 minutes
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:04:09 -04:00
KCaverly
e86964eb5d optimize insert file in vector database
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:01:37 -04:00
KCaverly
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
KCaverly
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
Antonio Scandurra
2bf417fa45
Avoid duplicate entries in inline assistant's prompt history (#2926)
Release Notes:

- Improved the inline assistant's prompt history to avoid including the
same entry multiple times. (preview-only)
2023-09-01 09:20:14 +02:00
Antonio Scandurra
d868ec920f Avoid duplicate entries in inline assistant's prompt history 2023-09-01 09:15:29 +02:00
Max Brunsfeld
7bcc59c8a5
Remove the concept of a local clock; use lamport clocks for all per-replica versioning (#2924)
### Background

Currently, our CRDT uses three different types of timestamps:

| clock type | representation | purpose |
|-----|----------------|----------|
| `Local` | replica id + u32 | uniquely identifies operations |
| `Lamport` | replica id + u32 | provides a consistent total ordering
for all operations |
| `Global` | N local clocks | fully defines the partial ordering between
all concurrent operations |

All text operations include *each* type of timestamp. And every
`Fragment` in a buffer's fragment tree contains both a local and a
lamport timestamp.

### Change

An operation can be uniquely identified by its lamport timestamp, so we
don't really need a concept of a local timestamp. In this PR, I've
removed the concept of a local timestamp. Version vectors
(`clock::Global`) now store vectors of *lamport* timestamps.

Eliminating local timestamps reduces the memory footprint of a buffer by
four bytes per fragment, reduces the size of our `UpdateBuffer` RPC
messages, and reduces the amount of data we need to store in our
database for channel buffers. It also makes our CRDT a bit easier to
understand, IMO, because there is now only one scalar value that we
increment per replica.

It's possible I'm missing something here though. @as-cii, @nathansobo
it'd be good to get your 👀
2023-08-31 16:47:08 -07:00
Max Brunsfeld
1e60454643 Renumber protobuf fields, bump protocol version 2023-08-31 16:31:26 -07:00
Max Brunsfeld
03f0365d4d Remove local timestamps from CRDT operations
Use lamport timestamps for everything.
2023-08-31 16:23:06 -07: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
Max Brunsfeld
00aae5abee
Assistant: propagate cancel action if there is no pending inline assist (#2923)
Release Notes:

- Fixed a bug where modals could not be dismissed with `escape` when
certain views were active in the workspace (preview only).
2023-08-31 11:17:09 -07:00
Max Brunsfeld
eecd4e39cc Propagate Cancel action if there is no pending inline assist 2023-08-31 11:09:36 -07: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 Scandurra
2503d54d19 Rename Sha1 to DocumentDigest
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 18:00:36 +02:00
Antonio Scandurra
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
Kirill Bulatov
fe2300fdaa Style the clear button better, add border to button constructor options 2023-08-31 18:31:21 +03:00
Kirill Bulatov
7b5974e8e9 Add LSP logs clear button 2023-08-31 18:31:21 +03:00
Antonio Scandurra
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 Scandurra
35440be98e Abstract away how database transactions are executed
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 16:54:11 +02:00
Kirill Bulatov
ddc6214216
Tailwind autocomplete (#2920)
Release Notes:
- Added basic Tailwind CSS autocomplete support
([#746](https://github.com/zed-industries/community/issues/746)).
2023-08-31 16:55:46 +03:00
Kirill Bulatov
5731ef51cd Fix plugin LSP adapter intefrace 2023-08-31 15:32:24 +03:00
Kirill Bulatov
e682db7101 Route completion requests through remote protocol, if needed 2023-08-31 15:22:13 +03:00
Kirill Bulatov
5bc5831032 Fix wrong assertion in the test 2023-08-31 14:31:43 +03:00
Kirill Bulatov
292af55ebc Ensure all client LSP queries are forwarded via collab 2023-08-31 14:29:37 +03:00
Kirill Bulatov
fff385a585 Fix project tests 2023-08-31 13:01:53 +03:00
Kirill Bulatov
fad595dca6
Use ctrl-: instead of ctrl-shift-: for inlay hints toggling (#2921)
The latter is not possible to press in Zed, since `:` is typed as
`shift-;` with typical US keyboard layouts.

In the end, it's the same buttons you have to press to toggle the inlay
hints, but working this time.

Release Notes:

- N/A
2023-08-31 12:10:45 +03:00
Kirill Bulatov
9e12df43d0 Post-rebase fixes 2023-08-31 11:53:46 +03:00
Kirill Bulatov
897adb67c5
Log language server stderr output in server logs (#2918)
<img width="1728" alt="Screenshot 2023-08-31 at 01 07 11"
src="https://github.com/zed-industries/zed/assets/2690773/537a18d6-59bf-4a77-896f-fc2cb6dc7fe8">

Line by line, we print stderr to help with debugging and servers that
log into stderr.

Release Notes:

- N/A
2023-08-31 11:13:45 +03:00
Kirill Bulatov
18efc0d5e5 Fix the tests, by not requiring stderr for fake servers 2023-08-31 11:07:37 +03:00
Kirill Bulatov
af665cc3d2 Use ctrl-: instead of ctrl-shift-: for inlay hints toggling
The latter is not posible to press in Zed, since `:` is typed as
`shift-;` with typical US keyboard layouts.

In the end, it's the same buttons you have to press to toggle the inlay
hints, but working this time.
2023-08-31 10:43:29 +03:00
Julia
ff3865a4ad Merge branch 'main' into multi-server-completions-tailwind 2023-08-30 22:58:37 -04:00
Julia
529adb95a1 Scope Tailwind in JS/TS to within string
In some situations outside JSX elements Tailwind will never
respond to a completion request, holding up the tsserver completions.

Only submit the request to Tailwind when we wouldn't get tsserver
completions anyway and don't submit to Tailwind when we know we won't
get Tailwind completions

Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
2023-08-30 21:14:39 -04:00