ForLoveOfCats
5149c15329
Add "go to type definition" action
2022-07-29 11:41:08 -04:00
Max Brunsfeld
868c460620
🎨 Rename and simplify some autoindent stuff
2022-07-28 22:40:30 -07:00
Max Brunsfeld
7a26fa18c7
Record start columns when writing to the clipboard from Zed
2022-07-28 22:13:32 -07:00
Max Brunsfeld
fa5af4383d
Introduce AutoindentMode parameter to Buffer::edit
...
This controls whether or not we preserve the relative indentation
of inserted text blocks.
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 14:03:31 -07:00
Max Brunsfeld
cdf6ae25bb
Remove indent_size
parameter from Buffer::edit_with_autoindent
...
Instead, compute the indent size by reading the settings inside that method.
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 13:00:05 -07:00
Antonio Scandurra
f775cb2947
Honor sort_text
when language server provides completions
2022-07-26 10:41:39 +02:00
Max Brunsfeld
ab037fe844
Simulate calling of text-insertion APIs in TestAppContext::dispatch_keystroke
2022-07-25 12:20:12 -07:00
Max Brunsfeld
4c8d9384b1
Replaces lines_utf16 with a single u32 - last_line_len_utf16
2022-07-25 11:35:42 -07:00
Antonio Scandurra
6dc27cbba2
Add test for IME composition with multiple cursors
2022-07-25 17:47:10 +02:00
Antonio Scandurra
ff99f8d0ca
Clip UTF-16 offsets provided by Cocoa when composing IME input
2022-07-25 17:32:33 +02:00
Antonio Scandurra
47e8bd5f4f
Introduce MultiBuffer::clip_offset_utf16
2022-07-25 15:06:04 +02:00
Antonio Scandurra
c46be992e0
Introduce Rope::clip_offset_utf16
2022-07-25 15:02:45 +02:00
Antonio Scandurra
bb55d654ce
Handle IME composition with multiple cursors
2022-07-25 14:50:09 +02:00
Antonio Scandurra
ca3e73106c
Merge branch 'main' into ime-support-2
2022-07-25 10:47:49 +02:00
Antonio Scandurra
d3567e381c
Coalesce IME compositions into a single edit
2022-07-25 09:53:51 +02:00
Max Brunsfeld
65fd943509
Move edited_ranges_for_transaction from BufferSnapshot to Buffer
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 11:24:14 -07:00
Keith Simmons
2111fdc118
Merge pull request #1378 from zed-industries/diagnostics-popover
...
Diagnostics Popover
2022-07-22 11:12:56 -07:00
K Simmons
b93040a6ae
attempt to fix broken test
2022-07-22 10:55:57 -07:00
Antonio Scandurra
7b009c8bbe
Merge branch 'main' into ime-support-2
2022-07-22 16:03:38 +02:00
Max Brunsfeld
372c3eed52
Adjust editor tests to use input APIs instead of key events
2022-07-21 21:36:40 -07:00
Max Brunsfeld
0185b4fef4
Add simple IME handling to the terminal
2022-07-21 21:32:58 -07:00
Keith Simmons
9286e5ea04
Merge pull request #1396 from zed-industries/better-empty-pane
...
Fix Pane Focus Issues
2022-07-21 15:07:03 -07:00
Max Brunsfeld
6d264502b2
Remove print statements
2022-07-21 13:44:58 -07:00
Max Brunsfeld
2142fca673
Remove Input action, detect ignored input in vim via an event
2022-07-21 13:40:48 -07:00
Max Brunsfeld
beeaec8647
Prevent IME window from appearing while editor's input is disabled (vim)
2022-07-21 12:48:36 -07:00
Max Brunsfeld
7c575990be
Remove the set_selected_text_range method from the InputHandler trait
2022-07-21 12:22:12 -07:00
Antonio Scandurra
97ce3998ec
Position IME input according to where the selection is rendered
2022-07-21 17:35:40 +02:00
Antonio Scandurra
101a0663d3
Remove input
from KeyDownEvent
2022-07-21 14:29:27 +02:00
Antonio Scandurra
b02681ee8a
Treat NSTextInputClient ranges as UTF-16
2022-07-21 13:41:35 +02:00
Antonio Scandurra
32662b6b92
Start indexing UTF-16 offsets
...
This is needed because cocoa will report ranges as UTF-16 indices.
2022-07-21 09:40:48 +02:00
Antonio Scandurra
eda60effed
Honor setting the selected range in addition to marking text
2022-07-21 08:57:20 +02:00
K Simmons
b85b2a90aa
address warnings
2022-07-20 19:02:33 -07:00
K Simmons
02a47d962e
add test coverage for diagnostic popover
2022-07-20 19:02:33 -07:00
K Simmons
95952f0c66
working diagnostic popover. Also renamed GoToNextDiagnostic to GoToDiagnostic and adjusted it's action to jump to the popover's diagnostic if it is visible
2022-07-20 19:02:33 -07:00
K Simmons
dbedc30abe
WIP
2022-07-20 19:02:33 -07:00
K Simmons
225055ed5d
Address some issues where panes don't get focused properly, make the focused pane more obvious, and prevent splitting of the pane with no items
2022-07-20 18:52:32 -07:00
Max Brunsfeld
f985515141
Start work on new text input handling in Editor
2022-07-20 16:45:27 -07:00
Keith Simmons
d34d6ea184
Merge pull request #1392 from zed-industries/mouse-vim-mode-clipping
...
Fixup Clipping at Line Ends when Selecting with the Mouse in Vim Mode
2022-07-20 13:39:24 -07:00
Antonio Scandurra
42ac4bf9fc
WIP
2022-07-20 18:06:29 +02:00
K Simmons
1cfaac1bc5
Fix clipping when dragging the mouse with vim-mode enabled and adjust single line editor selections
2022-07-19 17:18:17 -07:00
Nate Butler
bcc554a3db
Merge branch 'main' into theme-improvements
2022-07-19 20:12:02 -04:00
Keith Simmons
c2868a39e8
Merge pull request #1388 from zed-industries/mouse-region-refactor
...
Mouse Region Refactor
2022-07-19 16:50:12 -07:00
Nate Butler
46384e71b7
Add icon sets for sizes 8, 12 and 16, remove old icons
2022-07-19 17:11:15 -04:00
Antonio Scandurra
456a390166
Add character palette menu item
2022-07-19 14:51:57 +02:00
K Simmons
8add81350e
Rework presenter and MouseRegion to use Handler hashmap rather than individual fields
2022-07-17 23:19:32 -07:00
Antonio Scandurra
af917de684
Handle inserting multiple tabs on the same row
...
This also fixes a panic when tabbing on a row that contained multi-byte
characters.
2022-07-16 08:40:44 +02:00
Antonio Scandurra
d4ee372eab
🎨
2022-07-14 16:46:45 +02:00
Antonio Scandurra
fd5cb02ea9
Truncate description in tab title when it is too long
2022-07-14 15:12:16 +02:00
Antonio Scandurra
07d269234f
Differentiate among tabs with the same name
...
This commit introduces a new, optional `Item::tab_description` method
that lets implementers define a description for the tab with a certain
`detail`. When two or more tabs match the same description, we will
increase the `detail` until tabs don't match anymore or increasing the
`detail` doesn't disambiguate tabs any further.
As soon as we find a valid `detail` that disambiguates tabs enough, we
will pass it to `Item::tab_content`. In `Editor`, this is implemented by
showing more and more of the path's suffix as `detail` is increased.
2022-07-14 11:54:11 +02:00
Max Brunsfeld
9c82d5b080
Merge pull request #1333 from zed-industries/editor-mouse-context-menu
...
Editor mouse context menu
2022-07-13 15:58:31 -07:00
Keith Simmons
7f3018c3f6
add show_completions_on_input setting to disable popping the completions menu automatically
2022-07-13 14:23:49 -07:00
Keith Simmons
5366ed4404
Add basic test for editor context menu
2022-07-13 14:13:19 -07:00
Keith Simmons
b850e41d6f
Add editor mouse context menu with some basic refactorings and an entry to pop the code actions
2022-07-13 14:13:19 -07:00
Keith Simmons
d796b543e0
WIP add basic context menu and make progress toward adding quick actions to it
2022-07-13 14:13:19 -07:00
Max Brunsfeld
b7109ea4fc
Restore document highlights when canceling a rename
2022-07-12 17:01:18 -07:00
Max Brunsfeld
c02f4ea8dc
Rename LanguageSettings -> EditorSettings
2022-07-12 11:42:43 -07:00
Max Brunsfeld
ec8a493700
Move all default settings from source code into the JSON file
2022-07-12 11:35:19 -07:00
Antonio Scandurra
afc8e9050c
Merge pull request #1252 from zed-industries/plugin
...
Language Server WebAssembly Plugin Integration (Part 2)
2022-07-12 11:04:20 +02:00
Isaac Clayton
ec327a30c3
Fix minor issues pointed out in the review
2022-07-11 15:54:03 +02:00
Keith Simmons
667d031ec8
Merge pull request #1311 from zed-industries/fix-visual-paste
...
Fix visual paste
2022-07-08 16:54:10 -07:00
Isaac Clayton
988f388165
Added theme to language
2022-07-08 18:11:28 +02:00
Mikayla Maki
be94f614a7
fix merge conflicr
2022-07-07 17:24:55 -07:00
Nathan Sobo
805c06ee76
Merge pull request #1298 from zed-industries/mouse-region-refactor
...
Mouse Event Refactor
2022-07-07 16:43:36 -06:00
Mikayla Maki
2a6e23ff28
Hoisted assert clipboard into TestAppContext
2022-07-07 14:55:25 -07:00
Mikayla Maki
a8237858bc
Added basic selections
2022-07-07 14:52:04 -07:00
Isaac Clayton
895747476f
Done! Finish transition to async, very close to merging
2022-07-07 16:21:20 +02:00
Isaac Clayton
39fdbc593b
Fix most warnings
2022-07-07 16:19:49 +02:00
Isaac Clayton
d009e10a46
Fix all residual errors, need to polish off warnings and TODOS
2022-07-07 16:17:03 +02:00
Isaac Clayton
6585daccf9
Further unpropogate async
2022-07-07 16:16:58 +02:00
Antonio Scandurra
c6254247c3
Allow providing an external format in format_on_save
setting
2022-07-07 11:04:03 +02:00
Keith Simmons
bcb553f233
Combine platform mouse events to use common MouseEvent struct and remove MouseDragged event in favor of MouseMoved
2022-07-06 16:37:56 -07:00
Max Brunsfeld
a378ec49ec
Enable and disable nav buttons based on pane's navigation stack
...
Also, make the `NavHistory` type private to the `workspace` crate.
Expose only the `ItemNavHistory` type, via a method on Pane called
`nav_history_for_item`.
2022-07-06 15:46:43 -07:00
Keith Simmons
686e57373b
pull event data out into individual Event structs
2022-07-06 15:36:42 -07:00
Antonio Scandurra
b937c1acec
Move autosave logic up into Workspace
and Pane
2022-07-06 16:33:22 +02:00
Mikayla Maki
4d88088ca4
Merge pull request #1286 from zed-industries/grid-renderer
...
Switch from line-and-character renderer to a direct grid renderer
2022-07-05 17:16:00 -07:00
Mikayla Maki
03cbb94057
changed renderer
2022-07-05 17:10:01 -07:00
Keith Simmons
ed52f8a8a3
WIP making paste better
2022-07-05 16:52:56 -07:00
Keith Simmons
58e57d0150
Merge pull request #1271 from zed-industries/matching-bracket-highlights
...
Highlight matching bracket when newest selection head is on a bracket
2022-07-05 16:51:46 -07:00
Keith Simmons
1f3dc2f534
highlight both brackets, only when empty selection, and add test
2022-07-05 15:19:05 -07:00
Antonio Scandurra
f09d265054
Remove non-determinism from autosave after delay
2022-07-05 17:54:54 +02:00
Antonio Scandurra
a5c39acf4c
Always finish previous autosave before starting a new one
2022-07-05 17:51:01 +02:00
Antonio Scandurra
ebf4bae173
Add unit test for autosave
2022-07-05 17:51:01 +02:00
Antonio Scandurra
885172f4dd
Honor Autosave
setting in Editor
2022-07-05 17:51:01 +02:00
Max Brunsfeld
771a834d84
Delete the autoclosing bracket when deleting the opening bracket
2022-07-04 10:46:35 -07:00
Keith Simmons
9b36e3d009
Highlight matching bracket when newest selection head is on a bracket
2022-07-01 15:06:16 -07:00
Mikayla Maki
6ac5cc0d2a
Fixed cursor positioning bugs in multi-byte charcters. Still have at least one though :/
2022-07-01 14:53:19 -07:00
Mikayla Maki
62939322d3
rendering cursor correctly
2022-07-01 13:03:26 -07:00
Mikayla Maki
ae836e1465
Fixed a major bug and now use the same cursor paint logic as the editor
2022-06-30 20:43:51 -07:00
Keith Simmons
1eb8351440
add hover popover setting
2022-06-27 16:21:22 -07:00
Keith Simmons
f73af85218
bump protocol version and fix panic from storing display points instead of anchors
2022-06-27 15:10:36 -07:00
Keith Simmons
a0577f5f46
Fix usage of existing definitions
2022-06-27 10:07:44 -07:00
Keith Simmons
a8ea1048cf
Change mouse cursor when link is visible
2022-06-24 21:55:57 -07:00
Keith Simmons
a190eb0537
fix rebase merge error
2022-06-24 15:11:57 -07:00
Keith Simmons
92ab107fc9
working jump to definition with tests
2022-06-24 15:09:31 -07:00
Keith Simmons
848445455d
Working underline based on symbol origin
2022-06-24 15:05:35 -07:00
Keith Simmons
4286a9b564
wip
2022-06-24 15:03:24 -07:00
Keith Simmons
f78b55f92d
wip
2022-06-24 15:03:24 -07:00
Max Brunsfeld
c91451a1b2
Merge pull request #1234 from zed-industries/fix-editor-cloning
...
Clone fold and selection state correctly when splitting an editor
2022-06-23 13:27:40 -07:00
Max Brunsfeld
fb2a7787a1
Clone fold and selection state correctly when splitting an editor
2022-06-23 13:15:50 -07:00
Keith Simmons
755636d10e
Use NonZeroU32 to ensure settings tabsize cannot be zero
2022-06-23 12:55:38 -07:00
Antonio Scandurra
2cb8a3ccfb
Don't override top-level settings with language defaults
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-06-23 16:40:57 +02:00
Keith Simmons
19feb627d8
Add comment linking to long term plan
2022-06-21 12:38:27 -07:00
Keith Simmons
057a7ec989
Don't trigger hover popover action when mouse is over context menu
2022-06-21 11:23:25 -07:00
Keith Simmons
fb881b2eda
hide hover on editor blur
2022-06-21 10:37:59 -07:00
Antonio Scandurra
d5efae609e
Respect close
in language configuration when autoclosing bracket
2022-06-20 11:50:44 +02:00
Antonio Scandurra
ae2273b40a
Merge pull request #1204 from zed-industries/accurate-is-dirty
...
Determine `Buffer::is_dirty` based on the rope's fingerprint
2022-06-17 16:08:07 +02:00
Antonio Scandurra
5654684d30
Fix editor tests after changing the semantics of is_dirty
2022-06-17 12:57:40 +02:00
Antonio Scandurra
6f7a893ec9
Determine Buffer::is_dirty
based on the rope's fingerprint
2022-06-17 12:38:25 +02:00
Antonio Scandurra
c31a233aad
Introduce a new fingerprint
field to TextSummary
...
This is calculated in `Rope` and uses the `bromberg_sl2` homomorphic
hash function to determine the fingerprint of a single chunk and
compose each chunk fingerprint into a single fingerprint for the entire
rope that is equivalent to hashing all the rope's bytes at once.
2022-06-17 12:12:37 +02:00
Max Brunsfeld
216a275ef2
Disable auto-indent entirely for markdown
2022-06-16 14:20:09 -07:00
Antonio Scandurra
edd758eb67
Cap context menu's width to cover at most 70% of the window
2022-06-16 10:40:12 +02:00
Antonio Scandurra
516bd13474
Add tooltip to follow collaborators
2022-06-15 17:08:39 +02:00
Antonio Scandurra
4750727586
Autoscroll to newest selection when adding it via the cursor
2022-06-15 13:21:01 +02:00
Antonio Scandurra
7a81983c62
Fix surrounding text with bracket pairs with multiple selections
...
This was probably a regression that was introduced with the new batched
`Buffer::edit` API and was caused by providing selection ranges in a
non-ordered fashion (we were passing all the starts first and then all the
ends).
With this commit we are adding a unit test to verify the behavior of
`Editor::surround_with_bracket_pair` and changing the order in which
we pass edit ranges to respect the selection order.
2022-06-15 11:48:21 +02:00
Antonio Scandurra
f91fb48a4c
Simplify EditorElement::layout_blocks
2022-06-10 13:57:43 +02:00
Antonio Scandurra
666ea61dbc
Introduce a new BlockStyle
field for blocks
...
This new field allows blocks to specify how they want to be laid out:
- If `Fixed` they can take up all the width they want and they will impact
the scroll width of the editor. This is useful for diagnostic messages and
allows scrolling the editor further to the right to visualize the entire message.
- If `Flex` they can extend all the way to the scroll width without impacting it
any further. This is useful for the rename editor that we insert as a block
decoration when hitting `F2`.
- If `Sticky`, they will be as wide as the editor element and won't participate
in the horizontal scrolling of the editor. This is useful for headers in general,
where we want e.g. the filename and the jump button to always be visible
independently of how much the user has scrolled to the right.
2022-06-10 13:47:40 +02:00
Keith Simmons
02f0fee6ae
Always delay hover display
2022-06-09 18:08:23 -07:00
Keith Simmons
e21d1b1acb
Merge fix
2022-06-09 17:07:32 -07:00
Keith Simmons
3cec157335
fix compile error in EditorLspTestContext
2022-06-09 17:03:45 -07:00
Keith Simmons
8378590d57
Test fixes
2022-06-09 17:03:45 -07:00
Keith Simmons
93158bfcff
Fix delayed lsp request
2022-06-09 17:03:45 -07:00
Keith Simmons
722023e347
test and build fixes
2022-06-09 17:03:45 -07:00
Keith Simmons
dddfc7beae
Add hover test and tweak dismiss logic
2022-06-09 17:03:45 -07:00
Keith Simmons
1da1853a76
Hide hover when font changes, and handle case where delay was preventing hover with large symbol range
2022-06-09 17:03:44 -07:00
Keith Simmons
b51bd87c10
Rework hover delay, respect editor font size, and enable hover in multibuffers
2022-06-09 17:03:44 -07:00
Keith Simmons
ee33fb03f2
wip
2022-06-09 17:03:44 -07:00
Max Brunsfeld
87ba68e3ea
Merge pull request #1155 from zed-industries/golang
...
Add Go support
2022-06-09 14:18:37 -07:00
Max Brunsfeld
7bb7187619
Add tests and fix bugs for editor indent/outdent commands w/ hard tabs
2022-06-09 10:26:09 -07:00
Antonio Scandurra
ea8b5016f7
Snap overlay's bottom/right edge to same window's edge on overflow
2022-06-09 13:48:02 +02:00
Antonio Scandurra
69170fc33a
Add unit test to ensure changing enable_language_server
works
2022-06-09 10:48:06 +02:00
Max Brunsfeld
f62fd3cddd
Add support for hard tabs
...
* Add a `hard_tabs` setting that causes indentation to be performed
using a tab instead of multiple spaces.
* Change Buffer's indentation-related APIs to return an `IndentSize`
struct with a length and a kind, instead of just a single u32.
* Use hard tabs by default in Go.
2022-06-08 18:30:10 -07:00
Antonio Scandurra
712d47d94f
Render a "Jump to Buffer" icon on all excerpt headers
2022-06-08 15:31:29 +02:00
Antonio Scandurra
c2eaf6128e
Move ProjectDiagnosticsEditor::jump
to Editor::jump
2022-06-08 15:08:11 +02:00
Antonio Scandurra
5fdafbe8c9
Expose a unique key: usize
in ExcerptBoundary
2022-06-08 15:02:52 +02:00
Antonio Scandurra
eda569d6b2
Snapshot file instead of path when creating a buffer snapshot
2022-06-08 14:29:14 +02:00
Antonio Scandurra
15b13fe511
Introduce an optional primary
field to ExcerptRange
2022-06-08 12:23:12 +02:00
Antonio Scandurra
ffb75b0f02
Extract an ExcerptRange
containing a context
field in multi_buffer
...
This lays the groundwork for adding an optional `primary` field that can
be supplied to provide the "jump to" feature.
2022-06-08 12:13:04 +02:00
Antonio Scandurra
d8b885e3ec
Provide tab_size
when formatting document using LSP range formatting
2022-06-08 09:56:11 +02:00
Keith Simmons
1b66e1e185
Add integration test and fix hovering over the wire
2022-06-07 14:22:02 -07:00
Keith Simmons
a6c0ee472c
Add vim bindings for hover
...
Allow scrolling in hover popover
2022-06-07 13:07:53 -07:00
Keith Simmons
67d9abc00f
Move highlighting to editor code and implement proto message types for hover response
2022-06-07 11:54:52 -07:00
Keith Simmons
c7cc07aafb
working markdown rendering
2022-06-07 11:54:51 -07:00
Isaac Clayton
efd798f5f6
Quick documentation pass
2022-06-07 11:54:33 -07:00
Keith Simmons
b014352740
Syntax highlighting working. Getting started on markdown support
2022-06-07 11:54:33 -07:00
Isaac Clayton
863a3b1886
Clean up impl a bit
2022-06-07 11:54:33 -07:00
Isaac Clayton
d529a1deb4
Add basic debounce, fix flickering
2022-06-07 11:54:31 -07:00
Keith Simmons
560dff7329
Pull hover popover out of context menu
2022-06-07 11:54:00 -07:00
Isaac Clayton
470c70d394
Get minimal POC working
2022-06-07 11:52:52 -07:00
Isaac Clayton
24ad60a651
Add hover action and style context menu
2022-06-07 11:50:49 -07:00
Keith Simmons
0ed8a42bb4
WIP
2022-06-07 11:49:28 -07:00