Commit Graph

1344 Commits (f2dd3d446914ec0953cd7e056d430fc3b959e75d)

Author SHA1 Message Date
CossonLeo 29e6849413
Add LSP rename_symbol (space-r) (#1011)
improve apply_workspace_edit
3 years ago
Blaž Hrastnik 8b85903116 wip 3 years ago
Omnikar a252ecd8c8
Add WORD textobject (#991)
* Add WORD textobject

* Document WORD textobject
3 years ago
Blaž Hrastnik 09f5796537 dap: Simplify get_breakpoint_at_current_line 3 years ago
Blaž Hrastnik c39d9f44a0 dap: Simplify debug_parameter_prompt 3 years ago
Blaž Hrastnik 3042ff3e5a dap: Clean up dap_start_impl, no need to clone arg keys 3 years ago
Blaž Hrastnik 9963a5614d dap: Minor simplifications 3 years ago
Blaž Hrastnik 65868081fc dap: Simplify launch & start
There's no need to re-detect language config, just use the one available
on the document.
3 years ago
Blaž Hrastnik 4f2a01cc09 dap: Error implements Display so we can format with {} 3 years ago
Blaž Hrastnik 2bd8a9b39d dap: Consistently rename type as ty 3 years ago
Blaž Hrastnik 9dd17c46a2 dap: Avoid cloning old_breakpoints if we are immediately replacing them 3 years ago
Blaž Hrastnik 757babb1b4 dap: Avoid cloning *entire* stack frames when picking a thread 3 years ago
Blaž Hrastnik 5803de2067 dap: Simplify more calls 3 years ago
Blaž Hrastnik 9baddc825d dap: Get rid of excessive cloning 3 years ago
Blaž Hrastnik fd9b826f2c dap: Inline empty completer 3 years ago
Blaž Hrastnik 5938ab1bf1 dap: Fully extract template parameter prompts 3 years ago
Blaž Hrastnik 3b8d5102ac Make picker take the whole context, not just editor 3 years ago
Blaž Hrastnik 64bb1f7563 dap: Extract out variable rendering
Will improve on the UI later
3 years ago
Omnikar ed23057ff8
Launch with defaults upon invalid config/theme (#982)
* Launch with defaults upon invalid config/theme

* Startup message if there is a problematic config
* Statusline error if trying to switch to an invalid theme

* Use serde `deny_unknown_fields` for config
3 years ago
Blaž Hrastnik e2a23ac0b5 If there is no live debugger, treat breakpoints as unverified 3 years ago
Blaž Hrastnik 2e1aa5f15b Fix compilation 3 years ago
Blaž Hrastnik 09d8c139af dap: Enable sticky mode for the submode 3 years ago
Blaž Hrastnik 14a3502cf1 dap: Move template selection into a picker
It's time to move all these components out of ui/editor.rs
3 years ago
Blaž Hrastnik f2b709a3c3 Merge branch 'master' into debug 3 years ago
Blaž Hrastnik 2c1313c064 Specify vector capacity on surround_add 3 years ago
Blaž Hrastnik 1a1685acf7 Simplify current!(..).1 into doc!() 3 years ago
Blaž Hrastnik 0f4cd73000 Simplify goto_*_diagnostic commands 3 years ago
Blaž Hrastnik f659e1178a minor: view!(..).doc is slightly more efficient than current!(..).1.id() 3 years ago
Blaž Hrastnik 4c1321b3b6 minor: Extend search was decclared twice in the keymap 3 years ago
Blaž Hrastnik b81a554424 Retain range direction on search
Co-authored-by: CossonLeo <20379044+cossonleo@users.noreply.github.com>
3 years ago
Blaž Hrastnik 6431b26a6a Implement Selection::replace to replace a single range
Fixes #985

Co-authored-by: Daniel S Poulin <crimsonmage+github@gmail.com>
3 years ago
Gygaxis Vainhardt 911b9b3276
Add reverse search functionality (#958)
* Add reverse search functionality

* Change keybindings for extend to be in select mode, incorporate Movement and Direction enums

* Fix accidental revert of #948 in rebase

* Add reverse search to docs, clean up mismatched whitespace

* Reverse search optimization

* More optimization via github feedback
3 years ago
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
3 years ago
Omnikar 51b4d35dce
Inform when reaching undo/redo bounds (#981)
* Inform when reaching undo/redo bounds

* `Already at oldest change` when undo fails
* `Already at newest change` when redo fails

* Add missing `the`
3 years ago
Blaž Hrastnik 7b65a6d687 Rewrite goto_buffer 3 years ago
ath3 78c68fae91 Implement "Goto next buffer / Goto previous buffer" commands 3 years ago
Blaž Hrastnik e2560f427e Replace documents SlotMap with BTreeMap 3 years ago
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>
3 years ago
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>
3 years ago
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>
3 years ago
Omnikar e39cfa40df
Hide keys bound to `no_op` from infobox (#971) 3 years ago
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
3 years ago
Triton171 7a0c4322ea Simplify BTreeSet construction
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Daniel Ebert eb8745db09 Implement key ordering for info box 3 years ago
CossonLeo 1720b98760
only remove primary index when search next without extend (#948) 3 years ago
Gygaxis Vainhardt f140a2a00e
Add arrow-key bindings for window switching (#933) 3 years ago
Blaž Hrastnik e5de103728 Extract a clear_completion method 3 years ago
Ivan Tham 49f6c2623f
Bump lsp-types to 0.91.0 (#932) 3 years ago
Ivan Tham bc6a34d97e
Make match work with extend and multi cursors (#920) 3 years ago
Ivan Tham 21d535565b
Support extend for multiple goto (#909)
gg, ge, [n]gg
3 years ago
cossonleo f1d339919f add expand_selection to last_motion 3 years ago
Omnikar db56de589a
Add `--tutor` option to `hx --help` output (#924)
* Add `--tutor` option to `hx --help` output

* Adjust `--tutor` location in help output
3 years ago
Omnikar e2ed691537
Implement `hx --tutor` and `:tutor` to load `tutor.txt` (#898)
* Implement `hx --tutor` and `:tutor` to load `tutor.txt`

* Document `hx --tutor` and `:tutor`

* Change `Document::set_path` to take an `Option`

* `Document::set_path` accepts an `Option<&Path>` instead of `&Path`.
* Remove `Editor::open_tutor` and make tutor-open functionality use
  `Editor::open` and `Document::set_path`.

* Use `PathBuf::join`

Co-authored-by: Ivan Tham <pickfire@riseup.net>

* Add comments explaining unsetting tutor path

Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Nehliin 3b0c5e993a Use deserialization fix instead 3 years ago
Oskar Nehlin 6e455fd3fb Apply suggestions from code review
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Nehliin da4d9340ba Make key macro more portable 3 years ago
Nehliin a4c5f46739 Fix order being empty and add test 3 years ago
Nehliin f133d80e70 Move test to test module 3 years ago
Nehliin fbba47fbc0 Fix panic when using multi-level key mapping 3 years ago
Blaž Hrastnik 1066b081dd fix: When cycling through prompt history, update event needs to trigger 3 years ago
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>
3 years ago
radical3dd d61e5e686b
Use current dir for file picker, after change dir. (#910) 3 years ago
CossonLeo f331ba9df4
Clear competion items when start_offset > cursor (#906) 3 years ago
CossonLeo b142fd4080
move_up will select last item, when no item selected (#907) 3 years ago
CossonLeo bca98b5bed
Add c-j c-k to menu keymap for move_up move_down (#908) 3 years ago
Blaž Hrastnik acc5ac5e73 fix warning 3 years ago
Blaž Hrastnik 3edca7854e completion: fully revert state before apply & insertText common prefix 3 years ago
Omnikar a7d87c79ce
Fix `:quit!` description and tense of other commands (#902) 3 years ago
Dmitry Sharshakov 6aa9838ea6
dap: support arrays as arguments 3 years ago
CossonLeo 2ed01f2d9c
find motion and textobj motion repeat (#891) 3 years ago
Blaž Hrastnik cee7ad781e Mark a few functions as `const` 3 years ago
CossonLeo 971ba8929f
Filter completion items from language server by starts_with word under cursor (#883)
* filter items by starts_with pre nth char of cursor

* add config for filter completion items by starts_with

* filter items by starts_with pre nth char of cursor

* add config for filter completion items by starts_with

* remove completion items pre filter configuratio
3 years ago
Kirawi 0cb5e0b2ca
log syntax highlighting init errors (#895) 3 years ago
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
3 years ago
Gokul Soumya 4ee92cad19
Add treesitter textobjects (#728)
* Add treesitter textobject queries

Only for Go, Python and Rust for now.

* Add tree-sitter textobjects

Only has functions and class objects as of now.

* Fix tests

* Add docs for tree-sitter textobjects

* Add guide for creating new textobject queries

* Add parameter textobject

Only parameter.inside is implemented now, parameter.around
will probably require custom predicates akin to nvim' `make-range`
since we want to select a trailing comma too (a comma will be
an anonymous node and matching against them doesn't work similar
to named nodes)

* Simplify TextObject cell init
3 years ago
Blaž Hrastnik 96945be1a8 Fix doctest broken on 2021 edition 3 years ago
Blaž Hrastnik 182a59b552 Update to rust 1.56 + 2021 edition 3 years ago
Daniel S Poulin 3b032e8e1f
First stab at ignoring compressed files from picker (#767) 3 years ago
radical3dd b1ebd7a07e
Replace current selection with all yanked values. (#882) 3 years ago
Blaž Hrastnik e9b23c29d8 Ignore errors when disabling mouse capture 3 years ago
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
3 years ago
CossonLeo 9ac0c95161
Improve completion trigger (#838)
* improve idle completion trigger

* add completion-trigger-len to book

* rename semantics_completion to language_server_completion and optimize idle completion trigger
3 years ago
Blaž Hrastnik bda05ec4bf Use a newtype for ThreadId 3 years ago
Blaž Hrastnik 0a6b60085a Merge branch 'master' into debug 3 years ago
Ivan Tham 89707a858f
Make auto-completion a config (#853) 3 years ago
Blaž Hrastnik 2c0468ffd1 fix: If backspacing past the start offset, cancel completion
Refs #822
3 years ago
Omnikar c71b49497d
Set CWD when editor is started with a directory (#849) 3 years ago
Leoi Hung Kin 4d07eaa48b
Prevent LSP Messages from displaying when a prompt is presented (#824)
* Prevent LSP Messages from displaying when a prompt is presented

* use match guard
3 years ago
Blaž Hrastnik f8f63c5508
Merge pull request #821 from helix-editor/idle-timer
Idle timer / Autocompletion
3 years ago
Blaž Hrastnik 76b1bbc23a Allow trigger_offset to be unused for now 3 years ago
Blaž Hrastnik 633b981db2 Make idle-timeout configurable 3 years ago
Blaž Hrastnik c7f3a971c0 Remove resolved TODOs 3 years ago
Dmitry Sharshakov bc0084d071
fix command descriptions 3 years ago
Dmitry Sharshakov 48cb81eff1
Merge branch 'master' into debug 3 years ago
Leoi Hung Kin a6852fb88f
Picker: Don't panick at move_up/move_down when matches is empty (#818) 3 years ago
Ethan Frei 9f27be429d
relative paths showing active file in global search (#803) 3 years ago
Blaž Hrastnik f692ede2b7 fix: Don't crash on empty completion, don't retrigger on close 3 years ago
Blaž Hrastnik 8ca91891d1 fix compilation 3 years ago
Blaž Hrastnik 66f26e82ce Filter the initial completion 3 years ago
Blaž Hrastnik 40abec80e1 Experiment with autocompletion on idle 3 years ago
Blaž Hrastnik f99bea404f idle timer wip 3 years ago
Irevoire c4ae17dfd4
fix clippy warnings (#804) 3 years ago
Irevoire 7e958e1834
Add a bunch of aliases (#797)
* add a bunch of aliases

* apply code review from archseer
3 years ago
Dylan Richardson 4a92a79da4
global search: show file names as relative paths (#802)
This commit fixes #786
3 years ago
Dmitry Sharshakov 814dcfa8d2
fix lints 3 years ago
Dmitry Sharshakov d943a51e3e
editor: add Node.js debugger 3 years ago
Dmitry Sharshakov 0e51e5fbaf
editor: support setExceptionBreakpoints 3 years ago
Dmitry Sharshakov bf53aff27d Merge branch 'master' into debug 3 years ago
Matt W df55eaae69
Add tilde expansion for file opening (#782)
* change to helix_core's tilde expansion,
    from helix-core::path::expand_tilde
3 years ago
Blaž Hrastnik 2e0803c8d9 Implement 'remove_primary_selection' as Alt-,
This allows removing search matches from the selection

Fixes #713
3 years ago
Blaž Hrastnik 75dba1f956 experiment: space+k for LSP doc, K for keep_selections 3 years ago
Blaž Hrastnik 9ea9e779b2 experiment: Move keep_primary_selection to , 3 years ago
lurpahi a958d34bfb
Add option for automatic insertion of closing-parens/brackets/etc (#779)
* Add auto-pair editor option

* Document auto-pair editor option

* Make cargo fmt happy

* Actually make cargo fmt happy

* Rename auto-pair option to auto-pairs

* Inline a few constants

Co-authored-by: miaomai <cunso@tutanota.com>
3 years ago
Leoi Hung Kin 432bec10ed
allow smart case in global search (#781) 3 years ago
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
3 years ago
kraem 4a003782a5
enable smart case regex search by default (#761) 3 years ago
Leoi Hung Kin 1d04e5938d
search_next_impl: don't panic on invalid regex (#740) 3 years ago
Blaž Hrastnik 3ff5b001ac fix: Don't allow closing the last split if there's unsaved changes
Fixes #674
3 years ago
Blaž Hrastnik c7d6e4461f fix: Wrap around the top of the picker menu when scrolling
Forgot to port the improvements in menu.rs

Fixes #734
3 years ago
Blaž Hrastnik b02d872938 fix: Refactor apply_workspace_edit to remove assert
Fixes #698
3 years ago
Blaž Hrastnik dd0b15e1f1 syntax: Properly handle injection-regex for language injections 3 years ago
Omnikar 3e12b00993
Add `no_op` command (#743)
* Add `no_op` command

* Document `no_op` in `remapping.md`
3 years ago
Blaž Hrastnik 1540b37f34 lsp: Silence window/logMessage if -v isn't used 3 years ago
Blaž Hrastnik 32977ed341 ui: Trigger recalculate_size per popup render so contents can readjust 3 years ago
Kangwook Lee (이강욱) 05c2a72ccb
goto line start/end commands extend when in select mode (#739) 3 years ago
Kirawi 987d8e6dd6
Convert clipboard line ending to document line ending when pasting (#716)
* convert a paste's line-ending to the current doc's line-ending

* move paste regex into paste_impl
3 years ago
Gokul Soumya 94abc52b3b
feat: Sticky view mode with Z (#719) 3 years ago
Blaž Hrastnik 3426285a63 fix: Don't automatically search_next on *
Refs #713
3 years ago
Blaž Hrastnik 72cf86e462 Regex prompts should have a history with a specifiable register 3 years ago
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
3 years ago
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.
3 years ago
Kangwook Lee (이강욱) 7a9db95182
Add command to extend to line start or end (#717) 3 years ago
Blaž Hrastnik 46f3c69f06 lsp: Don't send notifications until initialize completes
Then send open events for all documents with the LSP attached.
3 years ago
Blaž Hrastnik dc7799b980 lsp: Refactor code that could use document_by_path_mut 3 years ago
Blaž Hrastnik 63e191ea3b lsp: Simplify lookup under method call 3 years ago
Blaž Hrastnik 10b690b5bd Drop some &mut bounds where & would have sufficed 3 years ago
Dmitry Sharshakov 507a1f8dd6 Get breakpoint reports from debugger 3 years ago
Dmitry Sharshakov c9cd06e904 Fetch stack traces for all threads when debugger sets all_thread_stopped flag 3 years ago
Dmitry Sharshakov bdd636d8ee Clean up import 3 years ago
Gokul Soumya 6e21a748b8
Fix escape not exiting insert mode (#712)
Regression due to #635 where escape key in insert mode
would not exit normal mode. This happened due to hard
coding the escape key to cancel a sticky keymap node.
3 years ago
Dmitry Sharshakov 9b8c5bdade
Remove redundant fetching of stack traces 3 years ago
Dmitry Sharshakov 0add0c5639
Make conditional logpoints underlined 3 years ago
Dmitry Sharshakov 2d35b7b99c
Normalize line in picker preview to avoid crash 3 years ago
Dmitry Sharshakov b6c58ea23e
Support thread previews 3 years ago
Dmitry Sharshakov bb26c589b4 Keybinding for editing log 3 years ago
Dmitry Sharshakov 0e1e4edc5e different display for conditional logpoints 3 years ago
Dmitry Sharshakov 8a609047c3 Mouse command for editing logpoint 3 years ago
Dmitry Sharshakov 7bdead5b4b Drop old commands
TODO: edit logpoints with a keybinding and mouse
3 years ago
Dmitry Sharshakov 3b0ec750ff Support editing breakpoint condition with right click 3 years ago
Gokul Soumya 183dcce992
Add a sticky mode for keymaps (#635) 3 years ago
Gokul Soumya 95cd2c645b Refactor switch_case commands 3 years ago
Gokul Soumya 33ce8779fd Refactor {move,extend}_word_* commands 3 years ago
Gokul Soumya ea2b4c687d Refactor {move,extend}_char_* commands 3 years ago
Dmitry Sharshakov 1befbd076c Add command for editing breakpoint condition 3 years ago
Dmitry Sharshakov e36fc57fff refactor breakpoint edit 3 years ago
Dmitry Sharshakov 698583c241 Support setting breakpoints with mouse 3 years ago
Kangwook Lee (이강욱) 07fe4a6a40
Add commands that extends to long words (#706) 3 years ago
Dmitry Sharshakov 430c80ff2a Fix crash when trying to select (view) threads when debuggee is running 3 years ago
Dmitry Sharshakov c6186ce600 jump to selected stack frame 3 years ago
Dmitry Sharshakov cb31d20b46 mark thread as running when resumed 3 years ago
Dmitry Sharshakov 9a1916ebfd show thread states in thread picker 3 years ago
Dmitry Sharshakov 00cccdc62a
Don't show thread picker for single-threaded targets 3 years ago
Dmitry Sharshakov 9939dbf119 Fix clippy warnings 3 years ago
Dmitry Sharshakov cf7237d0b9
compat: make thread IDs signed
Delve needs it
3 years ago
Blaž Hrastnik c63ad60c31 dap: Allow switching between stack frames 3 years ago
Blaž Hrastnik b997d2cdeb dap: Allow setting breakpoints before starting the adapter 3 years ago
Blaž Hrastnik 289303a30d dap: small TODO 3 years ago
Blaž Hrastnik 42f9718f55 dap: Extract thread_picker, make pause explicitly select a thread 3 years ago
Blaž Hrastnik 27c1b3f98b dap: Extract a thread_states map 3 years ago
Blaž Hrastnik 5b920c53f0 Refactor resume_application state handling 3 years ago
Blaž Hrastnik 4c410eef87 Merge remote-tracking branch 'origin/master' into debug 3 years ago
Dmitry Sharshakov 9c64650a26
force update of stack trace when stopped 3 years ago
Dmitry Sharshakov 2c89107349
Fix crash when stack trace not loaded
Still doesn't address the issue though
3 years ago
Dmitry Sharshakov e0180a4b88 find main thread automatically if thread stopped is not known 3 years ago
Wojciech Kępka 7e1123680f
Expand `~` in `change-current-directory` command (#692) 3 years ago
oberblastmeister 825bceeab6
add_newline unimpaired mapping (#653)
* added some keymaps

* remove

* remove wrong mappings

* remove

* wrong import

* use enum

* correct line ending

* added to book

* column
3 years ago
Blaž Hrastnik ce7ad2beb5 Reimplement keep-pipe, it needs to manipulate selections, not text 3 years ago
Blaž Hrastnik dc609cafb5 Extract the shell command into a separate function 3 years ago
Dmitry Sharshakov 5b20f6020a Merge remote-tracking branch 'origin/master' into debug
Contains type fix on helix-term/src/ui/editor.rs:752:13
3 years ago
Blaž Hrastnik a3bd80a6fa ui: prompt: Avoid allocating a prompt name if it's a static string 3 years ago
Blaž Hrastnik 9b96bb5ac8 Refactor a bit further 3 years ago
Blaž Hrastnik 4a76ea8f88 shell: Move changes outside so we can properly handle errors 3 years ago
Omnikar e772808a5b
Shell commands (#547)
* Implement shell interaction commands

* Use slice instead of iterator for shell invocation

* Default to `sh` instead of `$SHELL` for shell commands

* Enforce trailing comma in `commands` macro

* Use `|` register for shell commands

* Move shell config to `editor` and use in command

* Update shell command prompts

* Remove clone of shell config

* Change shell function names to match prompts

* Log stderr contents upon external command error

* Remove `unwrap` calls on potential common errors

`shell` will no longer panic if:
  * The user-configured shell cannot be found
  * The shell command does not output UTF-8

* Remove redundant `pipe` parameter

* Rename `ShellBehavior::None` to `Ignore`

* Display error when shell command is used and `shell = []`

* Document shell commands in `keymap.md`
3 years ago
gbaranski 9c5752cbac fix: use .cursor() instead of .head 3 years ago
gbaranski b590504143 fix: use head instead of anchor for relative line 3 years ago
Blaž Hrastnik 0b0b1d850a dap: Stop comparing file paths per line number 3 years ago
Blaž Hrastnik 2c7b75475f dap: refactor frame handling 3 years ago
Omnikar 03ad9e0bfa
Fix code indentation (#671) 3 years ago
Blaž Hrastnik 986828e75c dap: Remap keys, match current thread behavior from dap-mode, switch-thread 3 years ago
Blaž Hrastnik 03b2d81406 dap: better yet, use Selection::single.. 3 years ago
Blaž Hrastnik 4d24a43651 dap: use smallvec! macro 3 years ago
Blaž Hrastnik 81f51c13fa dap: continued: THis check is already done before the match statement 3 years ago
Blaž Hrastnik 51328a4966 dap: extract dap_pos_to_pos 3 years ago
Blaž Hrastnik d6ccc150c7 Extract dap commands into a separate file 3 years ago
Blaž Hrastnik ee2ba744a2 Rename dap_in/_out to dap_step_in/_out 3 years ago
Dmitry Sharshakov b42631942b
Defaults in completions, better schema 3 years ago
Dmitry Sharshakov f53d8411cb
Add extra annotations to completions 3 years ago
Dmitry Sharshakov 98fda6b8f0
better completion 3 years ago
Dmitry Sharshakov 9d2f2a9e32
Support multiple arguments for debug configs 3 years ago
Dmitry Sharshakov 2d42766a71
wip: refactor parameters in UI start 3 years ago
Dmitry Sharshakov af657ef2ec
Fix lints 3 years ago
Dmitry Sharshakov 94901b8677
Customized completion for template parameters 3 years ago
Dmitry Sharshakov ef155e62ef
Add filename autocomplete to template args 3 years ago
Dmitry Sharshakov e315394631
Merge remote-tracking branch 'origin/master' into debug 3 years ago
Dmitry Sharshakov 8df6739759
New way of starting debug sessions 3 years ago
Dmitry Sharshakov 5e4da09be2
Don't let picker be too narrow 3 years ago
Dmitry Sharshakov 890b51b568
Paginated variables 3 years ago
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
3 years ago
Blaž Hrastnik 5cee3b634d ui: prompt: Fix typing with alt 3 years ago
Omnikar bfce4d4f29
Make `v` in select mode switch back to normal mode (#660)
* Make `v` in select mode switch back to normal mode

* Move select mode toggle to keymap instead of command
3 years ago
Grzegorz Baranski cec5d437d8
fix: show current line number even if relative line is on (#656) 3 years ago
Stuart Hinson 6192f2fa25
Show hidden files in filename completer (#648)
also removes unnecessary clone
3 years ago
Yusuf Bera Ertan dc57f8dc89
feat: merge default languages.toml with user provided languages.toml, add a generic TOML value merge function (#654)
* feat: merge default languages.toml with user provided languages.toml

* refactor: use catch-all to override all other values for merge toml

* tests: add a test case for merging languages configs

* refactor: change test module name
3 years ago
Ivan Tham 4bafda3995
Change vsp to vs (#647)
Follow up on #639 to match vim behavior
3 years ago
Dmitry Sharshakov 3b87fce0ce
Print errors occurred in debug commands 3 years ago
Dmitry Sharshakov c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug 3 years ago
Dmitry Sharshakov 4ee66b8766
Support remote debug adapter 3 years ago
Dmitry Sharshakov 326293cb57
only show variables' names and types 3 years ago
Kirawi b99db7c687
Move path util functions from helix-term to helix-core (#650) 3 years ago
Dmitry Sharshakov 2c3e2b979b
Workaround for debugging Go tests 3 years ago
Dmitry Sharshakov 8cc6d68160
Autocomplete files for debug command 3 years ago
Dmitry Sharshakov 235a84d989
Remove shortcut for starting debug 3 years ago
Dmitry Sharshakov 299da5a35b
Support attach request 3 years ago
Dmitry Sharshakov b001008a69
Support templates in debug configurations 3 years ago
Dmitry Sharshakov 31212e133d
Rename functions 3 years ago
Dmitry Sharshakov 1041a5bb07
Support launching configs by name 3 years ago
Dmitry Sharshakov c463142e5e
Create new debugger config format 3 years ago
Dmitry Sharshakov 34c6094604
refactor 3 years ago
Dmitry Sharshakov fdad7d67aa
Check capabilities for breakpoint config 3 years ago
Dmitry Sharshakov c4085b4e88
Use saturating_sub for lenght 3 years ago
Dmitry Sharshakov 5d3c69d565
Support logpoints
Tested with Node (Delve and LLDB do not support logpoints)
3 years ago
Blaž Hrastnik bf5b9a9f35 ui: Tone down the preview highlight by adding a new scope 3 years ago
Blaž Hrastnik e6cb183134 ui: Fix preview window padding: we want horizontal, not vertical 3 years ago
Blaž Hrastnik a5c3c6c6a9 ui: Highlight line ranges in the preview 3 years ago
CossonLeo 490125f008
info component style config use ui.info ui.info.text (#643) 3 years ago
Blaž Hrastnik 1d45f50781 fix: Don't internally use relative paths in the buffer picker
Fixes #619
3 years ago
devins2518 e1c9f13263
Add :vsplit and :hsplit commands (#639)
* add vsplit and hsplit commands

* handle splits more elegantly
3 years ago
Dmitry Sharshakov ec599a1eac
Do not panic if entered unknown code via stack trace
e.g. Rust std library
3 years ago
Dmitry Sharshakov 3a5e044c89
languages: support debug for Rust with LLDB 3 years ago
Dmitry Sharshakov 09c994a97a
editor: drop telemetry output messages 3 years ago
Dmitry Sharshakov b6b99b2487
config: minor fixes 3 years ago
Dmitry Sharshakov 839d210573
Enable stdio transport via config 3 years ago
Dmitry Sharshakov f55a012fb7
editor: add debug session config 3 years ago
Dmitry Sharshakov c5b210df59
Add debug-adapter field to languages.toml 3 years ago
Dmitry Sharshakov b78f70e602
show breakpoint condition in diagnostics 3 years ago
Dmitry Sharshakov 53ee57f84a
clippy 3 years ago
Dmitry Sharshakov f247858055
Support conditional breakpoints 3 years ago
Dmitry Sharshakov 3197c2536e
Add eval command 3 years ago
Dmitry Sharshakov 838f69929d
Simplify variables display 3 years ago
Dmitry Sharshakov 060a422c7e
fix crash when pausing 3 years ago
Dmitry Sharshakov d0b0c9b2ef
editor: select a range if stack pointer has an end 3 years ago
Dmitry Sharshakov 132198323c
editor: go to pos where stack pointer is located 3 years ago
Dmitry Sharshakov be9dc5802a
editor: mark target as running when continued 3 years ago
Dmitry Sharshakov d93cd2a261
editor: support stepIn, stepOut, next and pause commands 3 years ago
Blaž Hrastnik 28658836ee Add more event types, simplify event decoding 3 years ago
Dmitry Sharshakov 2aee5f02d0
Style 3 years ago
Dmitry Sharshakov 7233ab2deb Merge branch 'debug' of https://github.com/sh7dm/helix into debug 3 years ago
Blaž Hrastnik a964cbae65 Extract handle_debugger_message, we should avoid bloating tokio::select! 3 years ago
Dmitry Sharshakov 91f2c60b36
Jump to stack pointer when stopped 3 years ago
Blaž Hrastnik 607b92b2e3 fix: Place the cursor on the start of the selected symbol
Fixes #626
3 years ago
Dmitry Sharshakov 89ad54a2e5
Add variable type to output 3 years ago
Dmitry Sharshakov cc66475592
Add commands for variable introspection 3 years ago
Kirawi 59e0ceef8c
better panic messages for when you're missing selection scopes (#608) 3 years ago
Dmitry Sharshakov 95ba4ff5bd
Hide stack pointer when continued 3 years ago
Dmitry Sharshakov f3e47bfee4
Disable continuing when running 3 years ago
Dmitry Sharshakov 5230a2b669
Continue command in keymap 3 years ago
Dmitry Sharshakov 66c035fa99
Continue command 3 years ago
Dmitry Sharshakov 6709b4242f
Drop and terminate debugger 3 years ago
Dmitry Sharshakov 26dee49dc9
Add command to detach debugger 3 years ago
Dmitry Sharshakov 462c8a6ec8
Show debugger output in the statusline 3 years ago
Dmitry Sharshakov 5a06263b78
report status when target started or stopped 3 years ago
Dmitry Sharshakov bcab93c94e
Update editor window when stopped 3 years ago
Dmitry Sharshakov a938f5a87a
refactor: handle DAP events in editor main loop 3 years ago
Dmitry Sharshakov 3fc501c99f
Correctly display 1-based breakpoints 3 years ago
Dmitry Sharshakov 56bddb12f8
Highlight line number of stack pointer 3 years ago
Dmitry Sharshakov 5f5b383979
Fix clippy warnings 3 years ago
Dmitry Sharshakov 6458edecfd
Add stack pointer display when stopped 3 years ago
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
3 years ago
Dmitry Sharshakov 738e8a4dd3
Unify init and launch commands 3 years ago
Dmitry Sharshakov 9e22842d51
move debug command to keybinding 3 years ago
Dmitry Sharshakov e2c74d26e0
Add command to run debug target 3 years ago
Dmitry Sharshakov c4970c617e
make CI green 3 years ago
Blaž Hrastnik a54b09e3fe dap: Split out launch from init 3 years ago
Blaž Hrastnik 94a1951d40 Work towards a breakpoint UI 3 years ago
Blaž Hrastnik 86102a651f wip 3 years ago
Blaž Hrastnik d39baa3b4e Start integrating into the editor's event loop 3 years ago
Blaž Hrastnik d4c17b633c minor: Extract doc.text().slice(..) into a var 3 years ago
Blaž Hrastnik 38e932bd4c minor: Nicer errors, std::io::Error provides a Display impl 3 years ago
Blaž Hrastnik a76ec9a64e Make scrolling extend in extend mode 3 years ago
Blaž Hrastnik 07fea61d03 Use the correct search register 3 years ago
Blaž Hrastnik f60b549fb7 cargo fmt 3 years ago
Blaž Hrastnik 68626b8f78 ui: Refactor styling a bit, ensure infobox is stylable 3 years ago
Blaž Hrastnik cbd39d67a4 minor: Refactor commands.rs a bit more 3 years ago
Kirawi da8810809a use `ui.text.focus` for the picker (fix #622) 3 years ago
Blaž Hrastnik 0595b0626a Fix clippy attr 3 years ago
Blaž Hrastnik 5f8b1c7320 Avoid looking up ui.text per highlight range 3 years ago
Blaž Hrastnik 557fd86e71 Extract view.inner_area(), simplify render_focused_view_elements 3 years ago
Blaž Hrastnik 9776553ad0 Refactor view.first_line/first_col into view.offset (Position) 3 years ago
Blaž Hrastnik 115754c5ee Simplify write/write_all commands, we no longer need to excessively block 3 years ago
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.
3 years ago
Yerlan 18c0509593
Exit select mode after toggle_comment. Fixes #597 (#598)
Consistent with yanking, exit select mode after toggling comment. Fixes #597
3 years ago
Gokul Soumya 14c08e855f
Refactor infobox rendering and parsing (#579) 3 years ago
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
3 years ago
Blaž Hrastnik 4167201344 ui: picker: Position count according to input bar 3 years ago
Blaž Hrastnik eb9ac0a743 ui: picker: Use ui.selection instead of ui.selection.primary 3 years ago
Blaž Hrastnik f20dc1283d ui: picker: Render matches/total counts 3 years ago
Blaž Hrastnik fd1eaafff5 Add :tree-sitter-scopes, useful when developing indents.toml 3 years ago
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
3 years ago
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>
3 years ago
Blaž Hrastnik d03982ee43 cargo fmt 3 years ago
Blaž Hrastnik 6d52424303 fix: Adjust scroll offset/padding calculation to prevent wobble
Fixes #324
3 years ago
Blaž Hrastnik 627b899315 ui: completion: Insert suggestions when tabbing over them
Fixes #498
3 years ago
Blaž Hrastnik f917b5a441 ui: completion: Use sort_text to sort the completions 3 years ago
Nathan Vegdahl dde2be9395
Fix surround_replace replacing the wrong character on the right. (#571)
Fixes #569.
3 years ago
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>
3 years ago
Blaž Hrastnik 86209c93a3 Appease clippy 3 years ago
Omnikar 21e5662125
Make `exit_select_mode` check current mode (#568)
Change `exit_select_mode` to check that the current mode is select mode
before switching to normal mode
3 years ago
Blaž Hrastnik a4564adadd fix: Don't crash if language servers time out 3 years ago
Blaž Hrastnik 0a7add4ad4 Only recalculate resize during rendering, this stops flashing on resize 3 years ago
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
3 years ago
Blaž Hrastnik a2ccfffda1 config: Rename [terminal] to [editor] and pass it into Editor 3 years ago
Blaž Hrastnik f0eb6ed96a Resolve a couple TODOs 3 years ago
Blaž Hrastnik 02cba2a7f4 Implement alt-( and alt-) to rotate selection contents 3 years ago
Luctius 8714b71991 Do not shutdown lsp during claim_term
Fixes a bug where the language server is told to shutdown directly after application start.
3 years ago
Blaž Hrastnik b20a5c4c0e ui: menu: Allow wrapping around on ctrl-p/shift tab 3 years ago
Blaž Hrastnik 66a90130a5 Implement selection rotation with `(` and `)` 3 years ago
Ivan Tham 10c77cdc03 Exit extend after yank
Yank should proceed with normal mode.
3 years ago
Blaž Hrastnik 0793841ac3 Refactor copy selection vertically 3 years ago
Cor f160008add Vertical Selection 3 years ago
Nathan Vegdahl 8c3a5b14de Add `goto_last_line` command, and bind it to `ge`.
Resolves #529.
3 years ago
Blaž Hrastnik 585793eb46 Use an empty stream on Windows to remove duplication 3 years ago
Ivan Tham 821565e4ef Add ctrl-z to suspend 3 years ago
Blaž Hrastnik adb5d842ba Use nicer filepaths instead of URIs in goto picker 3 years ago
Blaž Hrastnik 62eb8c6b40 mouse: Remove verify_screen_coords, refactor primary selection modification 3 years ago
Blaž Hrastnik 6bb744aeac Remove the jump 3 years ago
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>
3 years ago
Nathan Vegdahl f88d4c1e20 Move indent-style code into `helix_core::indent`. 3 years ago
Nathan Vegdahl e6e0d31be0 Fix incorrect behavior of `find_char` command and friends.
The non-extending variants of the commands weren't selecting from the range head.

Fixes #527.
3 years ago
Nathan Vegdahl 3fda350494 Fixes for new clippy lints in Rust 1.54. 3 years ago
Blaž Hrastnik 05d20e196f
Merge pull request #376 from cessen/great_line_ending_and_cursor_range_cleanup
The Great Line Ending & Cursor Range Cleanup
3 years ago
Nathan Vegdahl e4d41d06e3 Fix typo in comment. 3 years ago
Gokul Soumya 8a2fa692f2 Refactor case where key event is solely a character 3 years ago
Nathan Vegdahl 285aba2de5 Fix bug with `/` searching after non-ascii characters.
Forgot to convert from char indices to byte indices before passing
to the regex engine.
3 years ago
Nathan Vegdahl cd7302ffd3 Enforce cursor/selection invariants in one place.
Rather than per-command like before.
3 years ago
Nathan Vegdahl a873e719d5 Merge branch 'master' into great_line_ending_and_cursor_range_cleanup 3 years ago
Gokul Soumya b90450b9e8 Fix goto line number
Regression from #454. Go to line 10 with `10gg` or `10G`.
3 years ago
Gokul Soumya 1493313750
Show pending keys in status line (#515)
* Show pending keys and counts in status line

* Refactor pending key display
3 years ago
Nathan Vegdahl f62ec6e51e Merge branch 'master' into great_line_ending_and_cursor_range_cleanup 3 years ago
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
3 years ago
Nathan Vegdahl 01247acf0c Start searches at the right side of the block cursor. 3 years ago