f987ff0
Improve JSDoc injection in comments (#10800)
Click to expand commit body
This PR improves JSDoc injection for syntax highlighting. Now we are
only injecting JSDoc in block comments. The regex was mostly adapted
from nvim-treesitter's implementation (lua) to a rust regex.
https://github.com/nvim-treesitter/nvim-treesitter/blob/eb93c3b2fbe9ca55d70e9297d5c037880b997559/queries/ecma/injections.scm#L1-L6
**Before:**
<img width="441" alt="Screenshot 2024-04-20 at 5 51 04 AM"
src="https://github.com/zed-industries/zed/assets/20072509/8e77851d-22ad-4dc4-8e10-9ac558d3cf40">
**After:**
<img width="441" alt="Screenshot 2024-04-20 at 5 52 05 AM"
src="https://github.com/zed-industries/zed/assets/20072509/a607c219-6973-40c3-958c-44a003d008c3">
Release Notes:
- Changed detection of JSDoc to only do syntax highlighting in block
comments. Improved previous work done in #7826.
José Olórtegui
created
2306e3c
Add brackets and missing operators to Python grammar (#11180)
Not sure what the etiquette is here, but in the interest of fixing
#10242, I've re-implemented @jish's PR
https://github.com/zed-industries/zed/pull/10535 and have signed the CLA
Release Notes:
- Fixed `alt-shift-left` and `alt-shift-right` in the Textmate default
keybindings.
([#10242](https://github.com/zed-industries/zed/issues/10242))
TextMate keymap uses default option shift arrow selection
Dom Christie
created
5ce4590
install.sh: use per-channel binary names in `~/.local/bin` (#11339)
* clear their selections on focus lost
* allow reverting diff hunks when the caret is inside of the deleted
hunk diff editor block
Release Notes:
- N/A
Kirill Bulatov
created
e69e25c
linux: Use app_id as filepath for desktop file (#11337)
Click to expand commit body
This undoes the changes from #11333 and uses the path of the `.desktop`
file instead.
According ot the spec
(https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html)
the filename and path of the `desktop` file are used to determine the
desktop file ID.
This is enough to match the windows (which have the same WMClass/app-id)
with the desktop entry.
Release Notes:
- N/A
Thorsten Ball
created
61a60d3
Tie the Zed application ID to the release channel (#11335)
Click to expand commit body
Since we do want to have different versions of Zed running on the same
Linux install, we need to give them different application IDs so they're
not grouped together as the same application.
This changes the app_id depending on the releaes channel and, crucially,
it also matches them up with the bundle identifiers that we use on
macOS.
Release Notes:
- N/A
Thorsten Ball
created
4024b9a
gpui: Fix `start_display_link` leading to resource leak on hidden windows (#11289)
Click to expand commit body
Release Notes:
- N/A
While developing [Loungy](https://loungy.app), I noticed that everytime
I wake my laptop, Loungy starts consuming 100% CPU. I traced it down to
`start_display_link` as there was this error message at the time of wake
up:
```
[2024-05-02T05:02:31Z ERROR util] /Users/matthias/zed/crates/gpui/src/platform/mac/window.rs:420: could not create display link, code: -6661
```
The timeline is this:
1. The application is hidden with `cx.hide()`
2. The system is put to sleep and later woken up
3. `window_did_change_screen` would trigger immediately after wakeup,
calling `start_display_link`
4. `start_display_link` fails catastrophically as `DisplayLink::new`
starts hogging all the CPU for some reason?
5. throws the error message above
6. Once the window is opened, `window_did_change_occlusion_state` it
retriggers `start_display_link` and the CPU issue subsides
Matthias Grandl
created
b523ee6
Use Rope instead of String for buffer diff base (#11300)
Click to expand commit body
As an attempt to do things better when showing diff hunks, store diff
base as Rope, not String, to have cheaper clones when the diff base text
is reused, e.g. creating another buffer with the diff base text for hunk
diff expanding.
Release Notes:
- N/A
Kirill Bulatov
created
5f0046b
linux: Set StartupWMClass in .desktop file (#11333)
Click to expand commit body
This has to match the WMClass/AppID, which was added here: #10909
Release Notes:
- N/A
43ad470
Use outline queries to chunk files syntactically (#11283)
Click to expand commit body
This chunking strategy uses the existing `outline` query to chunk files.
We try to find chunk boundaries that are:
* at starts or ends of lines
* nested within as few outline items as possible
Release Notes:
- N/A
Co-Authored-By: Mikayla <mikayla@zed.dev>
In a fit of ill-advisedness I called these things remote projects;
forgetting that remote project is also what we call collaboratively
shared projects.
Release Notes:
- N/A
---------
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Bennet <bennetbo@gmx.de>
This PR bumps the Elixir extension to v0.0.2.
Changes:
- https://github.com/zed-industries/zed/pull/11302
Release Notes:
- N/A
Marshall Bowers
created
8b28433
elixir: Respect LSP settings for `elixir-ls` (#11302)
Click to expand commit body
This PR updates the Elixir extension to respect the LSP settings for
`elixir-ls`:
```json
"lsp": {
"elixir-ls": {
"settings": {
"dialyzerEnabled": false
}
}
}
```
```
Received workspace/didChangeConfiguration
Received client configuration via workspace/didChangeConfiguration
%{"dialyzerEnabled" => false}
Loaded DETS databases in 33ms
Loaded DETS databases in 10ms
Compiling 65 files (.ex)
```
Release Notes:
- N/A
Marshall Bowers
created
98ea5e1
Add `convert to opposite case` command (#11290)
Joseph T. Lyons
created
092869d
Use default allocator as a default (#11293)
Kirill Bulatov
created
aeff468
Fix text offset in the expanded deleted hunk (#11295)
Kirill Bulatov
created
23f1914
Do not show inline blame information on empty lines (#11294)
Click to expand commit body
cc @iamnbutler
Release Notes:
- Changed inline git blame information to not show up on empty lines.
Demo/proof:
https://github.com/zed-industries/zed/assets/1185253/e506cf1f-81b1-407b-8dc7-1666b31ae142
Thorsten Ball
created
edff78e
Allow ignoring soft wraps when moving to line ends (#11153)
Click to expand commit body
Release Notes:
- Fixed #10888
This patch addresses behavior of
`Editor::move_to_{beginning|end}_of_line`. It adds a setting,
`stop_at_soft_wraps` when defining a keymap for the
`editor::MoveToBeginningOfLine` and `editor::MoveToEndOfLine` actions.
When `true`, it causes movement to the either end of the line (via, for
example Home or End), to go to the logical end, as opposed to the
nearest soft wrap point in the respective direction.
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Tarun Verghis
and
Kirill Bulatov
created
c812304
typescript: Complete function calls with snippets (#11157)
Click to expand commit body
This allows function call (i.e. snippet) completion with
`typescript-language-server`. So far that didn't work, because
`typescript-language-server` doesn't respond with `insertText` when
getting the completions, but only when then sending
`completionItem/resolve` requests. See:
https://github.com/hrsh7th/nvim-cmp/issues/646#issuecomment-992765479
What this PR does is to support text edits in the response to
`completionItem/resolve`, which means updating the completion item.
It then enables this feature by default for
`typescript-language-server`.
TODOs:
- [x] Make this work over collab
- [x] Test that this doesn't break existing language server support
- [x] Refactor duplicated code
Release Notes:
- Added support for function call completion when using
`typescript-language-server`. This will result in parameters being
added, which can then be changed and navigated with `<tab>`. For this to
work with `typescript-language-server`, the documentation for a given
completion item needs to be resolved, meaning that if one types very
quickly and accepts completion before `typescript-language-server` could
respond with the documentation, no full function completion is used.
Demo:
https://github.com/zed-industries/zed/assets/1185253/c23ebe12-5902-4b50-888c-d9b8cd32965d
I was experiencing hang, and we blamed it on spawning a few hundred git
processes
simultaneously.
cc @MrNugget
Release Notes:
- Fixed slowness with hundreds of buffers open doing git blame.
Conrad Irwin
created
eb0f1e7
Show dev server in the titlebar for remote projects (#11276)
Click to expand commit body
Co-Authored-By: Mikayla <mikayla@zed.dev>
Release Notes:
- Show server name in the titlebar for remote projects
Co-authored-by: Mikayla <mikayla@zed.dev>
This PR cleans up the `Indicator` component:
- Renamed `IndicatorStyle` to `IndicatorKind` and made it private.
- Fixed `Indicator::bar()` to construct an indicator using the right
`IndicatorKind`.
- Removed the `IndicatorIcon`, since we didn't actually end up using it.
Release Notes:
- N/A
Marshall Bowers
created
fa0253b
Disallow adding folders to projects and opening the terminal in remote projects (#11261)
e5b88ac
Use HIGH priority to wake blocked timers (#11269)
Click to expand commit body
One contributor to some beach-balls was that the main thread was calling
block_with_timeout, but the timeout never fired.
Release Notes:
- Reduced main thread hangs under very high system load
Conrad Irwin
created
4739797
Add the ability to render icons as indicators (#11273)
Click to expand commit body
This PR adds the ability to render `Icon`s as an `Indicator`.
Release Notes:
- N/A
Co-authored-by: Nate Butler <nate@zed.dev>
Marshall Bowers
and
Nate Butler
created
4f53128
Replace rem size literals with constant (#11272)
Click to expand commit body
This PR replaces the rem size literals with the `BASE_REM_SIZE_IN_PX`
constant.
This way we can retain our source of truth for the rem size that we're
designing against.
Release Notes:
- N/A
Marshall Bowers
created
a194c0a
Compile and instantiate wasm modules on a background thread (#11270)
Click to expand commit body
Release Notes:
- Fixed a hang that could occur when loading some extensions, by loading
extensions on a background thread.
Max Brunsfeld
created
fb0d2e9
assistant2: Use new icon in status bar (#11268)
Click to expand commit body
This PR updates the new assistant to use the new (temporary) icon in the
status bar to distinguish it.
We added the icon in #11257, but hadn't wired it up.
Release Notes:
- N/A
Marshall Bowers
created
aa1b4c7
Add an `explore extensions` button to welcome screen (#11265)
Click to expand commit body
We are still getting comments from users saying they didn't know we had
extensions until just now. This doesn't fix anything for existing users,
but it helps make new users more aware, earlier on. There's probably
more we need to do for discoverability, but this feels like it should
help.
Release Notes:
- N/A
Joseph T. Lyons
created
dad3cbb
Enable random_channel_buffer_tests to run on Linux (#10863)
Click to expand commit body
With this patch applied I can see the following line in the test output:
test tests::random_channel_buffer_tests::test_random_channel_buffers has
been running for over 60 seconds
Without it I run in a failure with 'Invalid keystroke `cmk-,`
Release Notes:
- N/A
---------
Co-authored-by: Max Linke <kain88-de@users.noreply.github.com>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Linke
,
Max Linke
, and
Marshall Bowers
created
Part of https://github.com/zed-industries/zed/issues/4523
Added two new actions with the default keybindings
```
"cmd-'": "editor::ToggleHunkDiff",
"cmd-\"": "editor::ExpandAllHunkDiffs",
```
that allow to browse git hunk diffs in Zed:
https://github.com/zed-industries/zed/assets/2690773/9a8a7d10-ed06-4960-b4ee-fe28fc5c4768
The hunks are dynamic and alter on user folds and modifications, or
toggle hidden, if the modifications were not adjacent to the expanded
hunk.
Release Notes:
- Added `editor::ToggleHunkDiff` (`cmd-'`) and
`editor::ExpandAllHunkDiffs` (`cmd-"`) actions to browse git hunk diffs
in Zed
Kirill Bulatov
created
5831d80
Return an error from project index tool when embedding query fails (#11264)
Click to expand commit body
Previously, a failure to embed the search query (due to a rate limit
error) would appear the same as if there were no results.
* Avoid repeatedly embedding the search query for each worktree
* Unify tasks for searching all worktree
Release Notes:
- N/A
Max Brunsfeld
created
4b76769
Fix scrollbar auto-show for cursors out of sight (#11244)
Click to expand commit body
This PR fixes scrollbar auto-show feature when there're not visible
cursors. The intial behavior was broken in #11147.
The problem is that `selections` only contains visible selections, so
the `if` with `non_visible_cursors |= true` is only visited in rare edge
cases when we have at least part of the selection still visible on the
screen. But when we scroll far enough from the cursor,
`non_visible_cursors` keeps its default `false` value, which is
incorrect.
Release Notes:
- N/A
This PR adds a new `ChatNotice` component for displaying notices within
the assistant.
We will be able to use this for allowing the user to confirm a project
index request.
<img width="518" alt="Screenshot 2024-05-01 at 2 41 31 PM"
src="https://github.com/zed-industries/zed/assets/1486634/3beaeeaf-6046-4284-ac0a-4248e1f9ac20">
Release Notes:
- N/A
This PR updates the Homebrew installation instructions for the Preview
release, which has been migrated to ```homebrew/cask``` as
```zed@preview``` (see
[Commit](https://github.com/Homebrew/homebrew-cask/commit/bad25d79e13ca41b492c976ef70b72117c402d20)).
Release Notes:
- N/A
Note: You shouldn't use the `unstable.ui_density` setting – it is only
being added for testing and to enable new UI components to be built with
density in mind. Don't expect this to work well, or at all right now.
Adds some of the basic wiring we'll need to start scaling UI elements
throughout the app based on a desired density setting.
Release Notes:
- N/A
Co-Authored-By: Mikayla <mikayla@zed.dev>
My Zed was running out with collab + chat + recent projects + two splits
on a large monitor
Release Notes:
- N/A
Co-authored-by: Mikayla <mikayla@zed.dev>