Commit log

3da625e astro: Bump to v0.0.2 (#11834)

Click to expand commit body
This PR bumps the Astro extension to v0.0.2.

Changes:

- #11830

Release Notes:

- N/A

Marshall Bowers created

586f708 ruby: Bump to v0.0.3 (#11833)

Click to expand commit body
This PR bumps the Ruby extension to v0.0.3.

Changes:

- #11825

Release Notes:

- N/A

Marshall Bowers created

3df144c php: Bump to v0.0.3 (#11832)

Click to expand commit body
This PR bumps the PHP extension to v0.0.3.

Changes:

- #11695

Release Notes:

- N/A

Marshall Bowers created

af79e6b astro: Fix broken language injections (#11830)

Click to expand commit body
Update upstream
https://github.com/virchau13/tree-sitter-astro/commit/4be180759ec13651f72bacee65fa477c64222a1a
This will solve #11827

Before:
<img width="644" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/f6b10667-9197-4e5d-8513-78ce3d22f9e7">
After:
<img width="700" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/7bd7b0e6-e73c-4d1d-abd6-d6b2d88e97a6">


Release Notes:

- N/A

d1y created

43be375 ruby: Fix solargraph completion highlighting (#11825)

Click to expand commit body
Hi. This pull request fixes a small error with `solargraph` completions
to make them more detailed. It removes the nested match expression to
resolve the problem with highlighting the completion items and their
signatures with the return type as well. Thanks.

See screenshots below.

Release Notes:

- N/A

| Before  | After |
| ------------- | ------------- |
| ![CleanShot 2024-05-14 at 23 23
00@2x](https://github.com/zed-industries/zed/assets/1894248/4ea1fa41-1189-4607-8aea-547c27229a18)
| ![CleanShot 2024-05-14 at 23 29
30@2x](https://github.com/zed-industries/zed/assets/1894248/3c7be39a-2c7b-4662-8519-8c258c049cfa)
|

Vitaly Slobodin created

26b5f34 assistant: Add basic current project context (#11828)

Click to expand commit body
This PR adds the beginnings of current project context to the Assistant.

Currently it supports reading a `Cargo.toml` file and using that to get
some basic information about the project, and its dependencies:

<img width="1264" alt="Screenshot 2024-05-14 at 6 17 03 PM"
src="https://github.com/zed-industries/zed/assets/1486634/cc8ed5ad-0ccb-45da-9c07-c96af84a14e3">

Release Notes:

- N/A

---------

Co-authored-by: Nate <nate@zed.dev>

Marshall Bowers and Nate created

5b2c019 cli: Support --foreground for debugging (#11819)

Click to expand commit body
Release Notes:

- Added `--foreground` to the cli to allow running zed on the current
PTY.

Conrad Irwin created

18b6ded Auto-open remote projects on creation (#11826)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

67c9fc5 Fix a link to Zed configuring docs (#11739)

Click to expand commit body
Based on https://github.com/zed-industries/zed/pull/11736 

Release Notes:

- N/A

Kirill Bulatov created

ba4d4c8 assistant: Restructure ambient context in preparation for adding more (#11822)

Click to expand commit body
This PR restructures the ambient context in the `assistant` crate to
make it more amenable to adding more kinds of ambient context.

Release Notes:

- N/A

Marshall Bowers created

bf44787 Prevent remoting dialog from losing focus (#11820)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

748cd38 php: Highlight PHPDoc comments (#11695)

Click to expand commit body
This adds highlighting of phpdoc tags and PHP types to phpdoc comments,
using
[tree-sitter-phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc)
(maintained by yours me, and also in use by neovim).

<table>
<tr>
<td>
<strong>Before</strong>
<img
src="https://github.com/zed-industries/zed/assets/1420419/bae4c502-8a2c-4399-893f-fcff4e5797b6">
</td>
<td>
<strong>After</strong>
<img
src="https://github.com/zed-industries/zed/assets/1420419/8848e9fb-61a0-4938-a118-7041da9589c0">
</td>
</tr>
</table>


Release Notes:

- N/A

claytonrcarter created

1db136f tasks: Refresh available tasks in editor when tasks.json changes (#11811)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

0ae0b08 linux: Add Keybinds Ctrl-Insert to Copy and Shift-Insert to Paste (#11799)

Click to expand commit body
Release Notes:

- N/A

Thomas Aunvik created

5b8bb62 Scale UI elements in the editor based on the `buffer_font_size` (#11817)

Click to expand commit body
This PR adjusts how UI elements are rendered inside of full-size editors
to scale with the configured `buffer_font_size`.

This fixes some issues where UI elements (such as the `IconButton`s used
for code action and task run indicators) would not scale as the
`buffer_font_size` was changed.

We achieve this by changing the rem size when rendering the
`EditorElement`, with a rem size that is derived from the
`buffer_font_size`.

`WindowContext` now has a new `with_rem_size` method that can be used to
render an element with a given rem size. Note that this can only be
called during `request_layout`, `prepaint`, or `paint`, similar to
`with_text_style` or `with_content_mask`.

### Before

<img width="1264" alt="Screenshot 2024-05-14 at 2 15 39 PM"
src="https://github.com/zed-industries/zed/assets/1486634/05ad7f8d-c62f-4baa-bffd-38cace7f3710">

<img width="1264" alt="Screenshot 2024-05-14 at 2 15 49 PM"
src="https://github.com/zed-industries/zed/assets/1486634/254cd11c-3723-488f-ab3d-ed653169056c">

### After

<img width="1264" alt="Screenshot 2024-05-14 at 2 13 02 PM"
src="https://github.com/zed-industries/zed/assets/1486634/c8dad309-62a4-444f-bfeb-a0009dc08c03">

<img width="1264" alt="Screenshot 2024-05-14 at 2 13 06 PM"
src="https://github.com/zed-industries/zed/assets/1486634/4d9a3a52-9656-4768-b210-840b4884e381">

Note: This diff is best viewed with whitespace changes hidden:

<img width="245" alt="Screenshot 2024-05-14 at 2 22 45 PM"
src="https://github.com/zed-industries/zed/assets/1486634/7cb9829f-9c1b-4224-95be-82182017ed90">

Release Notes:

- Changed UI elements within the editor to scale based on
`buffer_font_size` (e.g., code action indicators, task run indicators,
etc.).

Marshall Bowers created

c8ddde2 Fix reveal_path blocks on linux (#11702)

Click to expand commit body
If you go to the file tree and press "x" (which is
"project_panel::RevealInFinder"). It will open the default file
manager(in my case nautilus). But on Linux it makes Zed unresponsive.
This fixes that.

Release Notes:

- Fixed Zed blocked after opening file manager in the file tree on
Linux.

Flafy created

bfc066a Toss return value (#11815)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

fd8336c linux: Handle modification events from file watcher (#11778)

Click to expand commit body
Fixed #11595 


Release Notes:

- N/A

CharlesChen0823 created

d0dd8bf windows: Improve handling of the `WM_SETTINGCHANGE` (#11738)

Click to expand commit body
This event is broadcast to all windows, so we can handle this message in
the `WindowsWindow` ranther than in `WindowsPlatform`.

Release Notes:

- N/A

张小白 created

491c04e windows: Support multi-monitor (#11699)

Click to expand commit body
Zed can detect changes in monitor connections and disconnections and
provide corresponding feedback. For example, if the current window's
display monitor is disconnected, the window will be moved to the primary
monitor. And now Zed always opens on the monitor specified in
`WindowParams`.

Release Notes:

- N/A

张小白 created

5154910 windows: Update crate `Windows` from `0.53` to `0.56` (#11662)

Click to expand commit body
Version 0.56 has fixed many of the previous bugs, and one of the bugs
prevent me implementing some functions.

Release Notes:

- N/A

张小白 created

d1ee2d0 wayland: Window controls and drag (#11525)

Click to expand commit body
Based on https://github.com/zed-industries/zed/pull/11046

- Partially fixes #10346 
- Fixes https://github.com/zed-industries/zed/issues/9964

## Features
Window buttons

![image](https://github.com/zed-industries/zed/assets/71973804/1b7e0504-3925-45ba-90b5-5adb55e0d739)

Window drag

![image](https://github.com/zed-industries/zed/assets/71973804/9c509a37-e5a5-484c-9f80-c722aeee4380)

Native window context menu

![image](https://github.com/zed-industries/zed/assets/71973804/048ecf52-e277-49bb-a106-91cad226fd8a)

### Limitations

- No resizing
- Wayland only (though X11 always has window decorations)

### Technical

This PR adds three APIs to gpui.

1. `show_window_menu`: Triggers the native title bar context menu.
2. `start_system_move`: Tells the compositor to start dragging the
window.
3. `should_render_window_controls`: Whether the compositor doesn't
support server side decorations.

These APIs have only been implemented for Wayland, but they should be
portable to other platforms.

Release Notes:

- N/A

---------

Co-authored-by: Akilan Elango <akilan1997@gmail.com>

apricotbucket28 and Akilan Elango created

db89353 git: Support git repos with .git folder above project root (#11550)

Click to expand commit body
TODOs:

- [x] Add assertions to the test to ensure that the git status is
propagated
- [x] Get collaboration working
- [x] Test opening a git repository inside another git repository
- [x] Test opening the sub-folder of a repository that itself contains
another git repository in a subfolder

Fixes:
- Fixes https://github.com/zed-industries/zed/issues/10154
- Fixes https://github.com/zed-industries/zed/issues/8418
- Fixes https://github.com/zed-industries/zed/issues/8275
- Fixes https://github.com/zed-industries/zed/issues/7816
- Fixes https://github.com/zed-industries/zed/issues/6762
- Fixes https://github.com/zed-industries/zed/issues/4419
- Fixes https://github.com/zed-industries/zed/issues/4672
- Fixes https://github.com/zed-industries/zed/issues/5161

Release Notes:

- Added support for opening subfolders of git repositories and treating
them as part of a repository (show git status in project panel, show git
diff in gutter, git blame works, ...)
([#4672](https://github.com/zed-industries/zed/issues/4672)).

Demo video:


https://github.com/zed-industries/zed/assets/1185253/afc1cdc3-372c-404e-99ea-15708589251c

Thorsten Ball created

9f0a202 Report response latency and errors when using (inline) assistant (#11806)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: David <davidsp@anthropic.com>

Antonio Scandurra , Nathan , and David created

de09409 Sanitize messages before sending them to Anthropic (#11810)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: David <davidsp@anthropic.com>

Antonio Scandurra , Nathan , and David created

69f9489 Don't bundle libdl :facepalm: (#11809)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

652748b gleam: Bump to v0.1.2 (#11803)

Click to expand commit body
This PR bumps the Gleam extension to v0.1.2.

Changes:

- #11476
- #11801

Release Notes:

- N/A

Marshall Bowers created

77f0d35 gleam: Add `gleam test` task (#11801)

Click to expand commit body
This PR adds a task for running `gleam test`.

Release Notes:

- N/A

Marshall Bowers created

5944caa Add support for interacting with Claude in the assistant panel (#11798)

Click to expand commit body
Release Notes:

- Added support for interacting with Claude in the assistant panel. You
can enable it by adding the following to your `settings.json`:

    ```json
    "assistant": {
        "version": "1",
        "provider": {
            "name": "anthropic"
        }
    }
    ```

Antonio Scandurra created

019d988 Add support for gpt-4o when using zed.dev as the model provider (#11794)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

a13a92f Introduce recent files ambient context for assistant (#11791)

Click to expand commit body
<img width="1637" alt="image"
src="https://github.com/zed-industries/zed/assets/482957/5aaec657-3499-42c9-9528-c83728f2a7a1">

Release Notes:

- Added a new ambient context feature that allows showing the model up
to three buffers (along with their diagnostics) that the user interacted
with recently.

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

e4c95b2 Allow using the inline assistant within the assistant panel (#11754)

Click to expand commit body
Release Notes:

- Added the ability to use the inline assistant within the assistant
panel.

Antonio Scandurra created

4766b41 docs: Document how to use custom `api_url` in Assistant (#11790)

Click to expand commit body
This essentially documents the comment here:
https://github.com/zed-industries/zed/issues/4424#issuecomment-2053646583

Release Notes:


- N/A

Thorsten Ball created

95e0d5e tasks: Reorganize task modal (#11752)

Click to expand commit body
![image](https://github.com/zed-industries/zed/assets/24362066/bc7cc3d3-d9fc-4be6-b9b6-e3d8edf5b533)

Release Notes:
- Improved tasks modal by highlighting a distinction between a task
template and concrete task instance and surfacing available keybindings
more prominently. Task templates are now always available in the modal,
even if there's already a history entry with the same label.
- Changed default key binding for "picker::UseSelectedQuery" to `opt-e`.

Piotr Osiewicz created

0a096bf terminal: Fix Alacritty key bindings (#11782)

Click to expand commit body
Close #10502 

Release Notes:

- Fixed `ctrl-space` not being forwarded correctly in the terminal view.
([#10502](https://github.com/zed-industries/zed/issues/10502))

CharlesChen0823 created

ec65035 inline blame: Match icon size to font size in buffer (#11788)

Click to expand commit body
This fixes #11311.


Release Notes:

- Fixed icon in inline git blame entry not changing with the buffer font
size. ([#11311](https://github.com/zed-industries/zed/issues/11311)).

Before:

![screenshot-2024-05-14-10 48
49@2x](https://github.com/zed-industries/zed/assets/1185253/4a288cae-a52b-4bee-8681-f1d9ba3b57f3)

After:

![screenshot-2024-05-14-10 50
06@2x](https://github.com/zed-industries/zed/assets/1185253/f7a6a608-8ecc-4642-adbd-80858dea75e9)

Thorsten Ball created

9b74acc Add GPT-4o as possible model (#11764)

Click to expand commit body
Resolves: #11766

Release Notes:

- Add GPT-4o support (see: https://openai.com/index/hello-gpt-4o/).
GPT-4o is better and faster than 4-turbo, at half the price.

Toon Willems created

43da37b shell: Load SHELL from passwd entry if launched as desktop app (#11758)

Click to expand commit body
This fixes #8794 and other related problems.

The problem, in short, is this: `$SHELL` might be outdated. This code
ensures that we update `$SHELL` to what we can deem the newest version,
if we're started as a desktop application.

The background is that you can get the user's preferred shell in two
ways:

1. Read the `SHELL` env variable
2. Read the `/etc/passwd` file and check which shell is set

Most applications should and do prefer (1) over (2).

Why is it preferred? Reading `SHELL` means that processes can inherit
the variable from each other. And you can do something like
`SHELL=/bin/cool-shell ./my-cool-app`

But what happens if the application was launched from the desktop? Which
SHELL env does it inherit then?

It inherits the env from the process that launched it, which is
Finder.app or launchd or GNOME or something else — these are all
long-running processes that get their environment when the user logs in.

They do *not* get a new environment unless restarted (either process
restarted or computer restarted)

That means the `SHELL` env variable they have might be outdated.

That's a problem if you, for example, change your shell with `chsh` and
then launch the app from the desktop.

That change of the default shell is not reflected in the app if the app
only reads from SHELL. Because that hasn’t been updated. Instead it
should read from passwd file to get the newest value.



Release Notes:

- Fixed SHELL being outdated if Zed was launched via Finder or Raycast
or other desktop launchers.
([#8794](https://github.com/zed-industries/zed/issues/8794))

Thorsten Ball created

15e1895 Try some more linker magic to get it working on ubuntu 20 (#11784)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

aee00d4 Fix script/bundle-linux (#11783)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

172cb81 xtask: Check for licenses that are duplicated instead of being symlinked (#11777)

Click to expand commit body
This PR updates `cargo xtask licenses` to also check for license files
that are not symlinks.

Release Notes:

- N/A

Marshall Bowers created

b01878a Add `xtask` for finding crates with missing licenses (#11776)

Click to expand commit body
This PR adds a new `cargo xtask licenses` command for finding crates
with missing license files.

A number of crates were uncovered that were missing a license file, and
have had the appropriate license file added.

Release Notes:

- N/A

Marshall Bowers created

ff2eace Add missing LICENSE file to `http` crate (#11773)

Click to expand commit body
This PR adds a missing LICENSE file to the recently-extracted `http`
crate.

Release Notes:

- N/A

Marshall Bowers created

fcd5fa9 Remove selection highlights from deleted diff editors on blur (#11772)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/11710

Release Notes:

- Removed extra line highlights when deleted diff editors loose focus

Kirill Bulatov created

cb34507 docs: Fix typos on the Assistant Panel page (#11725)

Click to expand commit body
Fix typos on the Assistant Panel page, also including removal of
unnecessary commas and standardization to US English.

Release Notes:

- N/A

PS: Assuming here US English is the preferred style (e.g., "canceled"
vs. "cancelled".) Happy to revert if that's not the case! :)

Danilo Leal created

1ab2477 Add Tool Strip (#11756)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Nate Butler and Marshall Bowers created

335636c ruby: Bump to v0.0.2 (#11769)

Click to expand commit body
This PR bumps the Ruby extension to v0.0.2.

Changes:

- #11768

Release Notes:

- N/A

Marshall Bowers created

24cc4c6 ruby: Add ruby-lsp as an experimental language server (#11768)

Click to expand commit body
Adds [ruby-lsp](https://shopify.github.io/ruby-lsp/) as an alternative
LS for Ruby language.
While support for fully functional `ruby-lsp` is limited due to some
limitations (see https://github.com/zed-industries/zed/pull/8613) I
think it's OK to add it but disable by default. Thanks!

Resolves #4834.

Release Notes:

- N/A

### Some screenshots

Completion support
![CleanShot 2024-05-13 at 22 58
23@2x](https://github.com/zed-industries/zed/assets/1894248/d5047baa-c58f-465d-ae31-a7045aa56adf)

Symbol search
![CleanShot 2024-05-13 at 23 03
59@2x](https://github.com/zed-industries/zed/assets/1894248/0cb6320a-b000-4a0c-85eb-f8d1a8f6936e)

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Vitaly Slobodin and Marshall Bowers created

9af1298 Bundle linux deps (#11681)

Click to expand commit body
Inlcude linux deps in the bundle

Release Notes:

- N/A

Conrad Irwin created

8e92f19 editor: Current line highlight options (#11710)

Click to expand commit body
None:

<img width="717" alt="none"
src="https://github.com/zed-industries/zed/assets/2101250/b2a741db-c64a-4275-a612-5a0d15c9cab7">

Gutter:

<img width="715" alt="gutter"
src="https://github.com/zed-industries/zed/assets/2101250/f7a68a6e-6eba-41b4-9042-5a5fe2ee21a4">

Line:

<img width="717" alt="line"
src="https://github.com/zed-industries/zed/assets/2101250/117f5b00-abd7-425b-8047-1a6fab8293a7">

All:

<img width="715" alt="all"
src="https://github.com/zed-industries/zed/assets/2101250/ebccc0da-0fa0-44e5-903c-cc49d975db76">

This PR adds the `current_line_highlight` setting that defines how to
highlight the current line in the editor:

- `none`: Don't highlight the current line.
- `gutter`: Highlight the gutter area only.
- `line`: Highlight the editor area only.
- `all` (default): Highlight the whole line.

The options have been borrowed from VSCode.

Fixes #5222
Part of #4382

Release Notes:

- Added the `current_line_highlight` setting that defines how to
highlight the current line in the editor (#5222).

Andrew Lygin created