Commit graph

22003 commits

Author SHA1 Message Date
CharlesChen0823
072513f59f
outline_panel: Fix j and k not working in outline panel filter (#17293)
Closes #17248

Release Notes:

- Fixed outline panel filter not working for certain Vim bindings
([#17248](https://github.com/zed-industries/zed/issues/17248))
2024-09-04 11:27:07 +02:00
Bennet Bo Fenner
5b0d64890f
assistant: Allow accepting terminal inline assist suggestion without executing command (#17299)
This adds a new button that on click, accepts the suggestion but does
not run the generated command.


https://github.com/user-attachments/assets/426b0ff3-8e19-435a-aa7f-89e062aefd4c

@danilo-leal @iamnbutler Any ideas on how to make both options
discoverable without having an extra button?

Release Notes:

- Added a way to accept terminal inline assist suggestions without
executing them

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
2024-09-04 10:54:32 +02:00
Conrad Irwin
3bdc35f1ac
Update typescript docs (#17321)
Release Notes:

- N/A

---------

Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
2024-09-04 09:16:55 +02:00
Mathias
be21169a95
vtsls: Enable Inlay Hints by default for JavaScript #17232 (#17334)
Closes #17232

Release Notes:

- Fixed inlay hints not being enabled for JavaScript when using the
`vtsls` language server. (They were enabled by default for TypeScript)
2024-09-04 08:58:16 +02:00
Fernando Tagawa
3cffcacf52
cpp: Add concepts to outline (#17329)
Release Notes:

- N/A

![concepts](https://github.com/user-attachments/assets/d21de27c-09e9-48bb-9af5-88ea0b73d3db)
2024-09-04 01:41:00 +02:00
Marshall Bowers
e81b484bf2
assistant: Add tool registry (#17331)
This PR adds a tool registry to hold tools that can be called by the
Assistant.

Currently we just have a `now` tool for retrieving the current datetime.

This is all behind the `assistant-tool-use` feature flag which currently
needs to be explicitly opted-in to in order for the LLM to see the
tools.

Release Notes:

- N/A
2024-09-03 19:14:36 -04:00
Marshall Bowers
c2448e1673
assistant: Insert creases for tool uses (#17330)
This PR makes it so we create creases for each of the tool uses in the
context editor.

<img width="1290" alt="Screenshot 2024-09-03 at 5 37 33 PM"
src="https://github.com/user-attachments/assets/94e943fd-3f05-4bc4-9672-94bff42ec500">

Release Notes:

- N/A
2024-09-03 17:52:52 -04:00
Conrad Irwin
be657377a2
Make LspStore more responsible (#17318)
It now handles more of the buffer language work that project used to
have to.

Release Notes:

- N/A
2024-09-03 14:14:07 -06:00
Marshall Bowers
452272e5df
assistant: Stream tool uses as structured data (#17322)
This PR adjusts the approach we use to encoding tool uses in the
completion response to use a structured format rather than simply
injecting it into the response stream as text.

In #17170 we would encode the tool uses as XML and insert them as text.
This would require then re-parsing the tool uses out of the buffer in
order to use them.

The approach taken in this PR is to make `stream_completion` return a
stream of `LanguageModelCompletionEvent`s. Each of these events can be
either text, or a tool use.

A new `stream_completion_text` method has been added to `LanguageModel`
for scenarios where we only care about textual content (currently,
everywhere that isn't the Assistant context editor).

Release Notes:

- N/A
2024-09-03 15:04:51 -04:00
Brian J. Cardiff
132e8e8064
docs: Fix delayed git inline blame example (#17320)
Fixes docs example. Otherwise the inline git blame is fully disabled
instead of delayed.

Release Notes:

- N/A
2024-09-03 14:04:39 -04:00
Marshall Bowers
5a94e0fe3b
zed: Sort dependencies in Cargo.toml (#17317)
This PR sorts the dependencies in the `zed` crate's `Cargo.toml`, as
they had gotten unsorted.

Release Notes:

- N/A
2024-09-03 13:52:57 -04:00
Marshall Bowers
3d83903caa
gpui: Update "Getting Started" to include macOS setup (#17316)
This PR updates the GPUI docs to mention how to install XCode for Metal
support.

Supersedes https://github.com/zed-industries/zed/pull/16820.

Release Notes:

- N/A
2024-09-03 13:26:11 -04:00
Jason Lee
2730d08ff0
docs: Fix shell setting doc (#17208)
Release Notes:

- N/A


03fd5c90d8/crates/project/src/project.rs (L5210)


03fd5c90d8/crates/task/src/lib.rs (L266)
2024-09-03 13:19:42 -04:00
Marshall Bowers
12341e518e
gpui: Add svg example (#17315)
This PR adds an example for working with SVGs.

Release Notes:

- N/A
2024-09-03 13:15:37 -04:00
Conrad Irwin
30cfff0402
Document PRIME config setting on linux (#17311)
Release Notes:

- N/A
2024-09-03 10:16:51 -06:00
Marshall Bowers
30056254f3
collab: Add GET /models endpoint to LLM service (#17307)
This PR adds a `GET /models` endpoint to the LLM service.

This endpoint returns the models that the authenticated user has access
to.

This is the first step towards populating the models for the hosted
service from the server.

Release Notes:

- N/A
2024-09-03 11:41:32 -04:00
renovate[bot]
122f01f9e5
Update Rust crate async-tar to 0.5.0 (#17304)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [async-tar](https://redirect.github.com/dignifiedquire/async-tar) |
workspace.dependencies | minor | `0.4.2` -> `0.5.0` |

---

### Release Notes

<details>
<summary>dignifiedquire/async-tar (async-tar)</summary>

###
[`v0.5.0`](https://redirect.github.com/dignifiedquire/async-tar/compare/v0.4.2...v0.5.0)

[Compare
Source](https://redirect.github.com/dignifiedquire/async-tar/compare/v0.4.2...v0.5.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 10:13:17 -04:00
bestgopher
02e96821eb
extension: Delete working directory on uninstall (#17127)
Closes #17126 

Release Notes:

- N/A
2024-09-03 09:56:47 -04:00
Bennet Bo Fenner
32db140b95
assistant: Fix inline assist not restarting transformation after pressing retry (#17301)
Release Notes:

- Fixed an issue where the inline assist would be dismissed even when
instructed to regenerate the transformation after an error
2024-09-03 14:33:31 +02:00
Bennet Bo Fenner
64a8b14e49
assistant: Use code label for tab slash command completions (#17296)
This adopts the same approach we use for the `/file` command, which has
the benefit that, even if the path is long, the filename is always
visible.

| Before | After |
|--------|-------|
| <img width="564" alt="image"
src="https://github.com/user-attachments/assets/a43574af-e4c1-4f11-be70-49d6020557c4">
| <img width="567" alt="image"
src="https://github.com/user-attachments/assets/4db383b9-5039-4f35-b821-e1cc1a4ea7e8">
|


Release Notes:

- Improved UX of tab slash command completions
2024-09-03 12:32:53 +02:00
Max Brunsfeld
b41ddbd018
Have models indicate code locations in workflows using textual search, not symbol names (#17282)
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
2024-09-02 18:20:05 -07:00
Kyle Kelley
c63c2015a6
Revert accidental one theme changes (#17273)
Co-authored-by: Peter Tripp <peter@zed.dev>
2024-09-02 14:48:23 -04:00
Patka
7844b9f38e
php: Add more keywords (#17243)
This list should now be complete according to the official list at
https://www.php.net/manual/en/reserved.keywords.php
2024-09-02 18:30:02 +00:00
Peter Tripp
6b8bdcfe72
Add jsonschema link to bundled themes (#17253) 2024-09-02 08:25:59 -04:00
Piotr Osiewicz
b6cf576d66
project panel: Always show paste in context menu (and grey it out when it's disabled) (#17262)
![image](https://github.com/user-attachments/assets/df471567-bdb9-494b-96a5-84d1da47583f)

Release Notes:

- "Paste" is now always shown in project panel context menu.
2024-09-02 13:44:21 +02:00
Rami Pellumbi
b578be5c77
assistant: Fix "New Context" behavior when focused in editor (#17106)
Closes #16676

Release Notes:

- assistant: fix `New Context` opening a new file when focused in the
editor pane.
2024-09-02 12:53:35 +02:00
Piotr Osiewicz
1c6dbe02ae
editor: Do not lay out task indicators outside of the viewport (#17250)
A friend of mine shared a Rust file with me that crashed Zed
consistently due to Arena space exhaustion. It is a dump of a proc macro
output that generates tests (among other things).
TL;DR: we were always laying out all run indicators, irrespective of
current scroll position. In his case, we were redundantly rendering
about 3k elements.
Obviously, this doesn't just fix the problems with Arena space
exhaustion - it should also improve perf in files with many runnables.

Release Notes:

- Improved editor performance in presence of many runnable indicators in
the gutter.
2024-09-02 02:07:34 +02:00
Kirill Bulatov
d682594c4a
Improve outline panel performance (#17183)
Part of https://github.com/zed-industries/zed/issues/14235

* moved search results highlight calculation into the background thread,
with highlight-less representation as a fallback
* show only a part of the line per search result, stop uniting them into
a single line if possible, always trim left trailing whitespaces
* highlight results in batches
* better cache all search result data, related to rendering
* add test infra and fix folding-related issues
* improve entry displays when multi buffer has a buffer search (find
references one has)
* fix cloud notes not showing search matches

Release Notes:

- Improved outline panel performance
2024-09-02 01:46:16 +03:00
Peter Tripp
16942610cb
examples: Update slash-commands-example readme (#17204)
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
2024-09-01 14:02:14 -04:00
Max Brunsfeld
b8e6098f60
Consolidate logic for protobuf message handling between ssh and web socket clients (#17185)
This is a refactor to prepare for adding LSP support in SSH remote
projects.

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>
2024-09-01 10:14:21 -07:00
Peter Tripp
144793bf16
legal: Correct privacy policy (#17238)
- Correct Privacy policy to state `"Zed does not store or train on your requests without consent."`
2024-09-01 11:33:06 -04:00
Marshall Bowers
54ac963bcd
client: Ensure query string values are URL-encoded (#17235)
This PR fixes an issue where the query string values weren't URL-encoded
when authenticating as an admin in development.

Release Notes:

- N/A
2024-09-01 09:53:34 -04:00
Sami Samhuri
b386b6c237
Allow Zed to run under multiple user accounts simultaneously (#14143)
Closes #4607

This is an attempt to enable Zed to run under multiple user accounts on
the same Mac, because it's a blocker to me really giving Zed a fair shot
at being my primary editor.

According to some helpful info from @ForLoveOfCats in #4607 the main
reason why this doesn't work is because Zed is using a Unix socket or
maybe a TCP socket with a hard-coded path and/or port. To me it looks
like it's a TCP socket so I tried changing that code in here, but I'm
stuck at trying to test it out because running `target/debug/zed` or
`target/release/zed` seems to behave differently than running an actual
app bundle. I had no luck copying the binary over to
/Applications/Zed.app/Contents/MacOS/zed because it can't find
WebRTC.framework which resides at a different relative path in the app
bundle.

If this seems like a desirable change to the core team then I'm looking
for some guidance on how to build an app bundle or otherwise test out
this change, or a nudge in the correct direction if I'm way off base
with my current approach.

Release Notes:

- Added multiuser support for up to 100 users on the same machine.

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
2024-09-01 02:46:14 +02:00
Piotr Osiewicz
837639535c
rust: Improve syntax highlighting of methods in completions menu (#17184)
What do all of the syntax-highlighted methods have in common in this
screenshot?
<img width="597" alt="image"
src="https://github.com/user-attachments/assets/7e3cced5-1857-44ca-8000-d2aa3c485726">
They're all trait methods. This is an unfortunate byproduct of how we
parse function signatures and handle details of completions. Other
non-syntax highlighted entries could get the highlighting for free, if
not for the fact that they lack a bit of data that is available for
trait methods.

This PR fixes this problem.
<img width="597" alt="image"
src="https://github.com/user-attachments/assets/065dc929-be00-46fc-a7c3-e63ed7ad6a0a">

Release Notes:

- Improved syntax highlighting of Rust methods in completions menu
2024-09-01 00:24:29 +02:00
it-a-me
6a9820e637
scripts: Fix bundle-linux when RUSTFLAGS is unset (#17218)
The install-linux script fails to build when the RUSTFLAGS environment
variable is not set. Bash attempts to expand an empty variable and fails
due to the prior set -u

Closes #17217

Release Notes:
- N/A
2024-08-31 23:13:41 +03:00
Niklas Fiekas
c9b4c8c498
Let script/bundle-linux preserve RUSTFLAGS (#17202)
Example usage:

    RUSTFLAGS="--cfg gles" ./script/install-linux

Release Notes:
- N/A
2024-08-31 21:49:58 +03:00
Marshall Bowers
03d8e54fd4
Revert "lsp: Watch paths outside of worktrees at language servers request (#17173) (#17206)
This PR reverts #17173, as it introduced a segfault when opening any
Gleam project and the language server starts up.

This reverts commit a850731b0e.

Release Notes:

- N/A
2024-08-31 11:17:01 -04:00
Piotr Osiewicz
a850731b0e
lsp: Watch paths outside of worktrees at language servers request (#17173)
Context: https://x.com/fasterthanlime/status/1819120238228570598

Up to this PR:
- We were not watching paths outside of a worktree when language server
requested it.
- We expected GlobPattern used for file watching to be always rooted at
the worktree root.

'1 mattered for observing global files (e.g. global RA config) and both
points had impact on "monorepos".
Let's picture the following scenario:
You're working on a Rust project that has two crates: bin and lib crate:
```
my-rust-project/
  bin-crate/
  lib-crate/
```
Up to this PR, making changes like changing field visibility in
lib-crate **was not reflected** in bin-crate until RA was restarted. RA
for bin-crate asked us to watch lib-crate. Now, depending on if you had
this project open as:
- a project with one worktree rooted at my-rust-project:
- due to '2, we never noticed that we have to notify RA instance for
bin-crate about changes in lib-crate.
- a project with two worktrees (bin-crate and lib-crate):
- due to '1 (as lib-crate is not within bin-crate's worktree), we once
again missed the fact that we have to watch for changes in lib-crate.

This PR solves this by introducing a side-channel - we just store fs
watchers for abs paths at the Project level. Worktree changes handling
is left relatively untouched - as it's used for other changes besides
LSP change notifying, I've figured to better leave it as is, as right
now we have 1 worktree change watcher; if we were to change it, we'd
have `(language server) + 1` watchers per worktree, which seems.. pretty
horrid.

What's the end effect? At the very least fasterthanlime should be a tad
happier; in reality though, I expect it to have some impact on LS
reliability in monorepo setups.

TODO
- [x] Wire through FileChangeType into `fs::watch` interface.

Release Notes:

- Improved language server reliability in multi-worktree projects and
monorepo. We now notify the language server more reliably about which
files have changed.
2024-08-31 01:32:33 +02:00
Conrad Irwin
d2cb45e9bb
Revert "Make selection more consistent across languages (#17084)" (#17175)
This reverts commit 7db8d80c30.(#17084)

Release Notes:

- N/A
2024-08-30 18:01:39 -04:00
Conrad Irwin
75d4c7981e
Extract an LspStore object from Project, to prepare for language support over SSH (#17041)
For ssh remoting lsps we'll need to have language server support
factored out of project.

Thus that begins

Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-08-30 14:36:38 -07:00
Marshall Bowers
7c57ffafbd
Update .mailmap (#17182)
This PR updates the `.mailmap` file to merge some more commit authors.

Release Notes:

- N/A
2024-08-30 17:34:05 -04:00
Marshall Bowers
bb9f2f8713
collab: Require github_user_created_at at ingress points (#17180)
This PR makes the `github_user_created_at` field required at ingress
points into collab.

In practice we already have this value passed up, this change just makes
that explicit.

This is a precursor to making it required in the database.

Release Notes:

- N/A
2024-08-30 17:09:59 -04:00
Marshall Bowers
9a8c301a7d
collab: Set github_user_created_at when seeding GitHub users (#17178)
This PR updates the seed script to set the `github_user_created_at`
value for each GitHub user.

Release Notes:

- N/A
2024-08-30 16:40:13 -04:00
Peter Tripp
58c0f39714
OpenAI: Fix GPT-4. Only include max_tokens when max_output_tokens provided (#17168)
- Fixed GPT-4 breakage (incorrect `max_output_tokens` handling).
2024-08-30 14:57:50 -04:00
Conrad Irwin
ee6ec50b15
Fix - being a word character for selections (#17171)
Co-Authored-By: Mikayla <mikayla@zed.dev>
Co-Authored-By: Nate <nate@zed.dev>

Closes #15606
Closes #13515

Release Notes:

- Fixes `-` being considered a word character for selections in some
languages

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Nate <nate@zed.dev>
2024-08-30 12:34:23 -06:00
Marshall Bowers
c0731bfa28
assistant: Fix formatting in settings (#17172)
This PR fixes some formatting issues in `assistant_settings.rs` that
were being caused by long lines.

Release Notes:

- N/A
2024-08-30 14:26:34 -04:00
Marshall Bowers
68ea661711
assistant: Add foundation for receiving tool uses from Anthropic models (#17170)
This PR updates the Assistant with support for receiving tool uses from
Anthropic models and capturing them as text in the context editor.

This is just laying the foundation for tool use. We don't yet fulfill
the tool uses yet, or define any tools for the model to use.

Here's an example of what it looks like using the example `get_weather`
tool from the Anthropic docs:

<img width="644" alt="Screenshot 2024-08-30 at 1 51 13 PM"
src="https://github.com/user-attachments/assets/3614f953-0689-423c-8955-b146729ea638">

Release Notes:

- N/A
2024-08-30 14:05:55 -04:00
Marshall Bowers
ea25d438d1
anthropic: Remove cache_control field from ResponseContent (#17165)
This PR removes the `cache_control` field from the variants in
`ResponseContent`.

This field is used on requests to control the caching behavior, but is
not needed on content in the response.

Release Notes:

- N/A
2024-08-30 12:22:47 -04:00
Marshall Bowers
8901d926eb
anthropic: Use separate Content type in requests and responses (#17163)
This PR splits the `Content` type for Anthropic into two new types:
`RequestContent` and `ResponseContent`.

As I was going through the Anthropic API docs it seems that there are
different types of content that can be sent in requests vs what can be
returned in responses.

Using a separate type for each case tells the story a bit better and
makes it easier to understand, IMO.

Release Notes:

- N/A
2024-08-30 11:46:03 -04:00
Glaudiston Gomes da Silva
00eed768ce
Fix Go test task when using Git submodules (#17108)
I have found an error running tests in Golang projects that use
submodules. This PR fixes the issue by accessing the directory before
running the test.

![image](https://github.com/user-attachments/assets/3790a77c-a07c-4467-be69-ee8e22675f7a)
The `commons` in the image is a git submodule in a subfolder inside a
parent folder where the workspace is set.


Release Notes:

- Fixed Go tests not being able to run in case the package (and the
`go.mod`) was in a nested folder. Pre-defined Go tasks have been changed
to now run in the package's directory. That means `go test ./package
-run MyTest` will run in `./package` and execute `go test -run MyTest`.
Also, `go test ./...` will run in the package directory, not at the root
of the Zed project, which is a small breaking change. In case one wants
to run `go test ./...` from the root, one can spawn a manual task that
does this.


![image](https://github.com/user-attachments/assets/b7c66f6a-ca29-421e-9539-737c8f719ae2)

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
2024-08-30 16:11:27 +02:00