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
2021-10-23 11:41:19 +09:00
Blaž Hrastnik
96945be1a8
Fix doctest broken on 2021 edition
2021-10-22 12:47:02 +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
radical3dd
b1ebd7a07e
Replace current selection with all yanked values. ( #882 )
2021-10-21 09:44:53 +09:00
Blaž Hrastnik
e9b23c29d8
Ignore errors when disabling mouse capture
2021-10-20 00:01:11 +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
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
2021-10-18 15:14:50 +09:00
Ivan Tham
89707a858f
Make auto-completion a config ( #853 )
2021-10-16 22:57:41 +09:00
Blaž Hrastnik
2c0468ffd1
fix: If backspacing past the start offset, cancel completion
...
Refs #822
2021-10-16 18:43:07 +09:00
Omnikar
c71b49497d
Set CWD when editor is started with a directory ( #849 )
2021-10-16 10:04:26 +09:00
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
2021-10-15 17:36:39 +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
Blaž Hrastnik
633b981db2
Make idle-timeout configurable
2021-10-10 12:32:06 +09:00
Blaž Hrastnik
c7f3a971c0
Remove resolved TODOs
2021-10-10 12:22:11 +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
Ethan Frei
9f27be429d
relative paths showing active file in global search ( #803 )
2021-10-08 11:08: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
8ca91891d1
fix compilation
2021-10-05 22:35:38 +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
Irevoire
c4ae17dfd4
fix clippy warnings ( #804 )
2021-10-03 12:40:33 +09:00
Irevoire
7e958e1834
Add a bunch of aliases ( #797 )
...
* add a bunch of aliases
* apply code review from archseer
2021-10-03 11:41:41 +09:00
Dylan Richardson
4a92a79da4
global search: show file names as relative paths ( #802 )
...
This commit fixes #786
2021-10-03 08:41:52 +09:00
Matt W
df55eaae69
Add tilde expansion for file opening ( #782 )
...
* change to helix_core's tilde expansion,
from helix-core::path::expand_tilde
2021-09-24 11:21:04 +09:00
Blaž Hrastnik
2e0803c8d9
Implement 'remove_primary_selection' as Alt-,
...
This allows removing search matches from the selection
Fixes #713
2021-09-24 10:30:28 +09:00
Blaž Hrastnik
75dba1f956
experiment: space+k for LSP doc, K for keep_selections
2021-09-24 10:30:23 +09:00
Blaž Hrastnik
9ea9e779b2
experiment: Move keep_primary_selection to ,
2021-09-24 10:30:17 +09:00
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>
2021-09-24 10:28:44 +09:00
Leoi Hung Kin
432bec10ed
allow smart case in global search ( #781 )
2021-09-24 10:27:16 +09: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
Leoi Hung Kin
1d04e5938d
search_next_impl: don't panic on invalid regex ( #740 )
2021-09-17 17:22:17 +09:00
Blaž Hrastnik
3ff5b001ac
fix: Don't allow closing the last split if there's unsaved changes
...
Fixes #674
2021-09-17 14:43:06 +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
b02d872938
fix: Refactor apply_workspace_edit to remove assert
...
Fixes #698
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
Omnikar
3e12b00993
Add no_op
command ( #743 )
...
* Add `no_op` command
* Document `no_op` in `remapping.md`
2021-09-13 17:48:12 +09:00
Blaž Hrastnik
1540b37f34
lsp: Silence window/logMessage if -v isn't used
2021-09-13 17:45:02 +09:00
Blaž Hrastnik
32977ed341
ui: Trigger recalculate_size per popup render so contents can readjust
2021-09-13 17:44:50 +09:00
Kangwook Lee (이강욱)
05c2a72ccb
goto line start/end commands extend when in select mode ( #739 )
2021-09-11 18:31:40 +09:00
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
2021-09-11 00:12:26 +09:00
Gokul Soumya
94abc52b3b
feat: Sticky view mode with Z ( #719 )
2021-09-10 23:14:23 +09:00
Blaž Hrastnik
3426285a63
fix: Don't automatically search_next on *
...
Refs #713
2021-09-08 16:34:04 +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
Kangwook Lee (이강욱)
7a9db95182
Add command to extend to line start or end ( #717 )
2021-09-07 23:22:39 +09:00
Blaž Hrastnik
46f3c69f06
lsp: Don't send notifications until initialize completes
...
Then send open events for all documents with the LSP attached.
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
dc7799b980
lsp: Refactor code that could use document_by_path_mut
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
63e191ea3b
lsp: Simplify lookup under method call
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
10b690b5bd
Drop some &mut bounds where & would have sufficed
2021-09-06 15:25:46 +09:00
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.
2021-09-05 21:20:11 +09:00
Gokul Soumya
183dcce992
Add a sticky mode for keymaps ( #635 )
2021-09-05 12:55:13 +09:00
Gokul Soumya
95cd2c645b
Refactor switch_case commands
2021-09-05 12:41:19 +09:00
Gokul Soumya
33ce8779fd
Refactor {move,extend}_word_* commands
2021-09-05 12:41:19 +09:00
Gokul Soumya
ea2b4c687d
Refactor {move,extend}_char_* commands
2021-09-05 12:41:19 +09:00
Kangwook Lee (이강욱)
07fe4a6a40
Add commands that extends to long words ( #706 )
2021-09-04 19:00:32 +05:30
Wojciech Kępka
7e1123680f
Expand ~
in change-current-directory
command ( #692 )
2021-09-02 11:03:42 +09:00
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
2021-09-02 00:55:16 +09:00
Blaž Hrastnik
ce7ad2beb5
Reimplement keep-pipe, it needs to manipulate selections, not text
2021-09-01 11:09:50 +09:00
Blaž Hrastnik
dc609cafb5
Extract the shell command into a separate function
2021-09-01 10:46:35 +09: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
Blaž Hrastnik
9b96bb5ac8
Refactor a bit further
2021-08-31 18:24:24 +09:00
Blaž Hrastnik
4a76ea8f88
shell: Move changes outside so we can properly handle errors
2021-08-31 18:19:18 +09:00
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`
2021-08-31 18:13:16 +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
Omnikar
03ad9e0bfa
Fix code indentation ( #671 )
2021-08-30 09:15:49 +09: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
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
2021-08-27 10:03:49 +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
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
2021-08-27 00:29:14 +09:00
Ivan Tham
4bafda3995
Change vsp to vs ( #647 )
...
Follow up on #639 to match vim behavior
2021-08-27 00:20:37 +09:00
Kirawi
b99db7c687
Move path util functions from helix-term to helix-core ( #650 )
2021-08-25 10:04:05 +09: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
Blaž Hrastnik
1d45f50781
fix: Don't internally use relative paths in the buffer picker
...
Fixes #619
2021-08-24 09:56:09 +09:00
devins2518
e1c9f13263
Add :vsplit and :hsplit commands ( #639 )
...
* add vsplit and hsplit commands
* handle splits more elegantly
2021-08-24 09:37:44 +09:00
Blaž Hrastnik
607b92b2e3
fix: Place the cursor on the start of the selected symbol
...
Fixes #626
2021-08-22 15:00:07 +09:00
Kirawi
59e0ceef8c
better panic messages for when you're missing selection scopes ( #608 )
2021-08-22 11:15:33 +09: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
Blaž Hrastnik
d4c17b633c
minor: Extract doc.text().slice(..) into a var
2021-08-20 13:42:47 +09:00
Blaž Hrastnik
38e932bd4c
minor: Nicer errors, std::io::Error provides a Display impl
2021-08-20 13:42:17 +09:00
Blaž Hrastnik
a76ec9a64e
Make scrolling extend in extend mode
2021-08-20 13:42:01 +09:00
Blaž Hrastnik
07fea61d03
Use the correct search register
2021-08-20 11:14:57 +09:00
Blaž Hrastnik
f60b549fb7
cargo fmt
2021-08-20 11:02:28 +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