Commit Graph

698 Commits

Author SHA1 Message Date
Nate Butler
24974ee2fa Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
Conrad Irwin
9ef7004383 Add shift-d and shift-x as aliases for d and x in visual mode 2023-09-15 10:26:43 -06:00
Max Brunsfeld
9d8c6a7ed1 Merge branch 'main' into chat-again 2023-09-14 14:50:45 -07:00
Conrad Irwin
06555a423b vim: g s/S for outline/project symbols 2023-09-14 13:49:02 -06:00
Conrad Irwin
329a0724e0
vim counts (#2958)
Release Notes:

- vim: Fix counts with operators (`2yy`, `d3d`, etc.)
([#1496](https://github.com/zed-industries/community/issues/1496))
([#970](https://github.com/zed-industries/community/issues/970)).
- vim: Add support for counts with insert actions (`2i`, `2o`, `2a`,
etc.)
- vim: add `_` and `g_`
2023-09-12 14:32:00 -06:00
Piotr Osiewicz
a63b78d5a0
Replace in buffer adjustments (#2960)
This PR addresses feedback from @maxbrunsfeld on new replace in buffer.
It fixes:
- missing padding surrounding replace input.
- missing padding around replace buttons.
- missing `.notify` call which made the replace fields not show up
immediately sometimes.

Release Notes:
- N/A

---------

Co-authored-by: Max <max@zed.dev>
2023-09-12 22:08:39 +02:00
Max Brunsfeld
d97c9d8dfd Merge branch 'main' into chat-again 2023-09-12 11:26:54 -07:00
Piotr Osiewicz
4cb8647702
Z 1200/replace in buffer (#2922)
This is still WIP, mostly pending styling. I added a pretty rudimentary
text field and no buttons whatsoever other than that. I am targeting a
Preview of 09.13, as I am gonna be on PTO for the next week.

I dislike the current implementation slightly because of `regex`'s crate
syntax and lack of support of backreferences. What strikes me as odd wrt
to syntax is that it will just replace a capture name with empty string
if that capture is missing from the regex. While this is perfectly fine
behaviour for conditionally-matched capture groups (e.g. `(foo)?`), I
think it should still error out if there's no group with a given name
(conditional or not).
Release Notes:

- Added "Replace" functionality to buffer search.
2023-09-12 18:46:54 +02:00
Conrad Irwin
d868d00985 vim: ALlow counts on insert actions
This re-uses the existing repeat infrastructure.
2023-09-11 18:09:47 -06:00
Conrad Irwin
cee549e1ef vim: Fix count handling to allow pre/post counts
Fixes 2yy, d3d, etc.

For zed-industries/community#970
For zed-industries/community#1496
2023-09-11 14:35:47 -06:00
Conrad Irwin
e8a6ecd6ac Allow a count with CurrentLine
Add _ and g_ too while we're here.
2023-09-11 14:19:43 -06:00
Nathan Sobo
fe6f0a253b Merge remote-tracking branch 'origin/main' into chat-again 2023-09-11 12:08:01 -06:00
Nathan Sobo
15ea4af5e7 Merge branch 'main' into storybook 2023-09-11 09:13:46 -06:00
Conrad Irwin
ba1c350dad vim: Add ZZ and ZQ
The major change here is a refactoring to allow controling the save
behaviour when closing items, which is pre-work needed for vim command
palette.

For zed-industries/community#1868
2023-09-08 16:25:20 -06:00
Max Brunsfeld
ed7bc91dbd Create chat panel settings 2023-09-08 13:28:19 -07:00
Nathan Sobo
362b1a44be Merge branch 'main' into storybook 2023-09-08 14:18:44 -06:00
Nate Butler
5fb9c60905 Checkpoint 2023-09-07 15:33:50 -04:00
Conrad Irwin
8e2e00e003 add vim-specific J (with repeatability) 2023-09-07 11:08:07 -06:00
Conrad Irwin
48bb2a3321 TEMP 2023-09-07 10:51:18 -06:00
Conrad Irwin
1b1d7f22cc Add visual area repeating 2023-09-07 10:45:38 -06:00
Conrad Irwin
20f98e4d17 vim . to replay
Co-Authored-By: maxbrunsfeld@gmail.com
2023-09-06 13:49:55 -06:00
Conrad Irwin
c2c04616b4
vim S (#2929)
Release Notes:
- vim: Add `S` to substitute line ([#1897](https://github.com/zed-industries/community/issues/1897)).
2023-09-05 09:39:08 -06:00
Conrad Irwin
56db21d54b Split ContextMenu actions
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.
2023-09-02 21:04:19 -06:00
Conrad Irwin
af12977d17 vim: Add S to substitute line
For zed-industries/community#1897
2023-09-01 13:13:59 -06:00
Kirill Bulatov
af665cc3d2 Use ctrl-: instead of ctrl-shift-: for inlay hints toggling
The latter is not posible to press in Zed, since `:` is typed as
`shift-;` with typical US keyboard layouts.

In the end, it's the same buttons you have to press to toggle the inlay
hints, but working this time.
2023-08-31 10:43:29 +03:00
Nate Butler
e808386765
WIP UI Tweaks (#2911)
- Tighten up toolbar
- Reduce intensity of active tools
- Remove divider between project + branch
- Add a styletree for toolbar + move breadcrumb into it
- Some ts theme tidying

[[PR Description]]

Release Notes:

- Improved density and contrast of a number of UI elements.
2023-08-30 11:19:05 -04:00
Nate Butler
1da3be0646 Align diagnostic icons with other statusbar icons 2023-08-30 11:14:50 -04:00
Antonio Scandurra
ea17d1638e
Introduce code generation (#2901)
![CleanShot 2023-08-28 at 12 24
36@2x](https://github.com/zed-industries/zed/assets/482957/f97cb399-1ac2-4fa9-94a7-137d1eec711c)


Release Notes:

- Added a new "Inline Assist" feature that lets you transform a
selection or generate new code at the cursor location by hitting
`ctrl-enter`.
2023-08-30 14:58:22 +02:00
Conrad Irwin
dd577074f2
vim: Fix relative motions (#2888)
This changes vim motions to be relative to fold lines, not display
lines, to match the behaviour of vim.

This is necessary for relative line numbers to make sense (as the most
important thing is you can do `3j` to get th e line that is numbered 3).


Release Notes:

- vim: Fix handling of motions when `soft_wrap` is enabled in zed. Like
in vim `j,k,up,down,$,^,0,home,end` will all now navigate in file
coordinates not display coordinates.
- vim: Add `g {j,k,up,down,$,^,0,home,end}` to navigate in display
coordinates.
- vim: Add `z o` and `z c` to open and close folds.
- vim: Add `z f` in visual mode to fold selection.

Note: this may be a jarring change if you're grown used to the current
behaviour of `j` and `k`. You can make the issue less acute by setting
`"soft_wrap":"none"` in your settings; or you can manually copy the
bindings for `g j` to the binding for `j` (etc.) in your keymap.json to
preserve the existing behaviour.
2023-08-29 11:19:37 -07:00
Kirill Bulatov
bbb222b6fc Add a default binding for toggling inlay hints 2023-08-29 20:56:26 +03:00
Antonio Scandurra
44f554f489 Merge remote-tracking branch 'origin/main' into ai-refactoring 2023-08-28 12:16:24 +02:00
Conrad Irwin
20aa2a4c54 vim: Fix relative line motion
Before this change up and down were in display co-ordinates, after this
change they are in fold coordinates (which matches the vim behaviour).

To make this work without causing usabliity problems, a bunch of extra
keyboard shortcuts now work:

- vim: `z {o,c}` to open,close a fold
- vim: `z f` to fold current visual selection
- vim: `g {j,k,up,down}` to move up/down a display line
- vim: `g {0,^,$,home,end}` to get to start/end of a display line

Fixes: zed-industries/community#1562
2023-08-25 14:40:04 -06:00
Conrad Irwin
104f5ae9cd
relative line numbers (#2887)
- Add relative_line_mode
- vim change for wrapped lines

Release Notes:

- Add a `relative_line_numbers` setting
([#988](https://github.com/zed-industries/community/issues/998)).
2023-08-25 14:17:41 -06:00
Joseph T. Lyons
507a5db09c WIP
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-08-25 15:06:31 -04:00
Conrad Irwin
790aa5d476 Add relative_line_mode
Co-Authored-By: joseph@zed.dev
2023-08-25 11:50:41 -06:00
Antonio Scandurra
27c90f12f6 Merge remote-tracking branch 'origin/main' into ai-refactoring 2023-08-25 13:37:32 +02:00
Antonio Scandurra
c1bd035875 Rework inline assistant 2023-08-25 11:39:27 +02:00
Joseph T. Lyons
0801e5e437 Merge branch 'main' into add-setting-to-automatically-enable-virtual-environment 2023-08-25 01:50:57 -04:00
Joseph T. Lyons
7b170304df Shorten setting name 2023-08-23 04:07:10 -04:00
Joseph T. Lyons
b77e661c9f Update textmate.json 2023-08-23 01:31:01 -04:00
Conrad Irwin
b0815bd13e
vim: Rewrite paste (#2878)
A complete overhaul of the way vim did paste. This ended up being more
involved than I expected because of the variety of different behaviors
that vim exhibits when copying/pasting between various modes.

Release Notes:

- vim: support P for paste before
([#1869](https://github.com/zed-industries/community/issues/1869)).
- vim: support P in visual modes for paste without overriding clipboard
- vim: fix position when using `p` on text copied outside zed
([#469](https://github.com/zed-industries/community/issues/469)).
- vim: fix indentation when using `p` on text copied from zed
([#1015](https://github.com/zed-industries/community/issues/1015)).
- all: Separate copied multi-selections by `\n`
2023-08-22 20:21:58 -06:00
Joseph T. Lyons
471810a3c2 WIP
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-22 15:29:25 -04:00
Conrad Irwin
ef077796f8 vim: Dismiss menu in insert mode with escape 2023-08-22 13:28:50 -06:00
Conrad Irwin
33d7fe02ee Rewrite paste
- vim: support P for paste before
- vim: support P in visual mode for paste without overriding clipboard
- vim: fix position when using `p` on text copied outside zed
- vim: fix indentation when using `p` on text copied from zed
2023-08-22 13:27:57 -06:00
Joseph T. Lyons
ebcb395f1f Add default bindings for new file and directory 2023-08-22 11:33:40 -04:00
Joseph T. Lyons
a836f9c23d
Add a default_open_ai_model setting for the assistant (#2876)
[This PR has been sitting around for a
bit](https://github.com/zed-industries/zed/pull/2845). I received a bit
of mixed opinions from the team on how this setting should work, if it
should use the full model names or some simpler form of it, etc. I went
ahead and made the decision to do the following:

- Use the full model names in settings - ex: `gpt-4-0613`
- Default to `gpt-4-0613` when no setting is present
- Save the full model names in the conversation history files (this is
how it was prior) - ex: `gpt-4-0613`
- Display the shortened model names in the assistant - ex: `gpt-4`
- Not worry about adding an option to add custom models (can add in a
follow-up PR)
- Not query what models are available to the user via their api key (can
add in a follow-up PR)

Release Notes:

- Added a `default_open_ai_model` setting for the assistant (defaults to
`gpt-4-0613`).

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-22 02:55:27 -04:00
Mikayla Maki
cb55204e22
Move the collab panel to the left by default (#2864)
Increase the indent size on channels
Switch font UI mono

Release Notes:

- Switch the collaboration panel font to Zed's sans-mono (preview only)
- Switch the default dock side to the left (preview-only)
- Increase the indent size on the channels panel (preview-only)
2023-08-18 16:06:10 -07:00
Mikayla
8ef671d7a1
Move the collab panel to the left by default
Increase the indent size on channels
Switch font UI mono
2023-08-18 15:04:22 -07:00
Joseph T. Lyons
98186fc016
Add more file icons (#2861)
Release Notes:

- Added file icons for Python and Elixir
2023-08-18 15:27:04 -04:00
Joseph T. Lyons
e26d6d7a49 Add elixir icons 2023-08-18 14:54:53 -04:00
Joseph T. Lyons
ab73375a61 Alphabetize list 2023-08-18 14:07:55 -04:00
Joseph T. Lyons
ffdca77124 Add python file icon 2023-08-18 14:07:17 -04:00
Conrad Irwin
5029587e3b Add ctrl-q as an alias for ctrl-v
Fixes: zed-industries/community#871
2023-08-18 11:39:48 -06:00
Conrad Irwin
d1aa82bb48
vim visual block (#2849)
Release notes:

- vim: add Visual Block mode
([#984](https://github.com/zed-industries/community/issues/984)),
([#1415](https://github.com/zed-industries/community/issues/1415)).
- vim: add support for `a<object>` and `i<object>` in visual modes
- vim: fix scroll shortcuts (`ctrl-{f,b,d,u,e,y}`) in visual modes
- allow `shift-enter` to type a newline.
2023-08-18 09:55:40 -06:00
Conrad Irwin
b0ba0f8851 Fix visual objects
Adds 'a'/'i' in visual mode
2023-08-17 17:13:23 -06:00
Conrad Irwin
243d1664e5 shift-enter should also give a newline
(reported as vim feedback, but really true of the editor too)
2023-08-17 16:01:19 -06:00
Conrad Irwin
3c483d85f7 Scrolling should work in visual mode 2023-08-17 15:58:10 -06:00
Conrad Irwin
d308c91020 Add I and A in visual block mode 2023-08-17 11:21:58 -06:00
Mikayla
afebe3faf8
Merge branch 'main' into project_search_design 2023-08-17 01:56:05 -07:00
Nate Butler
5bb6a14d42 Update inlay_hint icon 2023-08-16 23:38:11 +03:00
Nate Butler
3ed50708ac Add inlay_hint icon, update search icon, update tooltips 2023-08-16 23:38:11 +03:00
Nate Butler
43127384c6 Update modal icon styles
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-16 13:48:12 -04:00
KCaverly
d727ba18f2 Merge branch 'main' of github.com:zed-industries/zed into project_search_design 2023-08-16 12:43:04 +01:00
Nate Butler
a56747af8c Update assistant status bar icon 2023-08-15 18:36:30 -04:00
Conrad Irwin
1b4dd49b1d Vim visual block mode
This isn't quite an exact emulation, as instead of using one selection
that is magically in "column mode", we emulate it with a bunch of zed
multi-selections (one per line).

I think this is better, as it requires fewer changes to the codebase,
and lets you see the impact of any changes immediately on all lines.

Fixes: zed-industries/community#984
2023-08-15 16:00:50 -06:00
Nate Butler
9d60e550be Additional status bar styles 2023-08-15 15:32:14 -04:00
Max Brunsfeld
fafc10d57c Merge branch 'main' into collab-panel 2023-08-15 09:09:50 -07:00
Conrad Irwin
404b1aa65a
Fix vim selection to include entire range (#2787)
Update vim mode to have vim selection and editor selections match.
Before this we had to adjust between vim selections and real selections
when making changes; now we have to adjust when making selections.

Release Notes:

- vim: Ensure editor selection matches the vim selection
([#1796](https://github.com/zed-industries/community/issues/1796)).
- vim: Fix `s` in visual line mode
- vim: Add `o` and `shift-o` to toggle direction of visual selection
- vim: Fix `v` and `shift-v` to toggle back to normal mode
- vim: Fix block selections like `vi}` to contain correct whitespace
2023-08-15 08:36:17 -06:00
Conrad Irwin
1af7425059 Fix vim escape in normal mode
Fixes: zed-industries/community#1857
2023-08-14 16:05:41 -06:00
Conrad Irwin
fb90eada70 Merge branch 'main' into vim-visual-selection 2023-08-14 15:29:33 -06:00
Nate Butler
f2d46e0ff9 Use new icons in channel panel 2023-08-14 15:57:31 -04:00
Nate Butler
a5534bb30f Add new icons 2023-08-14 15:50:42 -04:00
Mikayla
b6f3dd51a0
Move default collab panel to the right 2023-08-14 10:47:29 -07:00
Piotr Osiewicz
6be73e46bf Merge branch 'main' into project_search_design 2023-08-12 21:57:21 +02:00
Mikayla
99daa73325
Merge branch 'main' into collab-panel 2023-08-09 10:37:22 -07:00
Piotr Osiewicz
c58cf396d3 Add cycle mode command for buffer search 2023-08-09 18:02:21 +02:00
Nate Butler
85af025d82 Add IBM Plex license 2023-08-09 11:39:15 -04:00
Nate Butler
183c292a5c Remove license causing unwrap error
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-09 11:11:57 -04:00
Nate Butler
b23f1c809a WIP add IBM Plex Sans
(base) natebutler@Nate16 zed % cargo run
   Compiling zed v0.99.0 (/Users/natebutler/Code/zed/zed/crates/zed)
    Finished dev [unoptimized + debuginfo] target(s) in 9.15s
     Running `target/debug/Zed`
Thread "main" panicked with "called `Result::unwrap()` on an `Err` value: parse error" at crates/zed/src/main.rs:667:10
   0: backtrace::backtrace::libunwind::trace
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:66:5
   1: backtrace::backtrace::trace
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:53:14
   2: backtrace::capture::Backtrace::create
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:176:9
   3: backtrace::capture::Backtrace::new
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:140:22
   4: Zed::init_panic_hook::{{closure}}
             at crates/zed/src/main.rs:436:29
   5: std::panicking::rust_panic_with_hook
   6: std::panicking::begin_panic_handler::{{closure}}
   7: std::sys_common::backtrace::__rust_end_short_backtrace
   8: _rust_begin_unwind
   9: core::panicking::panic_fmt
  10: core::result::unwrap_failed
  11: core::result::Result<T,E>::unwrap
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/core/src/result.rs:1089:23
  12: Zed::load_embedded_fonts
             at crates/zed/src/main.rs:664:5
  13: Zed::main
             at crates/zed/src/main.rs:80:5
  14: core::ops::function::FnOnce::call_once
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/core/src/ops/function.rs:250:5
  15: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/sys_common/backtrace.rs:134:18
  16: std::rt::lang_start::{{closure}}
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/rt.rs:166:18
  17: std::panicking::try
  18: std::rt::lang_start_internal
  19: std::rt::lang_start
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/rt.rs:165:17
  20: _mai
2023-08-09 11:01:20 -04:00
Mikayla
bbe4a9b388
Position and style the channel editor correctly
Fix a bug where some channel updates would be lost
Add channel name sanitization before storing in the database
2023-08-08 14:06:29 -07:00
Piotr Osiewicz
0ca29e56c2 Update keybinds to use new names 2023-08-08 14:33:51 +02:00
Mikayla
8980a9f1c1
Add settings for removing the assistant and collaboration panel buttons
Add a not-logged-in state to the collaboration panel

co-authored-by: max <max@zed.dev>
2023-08-07 16:27:47 -07:00
Mikayla
f1957b1737
Push focus and fix keybindings 2023-08-07 13:31:58 -07:00
Conrad Irwin
19eb280351 Fix selection background too
Refactor code to centralize the logic too
2023-08-07 19:01:04 +01:00
Max Brunsfeld
2ccd153233 Fix joining descendant channels, style channel invites
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 16:21:43 -07:00
Max Brunsfeld
87b2d599c1 Flesh out channel member management
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 14:12:08 -07:00
Piotr Osiewicz
8831e03eba Remove reference to pane from a toolbar.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 16:09:26 +02:00
KCaverly
a125e318fe catch up with main 2023-08-02 16:48:11 -04:00
KCaverly
71bbd5f2f6 update keymaps for cycle search mode and toggle filters 2023-08-02 15:08:54 -04:00
Max Brunsfeld
a555fa1ada Merge branch 'main' into collab-panel 2023-08-02 09:08:50 -07:00
Piotr Osiewicz
00a9672eca Scale down the case insensitive icon
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-01 18:02:19 +02:00
Piotr Osiewicz
444b98e32f Update case insensitive button.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-01 17:56:09 +02:00
Piotr Osiewicz
b29a535f04 Use icons instead of text in toggles 2023-08-01 11:20:23 +02:00
Piotr Osiewicz
a33d8519f2 Move buttons inside of query editor (WIP) 2023-08-01 02:06:40 +02:00
Kirill Bulatov
634baeedb4 Add project search history 2023-08-01 01:31:28 +03:00
Kirill Bulatov
646dabe113 Add buffer search history 2023-08-01 01:31:28 +03:00
Nate Butler
c4709418d1 Format 2023-07-31 12:50:30 -04:00
Nate Butler
e07a81b225 Add additional storage filetypes 2023-07-31 12:49:55 -04:00
Conrad Irwin
0c15ef7305 Merge VisualChange -> Substitute
They both are supposed to work the same.
2023-07-28 15:32:02 -06:00
Conrad Irwin
e3788cc6e6 Add o/O for flipping selection 2023-07-28 15:26:40 -06:00