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
dependabot[bot]
44ff597841
build(deps): bump tokio-stream from 0.1.7 to 0.1.8 ( #953 )
...
Bumps [tokio-stream](https://github.com/tokio-rs/tokio ) from 0.1.7 to 0.1.8.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.7...tokio-stream-0.1.8 )
---
updated-dependencies:
- dependency-name: tokio-stream
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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
Blaž Hrastnik
f3c7f20dbc
Release v0.5.0
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
5501669f8c
Revert "minor: Rearrange helix-term Cargo.toml"
...
This reverts commit 2cee0c58ba
.
3 years ago
Blaž Hrastnik
1066b081dd
fix: When cycling through prompt history, update event needs to trigger
3 years ago
Blaž Hrastnik
2cee0c58ba
minor: Rearrange helix-term Cargo.toml
3 years ago
Blaž Hrastnik
3fe353c47c
Remove some old TODOs
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
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
Blaž Hrastnik
9688cb74a1
Update dependencies to bump crossterm to 0.22.1
...
Fixes #825
Fixes #690
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
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
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
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
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
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
Kangwook Lee (이강욱)
07fe4a6a40
Add commands that extends to long words ( #706 )
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
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
Omnikar
03ad9e0bfa
Fix code indentation ( #671 )
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
Kirawi
b99db7c687
Move path util functions from helix-term to helix-core ( #650 )
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
dependabot[bot]
864618242b
Bump crossterm from 0.20.0 to 0.21.0 ( #644 )
...
Bumps [crossterm](https://github.com/crossterm-rs/crossterm ) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/crossterm-rs/crossterm/releases )
- [Changelog](https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md )
- [Commits](https://github.com/crossterm-rs/crossterm/commits )
---
updated-dependencies:
- dependency-name: crossterm
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
607b92b2e3
fix: Place the cursor on the start of the selected symbol
...
Fixes #626
3 years ago
Kirawi
59e0ceef8c
better panic messages for when you're missing selection scopes ( #608 )
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
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