1c410c1
linux: only tick the main thread tasks and one at a time in the event loop
Dzmitry Malyshau created
1c410c1
linux: only tick the main thread tasks and one at a time in the event loop
Dzmitry Malyshau created
f92be4b
linux: temporarily disable purescript tree sitter
Link error:
= note: /nix/store/idiaraknw071d20nlqp49s18gbvw4wa0-binutils-2.40/bin/ld: /x/Code/zed/target/x86_64-unknown-linux-gnu/debug/deps/libtree_sitter_haskell-7323f782ad886c6d.rlib(scanner.o): in function `state_new':
/home/kvark/.cargo/git/checkouts/tree-sitter-haskell-74c278e7a2ef8d7d/cf98de2/src/scanner.c:218: multiple definition of `state_new'; /x/Code/zed/target/x86_64-unknown-linux-gnu/debug/deps/libtree_sitter_purescript-b0a95fb604a5817c.rlib(scanner.o):/home/kvark/.cargo/git/checkouts/tree-sitter-purescript-88dd3ec656c48026/a37140f/src/scanner.c:218: first defined here
Dzmitry Malyshau created
b13b572
linux: disable mac-os specific build commands
Dzmitry Malyshau created
224fe13
blade: fix tile bounds shader FFI
Dzmitry Malyshau created
0a5ebee
blade: encapsulate BladeAtlasStorage for indexing
Dzmitry Malyshau created
26ca798
blade: initialize atlas textures
Dzmitry Malyshau created
61fa5e9
blade: always create texture views for atlas tiles
Dzmitry Malyshau created
aae5329
blade: tune belt alignment to match Intel Iris Xe
Dzmitry Malyshau created
13ba8b6
Fix linux target in rust-toolchain.toml
Co-authored-by: Ilia <43654815+istudyatuni@users.noreply.github.com>
Dzmitry Malyshau and Ilia created
d6bbcf5
blade: enforce alignment in the belt
Dzmitry Malyshau created
c5ff46e
blade: fix shadow vertex bounds
Dzmitry Malyshau created
cf71fe8
fix MacOS build, switch external RWH to 0.6
leaving blade-internal RWH as 0.5 until this is fixed: https://github.com/ash-rs/ash/issues/864
Dzmitry Malyshau created
d0a0ce1
blade: mono/poly chrome sprite rendering
Dzmitry Malyshau created
ac74a72
Improve elm-language-server configuration (#7342)
Hi folks! @absynce and I paired a bit to improve the
`elm-language-server` configuration. We have realised that sometimes
`elm-language-server` settings were being reset to default. We had been
configuring `elm-language-server` like this:
```json
"lsp": {
"elm-language-server": {
"initialization_options": {
"disableElmLSDiagnostics": true,
"onlyUpdateDiagnosticsOnSave": true,
"elmReviewDiagnostics": "warning"
}
}
}
```
And then we noticed that the following communication happened:
```
// Send:
{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{}}}
// Receive:
{"jsonrpc":"2.0","id":5,"method":"workspace/configuration","params":{"items":[{"section":"elmLS"}]}}
// Send:
{"jsonrpc":"2.0","id":5,"result":[null],"error":null}
```
In `elm-language-server` the settings from `didChangeConfiguration`
[replace the initial
settings](https://github.com/elm-tooling/elm-language-server/blob/edd68133883f3902f8940a6e5e2834a9cd627dc1/src/common/providers/diagnostics/diagnosticsProvider.ts#L188).
Setting the value to `{}` effectively resets the configuration options
to defaults.
In Zed, `initialization_options` and `workspace_configuration` are two
different things, but in `elm-language-server` they are coupled.
Additionally, `elm-language-server` is requesting workspace
configuration for the `elmLS` section that doesn't exist.
This PR:
1. Fixes settings reset on `didChangeConfiguration` by populating
`workspace_configuration` from `initialization_options`
2. Makes workspace configuration requests work by inserting an extra
copy of the settings under the `elmLS` key in `workspace_configuration`
— this is a bit ugly, but we're not sure how to make both kinds of
configuration messages work in the current setup.
This is how communication looks like after the proposed changes:
```
// Send:
{
"jsonrpc": "2.0",
"method": "workspace/didChangeConfiguration",
"params": {
"settings": {
"disableElmLSDiagnostics": true,
"onlyUpdateDiagnosticsOnSave": true,
"elmReviewDiagnostics": "warning",
"elmLS": {
"disableElmLSDiagnostics": true,
"onlyUpdateDiagnosticsOnSave": true,
"elmReviewDiagnostics": "warning"
}
}
}
}
// Receive:
{
"jsonrpc": "2.0",
"id": 4,
"method": "workspace/configuration",
"params": {
"items": [
{
"section": "elmLS"
}
]
}
}
// Send:
{
"jsonrpc": "2.0",
"id": 4,
"result": [
{
"disableElmLSDiagnostics": true,
"onlyUpdateDiagnosticsOnSave": true,
"elmReviewDiagnostics": "warning"
}
],
"error": null
}
```
Things we have considered:
1. Extracting the `elm-language-server` settings into a separate
section: we haven't found this being widely used in Zed, seems that all
language server configuration should fall under the top level `lsp`
section
2. Changing the way `elm-language-server` configuration works:
`elm-language-server` has got integrations with multiple editors,
changing the configuration behaviour would mean updating all the
existing integrations. Plus we are not exactly sure if it's doing
anything wrong.
Release Notes:
- Improved elm-language-server configuration options
Co-authored-by: Jared M. Smith <absynce@gmail.com>
Andrey Kuzmin and Jared M. Smith created
ae2c23b
Reintroduce ProMotion support (#7347)
This re-introduces the changes of #7305 but this time we create a display link using the `NSScreen` associated with the window. We're hoping we'll get these frame requests more reliably, and this seems supported by the fact that awakening my laptop restores the frame requests. Release Notes: - See #7305. Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
59642bf
blade: point to master, remove the override
Dzmitry Malyshau created
8da6e62
Editor toolbar configuration (#7338)
Adds settings for hiding breadcrumbs and quick action bar from
the editor toolbar. If both elements are hidden, the toolbar disappears
completely.
Example:
```json
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
}
```
- It intentionally doesn't hide breadcrumbs in other views (for
instance, in the search result window) because their usage there differ
from the main editor.
- The editor controls how breadcrumbs are displayed in the toolbar, so
implementation differs a bit for breadcrumbs and quick actions bar.
Release Notes:
- Added support for configuring the editor toolbar ([4756](https://github.com/zed-industries/zed/issues/4756))
Andrew Lygin created
55185c1
Support documentation as a resolvable property (#7306)
Closes #7288 <img width="1800" alt="Screenshot 2024-02-03 at 01 56 14" src="https://github.com/zed-industries/zed/assets/69181766/ed97ef30-c958-45c8-812c-a59bbbd02b19"> Release Notes: - Improved LSP `completionItem/resolve` request by supporting `documentation` as a resolvable property
Rashid Almheiri created
c9a53b6
Fix the compilation error (#7328)
Follow-up of https://github.com/zed-industries/zed/pull/7326 Release Notes: - N/A
Kirill Bulatov created
1ab0af2
Revert the commit that broke Zed display capabilities (#7326)
Kirill Bulatov created
06674a2
Add support for relative terminal links (#7303)
Allow opening file paths relative to terminal's cwd https://github.com/zed-industries/zed/assets/67913738/413a1107-541e-4c25-ae7c-cbe45469d452 Release Notes: - Added support for opening file paths relative to terminal's cwd ([#7144](https://github.com/zed-industries/zed/issues/7144)). --------- Co-authored-by: Kirill <kirill@zed.dev>
Robin Pfäffle and Kirill created
54aecd2
Remove unnecessary `focus_invalidated` field (#7320)
I believe at some point this was used for tests but it doesn't seem necessary anymore. Release Notes: - N/A
Antonio Scandurra created
c906fd2
Reduce GPU memory usage (#7319)
This pull request decreases the size of each instance buffer and shares instance buffers across windows. Release Notes: - Improved GPU memory usage. --------- Co-authored-by: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
d08d417
Modify the default tab size of OCaml & OCaml Interface to 2 (#7315)
Thanks @pseudomata for the heads up. Release Notes: - N/A
Rashid Almheiri created
2e32f58
linux: various fixes across the crates to make it compile
Dzmitry Malyshau created
7c7aad5
blade: port underline shader
Dzmitry Malyshau created
04e49dc
blade: refactor the atlas to not own the command encoder
Dzmitry Malyshau created
1a82470
Open URLs with cmd-click (#7312)
Release Notes: - Added ability to cmd-click on URLs in all buffers --------- Co-authored-by: fdionisi <code@fdionisi.me>
Conrad Irwin and fdionisi created
583273b
Bump alacritty to fix some panics (#7313)
Release Notes: - Fixed some panics in the Terminal ([#6835](https://github.com/zed-industries/zed/issues/6835)).
Conrad Irwin created
fcbc220
Don't log errors on main (#7289)
Release Notes: - N/A
Conrad Irwin created
f09da1a
vim hml (#7298)
- Add a setting for `vertical_scroll_offset` - Fix H/M/L in vim with scrolloff Release Notes: - Added a settings for `vertical_scroll_offset` - vim: Fix H/M/L with various values of vertical_scroll_offset --------- Co-authored-by: Vbhavsar <vbhavsar@gmail.com> Co-authored-by: fdionisi <code@fdionisi.me>
Conrad Irwin , Vbhavsar , and fdionisi created
e1efa72
Update configuring_zed__key_bindings.md (#7310)
Added explanations for binding `null` to a keyboard binding. Release Notes: - N/A
Tom Planche created
430f5d5
vim: Convert from visual mode to normal mode with a single click (#6985)
Release Notes: - Fixed #4319 Here is a demo after the fix: https://github.com/zed-industries/zed/assets/22256154/a690f146-73c9-4b0e-8527-e4faf690cca2 Actually I'm not really sure should I submit my idea to discussion, since it's not a large change, and it's something like a bug fix. So I directly create a pr here. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
WindSoilder and Conrad Irwin created
15edc46
Maintain smooth frame rates when ProMotion and direct mode are enabled (#7305)
This is achieved by starting a `CADisplayLink` that will invoke the `on_request_frame` callback at the refresh interval of the display. We only actually draw frames when the window was dirty, or for 2 extra seconds after the last input event to ensure ProMotion doesn't downclock the refresh rate when the user is actively interacting with the window. Release Notes: - Improved performance when using a ProMotion display with fast key repeat rates. --------- Co-authored-by: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
f2ba969
Dismiss update notification when viewing releases notes (#7297)
After updating zed, a notification is shown in the bottom right with the new version number, a link to the release notes, and an 'x' to dismiss the dialog. Before this PR, clicking the link to the release notes would not dismiss the modal. So, a user returning to the IDE after viewing the notes in the browser would still see the notification. With this change, clicking 'View release notes' also dismisses the notification. Co-authored-by: tomholford <tomholford@users.noreply.github.com> Release Notes: - Made update notification to dismiss when viewing releases notes
tomholford created
2d58226
Avoid logging errors about missing themes dir (#7290)
Kirill Bulatov created
115f067
gpui: Add support for observing window appearance (#7294)
This PR adds support to GPUI for observing when the appearance of a window changes. Based on the initial work done in https://github.com/zed-industries/zed/pull/6881. Release Notes: - N/A
Marshall Bowers created
1f6bd67
Fix main (#7293)
Release Notes: - N/A
Conrad Irwin created
a0b52cc
Scope line layout cache to each window (#7235)
This improves a performance problem we were observing when having multiple windows updating at the same time, where each window would invalidate the other window's layout cache. Release Notes: - Improved performance when having multiple Zed windows open. Co-authored-by: Max Brunsfeld <max@zed.dev>
Antonio Scandurra and Max Brunsfeld created
5360c0e
theme_importer: Make VS Code theme parsing more lenient (#7292)
This PR updates the `theme_importer` to use `serde_json_lenient` to parse VS Code themes. This should allow us to parse themes that have trailing commas and such, in addition to the comment support that we already had. Release Notes: - N/A
Marshall Bowers created
3995c22
Use async-native-tls for websockets (#7254)
This change switches from using async_tungstenite::async_tls to async_tungstenite::async_std with the async-native-tls feature. The previous feature, async_tls, used async-tls which wraps rustls. rustls bundles webpki-roots, which is a copy of Mozilla's root certificates. These certificates are used by default, and manual configuration is required to support custom certificates, such as those required by web security gateways in enterprise environments. Instead of introducing a new configuration option to Zed, async-native-tls integrates with the platform-native certificate store to support enterprise environments out-of-the-box. For MacOS, this adds support for Security.framework TLS. This integration is provided through openssl-sys, which is also the SSL certificate provider for isahc, the library underlying Zed's HTTP client. Making websockets and HTTP communications use the same SSL provider should keep Zed consistent operations and make the project easier to maintain. Release Notes: - Fixed WebSocket communications using custom TLS certificates ([#4759](https://github.com/zed-industries/zed/issues/4759)).
James Roberts created
659423a
Use `Mutex` instead of a `RefCell` to acquire/release instance buffers (#7291)
This fixes a panic happening when releasing an instance buffer. Releasing the buffer happens on a different thread but the borrow checker was not catching it because the metal buffer completion handler API doesn't have a `Send` marker on it. Release Notes: - N/A
Antonio Scandurra created
074acac
Do more on channel join (#7268)
This change makes it so that if you are the first to join a channel, your project is automatically shared. It also makes it so that if you join a channel via a link and there are no shared projects, you open the notes instead of an empty workspace with nothing. This is to try and address the discoverability of project sharing: we've had two reviews that have talked about channels, but not talked about sharing projects into them, which makes me suspect they didn't know about the feature. Release Notes: - Added a setting `share_on_join` (defaulting to true). When set, and you join an empty channel, your project is automatically shared.
Conrad Irwin created
6f6cb53
Tweak pull request template to (hopefully) make it clearer (#7287)
I keep seeing people leave the wrapping parentheses, like `(Added)` in their release notes. This PR tries making it clearer that we only want *one* of "Added", "Fixed", or "Improved". Release Notes: - N/A
Marshall Bowers created
3d76ed9
Use `command_buffer.wait_until_scheduled` in metal renderer (#7283)
This commit goes back to using `wait_until_scheduled` as opposed to `wait_until_completed`. What this means, however, is that another draw could take place before the previous one finished. When that happens we don't want to reuse the same instance buffer because the GPU is actively reading from it, so we use a pool instead. Release Notes: - Fixed a bug that caused inconsistent frame rate when scrolling on certain hardware. --------- Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball , Antonio Scandurra , and Antonio created
cf4f3ed
Fix padding for notes label (#7280)
Fixes the padding of the "notes" button in collab-ui. I'm not sure why the previous code used `div().h_7().w_full()`. Am I missing something here? ### Before  ### After  Release Notes: - Fixed padding of the "notes" button in the collaboration panel. Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Bennet Bo Fenner and Marshall Bowers created
bacb2a2
Add more data into LSP header parsing error contexts (#7282)
Follow-up of https://github.com/zed-industries/zed/pull/6929 Release Notes: - N/A
Kirill Bulatov created
33e5ba6
Revert "Add YAML file type icon (#7185)" (#7286)
This PR reverts the addition of the YAML icon, as it doesn't look good at the moment: <img width="305" alt="Screenshot 2024-02-02 at 10 55 16 AM" src="https://github.com/zed-industries/zed/assets/1486634/2fe2ddd5-5b73-4c52-a121-562d07352005"> This reverts commit a853a80634149ad5d069c48c4a0ece0bd584b5b1. Release Notes: - N/A
Marshall Bowers created
11bd288
editor: Add MoveUpByLines and MoveDownByLines actions (#7208)
This adds four new actions:
- `editor::MoveUpByLines`
- `editor::MoveDownByLines`
- `editor::SelectUpByLines`
- `editor::SelectDownByLines`
They all take a count by which to move the cursor up and down.
(Requested by Adam here:
https://twitter.com/adamwathan/status/1753017094248018302)
Example `keymap.json` entries:
```json
{
"context": "Editor",
"bindings": [
"alt-up": [ "editor::MoveUpByLines", { "lines": 3 } ],
"alt-down": [ "editor::MoveDownByLines", { "lines": 3 } ],
"alt-shift-up": [ "editor::SelectUpByLines", { "lines": 3 } ],
"alt-shift-down": [ "editor::SelectDownByLines", { "lines": 3 } ]
]
}
```
They are *not* bound by default, so as to not conflict with the
`alt-up/down` bindings that already exist.
Release Notes:
- Added four new actions: `editor::MoveUpByLines`,
`editor::MoveDownByLines`, `editor::SelectUpByLines`,
`editor::SelectDownByLines` that can take a line count configuration and
move the cursor up by the count.
### Demo
https://github.com/zed-industries/zed/assets/1185253/e78d4077-5bd5-4d72-a806-67695698af5d
https://github.com/zed-industries/zed/assets/1185253/0b086ec9-eb90-40a2-9009-844a215e6378
Thorsten Ball created
01ddf84
completions: do not render empty multi-line documentation (#7279)
I ran into this a lot with Go code: the documentation would be empty so we'd display a big box with nothing in it. I think it's better if we only display the box if we have documentation. Release Notes: - Fixed documentation box in showing up when using auto-complete even if documentation was empty. ## Before  ## After 
Thorsten Ball created