74cb92f
vue: Bump to v0.0.3 (#12656)
Click to expand commit body
This PR bumps the Vue extension to v0.0.3. Changes: - #11482 Release Notes: - N/A
Marshall Bowers created
74cb92f
vue: Bump to v0.0.3 (#12656)
This PR bumps the Vue extension to v0.0.3. Changes: - #11482 Release Notes: - N/A
Marshall Bowers created
8a659b0
Implement Indent & Outdent as operators (#12430)
Release Notes: - Fixes [#9697](https://github.com/zed-industries/zed/issues/9697). Implements `>` and `<` with motions and text objects. Works with repeat action `.`
Paul Eguisier created
25050e8
vue: Improve syntax highlighting (#11482)
close #8989 Before: <img width="690" alt="image" src="https://github.com/zed-industries/zed/assets/45585937/02b6f703-d54a-4e08-82f8-4ed624f37a64"> After: <img width="571" alt="image" src="https://github.com/zed-industries/zed/assets/45585937/9abd39d0-c4e8-426e-b0d8-62e26090332a"> Release Notes: - Improve vue highlighting
d1y created
2d94796
Make HTML to Markdown conversion more pluggable (#12653)
This PR overhauls the HTML to Markdown conversion functionality in order to make it more pluggable. This will ultimately allow for supporting a variety of different HTML input structures (both natively and via extensions). As part of this, the `rustdoc_to_markdown` crate has been renamed to `html_to_markdown`. The `MarkdownWriter` now accepts a list of trait objects that can be used to drive the conversion of the HTML into Markdown. Right now we have some generic handler implementations for going from plain HTML elements to their Markdown equivalents, as well as some rustdoc-specific ones. Release Notes: - N/A
Marshall Bowers created
1c61747
Allow restarting remote language servers (#12652)
Release Notes: - Added the ability to restart the remote language servers when collaborating
Conrad Irwin created
1a0708f
Fix a bug where the IME pre-edit would desync from Zed (#12651)
fixes #11829 In https://github.com/zed-industries/zed/pull/7494, we introduced IME event buffering, so that we could preempt the IME with a keystroke event in some cases. However, this caused a desynchronization bug in long multi-step IME composition, such as the pre-edit used in the Japanese Romaji keyboard (and other languages). We found that this was due to the IME issuing actions, and then immediately querying the editor's state before we had applied those actions. Therefore, this PR removes IME action buffering. We have tested all of the cases in the `handle_key_event` documentation and added a few of our own. Release Notes: - Fixed an issue where the IME pre-edit could desynchronize from the editor on macOS ([#11829](https://github.com/zed-industries/zed/pull/12651)) --------- Co-authored-by: Jan Solanti <jhs@psonet.com>
Mikayla Maki and Jan Solanti created
62e7900
vcs_menu: Fix header taking up too much space (#12646)
We've spotted a regression following https://github.com/zed-industries/zed/pull/12468  This PR addresses that. Release Notes: - N/A Co-authored-by: Bennet <bennet@zed.dev>
Piotr Osiewicz and Bennet created
c5b22ee
Polish prompt library UX (#12647)
This could still use some improvement UI-wise but the user experience
should be a lot better.
- [x] Show in "Window" application menu
- [x] Load prompt as it's selected in the picker
- [x] Refocus picker on `esc`
- [x] When creating a new prompt, if a new prompt already exists and is
unedited, activate it instead
- [x] Add `/default` command
- [x] Evaluate /commands on prompt insertion
- [x] Autocomplete /commands (but don't evaluate) during prompt editing
- [x] Show token count using the settings model, right-aligned in the
editor
- [x] Picker
- [x] Sorted alpha
- [x] 2 sublists
- Default
- Empty state: Star a prompt to add it to your default prompt
- Otherwise show prompts with star on hover
- All
- Move prompts with star on hover
Release Notes:
- N/A
Antonio Scandurra created
e4bb666
assistant: Add `/fetch` slash command (#12645)
This PR adds a new `/fetch` slash command to the Assistant for fetching the content of an arbitrary URL as Markdown. Currently it's just using the same HTML to Markdown conversion that `/rustdoc` uses, but I'll be working to refine the output to be more widely useful. Release Notes: - N/A
Marshall Bowers created
910f668
php/elixir: Bump extensions versions to 0.0.6 and 0.0.5 (#12636)
Includes: - https://github.com/zed-industries/zed/pull/12526 - https://github.com/zed-industries/zed/pull/11879 - https://github.com/zed-industries/zed/pull/12467 Release Notes: - N/A
Piotr Osiewicz created
8e79609
editor: Cancel ongoing completion requests more eagerly (#12630)
Previously, we were: - cancelling previous requests only after the latest one has completed - always running the debounced documentation resolution to completion, even when we had no need for it. In this commit, we drop the ongoing completion requests as soon as the new one is fired. Fixes #5166 Release Notes: - Improved performance and reliability of completions in large Typescript projects Co-authored-by: Bennet Bo <bennet@zed.dev>
Piotr Osiewicz and Bennet Bo created
47122a3
Fix excluded file creation (#12620)
Fixes https://github.com/zed-industries/zed/issues/10890 * removes `unwrap()` that caused panics for text elements with no text, remaining after edit state is cleared but project entries are not updated, having the fake, "new entry" * improves discoverability of the FS errors during file/directory creation: now those are shown as workspace notifications * stops printing anyhow backtraces in workspace notifications, printing the more readable chain of contexts instead * better indicates when new entries are created as excluded ones Release Notes: - Improve excluded entry creation workflow in the project panel ([10890](https://github.com/zed-industries/zed/issues/10890))
Kirill Bulatov created
edd6130
linux watcher (#12615)
fixes https://github.com/zed-industries/zed/issues/12297 fixes https://github.com/zed-industries/zed/issues/11345 Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
3cd6719
Fix issues with Claude in Assistant2 (#12619)
Release Notes: - N/A --------- Co-authored-by: Nathan <nathan@zed.dev>
Mikayla Maki and Nathan created
afc0650
Paginate through extensions from the blob store (#12614)
This PR updates the background task used to fetch extensions from the blob store to account for the possibility that the result set will be paginated. Will now paginate through all of the results and collect them up before proceeding to determining which extensions need to be synced. Release Notes: - N/A
Marshall Bowers created
14c2fab
assistant: Allow `/rustdoc` to use local docs (#12613)
This PR updates the `/rustdoc` slash command to use local docs built with `cargo doc`. If the docs for a particular crate/module are available locally, those will be used. Otherwise, it will fall back to retrieving the docs from `docs.rs`. The placeholder output for the slash command will indicate which source was used for the docs: <img width="289" alt="Screenshot 2024-06-03 at 4 13 42 PM" src="https://github.com/zed-industries/zed/assets/1486634/729112e4-80ca-4f08-bdb3-88fc950351c3"> Release Notes: - N/A
Marshall Bowers created
c752763
Remove default language settings that are provided by extensions (#12612)
This PR removes some default language settings that are now provided by their respective extensions. In #10296 we added the ability for the language configuration within extensions to provide certain language settings (e.g., `tab_size`). New versions of the extensions have been published that take advantage of that and have been in circulation for over a month now. To that end, we no longer need these settings provided as defaults. Release Notes: - N/A
Marshall Bowers created
2f65c3c
Disable `vtsls` by default (#12611)
This PR adds default settings to disable `vtsls` by default so that there aren't multiple TypeScript language servers running. I also renamed the language server from `vtsls-language-server` to just `vtsls`, since the `-language-server` suffix was redundant. Release Notes: - N/A
Marshall Bowers created
959f0dc
Fix terminal key bindings (#12558)
Fixes https://github.com/zed-industries/zed/issues/12556 Only changed the keymap on Linux since I'm not sure if the behaviour is correct on macOS Release Notes: - N/A
apricotbucket28 created
be2df79
gpui: Handle null string pointer in `window::insert_text` (#12446)
`[NSString UTF8String]` sometimes returns null (it's documented as such), and when it does, zed crashes in `window::insert_text`. I'm running into this sometimes when using alt-d to delete forward. It usually only happens with multiple cursors, but sometimes with a single cursor. It *might* only happen when using the "Unicode Hex Input" keyboard 'Input Source' (which I started using to avoid entering weird characters in zed when using emacs meta keybindings that I haven't defined in zed). When using the US English input source, alt-d always results in a call to `insert_text`. When using the Unicode Hex Input source it usually doesn't, but when it does `text.UTF8String()` returns null. `text` isn't null. `[text length]` returns 1. `[text characterAtIndex: 0]` seems to always return `56797` (an undefined utf-16 codepoint). Release Notes: - Fixed crash on mac when deleting with alt-d
Sean Billig created
344e5e1
wayland: Fix window bounds restoration (#12581)
Fixes multiple issues that prevented window bounds restoration to not work on Wayland. Note: Since the display uuid depends on the `wl_output.name` field, this only works properly on KDE 5.26+ or Gnome 44+ ([kwin commit](https://github.com/KDE/kwin/commit/330a02d862329893957532f46655c52c755f3731), [mutter](https://github.com/GNOME/mutter/commit/7e838b1115f195ba4c7b06169ade3407d29c66d0)). Release Notes: - N/A
apricotbucket28 created
ed86b86
cosmic_text: Handle variation selectors; fix emoji colors (#12587)
Basically, we detect if a glyph is a variation selector if its `id` is 3 (i.e. a whitespace character) and if it comes from an emoji font (since variation selectors are only used for emoji glyphs). - Fixes https://github.com/zed-industries/zed/issues/11703 and https://github.com/zed-industries/zed/issues/12022 Release Notes: - N/A
apricotbucket28 created
726f23e
Add !vimwaiting to togglecomment (#12552)
Release Notes: -Fixed #12483 It turns out to be very simple. `fg` has conflict with `gc` mapping so when you type g editor state is pending.
xzbdmw created
b1efea1
typescript: Add support for VTSLS (#12606)
You can opt into using VTSLS instead of typescript-language-server by
pasting the following snippet into your settings:
```
"languages": {
"TSX": {
"language_servers": [
"!typescript-language-server",
"vtsls-language-server"
]
}
},
```
Related to: #5166
Release Notes:
- Added support for using [vtsls](https://github.com/yioneko/vtsls)
language server for Typescript/Javascript.
Piotr Osiewicz created
2b21c89
Fix XI2 Scrolling Issue (#12603)
ref #11679 https://github.com/zed-industries/zed/pull/11235#issuecomment-2144727144 Filters leave events to ensure they are in the normal notify leave events (not grab or ungrab) ([spec](https://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt)). Confirmed to fix the issue @mrnugget was having. Release Notes: - linux: Fixed a regression that caused some X11 input devices being unable to scroll.
Owen Law created
d0fa012
Support formatting unsaved buffers with external formatter (#12597)
Closes #4529 https://github.com/zed-industries/zed/assets/53836821/b84efd5e-89da-4ff7-9a29-2b2f7285d427 Release Notes: - Added ability to format unsaved buffers with external formatters ([#4529](https://github.com/zed-industries/zed/issues/4529))
Bennet Bo Fenner created
338df5d
linux/x11: Ignore bounds.origin on resize event (#12604)
This fixes #11236 by ignoring the `bounds.origin` values when the window is only being resized. The cause for the issue was that the `ConfigureNotify` event would contain "wrong" values when the window was being resized (by dragging a corner). In my case it would *always* contain x:14/y:49, which is I think might map to the origin of the top bar in GNOME. We would then persist these wrong values when serializing the workspace. On restart, we'd use these values and end up with the window decorations in the wrong place. What I still don't know: 1. What exactly the 14/49 map to, because it's not the origin of the top bar in GNOME. I also tried the X11 TranslateCoordinates call but couldn't get meaningful results back (even taking scale factor into account). 2. Why the window decorations end up looking wrong vs. the window being in the first place. But if you look at my screenshot in #11236, it looks like the decorations are off exactly by 14/49px. That being said, I think the solution here is a good one for now: we don't do an additional X11 call and when we're resizing, we're not interested in the origin changing. Release Notes: - N/A Proof: [Screencast from 2024-06-03 15-08-36.webm](https://github.com/zed-industries/zed/assets/1185253/90efccfc-8ec6-42d2-8380-1625eff57805)
Thorsten Ball created
5f98b96
Start on a database-backed prompt library (#12468)
Using the file system as a database seems like it's easy, but it's actually a real pain. I'd like to use LMDB to store the prompts locally so we have more control. We can always add an export option, but I want the source of truth to be somewhere other than the file system. So far, I have a PromptStore which is global to the application and can be initialized on startup. Then there's a `PromptLibrary` which is intended to be the root of a new kind of Zed window. I haven't actually seen pixels yet, but I've sketched out the basics needed to create a new prompt, save, etc. Still lots to figure out but the foundations of being backed by a DB and rendering in an independent window are in place. /cc @iamnbutler @as-cii Release Notes: - N/A --------- Co-authored-by: Antonio Scandurra <me@as-cii.com>
Nathan Sobo and Antonio Scandurra created
18e2b43
task: Rebind UseSelectedQuery in modal to F2 (#12601)
Also fix click handler for "Rerun last task". Fixes #12580 Release Notes: - Fixed click handler for "rerun last task" in task modal not working. - Rebound "picker::UseSelectedQuery" from `opt-E` to `F2`.
Piotr Osiewicz created
5e3d85c
json: Fix tsconfig.json schema overriding other schemas (such as keymap) (#12600)
@mrnugget spotted that tsconfig.json schema is getting applied on current Nightly. I've tracked it down to a misconfiguration of JSON language server. Mea culpa. No release note as that change has not went out to the public yet. Release Notes: - N/A
Piotr Osiewicz created
ae55d35
windows: Fix project prepare_ssh_shell to support setting PATH on Windows (#12370)
Release Notes: - N/A Update to use `std::env::join_paths` to prepare `PATH` env. Ref https://github.com/zed-industries/zed/pull/12087#issuecomment-2122852384 @mrnugget --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Jason Lee and Thorsten Ball created
d0142b8
Change on remote setup and one more SSH command as example (#12591)
Release Notes: - N/A
Francisco Rivas created
b218d87
Fix TSX and JavaScript shorthand property syntax highlighting (#12512)
This replicates the fix for the TypeScript language for https://github.com/zed-industries/zed/issues/5239 in https://github.com/zed-industries/zed/pull/12505 for the TSX and JavaScript languages, fixing https://github.com/zed-industries/zed/issues/12510 and fixing https://github.com/zed-industries/zed/issues/12509 . See https://github.com/zed-industries/zed/pull/12505#issuecomment-2141002505 . Keep in mind I don't have a proper Zed local development environment setup to test these simple changes. Release Notes: - Fixed TSX shorthand property syntax highlighting ([#12510](https://github.com/zed-industries/zed/issues/12510)). - Fixed JavaScript shorthand property syntax highlighting ([#12509](https://github.com/zed-industries/zed/issues/12509)).
Jayden Seric created
de8ef08
Disable indent guides for single line editors (#12584)
This PR disables indent guides by default for single line editors. Right now indent guides show up in the project search editor (which is only a single line) <img width="715" alt="image" src="https://github.com/zed-industries/zed/assets/53836821/0b61da71-6f64-424d-9612-6a34eac4686a"> Release Notes: - Fixed an issue where indent guides would show up in a single line editor (e.g. project search, buffer search)
Bennet Bo Fenner created
66b73c2
Fix GPUI get_menus documentation (#12571)
Release Notes: - N/A
Matin Aniss created
ab8d25e
indent guides: Respect language specific settings in multibuffers (#12528)
Indent guides can be configured per language, meaning that in a multi
buffer we can get excerpts where indent guides should be
disabled/enabled/styled differently than other excerpts.
Imagine the following scenario, i have indent guides disabled in my
settings, but want to enable them for JS and Python. I also want to use
a different line width for python files. Something like this is now
supported:
<img width="445" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/0c91411c-145c-4210-a883-4c469d5cb828">
And the relevant settings for the example above:
```json
"indent_guides": {
"enabled": false
},
"languages": {
"JavaScript": {
"indent_guides": {
"enabled": true
}
},
"Python": {
"indent_guides": {
"enabled": true,
"line_width": 5
}
}
}
```
Release Notes:
- Respect language specific settings when showing indent guides in a
multibuffer
- Fixes an issue where indent guide specific settings were not
recognized when specified in local settings
Bennet Bo Fenner created
95e360b
python: Add runnable unittest tasks (#12451)
Add runnable tasks for Python, starting with `unittest` from the
standard library. Both `TestCase`s (classes meant to be a unit of
testing) and individual test functions in a `TestCase` will have
runnable icons. For completeness, I also included a task that will run
`unittest` on the current file.
The implementation follows the `unittest` CLI. The unittest module can
be used from the command line to run tests from modules, classes or even
individual test methods:
```
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method
```
```python
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
```
From the snippet provided by `unittest` docs, a user may want to run
test_split independently of the other test functions in the test case.
Hence, I decided to make each test function runnable despite `TestCase`s
being the unit of testing.
## Example of running a `TestCase`
<img width="600" alt="image"
src="https://github.com/zed-industries/zed/assets/16619392/7be38b71-9d51-4b44-9840-f819502d600a">
## Example of running a test function in a `TestCase`
<img width="600" alt="image"
src="https://github.com/zed-industries/zed/assets/16619392/f0b6274c-4fa7-424e-a0f5-1dc723842046">
`unittest` will also run the `setUp` and `tearDown` fixtures.
Eventually, I want to add the more commonly used `pytest` runnables
(perhaps as an extension instead).
Release Notes:
- Added runnable tasks for Python `unittest`.
([#12080](https://github.com/zed-industries/zed/issues/12080)).
Rayduck created
f0d9795
collab_ui: remove branch menu popover in favor of opening a modal (#12562)
This commit also removes a bunch of dead code. Fixes #12544 Release Notes: - Removed branch popover menu - clicking on the branch name in left-hand corner now always opens a branch modal
Piotr Osiewicz created
fbcc5cc
typescript: Add completions for tsconfig.json properties (#12560)
Release Notes: - Added completions for tsconfig.json config file.
Piotr Osiewicz created
29b5253
JavaScript: Add runnable tests (#12118)
https://github.com/zed-industries/zed/assets/62463826/2912c940-bd00-483d-9ce7-df1a2539560a Release Notes: - Added runnable tests for JavaScript & Typescript files. - Added task to run selected javascript code.
Remco Smits created
94c3101
Fix or promote leftover TODOs and GPUI APIs (#12514)
fixes https://github.com/zed-industries/zed/issues/11966 Release Notes: - N/A
Mikayla Maki created
a6e0c8a
elixir: Add runnable tasks (#12526)
Release Notes: - Added runnable tasks to Elixir tests (modules, `describe` and `test` blocks) https://github.com/zed-industries/zed/assets/7737375/06f1b4cb-0364-4c30-982d-6dda3193b5d2
João Otávio Biondo created
d12b8c3
Simplify and improve concurrency of git status updates (#12513)
The quest for responsiveness in large git repos continues. This is a follow-up to https://github.com/zed-industries/zed/pull/12444 Release Notes: - N/A
Max Brunsfeld created
356fcec
ruby: Add a new injection for regular expressions (#12533)
# Summary Hello. This pull request adds a new injection to `injections.scm` for Ruby language to highlight regular expressions. Thanks. ## Before  ## After  Release Notes: - N/A Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Vitaly Slobodin and Marshall Bowers created
08123a2
ruby: Add proper indentation for singleton methods (#12535)
Hi. Currently, Zed uses incorrect indentation for singleton methods: ```ruby def self.build | # <= cursor position after hitting Enter end ``` Handling the `singleton_method` token indentation changes this behavior to the following: ```ruby def self.build | # <= cursor position after hitting Enter end ``` ## Before https://github.com/zed-industries/zed/assets/1894248/40fc2b37-692f-469f-9cbe-05cbb1ab4c3c ## After https://github.com/zed-industries/zed/assets/1894248/d9ba8d27-fd17-4c74-b22c-a4de124739a3 Release Notes: - N/A
Vitaly Slobodin created
6eb8e83
docs: Update font features (#12229)
This follows up the changes in #11611 and #11898 Release Notes: - N/A
张小白 created
4c51ee7
assistant: Allow passing module paths to `/rustdoc` command (#12536)
This PR updates the `/rustdoc` command to accept module paths in addition to just a crate name. This will return the docs.rs page just for that particular module. ### Examples ``` /rustdoc bevy /rustdoc bevy::ecs /rustdoc bevy::ecs::component ``` <img width="641" alt="Screenshot 2024-05-31 at 11 18 25 AM" src="https://github.com/zed-industries/zed/assets/1486634/d88af19f-5ba1-4073-8108-63cccd138db6"> <img width="641" alt="Screenshot 2024-05-31 at 11 18 35 AM" src="https://github.com/zed-industries/zed/assets/1486634/9c414ab1-0be8-4d79-8c64-b45f19266556"> Release Notes: - N/A
Marshall Bowers created
660cf21
ruby: Capture the heredoc content only and downcase the language (#12532)
# Summary
Hi. Current `heredoc` injection for Ruby language captures the
`heredoc_end` token. That's a bit incorrect because we want to capture
the content only. Suppose we have the following Ruby code:
```ruby
<<~JS
function myFunc() {
const myConstant = [];
}
let a = '1'
JS
```
And this is its syntax tree:
```
[program] [0, 0] - [7, 0]
[heredoc_beginning] [0, 0] - [0, 5]
[heredoc_body] [0, 5] - [6, 2]
[heredoc_content] [0, 5] - [6, 0]
[heredoc_end] [6, 0] - [6, 2]
```
Current injection capture all content of the `heredoc_body`:

But we want to capture the `heredoc_content` only and this PR resolves
that, additionally it downcases the language like Zed does in other
languages like Terraform.

Release Notes:
- N/A
Vitaly Slobodin created
b2565fa
ruby: Fix injections query location (#12534)
This PR fixes the location of the `injections.scm` query within the Ruby extension. Same as #12532, but without the content changes to `injections.scm`. Release Notes: - N/A
Marshall Bowers created
2cff075
elixir: Fix `mix test $ZED_SYMBOL` task (#11879)
$ZED_SYMBOL doesn't really work here once that will try to do something like this: mix test MyModule.MyModuleTest instead of using the path of the file: mix test test/my_module/my_module_test.exs Release Notes: - Fix mix test $ZED_SYMBOL to use ZED_RELATIVE_FILE instead - Use ZED_RELATIVE_FILE instead of ZED_FILE to improve mix tasks results on Elixir umbrella projects
Felipe Renan created