Commit graph

2270 commits

Author SHA1 Message Date
Max Brunsfeld
7dc28aad78 Forbid paste, undo, redo on read-only editors 2024-01-12 10:38:05 -08:00
Max Brunsfeld
258c2fdad4 Fix routing of leader updates from unshared projects
Previously, leader updates in unshared projects would be sent to
all followers regardless of project, as if they were not scoped
to any project.
2024-01-11 13:47:31 -08:00
Max Brunsfeld
cb11fb68cb
Avoid bright green separators when displaying untitled buffers in multi-buffers (#4024)
Release notes:

- Fixed unstyled excerpt separators when showing untitled buffers in
multi-buffers.
2024-01-11 12:19:55 -08:00
Max Brunsfeld
5feae86900 Avoid bright green separators when displaying untitled buffers in multi-buffers 2024-01-11 09:55:16 -08:00
Piotr Osiewicz
a98d048905
gpui: Make TextSystem::line_wrapper non-fallible. (#4022)
Editors WrapMap could become desynchronised if user had an invalid font
specified in their config. Compared to Zed1, WrapMap ignored the
resolution failure instead of panicking. Now, if there's an invalid font
in the user config, we just fall back to an arbitrary default.


Release Notes:
- Fixed the editor panic in presence of invalid font name in the config
(fixes https://github.com/zed-industries/community/issues/2397)

---------

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2024-01-11 18:52:00 +01:00
Kirill Bulatov
ba83623c84 Fix whitespace symbol colors in the editor, use zed1 one
co-authored-by: Marshall Bowers <marshall@zed.dev>
2024-01-11 17:43:49 +02:00
Kirill Bulatov
9bb50a5ded Restore hover action in the editor 2024-01-11 16:19:44 +02:00
Joseph T. Lyons
75cb409d2e
Instrument edit events (#4006)
The goal of this PR is to send up events that contain the duration of
keyboard activity within Zed. I built the `EventCoalescer`, which gets
called called each time a key is pressed, within any environment (in the
case of this PR, within "editor" and "terminal). The" `EventCoalescer`
holds a start and end DateTime and adjusts the end instant as events
come in, until a timeout from the last event is hit.

I did my best to keep this mechanism efficient (avoiding vectors to
store moments in time, avoiding spawning timers threads, etc.), because
I know this is going to be per keystroke, but its behind a lock on the
telemetry struck, since it has to know when the environment changes, in
which point, it will automatically end the activity period, even if
there is no timeout. Because we have to have access to it from different
parts of the system, we have to go through the lock, which worried me a
bit (@mikayla-maki's intuition is that it should be fine).

As for the event, I take the time between the durations reported by the
event coalescer and send that up to zed - the indention is to
reconstruct the start and end times on zed.dev, in the same way we use
the event offset times and the time on zed.dev to get the official event
timestamp, and avoid the issue of the user having their system clocks
set wrong.

I'd really appreciate it if @nathansobo or @maxbrunsfeld could check
this out.

Release Notes:

- N/A
2024-01-11 08:19:29 -05:00
Piotr Osiewicz
0db7559e96
editor: extend diff hunk range for custom transform blocks. (#4012)
Reported by Mikayla:

![image](https://github.com/zed-industries/zed/assets/24362066/b744d82e-328f-4554-becf-96f9fa92bfc8)
Note how the line with rust analyzer error does not have a git diff
hunk.
vs:

![image](https://github.com/zed-industries/zed/assets/24362066/e285af7a-b8ab-40e9-a9c6-b4ab8d6c4cd0)

Release Notes:
- N/A
2024-01-11 12:26:12 +01:00
Mikayla Maki
44969460cd
Remove remaining port related todos (#3994)
TODO:
- [x] Audit all TODO comments in Zed source and mark port related ones
with a !
- [x] Resolve all todos written as `todo!`

Release Notes:

- N/A
2024-01-10 17:31:05 -08:00
Conrad Irwin
766a869208 Fix fold-related panic 2024-01-10 15:51:13 -07:00
Joseph T. Lyons
b26a468820 Merge branch 'main' into instrument-keyboard-events 2024-01-10 16:03:01 -05:00
Mikayla
7ef88397c9
Fix seg fault when using the WindowContext::on_window_should_close() API 2024-01-10 11:26:11 -08:00
Mikayla
c98d7adf83
Audit all TODOs in Zed and mark port related todos 2024-01-10 11:26:11 -08:00
Piotr Osiewicz
282184a673
editor: Use inclusive ranges for git diff resolution. (#3999)
The culprit was in display map which was resolving next valid point for
the editor, without regard for whether that point belongs to the same excerpt. We now make an end point a minimum of the end point passed in and the start of excerpt header, if there are any. 
This bug existed in Zed1 as well.

Fixes: Diff markers in multibuffer search overlap with dividers between
excepts (shouldn't extend all the way into the divider region)


Release Notes:
- Fixed diff markers being drawn incorrectly near headers in multibuffer
views.
2024-01-10 18:11:05 +01:00
Marshall Bowers
aff119b80a
Fix possessive "its" in docs and comments (#3998)
This PR fixes a number of places where we were incorrectly using "it's"
where we needed to use the possessive "its".

Release Notes:

- N/A
2024-01-10 10:09:48 -05:00
Joseph T. Lyons
d3d6b53a74 WIP 2024-01-10 02:05:42 -05:00
Mikayla Maki
45baad2825
Remove or fix stale todos (#3990)
The software equivalent of dusting

Release Notes:

-
2024-01-09 18:37:35 -08:00
Mikayla
80790d921d
Fix / remove small todos 2024-01-09 14:16:46 -08:00
Conrad Irwin
a46947d5d7 Fix panic in set_scroll_anchor_remote 2024-01-09 14:19:48 -07:00
Julia
5b1894a9b1
Take into account multiple scroll deltas within a single frame (#3982)
Release Notes:

- Fixed an issue where all but the last scroll event would be dropped if
there were multiple within a single frame.
2024-01-09 14:51:26 -05:00
Julia
463270ed36 Take into account multiple scroll deltas within a single frame
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2024-01-09 14:32:43 -05:00
Nathan Sobo
42cbd103fb Even more docs
Co-authored-by: Conrad <conrad@zed.dev>
2024-01-09 12:02:12 -07:00
Marshall Bowers
824d06e2b2
Remove Default impl for StatusColors (#3977)
This PR removes the `Default` impl for `StatusColors`.

Since we need default light and dark variants for `StatusColors`, we
can't use a single `Default` impl.

Release Notes:

- N/A
2024-01-09 11:31:19 -05:00
Marshall Bowers
fa53353c57
Rename IconElement to just Icon (#3974)
This PR renames the `IconElement` component to just `Icon`.

This better matches the rest of our components, as `IconElement` was the
only one using this naming convention.

The `Icon` enum has been renamed to `IconName` to free up the name.

I was trying to come up with a way that would allow rendering an
`Icon::Zed` directly (and thus make the `IconElement` a hidden part of
the API), but I couldn't come up with a way to do this cleanly.

Release Notes:

- N/A
2024-01-09 10:11:20 -05:00
Kirill Bulatov
625c9d8980 Remove some todo!'s 2024-01-09 11:36:36 +02:00
Piotr Osiewicz
e4b1c76895
Display setting documentation in settings.json (#3936)
Let this screenshot of settings.json speak for itself: 

![image](https://github.com/zed-industries/zed/assets/24362066/fca60383-1788-43f9-803b-00f083394c8a)

Release Notes:
- Added code completion & on-hover documentation to Zed's settings.json
file.

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
2024-01-08 19:30:18 +01:00
Marshall Bowers
a8c193c7a6
Remove resolved TODO (#3943)
This PR removes a resolved TODO in drawing diff hunk status.

Release Notes:

- N/A
2024-01-08 13:08:44 -05:00
Marshall Bowers
46a99feb97
Use correct color for folded diff indicator (#3942)
This PR updates the indicator for changes within a fold to use the
correct color from the theme:

<img width="380" alt="Screenshot 2024-01-08 at 12 52 56 PM"
src="https://github.com/zed-industries/zed/assets/1486634/b8bf6bf3-6acc-43a4-8c4b-a02c975c7f02">

Release Notes:

- Updated the color of the indicator for a fold containing modified
lines.
2024-01-08 12:58:04 -05:00
Piotr Osiewicz
d475f1373a
gpui: Further docs refinement & moved some reexports into 'private' module (#3935)
This commit mostly fixes invalid URLs in docstrings. It also
encapsulates crates we reexport (serde stuff + linkme) into a public
module named "private" in order to reduce the API surfaced through docs.
Moreover, I fixed up a bunch of crates that were pulling serde_json in
through gpui explicitly instead of using Cargo manifest.

Release Notes:
- N/A
2024-01-07 14:14:21 +01:00
Joseph T. Lyons
ea1770254d Merge branch 'main' into instrument-welcome-screen 2024-01-06 15:23:06 -05:00
Joseph T. Lyons
167a0b590f Add event for welcome page close 2024-01-06 15:17:28 -05:00
Joseph T. Lyons
cdd5cb16ed WIP 2024-01-06 14:41:35 -05:00
Antonio Scandurra
23414d185c Fix bug that was causing Editor to notify on every mouse move 2024-01-06 18:56:55 +01:00
Conrad Irwin
709682e8bc Tidy up TestContext lifecycle
Co-Authored-By: Max <max@zed.dev>
2024-01-05 16:31:41 -07:00
Marshall Bowers
79cccdb6d1
Use regular text color for diagnostic popovers (#3918)
This PR updates the diagnostic popovers to use the regular editor text
color rather than one specific to the diagnostic kind.

Release Notes:

- Updated text color in diagnostic popovers.
2024-01-05 14:13:43 -05:00
Conrad Irwin
3c0052850c Merge branch 'main' into channel-guests 2024-01-05 10:05:59 -07:00
Conrad Irwin
df0076a4eb
Better TestWindow support (#3876)
Adding guest roles led us down a rabbit hole where we'd have liked to
rely on a
side-effect of activating a window in tests; but the test window didn't
implement that.

Looking into that, I realized our TestWindow wasn't doing a great job of
emulating the MacWindow, so this makes the two more similar.
2024-01-05 09:59:48 -07:00
Kirill Bulatov
3070a6ef26 Return back git status colors for tab labels 2024-01-05 12:38:42 +02:00
Conrad Irwin
fff415e3e9 Improve deactivate simulation 2024-01-04 22:06:52 -07:00
Marshall Bowers
e4aa7ba4f2
Try to load fallback fonts instead of panicking when a font is not found (#3891)
This PR adjusts our font resolution code to attempt to use a fallback
font if the specified font cannot be found.

Right now our fallback font stack is `Zed Mono`, followed by `Helvetica`
(in practice we should always be able to resolve `Zed Mono` since we
bundle it with the app).

In the future we'll want to surface the ability to set the fallback font
stack from GPUI consumers, and potentially even support specifying font
stacks in the user settings (as opposed to a single font family).

Release Notes:

- Fixed a panic when trying to load a font that could not be found.
2024-01-04 14:10:46 -05:00
Antonio Scandurra
6f4a08ba5a Prevent scrolling editor and resizing panels at the same time
This fixes a bug that would cause Zed to never stop resizing
panels when the drag handle overlapped with an editor scrollbar.

Co-Authored-By: Marshall <marshall@zed.dev>
2024-01-04 17:25:02 +01:00
Antonio Scandurra
f0afa3f9e3 Show scrollbar even when buffer search highlights are outside viewport 2024-01-04 12:39:15 +01:00
Joseph T. Lyons
2972ee8ced Move telemetry settings check into telemetry module 2024-01-04 01:13:21 -05:00
Marshall Bowers
e903adf016
Use dense spacing for completion menu items (#3874)
This PR updates the completion menu to use dense spacing for its items.

Release Notes:

- Adjusted styling of completion menu entries.
2024-01-03 23:06:16 -05:00
Conrad Irwin
6877bd4969 Make read only buffers feel more read only 2024-01-03 19:31:43 -07:00
Conrad Irwin
84171787a5 Track read_only per project and buffer
This uses a new enum to avoid confusing booleans
2024-01-03 19:31:43 -07:00
Max Brunsfeld
f5ba22659b Remove 2 suffix from gpui
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:59:39 -08:00
Max Brunsfeld
dfcb17fe74 Remove 2 suffix for theme
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:41:01 -08:00
Max Brunsfeld
4305c5fdbe Remove 2 suffix for ui, storybook, text
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:33:51 -08:00