Andreas Liljeqvist
5d23667a26
fix offset by one problem in replace_with_yanked
2021-06-14 09:58:40 +09:00
Wojciech Kępka
df217f71c1
Fix wq
2021-06-13 20:48:18 +09:00
Wojciech Kępka
b9100fbd44
Fix clippy
2021-06-13 20:48:18 +09:00
Wojciech Kępka
52d3c29244
Deduplicate code
2021-06-13 20:48:18 +09:00
Wojciech Kępka
17c9a8499e
Add qa
and qa!
2021-06-13 20:48:18 +09:00
Wojciech Kępka
62e6232a32
Update write_all
2021-06-13 20:48:18 +09:00
Wojciech Kępka
d8b5d1181f
Add Copy
derive to PromptEvent
2021-06-13 20:48:18 +09:00
Wojciech Kępka
b500a2a138
commands: Add more write commands
2021-06-13 20:48:18 +09:00
Ivan Tham
9640ed1425
Add clarification to last buffer
2021-06-13 09:58:50 +09:00
Robin
9baf1ecc90
add symbol picker ( #230 )
...
* add symbol picker
use the lsp document_symbol request
* fix errors from merging in master
* add docs for symbol picker
2021-06-12 21:45:21 +09:00
Robin
44cc0d8eb0
add alternate file ( #223 )
...
* add alternate file
inspired by vim ctrl-6/kak ga commands. the alternate file is kept per view
* apply feedback from #223
* rename to last_accessed
* add ga doc
* add fail message for ga
2021-06-12 21:21:06 +09:00
Wojciech Kępka
c754df12b3
lsp: Check bounds when converting lsp positions ( #204 )
...
* lsp: Make position conversion funcs return `Option`
* Add tests
* Fixes
* Revert pos_to_lsp_pos to panic
2021-06-12 16:04:30 +09:00
Blaž Hrastnik
278361a086
Only auto-format for certain languages
...
Fixes #53
Fixes #207
2021-06-12 10:20:37 +09:00
Jakub Bartodziej
69fe46a122
Add :earlier and :later commands that can be used to navigate the full edit history. ( #194 )
...
* Disable deleting from an empty buffer which can cause a crash.
* Improve on the fix for deleting from the end of the buffer.
* Clean up leftover log.
* Avoid theoretical underflow.
* Implement :before which accepts a time interval and moves the editor to
the closest history state to the commit of the current time minus that
interval. Current time is now by default, or the commit time if :before
has just been used.
* Add :earlier an :later commands that can move through
the edit history and retrieve changes hidded by undoing
and commiting new changes. The commands accept a number
of steps or a time period relative to the currrent change.
* Fix clippy lint error.
* Remove the dependency on parse_duration, add a custom parser instead.
* Fix clippy errors.
* Make helix_core::history a public module.
* Use the helper for getting the current document and view.
* Handled some PR comments.
* Fix the logic in :later n.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for :earlier.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for later.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Run cargo fmt.
* Add some tests for earlier and later.
* Add more tests and restore the fix for later that diappeared somehow.
* Use ? instead of a match on an option.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Rename to UndoKind.
* Remove the leftover match.
* Handle a bunch of review comments.
* More systemd.time compliant time units and additional description for the new commands.
* A more concise rewrite of the time span parser using ideas from PR discussion.
* Replace a match with map_err().
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: Jakub Bartodziej <jqb@google.com>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-11 22:06:13 +09:00
PabloMansanet
86af55c379
Movement fixes, refactor and unit test suite ( #217 )
...
* Add convenience/clarity wrapper for Range initialization
* Test horizontal moves
* Add column jumping tests
* Add failing movement conditions for multi-word moves
* Refactor skip_over_next
* Add complex forward movement unit tests
* Add strict whitespace checks and edge case tests
* Restore formatting
* Remove unused function
* Add empty test case for deletion and fix nth_prev_word_boundary
* Add tests for backward motion
* Refactor word movement
* Address review comments and finish refactoring backwards move
* Finish unit test suite
* Fmt pass
* Fix lint erors
* Clean up diff restoring bad 'cargo fmt' actions
* Simplify movement closures (thanks Pickfire)
* Fmt pass
* Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API
* Break down tuple function
* Extract common logic to all movement functions
* Split iterator helpers away into their own module
* WIP reducing clones
* Operate on spans
* WIP simplifying iterators
* Simplify motion helpers
* Fix iterator
* Fix all unit tests
* Refactor and simplify
* Simplify fold
2021-06-11 21:57:07 +09:00
Wojciech Kępka
0c2b99327a
commands: Handle t<ENTER>
as till newline
2021-06-11 18:34:46 +09:00
Robin van Dijk
c0d32707d0
move to first nonwhitespace on shift-i
...
This matches the behaviour in vim and kak
2021-06-10 22:02:38 +09:00
Ivan Tham
6b3c9d8ed3
Fix jump behavior, goto_implementation now jump
...
Better jump behavior since we override the first jump if it's on the
first document. At the same time, ctrl-i is now working with gd jumps.
2021-06-10 11:08:18 +08:00
Zheming Li
ae51065213
Support go to line 1
2021-06-08 17:27:21 +09:00
Wojciech Kępka
4e3a343602
Make r<ENTER>
work
2021-06-08 17:23:38 +09:00
Wojciech Kępka
81e02e1ba4
Remove unwanted as_str
2021-06-08 17:23:38 +09:00
Wojciech Kępka
c349ceb61f
Don't replace newlines
2021-06-08 17:23:38 +09:00
Wojciech Kępka
2e4a338944
Add bounds checks to replace
2021-06-08 17:23:38 +09:00
Wojciech Kępka
9c83a98469
commands: Replace all characters in selection
2021-06-08 17:23:38 +09:00
Wojciech Kępka
c978d811d9
Cleanup find_first_non_whitespace_char funcs
2021-06-08 17:22:37 +09:00
Wojciech Kępka
48df05b16d
commands: Add goto first non-whitespace char of line
2021-06-08 17:22:37 +09:00
Kirawi
b873fb9897
Fix Unicode ( #135 )
...
* init
* wip
* wip
* fix unicode break
* fix unicode break
* Update helix-core/src/transaction.rs
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
* clippy
* fix
* add changes
* added test
* wip
* wip
* wip
* wip
* fix
* fix view
* fix #88
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
2021-06-08 13:20:15 +09:00
Wojciech Kępka
c65b4dea09
commands: Add replace with yanked as R
2021-06-08 09:50:14 +09:00
Blaž Hrastnik
0201ef9205
ui: completion: Use the correct type_name
...
Fixes #166
2021-06-08 01:38:57 +09:00
Blaž Hrastnik
9821beb5c4
Make gh/gl extend selection in select mode
2021-06-07 23:32:44 +09:00
Benoît CORTIER
68affa3c59
Implement register selection
...
User can select register to yank into with the " command.
A new state is added to `Editor` and `commands::Context` structs.
This state is managed by leveraging a new struct `RegisterSelection`.
2021-06-07 21:52:09 +09:00
Blaž Hrastnik
8d6fad4cac
lsp: Provide workspace root on client.initialize()
2021-06-07 21:32:01 +09:00
Blaž Hrastnik
4f561e93b8
View mode: Use saturating_sub when calculating first_col
2021-06-07 09:29:21 +09:00
Blaž Hrastnik
01b1bd15a1
commands: use chars().count() over .len() on strings
2021-06-07 09:26:49 +09:00
Wojciech Kępka
16b1cfa3be
Add diagnostics keybindings
2021-06-07 09:11:52 +09:00
Ivan Tham
2066e866c7
Add spc w w for window mode
2021-06-07 09:08:08 +09:00
Ivan Tham
40744ce835
Add ctrl-w in insert mode
...
It seemed to panic when I pressed too many times, but that is from
lsp side.
2021-06-06 21:30:18 +09:00
Ivan Tham
8c2fa12ffc
Add window mode
...
Fix #93
2021-06-06 10:12:35 +09:00
ahkrr
444cd0b068
fix: make find_prev_char and till_prev_char work
...
Bevore this PR `commands::find_prev_char` and `commands::till_prev_char` were triggerable through keys
but `seach::find_nth_next()` was hardcoded in `_find_char`.
The passed `fn` was nerver used. With this PR the passed `fn` is used.
The change in search.rs resolves an off by one error in the behivor of `find_nth_prev`
2021-06-06 00:01:16 +09:00
Kirawi
c17dcb8633
Fixing Multiple Panics ( #121 )
...
* init
* wip
* wip
2021-06-05 12:49:19 +09:00
Antoni Stevenet
a1f4b8f92b
Add home-end keymaps, (as kakoune/vim do) ( #83 )
...
* add home-end keymaps
* implement extend methods for extend_line_start, extend_line_end
* add home-end mappings to keymaps.md
* add ^-$ extend mappings for extend mode
* pass cargo linter
2021-06-05 09:25:46 +09:00
notoria
adcfcf9044
Replace ^/$ with gh/gl
2021-06-04 17:26:16 +09:00
Blaž Hrastnik
4f0e3aa948
Implement gt/gm/gb, remap goto tYpe to gy
2021-06-04 15:47:29 +09:00
Blaž Hrastnik
bd4552cd2b
scroll: Fix the clamping
2021-06-04 11:36:28 +09:00
Blaž Hrastnik
8afd4e1bc2
Exit select mode on delete_selection
2021-06-04 11:03:40 +09:00
Kevin Sjöberg
fdb5bfafae
Limit goto count
...
Giving a goto count greater than the number of lines in the buffer
would cause Helix to panic.
2021-06-04 01:35:52 +09:00
Jakub Bartodziej
09a7db637e
Avoid theoretical underflow.
2021-06-03 23:23:23 +09:00
Jakub Bartodziej
31ed4db153
Clean up leftover log.
2021-06-03 23:23:23 +09:00
Jakub Bartodziej
3c5dfb0633
Improve on the fix for deleting from the end of the buffer.
2021-06-03 23:23:23 +09:00
Jakub Bartodziej
6cbc0aea92
Disable deleting from an empty buffer which can cause a crash.
2021-06-03 23:23:23 +09:00
Blaž Hrastnik
cbb3ebafdc
Support ctrl-f and ctrl-b to page up/down, fixes #41
2021-06-02 13:20:36 +09:00
Daichi Takamiya
4d12c7c3cf
Fix empty command cause panic
2021-06-02 10:55:32 +09:00
Blaž Hrastnik
ce25aa951e
Allow setting a filepath on :write
2021-06-01 17:26:03 +09:00
Blaž Hrastnik
d8e16554bf
Don't crash if no filename specified on open
2021-06-01 11:59:59 +09:00
Blaž Hrastnik
2c48d65b15
Format document on save
2021-05-30 00:00:15 +09:00
Blaž Hrastnik
094203c74e
Update deps, introduce the new tree-sitter lifetimes
2021-05-28 00:00:51 +09:00
Blaž Hrastnik
f1dc25a774
Support count for indent too
2021-05-19 00:37:01 +09:00
Blaž Hrastnik
4f335fabc8
Fix unindent to work with tabs, take a count
2021-05-19 00:35:33 +09:00
Blaž Hrastnik
9c24f1ec0e
Drop selection_lines completely, change move_line_start binding
2021-05-18 18:28:32 +09:00
Blaž Hrastnik
f99a683991
Fix crash if appending at end of line on the last line of the file
2021-05-18 18:17:14 +09:00
Blaž Hrastnik
5a245b83a0
Append :fmt as a separate history state
2021-05-18 17:53:00 +09:00
Blaž Hrastnik
54de768915
Fix crash if typing | (regex or) into the prompt.
...
Zero-width matches at the start of the file make no sense to us.
2021-05-16 18:58:43 +09:00
Blaž Hrastnik
5e6b46e7c5
Use array::IntoIter.
2021-05-15 10:52:07 +09:00
Blaž Hrastnik
354b822d21
Fix crash on xa<Enter> if we were on the last line.
2021-05-15 10:50:36 +09:00
Blaž Hrastnik
fae2127a11
Drop cx.view_id, it was used before we had cx.current.
2021-05-15 10:50:36 +09:00
Blaž Hrastnik
0e5b421646
When calculating a new selection, we need to take newly inserted text into account.
2021-05-15 10:50:36 +09:00
Blaž Hrastnik
4a9d1163e0
Hacky way to specify indent scopes per language via toml configs.
...
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.
Can't extract the pattern data from a parsed query either.
Oh well, toml files for now.
2021-05-14 19:21:46 +09:00
Blaž Hrastnik
e4ff75b4d4
Add :fmt (formats the whole file).
2021-05-12 17:24:55 +09:00
Blaž Hrastnik
1255bcb8a3
Simplify the compositor callback.
2021-05-09 18:02:31 +09:00
Blaž Hrastnik
ed827e993f
Fix jumplist jumps, keep the selection on vsplit.
2021-05-08 18:25:19 +09:00
Blaž Hrastnik
caf4349925
Remove some of the panics, just log instead.
2021-05-08 18:17:13 +09:00
Blaž Hrastnik
d24844b73d
ui: Render command mode doc text if available.
2021-05-08 17:33:06 +09:00
Blaž Hrastnik
d4d5e88ade
Show a message if no definition was found.
2021-05-08 15:39:42 +09:00
Blaž Hrastnik
1be8b2005d
Extract a method for view alignment.
2021-05-08 15:36:27 +09:00
Blaž Hrastnik
adaf861881
vsplit can now split scratch buffers.
2021-05-08 15:29:15 +09:00
Blaž Hrastnik
ff84c8e394
Command mode: Per command completers.
2021-05-07 17:19:45 +09:00
Blaž Hrastnik
87e7a0de3f
Save space by having the command hashmap use const static refs.
2021-05-07 17:13:26 +09:00
Blaž Hrastnik
9604a0c294
Improve command mode handling.
2021-05-07 17:08:07 +09:00
Blaž Hrastnik
243456a583
Disallow quitting on last view if unsaved changes present.
2021-05-07 15:15:15 +09:00
Blaž Hrastnik
c0a8b81487
Only send the document close event if we're closing the underlying buffer
2021-05-07 14:52:47 +09:00
Blaž Hrastnik
c20813690f
View::new is infallible, so is editor.switch/new_file.
2021-05-07 14:45:49 +09:00
Blaž Hrastnik
f2c79e245b
Allow switching views back to scratch buffers.
2021-05-07 14:36:37 +09:00
Blaž Hrastnik
7c915dc065
Add the :new command, don't crash if saving without filename.
2021-05-07 14:19:58 +09:00
Blaž Hrastnik
f8844c6811
Implement pair expansion when pressing new line between bracket pairs.
...
From:
{|}
To:
{
|
}
2021-05-06 23:02:32 +09:00
Blaž Hrastnik
ba97005495
Work around the rest of the blocking issues.
2021-05-06 17:15:49 +09:00
Blaž Hrastnik
d00414f81a
Start moving more LSP calls into callbacks/futures without capturing self
2021-05-06 15:08:59 +09:00
Blaž Hrastnik
355ad3cb82
Tokio migration.
2021-05-06 13:56:34 +09:00
Blaž Hrastnik
0e5308bce1
Need to allow this lint, the Hook signature requires Option<>.
2021-05-05 16:25:17 +09:00
Blaž Hrastnik
ab4decfd6d
Make post hooks trigger even when a different handler processes input.
...
The default handler is now simply a fallback.
2021-05-03 17:56:02 +09:00
Blaž Hrastnik
594575ba3f
Center forward and backward jumps too.
2021-04-24 11:46:46 +09:00
Blaž Hrastnik
c64240b6ef
Implement most of the view mode (z).
2021-04-14 17:15:11 +09:00
Blaž Hrastnik
3e5f24a9d5
lsp: support both utf-8 and utf-16 offsets.
...
Still need to implement the clangd encoding negotiation, but it's
a start. Should also manually override to utf8 for pyls.
2021-04-14 15:39:31 +09:00
Blaž Hrastnik
811f952a41
Center search results.
2021-04-14 15:39:31 +09:00
Blaž Hrastnik
180521fefe
Adjust scroll() to match kakoune: only scroll the view if cursor in bounds.
2021-04-14 14:27:47 +09:00
Blaž Hrastnik
2a1f10d1b5
Center the new position on screen after doing a goto jump.
2021-04-13 16:56:03 +09:00
Blaž Hrastnik
95dd55ba94
Fix overlap calculation.
2021-04-10 12:02:23 +09:00
Blaž Hrastnik
392c4a9c02
Keep primary selection as space+space.
2021-04-10 00:21:54 +09:00
Blaž Hrastnik
73f4abbb37
N as extend with search (for now, N should be search_prev).
2021-04-10 00:21:13 +09:00
Blaž Hrastnik
865429643b
<space>w for save, <space>c for close current split.
2021-04-09 18:57:46 +09:00
Blaž Hrastnik
9ca2909c80
Loop around the end on regex searches.
2021-04-08 22:34:06 +09:00
Blaž Hrastnik
8b33ba2284
Correct the naming issue with vsplit and hsplit being swapped.
2021-04-08 15:52:04 +09:00
Blaž Hrastnik
58c5fec592
minor: This comment was resolved.
2021-04-08 14:25:04 +09:00
Blaž Hrastnik
12961d657f
Implement P as paste_before.
2021-04-07 17:03:29 +09:00
Blaž Hrastnik
82ff996662
Yank selection when deleting.
2021-04-07 15:40:15 +09:00
Blaž Hrastnik
463f58dfda
Fix clamping scroll in certain cases.
...
.clamp(min, max) requires that min < max. In some cases
first + scrolloff > last - scrolloff and we would panic.
2021-04-07 13:38:50 +09:00
Blaž Hrastnik
0e9ecccfc1
clippy: Drop or-patterns for now because they're not on stable rust yet
2021-04-06 19:51:15 +09:00
Blaž Hrastnik
95d0bba81a
ui: Improve completion state handling.
2021-04-05 18:23:37 +09:00
Blaž Hrastnik
59a0fc7b59
w, b, e: Match kakoune's behavior in selecting by default.
...
I initially preferred only moving the cursor, but selecting the whole
word is a lot nicer for things like wd (instead of vwd).
2021-04-05 16:35:04 +09:00
Blaž Hrastnik
ab1d11088f
Import some lsp utilities.
2021-04-01 11:43:34 +09:00
Blaž Hrastnik
77cab5a715
Merge open_above and open_below definitions.
2021-04-01 11:36:59 +09:00
Blaž Hrastnik
cc058ad78f
Simplify some code.
2021-04-01 11:04:25 +09:00
Blaž Hrastnik
0dbd5b61ef
Simplify code by providin cx.current() = (view, doc).
2021-04-01 11:01:26 +09:00
Blaž Hrastnik
ceea5eacd8
clippy lint
2021-03-31 23:42:16 +09:00
Blaž Hrastnik
7dfd7f51a0
Implement space-v as view same file in split.
2021-03-31 18:00:53 +09:00
Blaž Hrastnik
6c4093c946
Weave through view_id references so that views into one file have independent selects.
2021-03-31 17:17:01 +09:00
Blaž Hrastnik
dfc17becd5
Move pickers under my leader key mode (space).
2021-03-30 18:38:26 +09:00
Blaž Hrastnik
e166da2ab0
fix: A (append to line) was inserting before last char.
2021-03-30 18:31:56 +09:00
Blaž Hrastnik
1b5316ea74
Track document modified state.
2021-03-30 18:23:12 +09:00
Blaž Hrastnik
88bb7a1f38
Repeat insert command (.).
2021-03-30 18:19:27 +09:00
Blaž Hrastnik
e833d65b77
Teach file picker how to find the project root (.git).
2021-03-30 10:14:50 +09:00
Blaž Hrastnik
8098e9bdcd
Allow setting a status message.
2021-03-29 16:47:02 +09:00
Blaž Hrastnik
742b3a709f
Store intra-files jumps (goto) on the jumplist.
2021-03-29 16:32:42 +09:00
Blaž Hrastnik
0083a6c325
commands: Simplify _goto.
2021-03-29 15:44:03 +09:00
Blaž Hrastnik
ea407ccdba
Implement <n>g as goto line n.
2021-03-29 15:29:03 +09:00
Blaž Hrastnik
5c2d2fda21
Wire up opening in splits via pickers.
2021-03-29 15:21:48 +09:00
Blaž Hrastnik
aefafc25cd
Replace Mode::Goto with just using on_next_key.
2021-03-29 15:04:29 +09:00
Blaž Hrastnik
a24c3fff54
Filter the completion menu based on text entered.
2021-03-27 12:08:44 +09:00
Blaž Hrastnik
2a3910c1d9
wip: Async async. Delay response handling with a callback.
2021-03-26 17:12:45 +09:00
Blaž Hrastnik
ad3325db8e
minor: Remove a few unwraps.
2021-03-26 11:03:14 +09:00
Blaž Hrastnik
9a36d2c2a8
wip: Hooks & trigger characters for completion/signature_help.
2021-03-24 18:17:00 +09:00
Blaž Hrastnik
8657c57cf2
Trivial jumplist implementation.
2021-03-24 18:01:26 +09:00
Blaž Hrastnik
915fd9ebaf
Restore buffer_picker.
2021-03-24 16:26:53 +09:00
Blaž Hrastnik
8a0ab447ec
editor.open can now either replace the current view or open in a split.
2021-03-24 14:28:26 +09:00
Blaž Hrastnik
8328fe926d
Drop refcell use, make view simply ref doc.id.
2021-03-23 18:14:35 +09:00
Blaž Hrastnik
d0530fb839
Fix a scrolling crash where it would jump past the end of the buffer.
2021-03-22 18:06:52 +09:00
Blaž Hrastnik
73c92a0bc1
Implement m / match_brackets (using tree sitter).
2021-03-22 17:58:49 +09:00
Blaž Hrastnik
df306fe031
Implement open_above (O).
2021-03-22 13:53:43 +09:00
Blaž Hrastnik
42d07b0621
Implement replace command (r<key>).
2021-03-22 13:53:43 +09:00
Blaž Hrastnik
bf95ee27aa
Store Document on the Editor type, make View reference it.
2021-03-22 13:53:43 +09:00
Blaž Hrastnik
5e6716c89c
Add tab_width and indent_unit config.
2021-03-22 13:53:36 +09:00
Blaž Hrastnik
cbcacb1063
Merge some imports.
2021-03-22 12:40:07 +09:00
Blaž Hrastnik
71999cce43
Implement auto-pairs behavior for open and close.
2021-03-22 12:22:33 +09:00
Blaž Hrastnik
a32806b490
Improve completion: src/<tab> will now correctly complete to src/main.rs
2021-03-21 14:13:49 +09:00
Blaž Hrastnik
f29f01858d
Implement iter() and len() directly on Selection.
2021-03-19 11:14:13 +09:00
Blaž Hrastnik
e9bd9e72c3
Pos conversions always operate on whole documents.
2021-03-18 15:23:42 +09:00
Blaž Hrastnik
175d38c88c
toggle_comments needs to append to history.
2021-03-18 15:20:28 +09:00
Blaž Hrastnik
c331721565
Finish hiding doc.state / State as an implementation detail.
2021-03-18 15:07:02 +09:00
Blaž Hrastnik
8ba1e15d29
Expose doc.syntax() via accessor.
2021-03-18 14:53:29 +09:00
Blaž Hrastnik
e261f3c50d
Expose doc.language_server as an accessor.
2021-03-18 14:40:22 +09:00
Blaž Hrastnik
59e6024186
Remove State from a few more signatures.
2021-03-18 14:17:32 +09:00
Blaž Hrastnik
dbcc099f48
Move things out of state.rs.
2021-03-18 14:07:53 +09:00
Blaž Hrastnik
0f6624491b
Fix completion panicking if text changed before insert completed.
2021-03-18 14:07:53 +09:00
Blaž Hrastnik
8eaf9a432d
Make Transaction::change only rely on the rope.
2021-03-18 13:39:56 +09:00
Blaž Hrastnik
51c15da3c3
Hold a reference to executor on the Editor type.
2021-03-16 23:14:51 +09:00
Blaž Hrastnik
e3ec5e31ec
Fix goto code before merging.
2021-03-16 23:05:43 +09:00
Jan Hrastnik
eadad13efa
preparing for gd merge
2021-03-16 23:03:29 +09:00
Jan Hrastnik
4e461bea2f
editor.open now checks if view already exists
2021-03-16 23:03:29 +09:00
Jan Hrastnik
0828d1fdea
picker wip
2021-03-16 23:03:29 +09:00
Blaž Hrastnik
cf71625d4e
term: Simplify goto code, address lints.
2021-03-16 23:03:27 +09:00
Jan Hrastnik
3869d7713e
added goto functions in helix-term
2021-03-16 23:03:10 +09:00
Jan Hrastnik
b738ae1bc7
more goto lsp functions
2021-03-16 23:03:10 +09:00
Jan Hrastnik
294791dffd
added picker for gd, but yet to test it. also need to load appropriate file when definition isnt in same file
2021-03-16 23:03:10 +09:00
Jan Hrastnik
0322c28e6b
gd now works for singular definition
2021-03-16 23:03:10 +09:00
Blaž Hrastnik
18ec8adc7f
Simplify code a bit.
2021-03-16 23:03:10 +09:00
Jan Hrastnik
8a68a04340
gotodefiniton now runs but doesnt return anything
2021-03-16 23:03:10 +09:00
Jan Hrastnik
d3ddc8dea6
wip
2021-03-16 23:03:10 +09:00
Blaž Hrastnik
54a7e893b7
lsp: Wire up didClose notification on editor.close.
2021-03-16 16:27:12 +09:00
Blaž Hrastnik
eca2a73ad0
lsp: Pass through language_id on didOpenTextDocument.
2021-03-16 16:13:41 +09:00
Blaž Hrastnik
143cfe13e0
minor: TODO comment cleanup
2021-03-16 15:41:42 +09:00
Blaž Hrastnik
eea339545c
Add command for keeping only the primary selection.
2021-03-15 17:13:36 +09:00
Blaž Hrastnik
dd91090a1a
Implement keep_selections (filter selections on regex).
2021-03-15 17:09:18 +09:00
Blaž Hrastnik
1cf887dea9
Cleanup: use doc.selection() instead of doc.state.selection().
2021-03-14 17:14:34 +09:00
Blaž Hrastnik
4acf301022
Implement the f/t/F/T find/till family of commands.
2021-03-11 16:15:27 +09:00
Blaž Hrastnik
62c991230f
find-till (f) prototype, on_next_key mode implementation.
2021-03-11 10:44:38 +09:00
Blaž Hrastnik
5ea610c41d
ui: Move terminal into compositor, redo required_size hints.
2021-03-08 17:00:32 +09:00
Blaž Hrastnik
05aa0d6991
minor: dead code
2021-03-05 17:55:06 +09:00
Blaž Hrastnik
1d42b95915
ui: wip: Markdown doc renderer.
2021-03-05 16:07:46 +09:00
Blaž Hrastnik
a5c4314940
commands: Improve scroll functions.
...
Followed kakoune's implementation, it's no longer janky and can scroll
all the way in either direction.
2021-03-04 16:15:34 +09:00
Blaž Hrastnik
565fb94afe
commands: Correct another case that always used primary().
2021-03-04 14:12:19 +09:00
Blaž Hrastnik
7e4830215e
commands: w/b/e need to apply to all selections.
2021-03-04 14:09:39 +09:00
Blaž Hrastnik
4c6611f96b
commands: Stop select_regex from breaking when no matches.
2021-03-03 17:55:56 +09:00
Blaž Hrastnik
0b85c16be9
ui: Share popup code with menu.
...
Menu is now just wrapped in a popup.
2021-03-02 18:24:24 +09:00
Blaž Hrastnik
11c4e0b053
ui: Calculate popup rendering and sizing.
2021-03-02 17:58:15 +09:00
Blaž Hrastnik
8f4ff4c646
editor: We still want to be able to calculate cursor pos.
2021-03-02 15:44:09 +09:00
Blaž Hrastnik
32f9a2d1d6
add missing fn
2021-03-01 18:19:08 +09:00
Blaž Hrastnik
857bce0e30
ui: Rework command mode, implement file path completion.
2021-03-01 18:02:31 +09:00
Blaž Hrastnik
2088c45075
commands: Implement X as extend line.
2021-03-01 14:41:02 +09:00
Blaž Hrastnik
ec4dd0a176
Add a selection mode again.
2021-03-01 14:31:34 +09:00
Blaž Hrastnik
00808afe3c
ui: Make editor more resilient about being shrunk too small.
2021-03-01 14:23:10 +09:00
Blaž Hrastnik
2c9b02039b
commands: Implement join_selections.
2021-02-26 17:21:59 +09:00
Blaž Hrastnik
1ae7c43391
commands: = as range formatting (via lsp)
2021-02-26 15:52:43 +09:00
Blaž Hrastnik
7162632eb7
lsp: Hover documentation draft.
2021-02-25 18:07:47 +09:00
Blaž Hrastnik
8289bd1cb0
minor, fix clippy lint
2021-02-25 16:52:32 +09:00
Blaž Hrastnik
01907b3497
commands: Implement count for a few more commands.
2021-02-25 16:49:30 +09:00
Blaž Hrastnik
5fa1ba6b1c
commands: refactor open_below to support count.
2021-02-25 16:47:37 +09:00
Blaž Hrastnik
87a6d4e736
minor: Simplify some code.
2021-02-24 16:07:39 +09:00
Blaž Hrastnik
def949e509
open_below: drop redundant collect/into_iter.
2021-02-22 17:02:32 +09:00
Blaž Hrastnik
6cfb1acb9d
commands: Implement expand_selection.
2021-02-22 17:02:32 +09:00
Blaž Hrastnik
33c67f1388
commands: add * as selection search.
2021-02-22 15:14:02 +09:00
Blaž Hrastnik
5096bdad33
completion: Use the language server bound to the document.
2021-02-22 11:42:47 +09:00
Blaž Hrastnik
9132c6a591
Make some Document fields read-only.
2021-02-21 19:47:21 +09:00
Blaž Hrastnik
7da6bd6a71
commands: Simplify some code, only calling cx.doc() once.
2021-02-21 19:04:31 +09:00
Blaž Hrastnik
7877647cf0
Allow closing individual views.
2021-02-19 17:46:43 +09:00
Blaž Hrastnik
1e1dae1c11
Remove unused method.
2021-02-19 16:49:10 +09:00
Blaž Hrastnik
8c82f8f140
indent: use_list indentation, fix indentation bug on open_below
...
use std::{
time::Duration // <- pressing `o` here would use }'s indent instead of prev line
}
2021-02-19 14:55:53 +09:00
Blaž Hrastnik
7a1ff5e45f
commands: Wire up toggle comments as ctrl-c
2021-02-19 13:59:24 +09:00
Blaž Hrastnik
c9dd1c930e
treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref
2021-02-18 18:34:22 +09:00
Blaž Hrastnik
9cac44c7c0
minor changes
2021-02-17 17:26:27 +09:00
Blaž Hrastnik
c408e7e01a
commands: tie in a simple :w for now.
2021-02-16 18:23:44 +09:00
Blaž Hrastnik
83d48f10ea
search: Barebones implementation.
2021-02-12 18:10:05 +09:00
Blaž Hrastnik
239db79834
Finally: Retain horizontal position when moving vertically.
2021-02-12 16:49:24 +09:00
Blaž Hrastnik
d4b85ce18d
popup: wip work on completion popups
2021-02-09 15:40:47 +09:00
Blaž Hrastnik
30d1b7098f
commands: % as select_all.
2021-02-09 15:39:26 +09:00
Blaž Hrastnik
9c33b5340a
A dumb "next view" implementation that works.
2021-02-04 19:49:29 +09:00
Blaž Hrastnik
448c1abba0
View tree implementation: render multiple split views.
...
Cursors are still a bit buggy and we should render in focus statusbar
differently than in the other pane.
2021-02-03 19:36:54 +09:00
Blaž Hrastnik
2bea5db7bd
commands: Implement select_on_matches.
2021-01-22 17:13:14 +09:00
Blaž Hrastnik
a702af0aeb
commands: add W and B (extend selection by word).
2021-01-22 16:31:49 +09:00
Blaž Hrastnik
d9fb60e301
commands: Simplify code further via Context::doc.
2021-01-21 17:07:29 +09:00
Blaž Hrastnik
05c7fb98df
Refactoring: move language_servers into Editor, proper load for doc.
2021-01-21 16:55:46 +09:00
Blaž Hrastnik
777a80917d
Address clippy lints.
2021-01-08 16:37:36 +09:00
Blaž Hrastnik
7d41550a23
indent: refactor logic to be more correct.
...
Thanks to atom-sane-indentation, nvim-treesitter and tree-sitter-indent.el
for inspiration.
2021-01-08 16:15:12 +09:00
Blaž Hrastnik
941c34a7fc
lsp: Move timeouts into client.request
2021-01-06 17:48:14 +09:00
Blaž Hrastnik
b2800489de
open_below is now indentation-aware.
2021-01-06 15:13:45 +09:00
Blaž Hrastnik
8b95c3353b
lsp: buggy insert completion.
2021-01-06 14:30:33 +09:00
Blaž Hrastnik
6ec0f8e80f
completion: Don't panic on timeout/no result, just do nothing.
2021-01-06 13:44:29 +09:00
Blaž Hrastnik
2ab069bb3f
lsp: Work on syncing the state with the language server.
2020-12-25 17:20:09 +09:00
Blaž Hrastnik
cd16df19c1
lsp: generate_transaction_from_text_edits
2020-12-23 18:16:17 +09:00
Blaž Hrastnik
56f2193811
Retrieve completion options on ctrl-x.
2020-12-23 16:20:49 +09:00
Blaž Hrastnik
3d3295bb75
ui: buffer picker on ctrl-b
2020-12-21 16:26:22 +09:00
Blaž Hrastnik
ea502c8665
fix change -> change -> undo -> change -> undo -> undo.
2020-12-21 13:58:54 +09:00
Blaž Hrastnik
d181027225
fix: undo/redo selection handling.
2020-12-21 13:42:47 +09:00
Blaž Hrastnik
25aa45e76c
picker: Factor out file picker, we want to reuse code for other pickers.
2020-12-18 19:19:50 +09:00
Blaž Hrastnik
7c75ec04e8
File picker mockup, reuses the line editor work done on Prompt.
2020-12-17 18:08:16 +09:00
Blaž Hrastnik
ed60866c54
Add an :o open command.
2020-12-16 16:34:12 +09:00
Blaž Hrastnik
8f0b28aeb8
Make the select prompt interactive.
2020-12-15 19:29:56 +09:00
Blaž Hrastnik
1a843b6c06
prompt: make the callback a FnOnce.
2020-12-15 19:07:48 +09:00
Blaž Hrastnik
2bfdcede32
split_selection
2020-12-14 16:02:07 +09:00
Blaž Hrastnik
ed6a4c4bd2
wip: Use prompt for interactive commands.
2020-12-14 14:12:54 +09:00
Blaž Hrastnik
7dc24a25ba
Move ui modules under a ui:: namespace.
2020-12-13 13:44:51 +09:00
Blaž Hrastnik
ada3f92c5b
wip: Getting the new prompt to render in a new layer.
2020-12-11 18:25:09 +09:00
Blaž Hrastnik
5103dc9617
move commands and keymap back to terminal.
...
Command needs to be able to deal with UI. We'll separate it again later
on.
2020-12-10 18:13:42 +09:00
Blaž Hrastnik
935cfeae57
Split parts of helix-term into helix-view.
...
It still largely depends on term for some types but I plan to change
that later.
2020-09-21 18:24:16 +09:00
Blaž Hrastnik
48330ddb5f
Command needs access to view information for certain changes.
2020-09-19 23:16:00 +09:00