Blaž Hrastnik
8db6fffe90
ui: Increase diagnostics sideline width to 100 max and wrap if needed
2021-11-16 15:02:48 +09:00
Bob
46d9ae2b62
Readline style insert mode ( #1039 )
...
* readline style insert mode
* update keymap.md
* don't save change history in insert mode
* Revert "don't save change history in insert mode"
This reverts commit cb47f946d7fb62ceda68e7d1692a3914d0be7762.
* don't affect register and history in insert mode
* add insert_register
* don't call exit_select_mode in insert mode
* avoid set_selection
* avoid duplicated current!
2021-11-16 00:31:20 +09:00
Ebbe Steenhoudt
edc976b6bb
Added workspace_symbol_picker ( #1041 )
...
* Added workspace_symbol_picker
* Moved truncation of the symbol pickers to the end.
* Fixed typo
2021-11-15 00:12:56 +09:00
ath3
35c974c9c4
Implement "Goto last modification" command ( #1067 )
2021-11-15 00:11:53 +09:00
Cole Helbling
b74912ea78
helix-term/editor: display scratch buffer name in status bar
2021-11-14 12:33:17 +05:30
Blaž Hrastnik
d3def16584
fix: shift-tab mappings broken after efc2b4c7
2021-11-12 16:21:03 +09:00
Omnikar
d131a9dd0e
Allow keys to be mapped to sequences of commands ( #589 )
...
* Allow keys to be mapped to sequences of commands
* Handle `Sequence` at the start of `Keymap::get`
* Use `"[Multiple commands]"` as command sequence doc
* Add command sequence example to `remapping.md`
2021-11-11 13:44:50 +09:00
ath3
c7cb7527be
Fix moving with arrow keys in prompt ( #1070 )
2021-11-11 11:08:19 +09:00
Gokul Soumya
efc2b4c77b
Refactor keyevent handling using key, ctrl macros ( #1058 )
...
Adds ctrl! and alt! macros (which existed before the big keymap
refactor) and uses them in event handling of Components. Note
that this converts crossterm's KeyEvent to our own KeyEvent on
each invocation of handle_event in Components.
2021-11-11 00:58:46 +09:00
Ivan Tham
97893cca64
Restore screen position when abort search ( #1047 )
2021-11-10 10:46:55 +09:00
Bob
7c9f620236
add <C-h>, <C-u>, <C-d>, Delete in prompt mode ( #1034 )
2021-11-09 14:43:50 +09:00
Blaž Hrastnik
8b85903116
wip
2021-11-08 10:03:08 +09:00
Omnikar
a252ecd8c8
Add WORD textobject ( #991 )
...
* Add WORD textobject
* Document WORD textobject
2021-11-08 09:54:39 +09:00
Blaž Hrastnik
5938ab1bf1
dap: Fully extract template parameter prompts
2021-11-07 18:13:37 +09:00
Blaž Hrastnik
3b8d5102ac
Make picker take the whole context, not just editor
2021-11-07 18:03:04 +09:00
Blaž Hrastnik
64bb1f7563
dap: Extract out variable rendering
...
Will improve on the UI later
2021-11-07 17:55:01 +09:00
Blaž Hrastnik
e2a23ac0b5
If there is no live debugger, treat breakpoints as unverified
2021-11-07 00:48:34 +09:00
Blaž Hrastnik
2e1aa5f15b
Fix compilation
2021-11-07 00:32:28 +09:00
Blaž Hrastnik
14a3502cf1
dap: Move template selection into a picker
...
It's time to move all these components out of ui/editor.rs
2021-11-07 00:28:57 +09:00
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
2021-11-07 00:28:19 +09:00
Omnikar
cfc8285867
Allow infoboxes to be disabled ( #972 )
...
* Allow infoboxes to be disabled
* Document `infoboxes` default value
* Rename `infoboxes` to `auto_info`
* Document `auto-info`
* Fix incomplete rename
2021-11-05 11:25:08 +09:00
Blaž Hrastnik
e2560f427e
Replace documents SlotMap with BTreeMap
2021-11-04 13:43:45 +09:00
CossonLeo
39584cbccd
Add c-s to pick word under doc cursor to prompt line & search completion ( #831 )
...
* Add prompt shourtcut to book
Add completions to search
Add c-s to pick word under doc cursor to prompt line
* limit 20 last items of search completion, update book
* Update book/src/keymap.md
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* limit search completions 200
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-11-04 12:26:01 +09:00
diegodox
70d21a903f
Prevent preview binary or large file ( #939 )
...
* Prevent preview binary or large file (#847 )
* fix wrong method name
* fix add use trait
* update lock file
* rename MAX_PREVIEW_SIZE from MAX_BYTE_PREVIEW
* read small bytes to determine cotent type
* [WIP] add preview struct to represent calcurated preveiw
* Refactor content type detection
- Remove unwraps
- Reuse a single read buffer to avoid 1kb reallocations between previews
* Refactor preview rendering so we don't construct docs when not necessary
* Replace unwarap whit Preview::NotFound
* Use index access to hide unwrap
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* fix Get and unwarp equivalent to referce of Index acess
* better preview implementation
* Rename Preview enum and vairant
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* fixup! Rename Preview enum and vairant
* simplify long match
* Center text, add docs, fix formatting, refactor
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-11-04 12:24:52 +09:00
Omnikar
5b5d1b9dff
Truncate the starts of file paths instead of the ends in picker ( #951 )
...
* Truncate the starts of file paths in picker
* Simplify the truncate implementation
* Break loop at appropriate point
* Fix alignment and ellipsis presence
* Remove extraneous usage of `x_offset`
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-11-04 12:24:05 +09:00
Ivan Tham
3eb829e233
Ensure coords in screen depends on char width ( #885 )
...
The issue affected files with lots of tabs at the start as well.
Fix #840
2021-11-03 12:02:29 +09:00
Blaž Hrastnik
e5de103728
Extract a clear_completion method
2021-10-29 16:48:41 +09:00
Ivan Tham
49f6c2623f
Bump lsp-types to 0.91.0 ( #932 )
2021-10-29 12:00:18 +09:00
Blaž Hrastnik
1066b081dd
fix: When cycling through prompt history, update event needs to trigger
2021-10-27 18:23:17 +09:00
Omnikar
2505802d39
Improve statusline ( #916 )
...
* Improve statusline
* Change diagnostic count display to show counts of individual
diagnostic types next to their corresponding gutter dots.
* Add selection count to the statusline.
* Do not display info or hint count in statusline
* Reduce padding
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Reduce padding
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Use `Span::styled`
* Reduce padding
* Use `Style::patch`
* Remove unnecessary `Cow` creation
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-10-27 12:24:24 +09:00
CossonLeo
f331ba9df4
Clear competion items when start_offset > cursor ( #906 )
2021-10-26 09:42:37 +09:00
CossonLeo
b142fd4080
move_up will select last item, when no item selected ( #907 )
2021-10-26 09:42:23 +09:00
CossonLeo
bca98b5bed
Add c-j c-k to menu keymap for move_up move_down ( #908 )
2021-10-26 09:42:08 +09:00
Blaž Hrastnik
acc5ac5e73
fix warning
2021-10-25 11:11:11 +09:00
Blaž Hrastnik
3edca7854e
completion: fully revert state before apply & insertText common prefix
2021-10-25 11:09:09 +09:00
Blaž Hrastnik
cee7ad781e
Mark a few functions as const
2021-10-24 17:28:29 +09:00
Oskar Nehlin
0f886af4b9
Add commands for moving between splits with a direction ( #860 )
...
* Add commands for moving between splits with a direction
* Update keymaps
* Change picker mapping
* Add test and clean up some comments
2021-10-23 20:06:40 +09:00
Blaž Hrastnik
182a59b552
Update to rust 1.56 + 2021 edition
2021-10-22 12:15:18 +09:00
Daniel S Poulin
3b032e8e1f
First stab at ignoring compressed files from picker ( #767 )
2021-10-22 10:02:05 +09:00
VuiMuich
67829976fa
Add C-j
and C-k
to keybinds for picker ( #876 )
...
* Add `C-j` and `C-k` for moving down/up in pickers
* Add new binds to keymap doc
2021-10-19 18:37:38 +09:00
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
2021-10-17 13:51:56 +09:00
Blaž Hrastnik
2c0468ffd1
fix: If backspacing past the start offset, cancel completion
...
Refs #822
2021-10-16 18:43:07 +09:00
Blaž Hrastnik
f8f63c5508
Merge pull request #821 from helix-editor/idle-timer
...
Idle timer / Autocompletion
2021-10-10 22:11:01 +09:00
Blaž Hrastnik
76b1bbc23a
Allow trigger_offset to be unused for now
2021-10-10 12:33:22 +09:00
Leoi Hung Kin
a6852fb88f
Picker: Don't panick at move_up/move_down when matches is empty ( #818 )
2021-10-09 20:34:10 +09:00
Blaž Hrastnik
f692ede2b7
fix: Don't crash on empty completion, don't retrigger on close
2021-10-07 10:37:35 +09:00
Blaž Hrastnik
66f26e82ce
Filter the initial completion
2021-10-05 22:27:35 +09:00
Blaž Hrastnik
40abec80e1
Experiment with autocompletion on idle
2021-10-05 22:27:33 +09:00
Blaž Hrastnik
f99bea404f
idle timer wip
2021-10-05 22:27:10 +09:00
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
2021-09-25 23:14:59 +03:00
Leoi Hung Kin
9456d5c1a2
Initial implementation of global search ( #651 )
...
* initial implementation of global search
* use tokio::sync::mpsc::unbounded_channel instead of Arc, Mutex, Waker poll_fn
* use tokio_stream::wrappers::UnboundedReceiverStream to collect all search matches
* regex_prompt: unified callback; refactor
* global search doc
2021-09-22 01:03:12 +09:00
kraem
4a003782a5
enable smart case regex search by default ( #761 )
2021-09-20 13:45:07 +09:00
Blaž Hrastnik
c7d6e4461f
fix: Wrap around the top of the picker menu when scrolling
...
Forgot to port the improvements in menu.rs
Fixes #734
2021-09-17 14:43:06 +09:00
Blaž Hrastnik
dd0b15e1f1
syntax: Properly handle injection-regex for language injections
2021-09-16 15:50:14 +09:00
Blaž Hrastnik
32977ed341
ui: Trigger recalculate_size per popup render so contents can readjust
2021-09-13 17:44:50 +09:00
Blaž Hrastnik
72cf86e462
Regex prompts should have a history with a specifiable register
2021-09-08 16:34:04 +09:00
CossonLeo
011f9aa47f
Optimize completion doc position. ( #691 )
...
* optimize completion doc's render
* optimize completion doc's render
* optimize completion doc position
* cargo fmt
* fix panic
* use saturating_sub
* fixs
* fix clippy
* limit completion doc max width 120
2021-09-08 16:33:59 +09:00
Blaž Hrastnik
2ce87968cd
ui: Be smarter about centering previews
...
Try centering the whole block. If the block is too big for the viewport,
then make sure that the first line is within the preview.
2021-09-08 14:19:25 +09:00
Dmitry Sharshakov
507a1f8dd6
Get breakpoint reports from debugger
2021-09-06 08:47:54 +03:00
Dmitry Sharshakov
0add0c5639
Make conditional logpoints underlined
2021-09-05 15:12:13 +03:00
Dmitry Sharshakov
2d35b7b99c
Normalize line in picker preview to avoid crash
2021-09-05 14:31:16 +03:00
Dmitry Sharshakov
0e1e4edc5e
different display for conditional logpoints
2021-09-05 08:51:33 +03:00
Dmitry Sharshakov
8a609047c3
Mouse command for editing logpoint
2021-09-05 08:50:03 +03:00
Dmitry Sharshakov
3b0ec750ff
Support editing breakpoint condition with right click
2021-09-05 08:14:17 +03:00
Gokul Soumya
183dcce992
Add a sticky mode for keymaps ( #635 )
2021-09-05 12:55:13 +09:00
Dmitry Sharshakov
1befbd076c
Add command for editing breakpoint condition
2021-09-04 22:57:58 +03:00
Dmitry Sharshakov
698583c241
Support setting breakpoints with mouse
2021-09-04 21:14:24 +03:00
Blaž Hrastnik
b997d2cdeb
dap: Allow setting breakpoints before starting the adapter
2021-09-03 13:26:30 +09:00
Dmitry Sharshakov
2c89107349
Fix crash when stack trace not loaded
...
Still doesn't address the issue though
2021-09-02 19:58:03 +03:00
Dmitry Sharshakov
5b20f6020a
Merge remote-tracking branch 'origin/master' into debug
...
Contains type fix on helix-term/src/ui/editor.rs:752:13
2021-08-31 21:29:11 +03:00
Blaž Hrastnik
a3bd80a6fa
ui: prompt: Avoid allocating a prompt name if it's a static string
2021-08-31 18:29:24 +09:00
gbaranski
9c5752cbac
fix: use .cursor() instead of .head
2021-08-30 12:03:10 -07:00
gbaranski
b590504143
fix: use head instead of anchor for relative line
2021-08-30 12:03:10 -07:00
Blaž Hrastnik
0b0b1d850a
dap: Stop comparing file paths per line number
2021-08-30 11:22:26 +09:00
Blaž Hrastnik
2c7b75475f
dap: refactor frame handling
2021-08-30 11:07:59 +09:00
Omnikar
03ad9e0bfa
Fix code indentation ( #671 )
2021-08-30 09:15:49 +09:00
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema
2021-08-29 14:51:47 +03:00
Dmitry Sharshakov
f53d8411cb
Add extra annotations to completions
2021-08-29 14:06:36 +03:00
Dmitry Sharshakov
98fda6b8f0
better completion
2021-08-29 13:16:57 +03:00
Dmitry Sharshakov
9d2f2a9e32
Support multiple arguments for debug configs
2021-08-29 13:06:22 +03:00
Dmitry Sharshakov
2d42766a71
wip: refactor parameters in UI start
2021-08-29 10:23:36 +03:00
Dmitry Sharshakov
af657ef2ec
Fix lints
2021-08-28 19:15:13 +03:00
Dmitry Sharshakov
94901b8677
Customized completion for template parameters
2021-08-28 19:11:19 +03:00
Dmitry Sharshakov
ef155e62ef
Add filename autocomplete to template args
2021-08-28 15:36:16 +03:00
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
2021-08-28 14:59:26 +03:00
Dmitry Sharshakov
8df6739759
New way of starting debug sessions
2021-08-28 14:23:54 +03:00
Dmitry Sharshakov
5e4da09be2
Don't let picker be too narrow
2021-08-28 13:55:52 +03:00
Dmitry Sharshakov
890b51b568
Paginated variables
2021-08-28 10:13:19 +03:00
CossonLeo
d6a9c2c0f6
Add ui.menu text style ( #664 )
...
* add menu text style
* add ui.menu.text ui.info ui.info.text to book
* change ui.menu.text to ui.menu
* fix book's ui.menu
2021-08-28 13:54:24 +09:00
Blaž Hrastnik
5cee3b634d
ui: prompt: Fix typing with alt
2021-08-27 16:39:52 +09:00
Grzegorz Baranski
cec5d437d8
fix: show current line number even if relative line is on ( #656 )
2021-08-26 23:18:33 +05:30
Stuart Hinson
6192f2fa25
Show hidden files in filename completer ( #648 )
...
also removes unnecessary clone
2021-08-27 00:30:47 +09:00
Dmitry Sharshakov
c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug
2021-08-25 19:22:01 +03:00
Kirawi
b99db7c687
Move path util functions from helix-term to helix-core ( #650 )
2021-08-25 10:04:05 +09:00
Dmitry Sharshakov
5d3c69d565
Support logpoints
...
Tested with Node (Delve and LLDB do not support logpoints)
2021-08-24 08:47:20 +03:00
Blaž Hrastnik
bf5b9a9f35
ui: Tone down the preview highlight by adding a new scope
2021-08-24 13:25:39 +09:00
Blaž Hrastnik
e6cb183134
ui: Fix preview window padding: we want horizontal, not vertical
2021-08-24 13:25:39 +09:00
Blaž Hrastnik
a5c3c6c6a9
ui: Highlight line ranges in the preview
2021-08-24 13:25:39 +09:00
CossonLeo
490125f008
info component style config use ui.info ui.info.text ( #643 )
2021-08-24 09:58:19 +09:00
Dmitry Sharshakov
b78f70e602
show breakpoint condition in diagnostics
2021-08-22 15:52:05 +03:00
Dmitry Sharshakov
f247858055
Support conditional breakpoints
2021-08-22 15:06:27 +03:00
Kirawi
59e0ceef8c
better panic messages for when you're missing selection scopes ( #608 )
2021-08-22 11:15:33 +09:00
Dmitry Sharshakov
a938f5a87a
refactor: handle DAP events in editor main loop
2021-08-21 17:21:35 +03:00
Dmitry Sharshakov
3fc501c99f
Correctly display 1-based breakpoints
2021-08-21 15:17:25 +03:00
Dmitry Sharshakov
56bddb12f8
Highlight line number of stack pointer
2021-08-21 14:58:05 +03:00
Dmitry Sharshakov
5f5b383979
Fix clippy warnings
2021-08-21 14:35:53 +03:00
Dmitry Sharshakov
6458edecfd
Add stack pointer display when stopped
2021-08-21 14:15:29 +03:00
Gokul Soumya
f9375f449c
Refactor new Rect construction ( #575 )
...
* Refactor new Rect construction
Introduces methods that can be chained to construct new Rects
out of pre-existing ones
* Clamp x and y to edges in Rect chop methods
* Rename Rect clipping functions
2021-08-21 14:21:20 +09:00
Dmitry Sharshakov
c4970c617e
make CI green
2021-08-20 16:48:59 +03:00
Blaž Hrastnik
94a1951d40
Work towards a breakpoint UI
2021-08-20 13:51:38 +09:00
Blaž Hrastnik
68626b8f78
ui: Refactor styling a bit, ensure infobox is stylable
2021-08-20 10:58:44 +09:00
Blaž Hrastnik
cbd39d67a4
minor: Refactor commands.rs a bit more
2021-08-20 10:43:22 +09:00
Kirawi
da8810809a
use ui.text.focus
for the picker ( fix #622 )
2021-08-20 10:43:08 +09:00
Blaž Hrastnik
0595b0626a
Fix clippy attr
2021-08-19 16:05:05 +09:00
Blaž Hrastnik
5f8b1c7320
Avoid looking up ui.text per highlight range
2021-08-19 15:59:08 +09:00
Blaž Hrastnik
557fd86e71
Extract view.inner_area(), simplify render_focused_view_elements
2021-08-19 15:59:03 +09:00
Blaž Hrastnik
9776553ad0
Refactor view.first_line/first_col into view.offset (Position)
2021-08-19 12:52:07 +09:00
Blaž Hrastnik
12ea3888c5
fix: ui: Pin popups with no positioning to the initial cursor position
...
This avoids the floating popup following the cursor as we type.
2021-08-19 11:25:19 +09:00
Gokul Soumya
14c08e855f
Refactor infobox rendering and parsing ( #579 )
2021-08-17 09:25:48 +09:00
Grzegorz Baranski
78923496a6
feat: relative numbers ( #485 )
...
* feat(helix-view): configuring line-number
* feat(helix-term): relative line numbers
* feat(helix-term): passing editor::Config to render
* fix(helix-view): remove LineNumber::None
* feat(helix-term): rendering line-number according to configuration
* fix(term): put calculating current line above line iteration
* fix: add abs_diff function
* deps: cargo update
* fix: pass config argument
2021-08-16 11:11:53 +09:00
Blaž Hrastnik
4167201344
ui: picker: Position count according to input bar
2021-08-13 18:00:04 +09:00
Blaž Hrastnik
eb9ac0a743
ui: picker: Use ui.selection instead of ui.selection.primary
2021-08-13 17:59:47 +09:00
Blaž Hrastnik
f20dc1283d
ui: picker: Render matches/total counts
2021-08-13 17:56:37 +09:00
Gokul Soumya
d84f8b5fde
Show file preview in split pane in fuzzy finder ( #534 )
...
* Add preview pane for fuzzy finder
* Fix picker preview lag by caching
* Add picker preview for document symbols
* Cache picker preview per document instead of view
* Use line instead of range for preview doc
* Add picker preview for buffer picker
* Fix render bug and refactor picker
* Refactor picker preview rendering
* Split picker and preview and compose
The current selected item is cloned on every event, which is
undesirable
* Refactor out clones in previewed picker
* Retrieve doc from editor if possible in filepicker
* Disable syntax highlight for picker preview
Files already loaded in memory have syntax highlighting enabled
* Ignore directory symlinks in file picker
* Cleanup unnecessary pubs and derives
* Remove unnecessary highlight from file picker
* Reorganize buffer rendering
* Use normal picker for code actions
* Remove unnecessary generics and trait impls
* Remove prepare_for_render and make render mutable
* Skip picker preview if screen small, less padding
2021-08-12 16:00:42 +09:00
Dmitry Sharshakov
7d51805e94
Support primary clipboard ( #548 )
...
* clipboard-none: add in-memory fallback buffer
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: add Wayland primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: copy to primary selection after mouse move stops
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: don't update primary selection if it is a single character
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: discard result of setting primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: add commands for interaction with primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: implement primary selection copy/paste using commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xsel for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xclip for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: multiple cursor support for middle click paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* rename primary selection to primary clipboard in scope of PR
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: make middle click paste optional
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-term/src/ui/editor.rs
* fix formatting
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: correct defaults if terminal prop is not set
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* refactor: merge clipboard and primary selection implementations
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: remove names for different clipboard/selection providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-view/src/clipboard.rs
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* helix-view: tidy macros
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor paste-replace commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for middle-click-paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: remove memory fallback for command and windows providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard-win: fix build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: return empty string when primary clipboard is missing
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: fix errors in Windows build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-08-12 11:53:48 +09:00
Blaž Hrastnik
627b899315
ui: completion: Insert suggestions when tabbing over them
...
Fixes #498
2021-08-11 10:56:32 +09:00
Blaž Hrastnik
f917b5a441
ui: completion: Use sort_text to sort the completions
2021-08-11 10:56:32 +09:00
Dmitry Sharshakov
27b551d345
helix-term: handle scrolling when mouse is enabled ( #554 )
...
* helix-term: handle scrolling when mouse is enabled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: configure scrolling speed
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: defaults for edtior config
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: add scroll-lines property
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: scroll hovered view
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: support inverted scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: remove duplicating code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: do not focus view while scrolled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor mouse events and scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* simplify
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-08-10 14:35:20 +09:00
Blaž Hrastnik
86209c93a3
Appease clippy
2021-08-10 10:58:46 +09:00
Blaž Hrastnik
0a7add4ad4
Only recalculate resize during rendering, this stops flashing on resize
2021-08-10 10:52:52 +09:00
Kirawi
815ee9e334
fix small terminal size panic with info popup ( #563 )
...
* fix small terminal size panic with info popup
* remove unused enumerator
* fix subtraction overflow panic
2021-08-09 15:46:58 +09:00
Blaž Hrastnik
a2ccfffda1
config: Rename [terminal] to [editor] and pass it into Editor
2021-08-08 14:10:01 +09:00
Blaž Hrastnik
b20a5c4c0e
ui: menu: Allow wrapping around on ctrl-p/shift tab
2021-08-06 11:22:23 +09:00
Blaž Hrastnik
62eb8c6b40
mouse: Remove verify_screen_coords, refactor primary selection modification
2021-07-30 16:52:14 +09:00
Blaž Hrastnik
6bb744aeac
Remove the jump
2021-07-30 16:52:10 +09:00
Dmitry Sharshakov
8361de45dc
Mouse selection support ( #509 )
...
* Initial mouse selection support
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Disable mouse event capture if editor crashes
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Translate screen coordinates to view position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Select full lines by dragging on line numbers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: don't register dragging as a jump
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count graphemes correctly
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not select lines when dragging on the line number bar
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Split out verify_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not iterate over the graphemes twice
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Switch view by clicking on it
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add disable-mouse config option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Support multiple selections with mouse
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove unnecessary check
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor using match expression
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename local variable
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename mouse option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix dragging selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix crash when clicking past last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count characters better
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove comparison not needed anymore
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Validate coordinates before resolving position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up references to editor tree
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Better way to determine line end and avoid overflow
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix for last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add unit tests for text_pos_at_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-07-30 16:52:00 +09:00
Nathan Vegdahl
a873e719d5
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-28 14:11:08 -07:00
Gokul Soumya
1493313750
Show pending keys in status line ( #515 )
...
* Show pending keys and counts in status line
* Refactor pending key display
2021-07-28 13:57:07 +09:00
Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-26 11:19:10 -07:00
Gokul Soumya
88d6f65239
Allow multi key remappings in config file ( #454 )
...
* Use tree like structure to store keymaps
* Allow multi key keymaps in config file
* Allow multi key keymaps in insert mode
* Make keymap state self contained
* Add keymap! macro for ergonomic declaration
* Add descriptions for editor commands
* Allow keymap! to take multiple keys
* Restore infobox display
* Fix keymap merging and add infobox titles
* Fix and add tests for keymaps
* Clean up comments and apply suggestions
* Allow trailing commas in keymap!
* Remove mode suffixes from keymaps
* Preserve order of keys when showing infobox
* Make command descriptions smaller
* Strip infobox title prefix from items
* Strip infobox title prefix from items
2021-07-27 01:07:13 +09:00
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on Range
.
2021-07-26 08:40:30 -07:00
Blaž Hrastnik
63e54e30a7
Implement in-memory prompt history
...
Implementation is similar to kakoune: we store the entries into
a register.
2021-07-26 11:19:33 +09:00
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-23 17:23:16 -07:00
Blaž Hrastnik
1789dfabfe
fix: ui/menu: Don't allow scrolling past the end of completion
...
Fixes #472
2021-07-23 18:12:33 +09:00
Blaž Hrastnik
817a7e0bd6
fix: Only try expanding directory completion if it makes sense
...
Fixes #487
2021-07-23 18:10:30 +09:00
Blaž Hrastnik
58d08d36ae
Simplify ui/menu.rs
2021-07-23 18:10:17 +09:00
Ivan Tham
eba0bbda2e
Resume last picker
...
Inspired by space ' in doom emacs.
2021-07-22 11:22:27 +09:00
Nathan Vegdahl
1910fa7723
Fix incorrect line hihglight when a selection is at the end of a line.
2021-07-20 10:26:00 -07:00
Nathan Vegdahl
b0311f4fc2
Fixed primary cursor position calculation to use 1-width semantics.
...
This had a bunch of knock-on effects that were buggy, such as bracket
match highlighting.
2021-07-19 09:25:10 -07:00
Nathan Vegdahl
079d4ed86d
Properly fix last_line
view calculation.
...
Turned out to be simpler than I thought. Didn't even need to change the
other use-sites.
2021-07-19 08:39:48 -07:00
Nathan Vegdahl
1a9ae72fcb
Fix last line number being drawn in the status bar.
2021-07-18 23:09:55 -07:00
Nathan Vegdahl
e462f32723
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-18 22:02:12 -07:00
Blaž Hrastnik
5292fe0f7d
Calculate completion popup sizing
...
Fixes #220
2021-07-19 11:29:51 +09:00
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-17 10:49:03 -07:00
Kirawi
bb121a3e4b
Injection Query Support ( #430 )
...
* wip
* wip
* fixed unsafe
* fix clippy
* move out reference variable
* fmt
* remove arc
* change safety comment
2021-07-11 10:40:18 +09:00
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-05 20:27:49 -07:00
Nathan Vegdahl
4952d6f801
Fix phantom lines in some CRLF files.
...
Fixes #415 . The issue was that cursor highlighting wasn't extending
to encompass the entire CRLF grapheme, and therefore ended up splitting
it. This presumably was messing up other grapheme rendering as
well, and this fixes that as well.
2021-07-05 20:07:06 +08:00
Ivan Tham
d02bbb7bae
Fix info panic on small terminal
2021-07-05 00:19:56 +09:00
Ivan Tham
5977b07e19
Reduce calculation and improve pattern in infobox
...
- switch to use static OnceCell to calculate Info once
- pass Vec<(&[KeyEvent], &str)> rather than Vec<(Vec<KeyEvent>, &str)>
- expr -> tt to allow using | as separator, make it more like match
2021-07-04 18:01:59 +09:00
Ivan Tham
6710855eac
Fix rendering issues for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
9effe71b7d
Apply suggestions from blaz for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
8985c58fd3
Add infobox
2021-07-04 18:01:59 +09:00
Nathan Vegdahl
22dca3b111
Allow last line in file to lack a line break character.
2021-07-01 23:36:09 -07:00
Nathan Vegdahl
2224a1527e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-01 19:37:28 -07:00
Nathan Vegdahl
efa3389b6a
Fix unused variable, parameter, and mut
warnings in helix-term.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
702a0491db
Remove #[allow(unused)] from helix-term, and fix unused imports.
...
Lots of other warning still left. Will address in subsequent commits.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
d07074740b
Add Range
methods for various kinds of validation.
2021-07-01 14:22:28 -07:00
Joe Neeman
d64d75e724
Add some async job infrastructure.
2021-06-30 17:08:50 +09:00
Blaž Hrastnik
e9159887a9
ui: Use a box drawing character vertical line for splits
2021-06-30 01:01:28 +09:00
Blaž Hrastnik
d94410a678
Sort the files in descending order
2021-06-28 13:08:38 +09:00
Blaž Hrastnik
82fc28a0ce
ui: Simplify conditional
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
bcca152ad5
Merge tab & char rendering code
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
01b1a62e2c
This char_index is unused
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
4edfac21f6
Allocate the tab stop only once
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
1b102d5532
Extract the merge "operator" into helix-core
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
ae58d813b2
Appease clippy
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
f9cdb2afe2
Turn diagnostics rendering into span injection too
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
057bd630d8
Simplify selection rendering by injecting highlight scopes
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
cad14c6b46
Address nightly clippy warnings
2021-06-27 13:27:47 +09:00
Nathan Vegdahl
a6cadddef4
Fix silly mistake in previous phantom line bug fix.
...
Fixes #381 . I was trying to change an index value that... wasn't
even an index value.
2021-06-26 14:26:18 +09:00
Nathan Vegdahl
2dba228c76
Fix highlight code splitting graphemes.
...
This resulted in phantom blank lines in files with CRLF line
endings, but could potentially have manifested with other
graphemes as well.
2021-06-26 11:09:50 +09:00
Wojciech Kępka
eb6fb63e74
Sort files in file picker by access, modification and creation date ( #336 )
...
* Sort files in file picker by access date
* Fallback file time to modified then created then UNIX_EPOCH
* Use `sort_by_key`
* Refactor
2021-06-26 11:09:17 +09:00
Keith Simmons
4418e17547
reverse the dependency between helix-tui and helix-view ( #366 )
...
* reverse the dependency between helix-tui and helix-view by moving a fiew types to view
* fix tests
* clippy and format fixes
Co-authored-by: Keith Simmons <keithsim@microsoft.com>
2021-06-25 12:58:15 +09:00
Gokul Soumya
18beda38ac
Add … when chars are truncated in picker
2021-06-25 09:28:24 +09:00
Ivan Tham
10548bf0e3
Fix previous broken refactor key into helix-view
...
Need to be used for autoinfo
Revert "Revert "Refactor key into helix-view""
This reverts commit 10f9f72232
.
2021-06-25 00:39:03 +09:00
Gokul Soumya
fb8e7dc25b
Fix picker item width overflow
...
Fixes #352
2021-06-24 12:00:08 +09:00
Blaž Hrastnik
39dc09e6c4
ui: Paginate prompt completion
2021-06-23 21:55:13 +09:00
wojciechkepka
3606d8bd24
Patch the primary cursor with insert and select styles
2021-06-23 21:55:02 +09:00
wojciechkepka
c534fdefdc
Refactor, add ui.cursor.primary
2021-06-23 21:55:02 +09:00
wojciechkepka
d70be55f70
Add ability to theme primary selecition
2021-06-23 21:55:02 +09:00
wojciechkepka
ac1e98d088
Add ability to theme cursor
2021-06-23 21:55:02 +09:00
Blaž Hrastnik
9706f1121d
Fix small screen panics
2021-06-23 13:13:56 +09:00
Nathan Vegdahl
481c4ba044
Increment char_index by grapheme char count.
...
It was just assuming single-char graphemes before.
2021-06-23 12:43:09 +09:00
Joe Neeman
fd1ae35051
Make the prompt callback take a Context.
2021-06-23 10:03:11 +09:00
Lionel Flandrin
b56174d738
Implement change_current_directory command
2021-06-22 19:20:51 -04:00
Blaž Hrastnik
20f33ead67
minor: Remove old TODOs
2021-06-22 23:26:34 +09:00
Blaž Hrastnik
a70de6e980
Merge pull request #224 from helix-editor/line_ending_detection
...
Line ending detection
2021-06-22 11:09:19 +09:00
wojciechkepka
cc357d5096
Add progress spinners to status line
2021-06-21 12:59:06 +09:00
wojciechkepka
b2804b14b1
Add a Spinner
2021-06-21 12:59:06 +09:00
Nathan Vegdahl
e686c3e462
Merge branch 'master' of github.com:helix-editor/helix into line_ending_detection
...
Rebasing was making me manually fix conflicts on every commit, so
merging instead.
2021-06-20 16:09:14 -07:00
Nathan Vegdahl
4efd6713c5
Work on moving code over to LineEnding instead of assuming '\n'.
...
Also some general cleanup and some minor fixes along the way.
2021-06-20 15:33:02 -07:00
wojciechkepka
fc39a6c40d
Add comment, statusline + commandline = 2
2021-06-20 19:59:26 +09:00
wojciechkepka
0882712b45
Use full screen size
2021-06-20 19:59:26 +09:00
wojciechkepka
980e602352
Make completion window move to top when cursor is below half
2021-06-20 19:59:26 +09:00
Nathan Vegdahl
5d22e3c4e5
Misc fixes and clean up of line ending detect code.
2021-06-20 00:40:41 -07:00
Blaž Hrastnik
34ebe82654
ui: prompt: Add more keymappings
2021-06-20 16:38:58 +09:00
Blaž Hrastnik
e9a3245aae
Re-export unicode crates from helix_core
2021-06-20 16:38:58 +09:00
Blaž Hrastnik
9275021497
ui: prompt: Better unicode support
...
We copied over eval_movement from wezterm, that already solves most of
our problems. self.cursor is now byte-based.
2021-06-20 16:38:58 +09:00
wojciechkepka
2d629a880c
Fix overflow
2021-06-19 16:49:20 -04:00
wojciechkepka
a2db161d5a
Add theme completer
2021-06-20 00:07:13 +09:00
wojciechkepka
ce97a2f05f
Add ability to change theme on editor
2021-06-20 00:07:13 +09:00
Blaž Hrastnik
10f9f72232
Revert "Refactor key into helix-view"
...
Did not use defaults when custom keymap was used
This reverts commit ca806d4f85
.
2021-06-19 23:59:19 +09:00
Jan Hrastnik
cdd9347457
Merge remote-tracking branch 'origin/master' into line_ending_detection
2021-06-19 14:51:53 +02:00
Ivan Tham
ca806d4f85
Refactor key into helix-view
...
Now also make use of Deserialize for Config.
2021-06-19 16:37:15 +09:00
wojciechkepka
1c1474c3b8
Add ui.statusline.inactive
, use ui.statusline
for statusline text
2021-06-18 15:18:58 -04:00
Wojciech Kępka
41b07486ad
Fix expansion of ~
( #284 )
...
* Fix expansion of `~`, dont use directory relative to cwd.
* Add `expand_tilde`
* Bring back `canonicalize_path`, use `expand_tilde` to `normalize`
* Make `:open ~` completion work
* Fix clippy
* Fold home dir into tilde in Document `realitve_path`
2021-06-18 15:19:34 +09:00
Benoît CORTIER
42142cf680
Fix panic when entering unicode in command prompt
...
It was attempted to use `String::insert` and `String::remove` to insert
without taking care of unicodes.
Fixes https://github.com/helix-editor/helix/issues/282
2021-06-18 10:08:32 +09:00
Benoît CORTIER
8664d70e73
Replace Editor::current
by a macro
...
This is necessary to workaround ownership issues across function calls.
The issue notably arised when implementing the registers into `Editor`
and I was getting annoyed again when implementing copy/pasting into
system clipboard.
The problem is addressed by using macro calls instead of function calls.
There is no notable side effect.
2021-06-18 09:38:10 +09:00
PabloMansanet
f7e00cf720
Configurable keys 2 (Mapping keys to commands) ( #268 )
...
* Add convenience/clarity wrapper for Range initialization
* Add keycode parse and display methods
* Add remapping functions and tests
* Implement key remapping
* Add remapping book entry
* Use raw string literal for toml
* Add command constants
* Make command functions private
* Map directly to commands
* Match key parsing/displaying to Kakoune
* Formatting pass
* Update documentation
* Formatting
* Fix example in the book
* Refactor into single config file
* Formatting
* Refactor configuration and add keymap newtype wrappers
* Address first batch of PR comments
* Replace FromStr with custom deserialize
2021-06-17 20:08:05 +09:00
Jan Hrastnik
a4f5a0134e
trying out line ending helper functions in commands.rs
2021-06-16 17:13:41 +02:00
Jan Hrastnik
3756c21bae
rebase on branch line_ending_detection
2021-06-16 17:00:21 +02:00
Gokul Soumya
d1c8a74771
Add theme key for selected line number
...
Adds `ui.linenr.selected` which controls highlight of linu numbes which
have cursors on.
- Fallback to linenr if linenr.selected is missing
- Update docs and themes
- Add TODOs for themes with temporary linenr.selected
2021-06-16 15:00:14 +09:00
Ivan Tham
124514aa70
Add cursor kind to separate hidden cursor from pos
...
Now IME cursor position should be correct since we can still set cursor
position without drawing the cursor.
2021-06-15 23:46:21 +08:00
Benoît CORTIER
6bdf609caa
Remove RwLock for registers
...
Registers are stored inside `Editor` and accessed without `RwLock`.
To work around ownership, I added a sister method to `Editor::current`:
`Editor::current_with_context`. I tried to modify `Editor::current`
directly but it's used at a lot of places so I reverted into this for
now at least.
2021-06-15 23:01:56 +08:00
Benoît CORTIER
6fb2d2679d
Use _impl
suffix instead of _
prefix
...
Helpers / internal implementations where using the `_` prefix.
However, this prefix also suppress unused warnings.
I suggest we use the `_impl` suffix instead.
2021-06-15 02:33:12 -04:00
Ivan Tham
002f1ad397
Add filter ability to picker
...
Inspired by doom emacs. Able to filter picker options multiple times.
2021-06-15 12:00:31 +08:00
Nathan Vegdahl
4faf1d3bf4
Remove indent style status-line display for now.
2021-06-14 18:32:23 -07:00
Nathan Vegdahl
358ea6a37c
Implement command to change the indent-style setting of a document.
2021-06-14 18:32:23 -07:00
Nathan Vegdahl
8648e483f7
Render indent-style status in status line.
...
Also cleaned up the status line code a little.
2021-06-14 18:32:23 -07:00
Ivan Tham
1bda454149
Add ctrl-w for prompt
2021-06-15 01:06:53 +09:00
Gokul Soumya
f33aaba53f
Add ui.selection to theme.toml
...
Enables changing the color of the selection which was previously
hard coded.
2021-06-15 00:06:53 +09:00
Blaž Hrastnik
d545e61644
ui: Prompt should figure out a reasonable column width
...
Fixes #192
Refs #225
2021-06-13 22:28: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
1953588873
Change picker horizontal split to h
...
Follow window mode and vim behavior, x seemed weird.
2021-06-12 21:17:48 +09:00
wojciechkepka
4dbc23ff1c
Fix documentation popup panic
2021-06-10 11:26:03 +09:00
Kevin Sjöberg
b20e4a108c
Only enforce limit outside of .git
2021-06-09 10:06:31 +09:00
Kevin Sjöberg
1bb9977faf
Match keybindings of menu
2021-06-09 09:54:22 +09:00
Kevin Sjöberg
29962a5bd9
Fix Shift-Tab for moving upwards in menu
2021-06-09 09:53:40 +09:00
Blaž Hrastnik
83723957fe
Fix crash when too many completions available
...
Refs #81
2021-06-08 21:58:26 +09:00
Zheming Li
ae51065213
Support go to line 1
2021-06-08 17:27:21 +09:00
Wojciech Kępka
1bffb34350
Make matching bracket dimmed, prevent out of bounds rendering
2021-06-08 17:23:05 +09:00
Kevin Sjöberg
08f50310bd
Bump file picker limit
2021-06-08 09:51:50 +09:00
Wojciech Kępka
6fc0e0b5fb
completion: Fix unimplemented autocomplete
2021-06-08 09:38:53 +09:00
Blaž Hrastnik
3cee0bf200
Address clippy lint
2021-06-07 23:08:51 +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
14830e75ff
Revert the line number rendering change, we were correct before
2021-06-07 13:24:03 +09:00
ahkrr
e2d780f993
fix: 2 panics while setting style + off by 1
...
The panics would occur because set_style
would draw outside of the the surface.
Both occured using `find_prev` or `till_prev`
In my case the first panic! would appear
in a terminal with around 80 columns
in helix/README.md going to the end of the file
with `geglf(`
the second with `geglfX`
The off by one fix ensures that `find_nth_prev`
starts at the first character to the left
2021-06-07 09:15:08 +09:00
Wojciech Kępka
16b1cfa3be
Add diagnostics keybindings
2021-06-07 09:11:52 +09:00
Kevin Sjöberg
3494bb8ef0
Refactor index assignment
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-06 21:48:19 +09:00
Kevin Sjöberg
a4ff8cdd8a
Allow moving backwards in completions
2021-06-06 21:48:19 +09:00
Kevin Sjöberg
145bc1970a
Trigger directory completion upon pressing Enter
2021-06-06 21:48:19 +09:00
Kevin Sjöberg
aa8a8baeeb
Calculate offset when moving picker cursor
2021-06-06 19:18:09 +09:00
Kevin Sjöberg
2ac496f919
Do not move past number of matches
2021-06-06 18:04:45 +09:00
ahkrr
c5c3ec07f4
fix: panicked at 'attempt to subtract with overflow'
...
helix-term/src/ui/editor.rs:275:29
This would happen when the window-size was to small to display the entire width and one would start jumping forwards with f<some_char> and the beginning of the highlighted area would end up outside of the window
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
Blaž Hrastnik
f2e554d761
matchbrackets: Needs to render with the viewport offset
2021-06-04 15:11:55 +09:00
Ivan Tham
29b9eed33c
Fix panic paint mysterious matching pair
...
When the matching pair is out of bounds it still paints it causing an
out of bound panic. A dirty fix since it still have some issue, at least
it does not panic now.
2021-06-04 09:25:03 +09:00
Jan Hrastnik
c1c3750d38
key is now modified in place at start of handle_event
2021-06-03 23:16:04 +09:00
Jan Hrastnik
daad8ebe12
key_canonicalization now only matches chars
2021-06-03 23:16:04 +09:00
Jan Hrastnik
68abc67ec6
put the key canonicalization in a seperate function. only chars now get stripped of Shift modifier
2021-06-03 23:16:04 +09:00
Jan Hrastnik
712f25c2b9
removed shift matching
2021-06-03 23:16:04 +09:00
notoria
c3a98b6a3e
Highlight matching brackets
2021-06-03 11:40:46 +02:00
Blaž Hrastnik
661dbdca57
Fix cursor not showing on (0, 0)
2021-06-03 13:34:00 +09:00
Blaž Hrastnik
c0332bd935
Fix split sizes getting out of sync with the terminal size, refs #69
2021-06-03 10:28:49 +09:00
Blaž Hrastnik
a2147fc7d5
Change help prompt styling
2021-06-01 12:00:25 +09:00
Blaž Hrastnik
87d0617f3b
Completion: Format docs tabs & highlight in the doc's native language
2021-05-30 17:13:02 +09:00
Blaž Hrastnik
3810650a6b
Completion: Render non-markdown docs too
2021-05-30 10:36:58 +09:00
Blaž Hrastnik
d54ae09d3b
ESC should exit both completion and insert mode
2021-05-29 10:37:47 +09:00
Blaž Hrastnik
d708efe275
Fix cursor positioning for prompts
2021-05-29 00:06:23 +09:00
Blaž Hrastnik
3336023614
ui: Menu rendering adjustments
2021-05-28 00:01:17 +09:00
Blaž Hrastnik
094203c74e
Update deps, introduce the new tree-sitter lifetimes
2021-05-28 00:00:51 +09:00
Blaž Hrastnik
b114cfa119
Display more data in completion popups.
2021-05-22 17:33:42 +09:00
Blaž Hrastnik
51d1d43289
Double the UI picker file limit.
2021-05-18 17:53:58 +09:00
Blaž Hrastnik
8949347e2c
Completion: apply additionalTextEdits.
...
Used for adding imports to the file when completing.
2021-05-17 16:35:34 +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
ccdebb99b5
Drop some useless imports.
2021-05-09 18:32:40 +09:00
Blaž Hrastnik
ff4c1d05de
Replace the Clear widget with buffer.clear/clear_with.
2021-05-09 18:13:50 +09:00
Blaž Hrastnik
1255bcb8a3
Simplify the compositor callback.
2021-05-09 18:02:31 +09:00
Blaž Hrastnik
0fe19ae472
clippy lint
2021-05-08 18:26:49 +09:00
Blaž Hrastnik
d24844b73d
ui: Render command mode doc text if available.
2021-05-08 17:33:06 +09:00
Blaž Hrastnik
f0712479cb
Define text color (mostly) in theme.toml.
2021-05-07 17:42:09 +09:00
Blaž Hrastnik
f87dee926a
Simplify prompt autocompletion rendering code.
2021-05-07 17:31:28 +09:00
Blaž Hrastnik
ff84c8e394
Command mode: Per command completers.
2021-05-07 17:19:45 +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
fd4fd12fa3
clippy lint
2021-05-06 17:20:00 +09:00
Blaž Hrastnik
355ad3cb82
Tokio migration.
2021-05-06 13:56:34 +09:00
Blaž Hrastnik
3038c2ef6d
ui: Draft for completion doc preview.
2021-05-03 18:22:29 +09:00
Blaž Hrastnik
d559199cec
Stop crashing if last view is closed.
2021-05-03 17:46:14 +09:00
Blaž Hrastnik
28c167d71d
doc: Be smarter about calculating modified status.
...
This way edit -> undo will properly show up as unmodified.
2021-05-03 17:23: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
7493d19098
Re-introduce clearing with bg color, seems the TUI issue was fixed.
2021-04-10 00:25:46 +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
978f5114d8
Horizontal scrolling! It only took a year to get around to it.
2021-04-09 19:29:01 +09:00
Blaž Hrastnik
d692390d10
Render current line:col.
2021-04-09 18:57:46 +09:00
Blaž Hrastnik
52da68e49a
Render a separator between vertical splits.
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
f0d49d3ca4
hack: make queries load relative to source dir for now.
...
We want to provide a runtime dir later on.
2021-04-07 18:05:59 +09:00
Blaž Hrastnik
31e6bcbeb4
Clippy lint: replace with default -> take
2021-04-07 16:58:23 +09:00