Commit graph

418 commits

Author SHA1 Message Date
Antonio Scandurra
8de18b5a84 Re-join channel when reconnecting
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-09 15:34:46 +02:00
Max Brunsfeld
c3e29e0a2d Finish implementing DeterministicExecutor::advance_clock
* Start by running all non-timer futures to completion, to ensure that
  timers have a chance to be registered.
* Release executor's state lock before waking any timers
2021-09-08 11:27:30 -07:00
Antonio Scandurra
900010160f WIP
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-08 18:58:59 +02:00
Max Brunsfeld
08bac7b9a3 Introduce test-only Buffer::set_sync_parse_timeout
When testing buffer's asynchronous reparsing, set the sync
parse timeout to zero, so that we can exercise the async code path.
2021-09-07 16:23:49 -07:00
Max Brunsfeld
36fb559c03 Rework tabs
* Tabs are no longer flexible in width
* Move status icons to the left side of the tab
* The close button is always visbile for the active tab

Co-Authored-By: Nate Butler <nate@zed.dev>
2021-09-07 14:28:14 -07:00
Nathan Sobo
13143e64a2 Style resize handles
We want the draggable area to be larger than the visual appearance, so we added a padding facility to MouseEventHandler that enlarges the "hit area" by the specified padding.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-07 13:22:21 -06:00
Antonio Scandurra
7db78b3961 Merge branch 'chat' 2021-09-07 19:21:03 +02:00
Antonio Scandurra
d08ec438ed Make titlebar taller and position traffic lights accordingly
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-07 18:37:45 +02:00
Antonio Scandurra
a8011fcde4 Render underlines in front of paths and glyphs 2021-09-07 11:19:44 +02:00
Antonio Scandurra
5b71901912 Flush pending underline when we are at the end of the line 2021-09-07 11:04:44 +02:00
Antonio Scandurra
cf68ad3a82 Trim pending underline when text runs don't cover the whole line 2021-09-07 11:03:43 +02:00
Antonio Scandurra
8cf16c6ecc Use Label's base style underline when no highlights are provided 2021-09-07 11:03:08 +02:00
Nathan Sobo
6323e8cc59 WIP: Try rendering underlines after all other quads
I thought this would allow underlines to show up in tabs, but it doesn't seem to be working.
2021-09-06 16:57:58 -06:00
Max Brunsfeld
9346aa300d Start work on underlined text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-06 15:36:09 -07:00
Antonio Scandurra
94959d18c4 Load embedded fonts when initializing settings 2021-09-06 14:08:42 +02:00
Antonio Scandurra
cb62d53b49 Return errors instead of panicking when interacting with the keychain
Closes #134
2021-09-06 10:40:19 +02:00
Max Brunsfeld
cff6ffb716 Avoid invalid lifecycle state for flex element when total child flex is zero 2021-09-04 16:27:38 -07:00
Antonio Scandurra
00f6bdcb24 Bundle and use Inconsolata v2.012
There's a newer version of the font available but ligatures seem
broken googlefonts/Inconsolata#58 and googlefonts/Inconsolata#52.

As part of this commit I also upgraded rust-embed to use the new
exclusion feature, which allows us to skip embedding OS files like
`.DS_Store`.
2021-09-04 17:02:20 +02:00
Antonio Scandurra
f0775aeebc Rename Hooks to Hook
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-03 17:56:01 +02:00
Antonio Scandurra
2f0f6e210d Honor max constraint in Flex even if children overflow
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-03 17:47:45 +02:00
Antonio Scandurra
0ae70b62cb Use on_after_layout to cap the rendered sidebar item's width 2021-09-03 17:19:57 +02:00
Antonio Scandurra
215db4243c Ensure key window is a GPUIWindow before returning its id 2021-09-03 14:20:59 +02:00
Antonio Scandurra
4c7eaaebb1 Use Flexible in file finder and theme switcher instead of Expanded 2021-09-03 13:20:41 +02:00
Antonio Scandurra
776f7dd5a9 Add a new Hooks element to invoke a callback before layout
This is useful to cap the width of sidebars when dragging the
resize handles beyond the maximum bounds of the sidebar.
2021-09-03 12:18:31 +02:00
Antonio Scandurra
a0dd41cdf6 Add a Flexible element that works like in Flutter 2021-09-03 11:40:18 +02:00
Max Brunsfeld
522bef2e3a Add placeholder text as a feature of Editor, use it in chat panel 2021-09-02 17:36:56 -07:00
Max Brunsfeld
1c43121ae0 In theme, add an InputEditorSyle for styling small editors
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-09-02 11:20:30 -07:00
Antonio Scandurra
f59e02cf25 Use macOS API to retrieve the local timezone
The `time` crate currently doesn't have a reliable way to get that.
In the future, `NSSystemTimeZoneDidChangeNotification` could be
used to keep the cached timezone up-to-date.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-02 19:15:05 +02:00
Antonio Scandurra
3d4ff43f9e Reset visible bounds when painting an Overlay element
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-02 18:46:48 +02:00
Antonio Scandurra
2d5abee655 Fix calculation of visible glyph bounds
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:24:52 +02:00
Antonio Scandurra
26fe285408 Always inherit parent layer's clip bounds
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:24:08 +02:00
Antonio Scandurra
6a071e865f Make Line::paint interface consistent with Line::paint_wrapped
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 14:33:52 +02:00
Antonio Scandurra
bdc35f03f2 Paint only glyphs that intersect the visible bounds in Text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 14:14:05 +02:00
Antonio Scandurra
0490c609fb Introduce a visible_bounds parameter to Element::paint
We're not using this yet but this will be useful to avoid rendering
unnecessary portions of text.
2021-09-02 11:42:23 +02:00
Antonio Scandurra
38dc023942 Toggle sidebar items on mouse down instead of on click 2021-09-02 10:20:58 +02:00
Antonio Scandurra
1d697df1bc Implement channel switching 2021-09-02 10:16:20 +02:00
Antonio Scandurra
4876e40a98 Reset rendered range when calling ListState::reset 2021-09-02 10:14:32 +02:00
Max Brunsfeld
985788b855 Allow uniform margins and paddings to be specified as single numbers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:14:25 -07:00
Max Brunsfeld
848dd5f4c5 Add refreshing field to LayoutContext
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:02:12 -07:00
Max Brunsfeld
894531d0e0 Fix list's scrollwheel direction
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 15:36:22 -07:00
Max Brunsfeld
82d1fb82d2 Clean up List::layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 15:27:23 -07:00
Max Brunsfeld
bfdb0f35ba Return correct scroll top from layout when list is not full
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 14:27:38 -07:00
Max Brunsfeld
bc38baf241 Get randomized test passing
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-09-01 13:25:12 -07:00
Antonio Scandurra
6e91289235 Adjust the stored scroll top during layout if it exceeds scroll max
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 17:29:26 +02:00
Antonio Scandurra
20e18ac3ad WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:19:01 +02:00
Antonio Scandurra
c8d67f428d WIP 2021-09-01 13:50:39 +02:00
Antonio Scandurra
c7a8972a57 Fix off-by-one error in StateInner::visible_range
I even wonder if we should keep this function around, as it feels
like it can only be called at certain times (e.g. layout) and not
after a splice or a scroll where we may not have rendered the
elements we actually need.
2021-09-01 12:20:48 +02:00
Antonio Scandurra
0a22dee764 Save last layout width in List to avoid unnecessary re-renders 2021-09-01 12:20:11 +02:00
Max Brunsfeld
477740360d Start work on partial rendering for List element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-31 21:57:56 -07:00
Antonio Scandurra
2db49ce27f Maintain logical scroll top when splicing List elements
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-31 16:35:57 +02:00