Commit Graph
2140 Commits
Author SHA1 Message Date
Kirill Bulatov 222bb37da6 Add more tests 2023-10-12 15:14:51 +03:00
Kirill Bulatov 7c90ad59a6 Make the first prettier test pass 2023-10-12 13:30:49 +03:00
Kirill Bulatov 61f321016d Add prettier tests infrastructure 2023-10-11 19:13:28 +03:00
Conrad Irwin 03d8021662 Don't wrap on paragraphs
For zed-industries/community#2116
2023-10-06 10:32:15 -06:00
Mikayla Maki 0bb0e601bd Add markdown parsing to channel chat (#3088)
TODO:
- [x] Add markdown rendering to channel chat
- [x] Unify (?) rendering logic between hover popover and chat
- [x] ~~Determine how to deal with document-oriented markdown like `#`~~
Unimportant until we want to do something special with `#channel`
- [x] Tidy up spacing and styles in chat panel

Release Notes:

- Added markdown rendering to channel chat
- Improved channel chat message style
- Fixed a bug where long chat messages would not soft wrap
2023-10-05 14:30:12 -07:00
Mikayla aa11e374c3 re-unify markdown parsing between hover_popover and chat 2023-10-05 14:22:41 -07:00
Conrad Irwin f1dc4708ff Clear SelectionGoal on input 2023-10-05 09:02:52 -06:00
Julia 83f32c91a3 Detach completion confirmation task when selecting with mouse
Otherwise the spawn to resolve the additional edits never runs causing
autocomplete to never add imports automatically when clicking with the
mouse
2023-10-02 13:18:49 -04:00
Max Brunsfeld 0729b740c9 Merge branch 'main' into allow-following-outside-of-projects 2023-09-28 11:58:28 -07:00
Max BrunsfeldandConrad 8b2a8959d3 Fix coloring of local selections when following
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 11:37:47 -07:00
Max BrunsfeldandConrad 13f4957210 Rename color_index to participant_index
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 11:37:22 -07:00
0976bdc78d Assign unique color indices to room participants, use those instead of replica_ids
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-28 11:06:09 -07:00
Joseph T. Lyons 50d9dc65aa Fix text transformation commands for multiple line, single selection cases (#3060)
If you highlight the following block of text (with a single selection):

```
The quick brown
fox jumps over
the lazy dog
```

and run `editor: convert to upper camel case`, you'll get:

```
TheQuickBrown
foxJumpsOver
theLazyDog
```

instead of:

```
TheQuickBrown
FoxJumpsOver
TheLazyDog
```

The same thing happens for `editor: convert to title case`. This happens
because [`to_case` crate](https://crates.io/crates/convert_case) doesn't
allow the user to define '\n' as a boundary. I wanted to fix this at the
lib level, so I filled [an
issue](https://github.com/rutrum/convert-case/issues/16) but I never
heard back. What's strange is VS Code and Sublime I think both exhibit
the same output as we do currently, but I don't personally think this
feels right (happy to hear opposing opinions). I'm just doing the naive
thing to hack around this limitation of the `to_case` crate.

I did some testing and it seems I only need to adjust `editor: convert
to title case` and `editor: convert to upper camel case`. The way the
other transformations are implemented in `to_case` don't seem to have
this issue.

Release Notes:

- Fixed a bug where running certain text transfomration commands on a
single selection covering multiple lines would not transform all
selected lines as expected.
2023-09-28 14:04:17 -04:00
Conrad Irwin e9ad47aa8e vim: Fix ctrl-u/ctrl-d (#3044)
- vim: Fix ctrl-d/ctrl-u to match vim (when :set scrolloff=3)
2023-09-27 07:48:50 -06:00
Conrad Irwin 6fd4a8fcba vim: Fix ctrl-u/ctrl-d
They should work by exactly half a screen, and also move the cursor.
2023-09-26 22:28:04 -06:00
Kirill Bulatov e2f915e53c Hide inlay hints toggle if they are not supported by the current editor 2023-09-26 23:52:11 +02:00
Piotr Osiewicz bac74f0c02 editor: Start transaction in replace impl (#3036)
This fixes the undo with replace in project
/cc @maxbrunsfeld 

Release Notes:

- N/A
2023-09-26 19:21:15 +02:00
Conrad Irwin 2061d7e47a vim: Command (#2951)
Release Notes:

- vim: Add v1 of command mode
([#279](https://github.com/zed-industries/community/issues/279)). The
goal was to cover 90% of what most people actually do, but it is very
incomplete. Known omissions are that ranges cannot be specified (except
that `:%s//` must always specify the % range), commands cannot take
arguments (you can `:w` but not `:w [file]`), and there is no history.
Please file feature requests on
https://github.com/zed-industries/community as you notice things that
could be better.
- `:` triggers zed's command palette. If you type a known vim command it
will run it, otherwise you get zed's normal fuzzy search. For this
release supported commands are limited to:
- - `:w[rite][!]`, `:wq[!]`, `:q[uit][!]`, `:wa[ll][!]`, `:wqa[ll][!]`,
`:qa[ll][!]`, `:[e]x[it][!]`, `:up[date]` to save/close tab(s) and
pane(s).
- - `:cq` to quit completely.
- - `:vs[plit]`, `:sp[lit]` to split vertically/horizontally
- - `:new`, `:vne[w]` to create a new file in a new pane above or to the
left
- - `:tabedit`, `:tabnew` to create a new file in a new tab.
- - `:tabn[ext]`, `:tabp[rev]` to go to previous/next tabs
- - `:tabc[lose]` to close tabs
- - `:cn[ext]`, `:cp[rev]`, `:ln[ext]`, `:lp[rev]` to go to the
next/prev diagnostics.
- - `:cc`, `:ll` to open the errors page
- - `:<number>` to jump to a line number.
- - `:$` to jump to end of file
- - `:%s/foo/bar/` (note that /g is always implied, the range must
always be %, and zed uses different regex syntax to vim)
- - `:/foo` and `:?foo` to jump to next/prev line matching foo
- - `:j[oin]`, to join the current line (no range is yet supported)
- - `:d[elete][l][p]`, to delete the current line (no range is yet
supported)
- - `:s[ort] [i]` to sort the current selection (case-insensitively)
- vim: Add `ctrl-w o` (closes everything except the current item) and
`ctrl-w n` (creates a new file in the pane above).
([#1884](https://github.com/zed-industries/community/issues/1884))
- all: Add a "Discard" option to prompt when saving a file with
conflicts (previously this only appeared on close, not on save).

Internal changes:
- The Picker will now wait for pending queries before confirming (to
handle people typing `: w enter` rapidly.
- workspace::save_item and Pane::save_item are now merged together, and
the behavior controlled by `workspace::SaveIntent`.
- Many actions related to closing/saving items now take an optional
`SaveIntent`.
-
2023-09-25 14:07:22 -05:00
Conrad Irwin 9da31b697e Merge branch 'vim-command' 2023-09-25 11:41:13 -06:00
Julia ce6771a748 Activate correct item when clicking on a code action with the mouse 2023-09-25 13:31:00 -04:00
Julia c8b9db58ec Trigger scroll_to on code action list when moving selection 2023-09-25 11:13:50 -04:00
Kirill Bulatov 05e812d2a3 Tone down inlay hint update logs 2023-09-22 17:04:11 +03:00
Max Brunsfeld e23d0b8c80 Allow following into channel notes regardless of project 2023-09-21 17:12:59 -07:00
Piotr Osiewicz 1da3ed5c4c [WIP] Replace in project (#2984)
Targeting Preview of 09.27.
This is still pending several touchups/clearups:
- We should watch multibuffer for changes and rescan the excerpts. This
should also update match count.
- Closing editor while multibuffer with 100's of changed files is open
leads to us prompting for save once per each file in the multibuffer.
One could in theory save in multibuffer before closing it (thus avoiding
unnecessary prompts), but it'd be cool to be able to "Save all"/"Discard
All".

Release Notes:

- Added "Replace in project" functionality
2023-09-21 16:27:58 +02:00
Conrad Irwin 376f80d966 Add NewFileInDirection 2023-09-20 20:44:26 -06:00
Conrad Irwin e0b746fbee tests: wait deterministically after simulating_keystrokes 2023-09-20 20:44:26 -06:00
Mikayla e73220b2d4 Fix panic on select all when query is empty 2023-09-20 17:10:23 -07:00
Mikayla 8c8fc4aef6 Only autoscroll on select_next operations 2023-09-20 09:31:12 -07:00
Mikayla 71df613d1c Fix rebase 2023-09-20 08:34:18 -07:00
Mikayla 1d665148b3 Fix infinite loop in select all matches 2023-09-20 08:25:21 -07:00
Mikayla 38b05545a4 Add select all command to the editor, equivalent to hitting cmd-d as many times as possible 2023-09-20 08:25:20 -07:00
Conrad Irwin 0d7e75f60b Initialize workspace properly in tests
For vim command I'd like to be able to test that e.g. workspace::Save
works.
2023-09-19 20:49:29 -06:00
Piotr Osiewicz 5fe12ec616 chore: Use aho-corasick 1.1 in direct dependencies (#2983)
Nothing too fancy, we've depended indirectly on 1.0/1.1 already, so this
is essentially bookkeeping.

Release Notes:
- N/A
2023-09-18 17:01:08 +02:00
Nate Butler 0dc4475f7f Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
Kirill Bulatov e78bff1ebb Empty both hint cache storages correctly 2023-09-15 10:33:32 +03:00
Kirill Bulatov bc36e906d3 Combine both text and inlay highlights in randomized tests 2023-09-14 23:53:56 +03:00
Kirill Bulatov 1d88a1ea63 Store hints in the map, not the snapshot 2023-09-14 23:36:33 +03:00
Kirill Bulatov de1ca60a54 Improve inlay hint cache lookup 2023-09-14 23:31:50 +03:00
Kirill Bulatov 17b09eb060 Restructure inlay highlights data for proper access 2023-09-14 23:05:22 +03:00
Kirill Bulatov 8702be1933 Remove useless background highlights code 2023-09-14 22:18:30 +03:00
Kirill Bulatov 0c70840290 Uncomment the rest of the tests 2023-09-14 22:18:26 +03:00
Kirill Bulatov 130e873079 Randomize inlay highlight range start 2023-09-14 22:08:12 +03:00
Kirill Bulatov a2dba081dc Consider offsets in inlay chunks 2023-09-14 22:08:12 +03:00
Kirill BulatovandAntonio Scandurra 15942c31ef Properly handle inlay highlights in the InlayMap
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-09-14 22:08:12 +03:00
Kirill Bulatov 58a24cf6d8 Add inlay highlight test 2023-09-14 22:08:12 +03:00
Kirill Bulatov 95bfe39bf9 Implement inlay highlighting 2023-09-14 22:08:12 +03:00
Kirill Bulatov d2b0649378 Use standalone inlay background highlights 2023-09-14 22:08:12 +03:00
Kirill Bulatov c8ede63d7c Unify highlights in *Map 2023-09-14 22:08:12 +03:00
Kirill Bulatov 5a9d375f79 Do not combine inlay and text highlights on the *Map level 2023-09-14 22:08:12 +03:00
Piotr Osiewicz 46f38f13ed editor: Do not run brace completion on empty text. (#2965)
Users of keyboard layout with IME complained about the peculiar
behaviour where typing in "sss" and then removing all of it left behind
one 's' and also appended a closing brace. This was not reproducible on
a buffer without language, so I've suspected that brace insertion might
be a problem here. For whatever reason when the user removes the last
character from a run that triggered IME, we receive a notification about
an empty insertion. Sadly, brace completion does not handle an empty
input properly and we erroneously insert a closing brace when deleting
the followup characters. In fact, the brace inserted is always the
closing brace for the first entry in language's config.toml 'brackets'
field (see Scheme vs Markdown). This guard also allows for the proper
removal of the first character.

Closes community tickets zed-industries/community#877
zed-industries/community#1329

Z-2869

Release Notes:
- Fixed handling of bracket completion for international keyboard
layouts that use IME. This led to Zed erroneously inserting the `}`
character while removing the first character that triggered IME.
2023-09-14 20:24:21 +02:00