Blaž Hrastnik
259678585c
ui: Optimize tree-sitter style lookups
...
Tree sitter returns an index referring to the position of the scope in
the scopes array. We can use that same index to avoid a hashmap lookup
and instead store the styles in an array.
This currently stores the styles in both a map and an array because the
UI still uses hashmap lookups, but it's a reasonable tradeoff.
3 years ago
Blaž Hrastnik
7bbf4c5b06
ui: Only calculate span styling when it's actually in bounds
3 years ago
Blaž Hrastnik
d562e13e1f
minor: Use anchor::ensure in some cases
3 years ago
Blaž Hrastnik
b4fd3148e3
These TODOs have been resolved
3 years ago
Blaž Hrastnik
96ae5897a1
Remove another parameter from render_view
3 years ago
Blaž Hrastnik
30ac5869df
dap: Extract diagnostics gutter into gutters.rs
3 years ago
Blaž Hrastnik
8ffafb826f
dap: Rewrite breakpoints so that there's a single set maintained
3 years ago
Blaž Hrastnik
3633f85b38
Pass editor into render_view & gutter, reducing the number of params
3 years ago
WindSoilder
c08d2fae58
Improve dedent behavior, make kill_to_line_end behave like emacs ( #1173 )
...
* restore indent when press esc right after open a new line
* add comment for restore_indent
* fix, and make kill to line end behaves like emacs
* update comment
* fix comment
* adjust cancel restore_indent situation
* check esc logic in mode transaction
* improve comment
* add more check for dedent
* update comment
* use matches to check for last_cmd
* no need to introduct CommandFun type
3 years ago
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
225e8ccf31
Extract gutters into helix-view
3 years ago
Blaž Hrastnik
27c1a84f05
Reuse a text buffer for each gutter line
3 years ago
Blaž Hrastnik
ba45db84d4
Tie the GutterFn lifetime to the doc so we can avoid cloning data
3 years ago
Blaž Hrastnik
c71c9f69e2
TODO
3 years ago
Blaž Hrastnik
30171416cb
Gutter functions
3 years ago
Bob
42fde95223
Accept count for goto_window ( #1033 )
...
* accept count for goto_window
also fix view is not fullfilled issue
* fix fulfilled mispell
* Update helix-term/src/commands.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Update helix-term/src/commands.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* fix merge issue
* revert line computation logic
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Bob
4f9390a435
gf as goto_file ( #1102 )
...
* goto_file
* support goto_file under current cursor
* add C-w f/F
* sync space w with window mode
* Update helix-term/src/commands.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
RustyStriker
103b5125e4
Detect filetype on :write ( #1141 )
...
fixes #1136
* removed a log::info
* removed temp.rs
* cargo clippy no longer complains
* new get_lang_server function
* get_lang_server is now launch_language_server
* launch_lang_server will now close the previous one
* better code readability
* remove resfresh_ls(and a wrong comment)
3 years ago
Blaž Hrastnik
6e62c3de47
Simplify some code in editor.rs
3 years ago
Thanabodee Charoenpiriyakij
e8f800a141
Do not crash when run goto command without line number ( #1160 )
...
* Do not crash when run goto command without line number
Report an error when running goto command without entering a
line number.
Fixes #1159
* Use is_empty() instead check len zero
3 years ago
ath3
72f606ee19
Implement no-yank delete/change ( #1099 )
3 years ago
Gokul Soumya
7961355ba1
Change cursor shape on mode change
...
Fixes #323 . Due to terminal limitations we can only
change the shape of the primary cursor.
3 years ago
Martin Junghanns
57c14d4a93
Add `:<line>` and `:goto <line>` commands ( #1128 )
...
* Add typable `goto` command
* Support `:<line-number>` on prompt
* Rename function according to convention
* Directly call into goto_line_number function
3 years ago
Bob
21143e8d22
Align selections via & ( #1101 )
...
* align lines
* remove log statement
* use selections to align
* fix a clippy issue
* only accept 1,2,3 as user count
* Update helix-term/src/commands.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* return if user count is not correct
* add doc
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Blaž Hrastnik
72576822f3
dap: Replace breakpoint when changed event comes through
3 years ago
Blaž Hrastnik
85b4410703
dap: Toggle breakpoints without changing selection, fix offset calc
3 years ago
Blaž Hrastnik
28fd704bce
ui: Since diagnostics are sorted, we can use binary search
3 years ago
Blaž Hrastnik
b55ca8fdb8
dap: Always edit breakpoints on the correct document
3 years ago
Blaž Hrastnik
0eadeab8c7
dap: Remove the prompt line parameter, use insert_str instead
3 years ago
Blaž Hrastnik
5f329a22c4
dap: Modify breakpoints in place with no cloning
3 years ago
Blaž Hrastnik
05d3ad4a0e
dap: Remove an excess clone on enable_exceptions
3 years ago
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Dan Nases Sha
6a4d9693ba
File picker config ( #988 )
...
* squashed WIP commits
* hide_gitignore working with config
* pass reference to new config parameter of file_picker()
* update config option name to match name on walk builder
* add comments to config and documentation of option to book
* add git_ignore option to WalkBuilder within prompt in commands.rs
* WIP: add FilePickerConfig struct
* WIP: cleanup
* WIP: add more options including max_depth
* WIP: changed defaults to match ignore crate defaults
* WIP: change WalkBuilder in global_search() to use config options
* WIP: removed follow_links, changed max_depth to follow config setting
* WIP: update book with file-picker inline table notation
* update documentation for file-picker config in book
* adjusted to [editor.file-picker] in book configuration.md
* adjust comments in editor.rs to be doc comments, cleanup
* adjust comments
* adjust book
3 years ago
Skyler Hawthorne
05c6cb1d0b
Solarized theme: fix popup colors, adjust menu ( #1124 )
...
* fix popup colors, adjust menu
* fix hardcoded horizontal rule color
3 years ago
Martin Junghanns
a3a3b0b517
Jump to end char of surrounding pair from any cursor pos ( #1121 )
...
* Jump to end char of surrounding pair from any cursor pos
* Separate bracket matching into exact and fuzzy search
* Add constants for bracket chars
* Abort early if char under cursor is not a bracket
* Simplify bracket char validation
* Refactor node search and unify find methods
* Remove bracket constants
3 years ago
Kirawi
ed76cdf238
revert log truncation ( #895 ) ( #1130 )
3 years ago
Blaž Hrastnik
2b7c086653
fix: Expand tilde first, then deal with relative paths
...
Otherwise the ~ gets treated as a relative path.
Fixes #1107
3 years ago
WindSoilder
5959356a24
Implement indent-aware delete ( #1120 )
...
* delete character backward can make undent behavior
* improve to handle mixed indentation
3 years ago
Ivan Tham
bd56dde6e2
Ensure cursor in view after pipe ( #1123 )
...
Fix #1024
3 years ago
Blaž Hrastnik
e9dc658de4
Remove unused imports
3 years ago
Blaž Hrastnik
9dcccb45bb
ui: Stop hardcoding markdown doc colors
3 years ago
Blaž Hrastnik
fa4c59df46
Simplify compositor.find
3 years ago
Blaž Hrastnik
8db6fffe90
ui: Increase diagnostics sideline width to 100 max and wrap if needed
3 years ago
Blaž Hrastnik
dd98727bad
fix: editor.close now takes only a single parameter
3 years ago
Jason Hansen
6cb35d28a8
Add command to inc/dec number under cursor ( #1027 )
...
* Add command to inc/dec number under cursor
With the cursor over a number in normal mode, Ctrl + A will increment the
number and Ctrl + X will decrement the number. It works with binary, octal,
decimal, and hexidecimal numbers. Here are some examples.
0b01110100
0o1734
-24234
0x1F245
If the number isn't over a number it will try to find a number after the
cursor on the same line.
* Move several functions to helix-core
* Change to work based on word under selection
* It no longer finds the next number if the cursor isn't already over
a number.
* It only matches numbers that are part of words with other characters
like "foo123bar".
* It now works with multiple selections.
* Add some unit tests
* Fix for clippy
* Simplify some things
* Keep previous selection after incrementing
* Use short word instead of long word
This change requires us to manually handle minus sign.
* Don't pad decimal numbers if no leading zeros
* Handle numbers with `_` separators
* Refactor and add tests
* Move most of the code into core
* Add tests for the incremented output
* Use correct range
* Formatting
* Rename increment functions
* Make docs more specific
* This is easier to read
* This is clearer
* Type can be inferred
3 years ago
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 cb47f946d7
.
* 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!
3 years ago
Cole Helbling
c638b6b60e
helix-term/commands: implement buffer-close (bc, bclose) ( #1035 )
...
* helix-view/view: impl method to remove document from jumps
* helix-view/editor: impl close_document
* helix-view/editor: remove close_buffer argument from `close`
According to archseer, this was never implemented or used properly. Now
that we have a proper "buffer close" function, we can get rid of this.
* helix-term/commands: implement buffer-close (bc, bclose)
This behaves the same as Kakoune's `delete-buffer` / `db` command:
* With 3 files opened by the user with `:o ab`, `:o cd`, and `:o ef`:
* `buffer-close` once closes `ef` and switches to `cd`
* `buffer-close` again closes `cd` and switches to `ab`
* `buffer-close` again closes `ab` and switches to a scratch buffer
* With 3 files opened from the command line with `hx -- ab cd ef`:
* `buffer-close` once closes `ab` and switches to `cd`
* `buffer-close` again closes `cd` and switches to `ef`
* `buffer-close` again closes `ef` and switches to a scratch buffer
* With 1 file opened (`ab`):
* `buffer-close` once closes `ab` and switches to a scratch buffer
* `buffer-close` again closes the scratch buffer and switches to a new
scratch buffer
* helix-term/commands: implement buffer-close! (bclose!, bc!)
Namely, if you have a document open in multiple splits, all the splits
will be closed at the same time, leaving only splits without that
document focused (or a scratch buffer if they were all focused on that
buffer).
* helix-view/tree: reset focus if Tree is empty
3 years ago
Cole Helbling
87e61a0894
helix-term/commands: implement cquit ( #1096 )
...
This allows you to exit helix with an exit code, e.g. `:cq 2`.
3 years ago
Blaž Hrastnik
f5e070e808
minor: Remove leftover log line
3 years ago
Blaž Hrastnik
e128a8702e
Implement MarkedString rendering
...
Solves typescript and python documentation rendering
3 years ago
Ivan Tham
b7c3877e94
Add movement shortcut for history ( #1088 )
...
alt-u and alt-U
3 years ago
ath3
6fa76d9fe7
Add trim_selections command ( #1092 )
3 years ago
Ebbe Steenhoudt
edc976b6bb
Added workspace_symbol_picker ( #1041 )
...
* Added workspace_symbol_picker
* Moved truncation of the symbol pickers to the end.
* Fixed typo
3 years ago
ath3
35c974c9c4
Implement "Goto last modification" command ( #1067 )
3 years ago
Gygaxis Vainhardt
0949a0de7f
Add commit hash to version info, if present ( #957 )
...
* Add commit hash to version info, if present
* Rename GIT_HASH to indicate that it includes version, fix linter error
* Add whitespace after use statement
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Cole Helbling
b74912ea78
helix-term/editor: display scratch buffer name in status bar
3 years ago
Cole Helbling
b824e091a9
helix-term/commands: move SCRATCH_BUFFER_NAME to helix-view/document ( #1091 )
...
This way, the name is accessible everywhere `Document` and related types
are.
3 years ago
Omnikar
6d4409c00f
Make prompts consistent ( #1080 )
3 years ago
Blaž Hrastnik
d3def16584
fix: shift-tab mappings broken after efc2b4c7
3 years ago
NexiNov
187197afb1
Add arrow keys to view mode ( #987 )
...
* Add arrow keys to view mode
* Drop C-up and C-down
* Update docs for #987
* Format correctly
* Drop other keymaps
* Correct keymap.md
* Add arrow keys to view mode
Drop C-up and C-down
Update docs for #987
Format correctly
Drop other keymaps
Correct keymap.md
Rebase
Co-authored-by: Rust & Python <nexinov@localhost.gud-o15>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Omnikar
bf95a9ed04
Add `remove_selections` command ( #1065 )
...
* Add `remove_selections` command
* Document `remove_selections`
* Update helix-term/src/keymap.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Ivan Tham
9d591427be
Fix earlier/later missing changeset update ( #1069 )
...
Fix #1059
3 years ago
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`
3 years ago
Cole Helbling
bf70cfd050
helix-term/command: make scratch buffer name consistent ( #1071 )
3 years ago
Omnikar
ebc14d9d20
Add `m` textobject for pair under cursor ( #961 )
3 years ago
Bob
4d22454386
add wonly -- window only ( #1057 )
...
* add wonly
* Update book/src/keymap.md
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* add `wonly` to space w mode too
* remove the TODO
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
ath3
c7cb7527be
Fix moving with arrow keys in prompt ( #1070 )
3 years ago
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.
3 years ago
Gokul Soumya
e863e3b62d
Ensure that identical keymaps stay in sync ( #1056 )
...
Space mode and view mode are duplicated on two different
keybinds, and they tend to get out of sync by contributers
forgetting to update both of them. This commit adds a test
that explicitly checks that they are identical. Prevents
issues like #1050 .
3 years ago
Gokul Soumya
f9e9efb3ec
Check for duplicate keys in default keymap
3 years ago
Gokul Soumya
80036b8bd3
Change page keybinds in view mode
...
b which was assigned to page_up conflicts with
align to bottom, so this commit replaces page up,
down, etc keybinds to use normal mode keybinds
(C-f, C-b, etc) in view mode too.
3 years ago
Omnikar
5654909135
Update `space w` window mode ( #1050 )
3 years ago
Jason Hansen
cf831b1a65
Allow piping from stdin into a buffer on startup ( #996 )
...
* Allow piping from stdin into a buffer on startup
* Refactor
* Don't allow piping into new buffer on macOS
* Update helix-term/src/application.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Update helix-term/src/application.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Fix
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
CossonLeo
68224232af
buffer picker add is_modifier flag ( #1020 )
3 years ago
Ivan Tham
97893cca64
Restore screen position when abort search ( #1047 )
3 years ago
Bob
7c9f620236
add <C-h>, <C-u>, <C-d>, Delete in prompt mode ( #1034 )
3 years ago
CossonLeo
a69caff450
search_impl will only align cursor center when it isn't in view ( #959 )
3 years ago
Omnikar
a424ef4e20
Use default `languages.toml` if user's is invalid ( #994 )
3 years ago
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
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
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
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
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
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
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
1caedc18ca
Release v0.4.1
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
Blaž Hrastnik
3de40de0a9
fix build...
3 years ago
Blaž Hrastnik
733ee06b7b
Release v0.4.0
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
Blaž Hrastnik
0fdb626c2c
Remove embed_runtime feature
...
It's no longer practical to maintain. Closes #451
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
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on `Range`.
3 years ago
Blaž Hrastnik
63e54e30a7
Implement in-memory prompt history
...
Implementation is similar to kakoune: we store the entries into
a register.
3 years ago
Gokul Soumya
e07e42dcfb
fix(term): undo-ing code actions
3 years ago
gbaranski
8da58fe44a
fix(term): use existing implementation of edits_to_transaction
3 years ago
Nathan Vegdahl
f96b8b769b
Switch to a cleaner range-head moving abstraction.
...
Also fix a bunch of bugs related to it.
3 years ago
Grzegorz Baranski
48e344a2a8
feat: code actions - document edits ( #478 )
...
* wip: Code actions
* fix(term): use current macro instead Context::context
* feat(lsp): set code_action capabilities
* feat(term): set SPC-a to code_action
* feat(term): wip on applying code actions
* deps: `cargo update`
* feat(term): applying code actions edits
* fix(term): cleanup of apply_edit
* fix(term): applying edits as a whole thing instead one by one
* refactor(term): move apply_edits below
* fix(term): improve unimplemented messages for further investigation
* fix(term): change code action command comment
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* fix(term): add matching `}`
* fix(term): cleanup, todo!() on workspace edit
* fix(term): remove unrelated workspace_symbol_picker
* fix(term): apply cargo-clippy suggestions
* fix(term): replace todo!'s with editor.set_error
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Nathan Vegdahl
20723495d3
Fixed find_till_char and find_char commands.
...
They worked correctly when extending, but not for normal cursor
movement.
3 years ago
Nathan Vegdahl
8f43dc4039
Fix surround replace command replacing the wrong position on the right.
3 years ago
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
427ae6ac6c
Put selection in separate variable in commands code.
3 years ago
Nathan Vegdahl
ad814b8c2e
Fix append mode, and make insertion always happen at head of range.
3 years ago
Blaž Hrastnik
1789dfabfe
fix: ui/menu: Don't allow scrolling past the end of completion
...
Fixes #472
3 years ago
Blaž Hrastnik
817a7e0bd6
fix: Only try expanding directory completion if it makes sense
...
Fixes #487
3 years ago
Blaž Hrastnik
58d08d36ae
Simplify ui/menu.rs
3 years ago
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
3 years ago
Nathan Vegdahl
673338bdb6
Use `Range::line_range()` in some more places I missed.
3 years ago
Ivan Tham
eba0bbda2e
Resume last picker
...
Inspired by space ' in doom emacs.
3 years ago
Nathan Vegdahl
7d07704e6f
Fix append mode not editing correctly.
...
This is currently a bit of a hack, and still doesn't behave quite how we
probably want. Left a TODO.
3 years ago
Nathan Vegdahl
063aa9452d
Fix yank not working with internally zero-width ranges.
3 years ago
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
3 years ago
Nathan Vegdahl
1194fc842a
Use new `Range::line_range()` method in more places, as appropriate.
3 years ago
Nathan Vegdahl
1c6b5581f0
Fix various bugs related to goto-end-of-line command.
...
This also fixes a bug with `Selection::normalize()`, that could
result in an out-of-bounds primary index.
3 years ago
Nathan Vegdahl
e8a3980e46
Fix line-wise `p` pasting before the current line instead of after.
3 years ago
Nathan Vegdahl
1910fa7723
Fix incorrect line hihglight when a selection is at the end of a line.
3 years ago
Nathan Vegdahl
1792dc6f93
Make search work a little nicer when there are already selections.
...
Specifically, if you have text like "aaaaaaaaa" and you search
for "a", the new behavior will actually progress through all of the
"a"s, whereas the previous behavior would be stuck on a single one.
3 years ago
Nathan Vegdahl
13b0784009
Fix extend line behavior.
3 years ago
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.
3 years ago
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.
3 years ago
Nathan Vegdahl
1a9ae72fcb
Fix last line number being drawn in the status bar.
3 years ago
Nathan Vegdahl
e462f32723
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
6c038bb015
Update word selection/navigation to work with gap indexing.
...
Also tweaked some of the existing behavior that seemed inconsistent
and/or buggy. It's mostly identical, just a few corner cases are
different.
3 years ago
Blaž Hrastnik
5292fe0f7d
Calculate completion popup sizing
...
Fixes #220
3 years ago
Cor Peters
cd65a48635
Made toggle_comments language dependent ( #463 )
...
* Made toggle_comments language dependent
* Fixed Test Cases
* Added clippy suggestion
* Small Fixes
* Clippy Suggestion
Co-authored-by: Cor <prive@corpeters.nl>
3 years ago
Nathan Vegdahl
c2fd55e168
Update extend_line command to work with gap indexing.
3 years ago
Nathan Vegdahl
954314a7c9
Update change-case commands to work with gap indexing.
3 years ago
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Cor
9fcbbfa467
Changed startup behaviour to only open a single view when multiple files are specified on the commandline.
...
Changed the behaviour; the first argument on the commandline is the file on display
3 years ago
Cor Peters
722cfedb38
Added change_case command ( #441 )
...
* Added change_case command
* Added switch_to_uppercase and switch_to_lowercase
Renamed change_case to switch_case.
* Updated the Keymap section of the Book
* Use flat_map instead of map + flatten
* Fix switch_to_uppercase using to_lowercase
* Switched 'Alt-`' to uppercase and '`' to lowercase
Co-authored-by: Cor <prive@corpeters.nl>
3 years ago
Cor
e2bcef718a
Removed double entry of extend_line
3 years ago
Blaž Hrastnik
4a5cb0e04b
Restore C-w shortcut
3 years ago
Blaž Hrastnik
d530d6e39d
Further simplify error handling in :commands
3 years ago
Lionel Flandrin
9c02a1b070
Make command implementation return a Result<()>
...
The error message is displayed with cx.editor.set_error.
3 years ago
Ivan Tham
3e4cd8f8e6
Add infobox for view
3 years ago
Kirawi
bb121a3e4b
Injection Query Support ( #430 )
...
* wip
* wip
* fixed unsafe
* fix clippy
* move out reference variable
* fmt
* remove arc
* change safety comment
3 years ago
Nathan Vegdahl
b4c59b444c
Update surround commands to work with gap indexing.
3 years ago
Ivan Tham
1c71fced0e
Add more modes to infobox
3 years ago
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Ivan Tham
a0a5bd555b
More responsive key input
...
Use biased select!, don't eagerly process lsp message since we want to
prioritize user input rather than lsp messages, but still limit rendering
for lsp messages.
3 years ago
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.
3 years ago
Blaž Hrastnik
cb4bab8903
Remove outdated comment
3 years ago
Blaž Hrastnik
a4e28c6927
Implement `X` as extend selection to line bounds
3 years ago
Ivan Tham
d02bbb7bae
Fix info panic on small terminal
3 years ago
Blaž Hrastnik
ebccc96cd4
Factor out goto t/m/b into a single function again
3 years ago
Blaž Hrastnik
6ce303977c
Revert back to 'gm'
...
top / middle / bottom mnemonic.
3 years ago
Ivan Tham
bbbbfa9bcf
Goto mode use infobox
...
In the meantime, change gm to gc.
Remove extra space in mode title.
3 years ago
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
3 years ago
Ivan Tham
64f83dfcbd
Support infobox doc gen on stable release
3 years ago
Ivan Tham
61e925cbed
Add infobox doc generation and improve ergonomics
3 years ago
Ivan Tham
6710855eac
Fix rendering issues for infobox
3 years ago
Ivan Tham
9effe71b7d
Apply suggestions from blaz for infobox
3 years ago
Ivan Tham
4c190ec9d9
Suggestions for infobox changes
...
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
3 years ago
Ivan Tham
8985c58fd3
Add infobox
3 years ago
Blaž Hrastnik
83e7dd8602
fix: Temporary fix for #402
3 years ago
Gokul Soumya
c68fe1f2a3
Add object selection (textobjects) ( #385 )
...
* Add textobjects for word
* Add textobjects for surround characters
* Apply clippy lints
* Remove ThisWordPrevBound in favor of PrevWordEnd
It's the same as PrevWordEnd except for taking the current char
into account, so use a "flag" to capture that usecase
* Add tests for PrevWordEnd movement
* Remove ThisWord* movements
They did not preserve anchor positions and were only used
for textobject boundary search anyway so replace them with
simple position finding functions
* Rewrite tests of word textobject
* Add tests for surround textobject
* Add textobject docs
* Refactor textobject word position functions
* Apply clippy lints on textobject
* Fix overflow error with textobjects
3 years ago
Nathan Vegdahl
28d2d68804
Make horizontal selection movement work properly.
3 years ago
Kirawi
c5b2973739
`:reload` ( #374 )
...
* reloading functionality
* fn with_newline_eof()
* fmt
* wip
* wip
* wip
* wip
* moved to core, added simd feature for encoding_rs
* wip
* rm
* .gitignore
* wip
* local wip
* wip
* wip
* no features
* wip
* nit
* remove simd
* doc
* clippy
* clippy
* address comments
* add indentation & line ending change
3 years ago
Nathan Vegdahl
22dca3b111
Allow last line in file to lack a line break character.
3 years ago
Nathan Vegdahl
2224a1527e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
0b2d51cf5a
Fix unused `Result` warnings in helix-term.
3 years ago
Nathan Vegdahl
efa3389b6a
Fix unused variable, parameter, and `mut` warnings in helix-term.
3 years ago
Nathan Vegdahl
702a0491db
Remove #[allow(unused)] from helix-term, and fix unused imports.
...
Lots of other warning still left. Will address in subsequent commits.
3 years ago
Nathan Vegdahl
e725957704
Ensure a minimum selection width on commands that need it.
3 years ago
Nathan Vegdahl
7c7be6d583
Make `Selection`'s normalize and transform methods self-consuming only.
3 years ago
Nathan Vegdahl
0ae522f3df
Clean up `Selection` to not use so many allocations.
3 years ago
Nathan Vegdahl
d07074740b
Add `Range` methods for various kinds of validation.
3 years ago
Blaž Hrastnik
2a92dd8d4d
If completion arrives after we already stopped editing, ignore it
3 years ago
Joe Neeman
b39e452d77
Make set_unmodified an enum.
3 years ago
Joe Neeman
2902a10a3e
Make Document's format API a little nicer.
3 years ago
Joe Neeman
ffa2f2590b
Satisfy clippy.
3 years ago
Joe Neeman
d64d75e724
Add some async job infrastructure.
3 years ago
Joe Neeman
c9be480bf8
Make formatting happen asynchronously.
3 years ago
Blaž Hrastnik
e9159887a9
ui: Use a box drawing character vertical line for splits
3 years ago
PabloMansanet
de8745aea7
Incorporate long word commands into keymap
3 years ago
Blaž Hrastnik
6214d707f3
fix: Don't panic on Enter on an empty document.
...
Refs #386
3 years ago
Blaž Hrastnik
d94410a678
Sort the files in descending order
3 years ago
Blaž Hrastnik
82fc28a0ce
ui: Simplify conditional
3 years ago
Blaž Hrastnik
bcca152ad5
Merge tab & char rendering code
3 years ago
Blaž Hrastnik
01b1a62e2c
This char_index is unused
3 years ago
Blaž Hrastnik
4edfac21f6
Allocate the tab stop only once
3 years ago
Blaž Hrastnik
1b102d5532
Extract the merge "operator" into helix-core
3 years ago
Blaž Hrastnik
ae58d813b2
Appease clippy
3 years ago
Blaž Hrastnik
c832aa5a49
There is no direct dirs-next dependency in term
3 years ago
Blaž Hrastnik
f9cdb2afe2
Turn diagnostics rendering into span injection too
3 years ago
Blaž Hrastnik
90d675fb15
Fix AnyComponent test
3 years ago
Blaž Hrastnik
057bd630d8
Simplify selection rendering by injecting highlight scopes
3 years ago
Blaž Hrastnik
44566ea812
Release 0.3.0
3 years ago
Blaž Hrastnik
cad14c6b46
Address nightly clippy warnings
3 years ago
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.
3 years ago
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.
3 years ago
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
3 years ago
Blaž Hrastnik
f2d8ce3415
Use a deadline when eagerly processing notifications
3 years ago
Blaž Hrastnik
503ca112ae
fix: jumping to location did not convert the URI correctly
...
thus breaking Windows
3 years ago
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>
3 years ago
Ivan Tham
c2b937481f
Fix goto line end
...
Should not goto newline.
3 years ago
Gokul Soumya
18beda38ac
Add … when chars are truncated in picker
3 years ago
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
.
3 years ago
Kirawi
15ae2e7ef1
Update helix-term/src/commands.rs
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Kirawi
7ae21b98ce
Update helix-term/src/commands.rs
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Shafkath Shuhan
629df6124d
Blocking :wq
3 years ago
Nathan Vegdahl
8935e7a879
Fix open-new-line command for CRLF, as well as other bugs.
...
Fixes #363 .
I set out to fix issue #363 , but after fixing it discovered some
other things were wrong with the command while testing. In
summary:
- #363 was because it was still assuming a line ending width
of 1 char in its indexing calculations, even when actually
inserting CRLF.
- Aside from #363 , it actually needed to set `line_end_index`
to zero for *all* calculations that use it when line == 0,
but it was only doing so for a single calculation.
3 years ago
Gokul Soumya
fb8e7dc25b
Fix picker item width overflow
...
Fixes #352
3 years ago
Benoît CORTIER
14f61fb6ac
Fix lsp config deserialization case
...
It should have been in kebab-case, but it was the default snake_case.
3 years ago
Blaž Hrastnik
0f55e67576
fix: ok, needs to be the end of the previous line
3 years ago
Blaž Hrastnik
7366fe81e0
open: Use the correct function
...
Still not correct but at least it doesn't append at EOF
3 years ago
Blaž Hrastnik
4ad7b61c69
fix: Better fix that also fixes crashes on `o`
3 years ago
Blaž Hrastnik
655c1aeb73
fix: panic on O at the start of the file ( fixes #354 )
3 years ago
Blaž Hrastnik
39dc09e6c4
ui: Paginate prompt completion
3 years ago
wojciechkepka
3606d8bd24
Patch the primary cursor with insert and select styles
3 years ago
wojciechkepka
c534fdefdc
Refactor, add `ui.cursor.primary`
3 years ago
wojciechkepka
d70be55f70
Add ability to theme primary selecition
3 years ago
wojciechkepka
ac1e98d088
Add ability to theme cursor
3 years ago
Shafkath Shuhan
fd98e743e8
Handle non-UTF8 files
3 years ago
Blaž Hrastnik
9706f1121d
Fix small screen panics
3 years ago
Nathan Vegdahl
848cc1b438
Fix extend_line() behavior.
...
It would always extend to the next line if the cursor was at the
end of the current line, even if the current line wasn't fully
selected yet.
3 years ago
Nathan Vegdahl
481c4ba044
Increment char_index by grapheme char count.
...
It was just assuming single-char graphemes before.
3 years ago
Nathan Vegdahl
38bf9c2576
Missed some items in the CRLF PR.
3 years ago
Blaž Hrastnik
7511110d82
Fix build on master
3 years ago
Joe Neeman
fd1ae35051
Make the prompt callback take a Context.
3 years ago
Lionel Flandrin
16883e7543
Implement show_current_directory command
3 years ago
Lionel Flandrin
b56174d738
Implement change_current_directory command
3 years ago
Blaž Hrastnik
20f33ead67
minor: Remove old TODOs
3 years ago
Gokul Soumya
e0fd08d6df
Rename surround to match_mode
3 years ago
Gokul Soumya
753ed4cbc5
Add documentation for surround
3 years ago
Gokul Soumya
b00e9fc227
Handle line endings correctly in surround
3 years ago
Gokul Soumya
b79b5e66f2
Move match_bracket to mm
3 years ago
Gokul Soumya
13648d28b9
Add surround keybinds
3 years ago
Blaž Hrastnik
2f321b9335
lsp: Eagerly process notifications/server calls to avoid re-rendering
3 years ago
Blaž Hrastnik
a70de6e980
Merge pull request #224 from helix-editor/line_ending_detection
...
Line ending detection
3 years ago
Nathan Vegdahl
a18d50b777
Add command to set the document's default line ending.
3 years ago
Nathan Vegdahl
7c4fa18764
Fix clippy warnings.
3 years ago
Nathan Vegdahl
d33355650f
Convert remaining commands to use the document's line ending setting.
3 years ago
Nathan Vegdahl
e436c30ed7
Make split_selection_on_newline command handle all line endings.
3 years ago
Nathan Vegdahl
23d6188535
Update `replace` command to use document line ending setting.
3 years ago
Nathan Vegdahl
07e28802f6
Add function to get the line ending of a str slice.
...
This is needed in some places.
3 years ago
Nathan Vegdahl
714002048c
Don't need getters/setters for line_ending property.
...
It's plain-old-data. If we want to do fancier things later, it's
easy to switch back.
3 years ago
Wojciech Kępka
ee80fa8ea9
Cleanup spinners and messages on progress end
3 years ago
wojciechkepka
aca9d73fe4
Hold `Config` in `Application`, expect at least one editor view
3 years ago
wojciechkepka
cc357d5096
Add progress spinners to status line
3 years ago
wojciechkepka
b2804b14b1
Add a `Spinner`
3 years ago
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.
3 years ago
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.
3 years ago
Ivan Tham
985625763a
Fix doc warnings
3 years ago
Blaž Hrastnik
eaf259f8aa
Fix build..
3 years ago
Blaž Hrastnik
f41688d960
Merge `x` and `X`
3 years ago
Benoît CORTIER
f50261c944
Add mappable commands for system clipboard
...
System clipboard integration exists now in two favors: typable and
mappable.
Default mappings are:
- SPC p: paste clipboard after
- SPC P: paste clipboard before
- SPC y: join and yank selection to clipboard
- SPC Y: yank main selection to clipboard
- SPC R: replace selections by clipboard contents
3 years ago
Benoît CORTIER
a2b8cfca34
Add system clipboard yank and paste commands
...
This commit adds six new commands to interact with system clipboard:
- clipboard-yank
- clipboard-yank-join
- clipboard-paste-after
- clipboard-paste-before
- clipboard-paste-replace
- show-clipboard-provider
System clipboard provider is detected by checking a few environment
variables and executables. Currently only built-in detection is
supported.
`clipboard-yank` will only yank the "main" selection, which is currently the first
one. This will need to be revisited later.
Closes https://github.com/helix-editor/helix/issues/76
3 years ago
wojciechkepka
fc39a6c40d
Add comment, statusline + commandline = 2
3 years ago
wojciechkepka
0882712b45
Use full screen size
3 years ago
wojciechkepka
980e602352
Make completion window move to top when cursor is below half
3 years ago
Nathan Vegdahl
5d22e3c4e5
Misc fixes and clean up of line ending detect code.
3 years ago
Blaž Hrastnik
34ebe82654
ui: prompt: Add more keymappings
3 years ago
Blaž Hrastnik
e9a3245aae
Re-export unicode crates from helix_core
3 years ago
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.
3 years ago
wojciechkepka
59c59deb46
Add missing `theme` to toml config
3 years ago
Jan Hrastnik
8634e04a31
added the line_end helper function
3 years ago
Jan Hrastnik
701eb0dd68
changed some hardcoded newlines, removed a else if in line_ending.rs
3 years ago
wojciechkepka
2d629a880c
Fix overflow
3 years ago
Blaž Hrastnik
28d9673a8e
Fix compilation
3 years ago
wojciechkepka
42e13bd542
Add `:theme <name>` command
3 years ago
wojciechkepka
b1a41c4cc8
Add `theme` to global configuration
3 years ago
wojciechkepka
a2db161d5a
Add theme completer
3 years ago
wojciechkepka
ce97a2f05f
Add ability to change theme on editor
3 years ago
Blaž Hrastnik
10f9f72232
Revert "Refactor key into helix-view"
...
Did not use defaults when custom keymap was used
This reverts commit ca806d4f85
.
3 years ago
wojciechkepka
11f20af25f
Make `home` and `end` work in insert mode
3 years ago
Jan Hrastnik
1e80fbb602
fix merge issue
3 years ago
Jan Hrastnik
cdd9347457
Merge remote-tracking branch 'origin/master' into line_ending_detection
3 years ago
Jan Hrastnik
97323dc2f9
ran cargo fmt
3 years ago
Jan Hrastnik
ecb884db98
added get_line_ending from pr comment
3 years ago
Ivan Tham
ca806d4f85
Refactor key into helix-view
...
Now also make use of Deserialize for Config.
3 years ago
wojciechkepka
1c25852021
Make arrow keys and page up/down work in insert mode
3 years ago
wojciechkepka
c5a2fd5da3
Add `close_language_servers` method on `Editor`
3 years ago
wojciechkepka
c2aad859b1
Handle language server shutdown with timeout
3 years ago
Benoît CORTIER
03d1ca7b0a
cargo: add more metadata to manifests
3 years ago
Benoît CORTIER
db5bdf4f2d
Run cargo-diet
...
cargo-diet is a helper for computing the optimal `include` directives
for Cargo.toml manifests.
https://github.com/the-lean-crate/cargo-diet
3 years ago
Benoît CORTIER
b48054f3ee
cargo: add version to local dependencies
...
First step towards enabling us to publish on crates.io.
See: https://github.com/helix-editor/helix/issues/42
3 years ago
wojciechkepka
1c1474c3b8
Add `ui.statusline.inactive`, use `ui.statusline` for statusline text
3 years ago
Wojciech Kępka
1bb3b778ad
Don't derive `Default` for `GlobalConfig` ( #297 )
...
We shouldn't derive Default because `lsp_progress` by default should be turned on (opt out).
3 years ago
Gokul Soumya
b1cb98283d
Fix indent regression issue with o, O
...
Indents were no longer respected with `o` and `O`. Using counts resulted
in multiple cursors in the same line instead of cursors on each line.
Introduced by 47d2e3ae
3 years ago
wojciechkepka
a3cb79ebaa
Use kebab-case for config
3 years ago
wojciechkepka
bbefc1db63
Add an option to disable display of progress in status bar
3 years ago
wojciechkepka
612511dc98
Handle workDoneProgress/create request
3 years ago
wojciechkepka
e1109a5a01
Update handling of progress notification
3 years ago
wojciechkepka
38cb934d8f
Add unique id to each lsp client/server pair
3 years ago
wojciechkepka
a6d39585d8
Add `work_done_token` as parameter to lsp methods
3 years ago
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`
3 years ago
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
3 years ago
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.
3 years ago
Jan Hrastnik
8bccd6df30
applied changes from pr review
3 years ago
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
3 years ago
Gokul Soumya
47d2e3aefa
Let o, O take counts for multiple cursors
3 years ago
Gokul Soumya
20d6b202d5
Fix cursor position bugs related to o and O
...
- `O` at the beginning of file didn't move cursor
- `o` and `O` messed up cursor position with multiple cursors
Fixes #127
3 years ago
Jan Hrastnik
9c3eadb2e4
fixed some problems from rebasing
3 years ago
Jan Hrastnik
7cf0fa05a4
doc.line_ending() now returns &'static str
3 years ago
Jan Hrastnik
a4f5a0134e
trying out line ending helper functions in commands.rs
3 years ago
Jan Hrastnik
3756c21bae
rebase on branch line_ending_detection
3 years ago
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
3 years ago
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.
3 years ago
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.
3 years ago
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.
3 years ago
Ivan Tham
05ed3e8fb8
Remove unused variables
3 years ago
Ivan Tham
002f1ad397
Add filter ability to picker
...
Inspired by doom emacs. Able to filter picker options multiple times.
3 years ago
Nathan Vegdahl
7c2fb92c91
Report indent style when calling indent-style with no arguments.
...
Also print an error message when the argument is malformed.
3 years ago
Nathan Vegdahl
d415a666fe
Address PR comments.
...
* Clean up "indent-style" command argument parsing.
* Adjust command's name to match the style of other commands.
* Add a "0" alias to the command, for tabs indent style.
3 years ago
Nathan Vegdahl
4faf1d3bf4
Remove indent style status-line display for now.
3 years ago
Nathan Vegdahl
358ea6a37c
Implement command to change the indent-style setting of a document.
3 years ago
Nathan Vegdahl
8648e483f7
Render indent-style status in status line.
...
Also cleaned up the status line code a little.
3 years ago
Ivan Tham
1bda454149
Add ctrl-w for prompt
3 years ago
Blaž Hrastnik
e819121f6e
fix: wq/wqa functions need to wait for save to finish before closing
3 years ago
Gokul Soumya
f33aaba53f
Add ui.selection to theme.toml
...
Enables changing the color of the selection which was previously
hard coded.
3 years ago
Gokul Soumya
9cfa163370
Refactor keymap definitions using macros
...
Adds a macro rule to the `key!` macro so that keymaps using `Left`,
`Home`, `Esc`, etc. will also be accepted.
3 years ago
dependabot[bot]
e4b3a666d2
Bump once_cell from 1.7.2 to 1.8.0 ( #255 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.7.2...v1.8.0 )
---
updated-dependencies:
- dependency-name: once_cell
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>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
dependabot[bot]
9b352ceefd
Bump crossterm from 0.19.0 to 0.20.0
...
Bumps [crossterm](https://github.com/crossterm-rs/crossterm ) from 0.19.0 to 0.20.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/compare/0.19...0.20 )
---
updated-dependencies:
- dependency-name: crossterm
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Andreas Liljeqvist
5d23667a26
fix offset by one problem in replace_with_yanked
3 years ago
Blaž Hrastnik
ae5ecfdf66
Release v0.2.0
3 years ago
Blaž Hrastnik
d545e61644
ui: Prompt should figure out a reasonable column width
...
Fixes #192
Refs #225
3 years ago
Wojciech Kępka
df217f71c1
Fix `wq`
3 years ago
Wojciech Kępka
b9100fbd44
Fix clippy
3 years ago
Wojciech Kępka
52d3c29244
Deduplicate code
3 years ago
Wojciech Kępka
17c9a8499e
Add `qa` and `qa!`
3 years ago
Wojciech Kępka
62e6232a32
Update write_all
3 years ago
Wojciech Kępka
d8b5d1181f
Add `Copy` derive to `PromptEvent`
3 years ago
Wojciech Kępka
b500a2a138
commands: Add more write commands
3 years ago
Yusuf Bera Ertan
a3f01503e2
build(nix): use nix-cargo-integration, make shell.nix use flake devshell
3 years ago
Ivan Tham
9640ed1425
Add clarification to last buffer
3 years ago
Robin
9baf1ecc90
add symbol picker ( #230 )
...
* add symbol picker
use the lsp document_symbol request
* fix errors from merging in master
* add docs for symbol picker
3 years ago
Robin
44cc0d8eb0
add alternate file ( #223 )
...
* add alternate file
inspired by vim ctrl-6/kak ga commands. the alternate file is kept per view
* apply feedback from #223
* rename to last_accessed
* add ga doc
* add fail message for ga
3 years ago
Ivan Tham
1953588873
Change picker horizontal split to h
...
Follow window mode and vim behavior, x seemed weird.
3 years ago
Wojciech Kępka
c754df12b3
lsp: Check bounds when converting lsp positions ( #204 )
...
* lsp: Make position conversion funcs return `Option`
* Add tests
* Fixes
* Revert pos_to_lsp_pos to panic
3 years ago
Blaž Hrastnik
278361a086
Only auto-format for certain languages
...
Fixes #53
Fixes #207
3 years ago
Jakub Bartodziej
69fe46a122
Add :earlier and :later commands that can be used to navigate the full edit history. ( #194 )
...
* Disable deleting from an empty buffer which can cause a crash.
* Improve on the fix for deleting from the end of the buffer.
* Clean up leftover log.
* Avoid theoretical underflow.
* Implement :before which accepts a time interval and moves the editor to
the closest history state to the commit of the current time minus that
interval. Current time is now by default, or the commit time if :before
has just been used.
* Add :earlier an :later commands that can move through
the edit history and retrieve changes hidded by undoing
and commiting new changes. The commands accept a number
of steps or a time period relative to the currrent change.
* Fix clippy lint error.
* Remove the dependency on parse_duration, add a custom parser instead.
* Fix clippy errors.
* Make helix_core::history a public module.
* Use the helper for getting the current document and view.
* Handled some PR comments.
* Fix the logic in :later n.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for :earlier.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for later.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Run cargo fmt.
* Add some tests for earlier and later.
* Add more tests and restore the fix for later that diappeared somehow.
* Use ? instead of a match on an option.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Rename to UndoKind.
* Remove the leftover match.
* Handle a bunch of review comments.
* More systemd.time compliant time units and additional description for the new commands.
* A more concise rewrite of the time span parser using ideas from PR discussion.
* Replace a match with map_err().
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: Jakub Bartodziej <jqb@google.com>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
PabloMansanet
86af55c379
Movement fixes, refactor and unit test suite ( #217 )
...
* Add convenience/clarity wrapper for Range initialization
* Test horizontal moves
* Add column jumping tests
* Add failing movement conditions for multi-word moves
* Refactor skip_over_next
* Add complex forward movement unit tests
* Add strict whitespace checks and edge case tests
* Restore formatting
* Remove unused function
* Add empty test case for deletion and fix nth_prev_word_boundary
* Add tests for backward motion
* Refactor word movement
* Address review comments and finish refactoring backwards move
* Finish unit test suite
* Fmt pass
* Fix lint erors
* Clean up diff restoring bad 'cargo fmt' actions
* Simplify movement closures (thanks Pickfire)
* Fmt pass
* Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API
* Break down tuple function
* Extract common logic to all movement functions
* Split iterator helpers away into their own module
* WIP reducing clones
* Operate on spans
* WIP simplifying iterators
* Simplify motion helpers
* Fix iterator
* Fix all unit tests
* Refactor and simplify
* Simplify fold
3 years ago
Wojciech Kępka
0c2b99327a
commands: Handle `t<ENTER>` as till newline
3 years ago
Wojciech Kępka
098806ce2a
lsp: Display LSP progress messages ( #216 )
3 years ago
Robin van Dijk
c0d32707d0
move to first nonwhitespace on shift-i
...
This matches the behaviour in vim and kak
3 years ago
Ivan Tham
7cc13fefe9
Derive debug without feature
...
Note that this also removed those `finish_non_exhaustive()`.
3 years ago
notoria
1a3a924634
Implement Debug for data structure as a feature
3 years ago
Ivan Tham
6b3c9d8ed3
Fix jump behavior, goto_implementation now jump
...
Better jump behavior since we override the first jump if it's on the
first document. At the same time, ctrl-i is now working with gd jumps.
3 years ago
wojciechkepka
4dbc23ff1c
Fix documentation popup panic
3 years ago
Kevin Sjöberg
b20e4a108c
Only enforce limit outside of .git
3 years ago
Kevin Sjöberg
1bb9977faf
Match keybindings of menu
3 years ago
Kevin Sjöberg
29962a5bd9
Fix Shift-Tab for moving upwards in menu
3 years ago
Blaž Hrastnik
83723957fe
Fix crash when too many completions available
...
Refs #81
3 years ago
Zheming Li
ae51065213
Support go to line 1
3 years ago
Wojciech Kępka
4e3a343602
Make `r<ENTER>` work
3 years ago
Wojciech Kępka
81e02e1ba4
Remove unwanted `as_str`
3 years ago
Wojciech Kępka
c349ceb61f
Don't replace newlines
3 years ago
Wojciech Kępka
2e4a338944
Add bounds checks to replace
3 years ago
Wojciech Kępka
9c83a98469
commands: Replace all characters in selection
3 years ago
Wojciech Kępka
1bffb34350
Make matching bracket dimmed, prevent out of bounds rendering
3 years ago
Wojciech Kępka
c978d811d9
Cleanup find_first_non_whitespace_char funcs
3 years ago
Wojciech Kępka
48df05b16d
commands: Add goto first non-whitespace char of line
3 years ago
Kirawi
b873fb9897
Fix Unicode ( #135 )
...
* init
* wip
* wip
* fix unicode break
* fix unicode break
* Update helix-core/src/transaction.rs
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
* clippy
* fix
* add changes
* added test
* wip
* wip
* wip
* wip
* fix
* fix view
* fix #88
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
3 years ago
Kevin Sjöberg
08f50310bd
Bump file picker limit
3 years ago
Wojciech Kępka
4bec87ad18
Update keymap
3 years ago
Wojciech Kępka
c65b4dea09
commands: Add replace with yanked as `R`
3 years ago
Wojciech Kępka
6fc0e0b5fb
completion: Fix unimplemented autocomplete
3 years ago
Blaž Hrastnik
0201ef9205
ui: completion: Use the correct type_name
...
Fixes #166
3 years ago
Wojciech Kępka
037f45f24e
Create all parent directories for config and cache
3 years ago
Blaž Hrastnik
9821beb5c4
Make gh/gl extend selection in select mode
3 years ago
Blaž Hrastnik
3cee0bf200
Address clippy lint
3 years ago
Blaž Hrastnik
4fd38f82a3
Disable failing doctest
3 years ago
Ivan Tham
b5682f984b
Separate helix-term as a library
...
helix-term stuff will now be documented in rustdoc.
3 years ago
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`.
3 years ago
Blaž Hrastnik
8d6fad4cac
lsp: Provide workspace root on client.initialize()
3 years ago
Blaž Hrastnik
14830e75ff
Revert the line number rendering change, we were correct before
3 years ago
Blaž Hrastnik
f48a60b8e2
Release 0.0.10
3 years ago
Blaž Hrastnik
4f561e93b8
View mode: Use saturating_sub when calculating first_col
3 years ago
Blaž Hrastnik
01b1bd15a1
commands: use chars().count() over .len() on strings
3 years ago
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
3 years ago
Ethan Bodzioney
843c2cdebd
Install instructions and version number corrections ( #148 )
...
* Add MacOS install instructions
* Change version name argument
When using the -V command to get the version you are given 'helix-term x.x.x', I changed this to just helix as it makes more sense.
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
3 years ago
Wojciech Kępka
16b1cfa3be
Add diagnostics keybindings
3 years ago
Ivan Tham
2066e866c7
Add spc w w for window mode
3 years ago
Kevin Sjöberg
3494bb8ef0
Refactor index assignment
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Kevin Sjöberg
a4ff8cdd8a
Allow moving backwards in completions
3 years ago
Kevin Sjöberg
145bc1970a
Trigger directory completion upon pressing Enter
3 years ago
Ivan Tham
40744ce835
Add ctrl-w in insert mode
...
It seemed to panic when I pressed too many times, but that is from
lsp side.
3 years ago
Kevin Sjöberg
aa8a8baeeb
Calculate offset when moving picker cursor
3 years ago
Kevin Sjöberg
2ac496f919
Do not move past number of matches
3 years ago
Brian Dawn
62d181de78
Provide a feature flag to be able to embed the runtime folder.
...
These changes provide a new feature flag "embed_runtime" that when
enabled and built in release mode will embed the runtime folder into the
resulting binary.
3 years ago
Ivan Tham
8c2fa12ffc
Add window mode
...
Fix #93
3 years ago
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
3 years ago
ahkrr
444cd0b068
fix: make find_prev_char and till_prev_char work
...
Bevore this PR `commands::find_prev_char` and `commands::till_prev_char` were triggerable through keys
but `seach::find_nth_next()` was hardcoded in `_find_char`.
The passed `fn` was nerver used. With this PR the passed `fn` is used.
The change in search.rs resolves an off by one error in the behivor of `find_nth_prev`
3 years ago
Kirawi
c17dcb8633
Fixing Multiple Panics ( #121 )
...
* init
* wip
* wip
3 years ago
Antoni Stevenet
a1f4b8f92b
Add home-end keymaps, (as kakoune/vim do) ( #83 )
...
* add home-end keymaps
* implement extend methods for extend_line_start, extend_line_end
* add home-end mappings to keymaps.md
* add ^-$ extend mappings for extend mode
* pass cargo linter
3 years ago
notoria
adcfcf9044
Replace ^/$ with gh/gl
3 years ago
Blaž Hrastnik
4f0e3aa948
Implement gt/gm/gb, remap goto tYpe to gy
3 years ago
Blaž Hrastnik
f2e554d761
matchbrackets: Needs to render with the viewport offset
3 years ago
Blaž Hrastnik
bd4552cd2b
scroll: Fix the clamping
3 years ago
Blaž Hrastnik
06d8d3f55f
Try to detect language when document file path is set
...
Fixes #91
3 years ago
Blaž Hrastnik
8afd4e1bc2
Exit select mode on delete_selection
3 years ago
wojciechkepka
43b92b24d2
Show file picker when directory passed as first arg
3 years ago
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.
3 years ago
Kevin Sjöberg
fdb5bfafae
Limit goto count
...
Giving a goto count greater than the number of lines in the buffer
would cause Helix to panic.
3 years ago
Antoni Stevent
27aee705e0
use correct _extend methods, also remove unnecessary casts
3 years ago
Antoni Stevent
f0fe558f38
Add up/right/left/down arrow keymaps, similar to kakoune
3 years ago
Jakub Bartodziej
09a7db637e
Avoid theoretical underflow.
3 years ago
Jakub Bartodziej
31ed4db153
Clean up leftover log.
3 years ago
Jakub Bartodziej
3c5dfb0633
Improve on the fix for deleting from the end of the buffer.
3 years ago
Jakub Bartodziej
6cbc0aea92
Disable deleting from an empty buffer which can cause a crash.
3 years ago
Jan Hrastnik
c1c3750d38
key is now modified in place at start of handle_event
3 years ago
Jan Hrastnik
daad8ebe12
key_canonicalization now only matches chars
3 years ago
Jan Hrastnik
68abc67ec6
put the key canonicalization in a seperate function. only chars now get stripped of Shift modifier
3 years ago
Jan Hrastnik
712f25c2b9
removed shift matching
3 years ago
notoria
c3a98b6a3e
Highlight matching brackets
3 years ago
Blaž Hrastnik
661dbdca57
Fix cursor not showing on (0, 0)
4 years ago
Ivan Tham
d664d1dec0
Default log file to cache
4 years ago
Blaž Hrastnik
7e8603247d
Merge pull request #66 from IceDragon200/replaced-args-parser
...
Drop pico-args in favour of a hand rolled parser
4 years ago
Blaž Hrastnik
6dba1e7ec7
Clippy lint
4 years ago
Blaž Hrastnik
c0332bd935
Fix split sizes getting out of sync with the terminal size, refs #69
4 years ago
Corey Powell
f0018280cb
Refactored parse_args loop
...
Thanks @PabloMansanet
4 years ago
Corey Powell
7202953e69
Dropped pico-args in favour of a simpler hand roller parser
...
Not the greatest looking, but it gets the job done
4 years ago
Corey Powell
83031564db
Merge pull request #57 from pickfire/fix-panic
...
Fix panic opening rust file
4 years ago
Ivan Tham
eab6e53511
Fix panic opening rust file
...
Application::new will use stuff that requires tokio runtime.
4 years ago
Blaž Hrastnik
2719a35123
Merge pull request #55 from helix-editor/autoresize
...
autoresize terminal in compositor render
4 years ago
Jan Hrastnik
78980f575b
autoresize terminal in compositor render
4 years ago
Wojciech Kępka
e88383d990
Use config_dir for logging, create config_dir
4 years ago
Blaž Hrastnik
cbb3ebafdc
Support ctrl-f and ctrl-b to page up/down, fixes #41
4 years ago
Daichi Takamiya
4d12c7c3cf
Fix empty command cause panic
4 years ago
Danilo Spinella
ea824ed05d
Improve errors handling in main by adding context
...
Return a anyhow::Result in main function so that Context can be used
there too.
4 years ago
Blaž Hrastnik
ce25aa951e
Allow setting a filepath on :write
4 years ago
Blaž Hrastnik
a2147fc7d5
Change help prompt styling
4 years ago
Blaž Hrastnik
d8e16554bf
Don't crash if no filename specified on open
4 years ago
Blaž Hrastnik
b8d6e6ad28
Allow setting verbosity to info again
4 years ago
Blaž Hrastnik
138787f76e
Drop clap for pico-args
...
We barely have any flags so it's not worth the compilation time or
binary size to use clap.
4 years ago
Blaž Hrastnik
87d0617f3b
Completion: Format docs tabs & highlight in the doc's native language
4 years ago
Blaž Hrastnik
3810650a6b
Completion: Render non-markdown docs too
4 years ago
Blaž Hrastnik
2c48d65b15
Format document on save
4 years ago
Blaž Hrastnik
d54ae09d3b
ESC should exit both completion and insert mode
4 years ago
Blaž Hrastnik
d708efe275
Fix cursor positioning for prompts
4 years ago
Blaž Hrastnik
3336023614
ui: Menu rendering adjustments
4 years ago
Blaž Hrastnik
094203c74e
Update deps, introduce the new tree-sitter lifetimes
4 years ago
Blaž Hrastnik
b114cfa119
Display more data in completion popups.
4 years ago
Blaž Hrastnik
f1dc25a774
Support count for indent too
4 years ago
Blaž Hrastnik
4f335fabc8
Fix unindent to work with tabs, take a count
4 years ago
Blaž Hrastnik
9c24f1ec0e
Drop selection_lines completely, change move_line_start binding
4 years ago
Blaž Hrastnik
f99a683991
Fix crash if appending at end of line on the last line of the file
4 years ago
Blaž Hrastnik
51d1d43289
Double the UI picker file limit.
4 years ago
Blaž Hrastnik
5a245b83a0
Append :fmt as a separate history state
4 years ago
Blaž Hrastnik
8949347e2c
Completion: apply additionalTextEdits.
...
Used for adding imports to the file when completing.
4 years ago
Blaž Hrastnik
54de768915
Fix crash if typing | (regex or) into the prompt.
...
Zero-width matches at the start of the file make no sense to us.
4 years ago
Blaž Hrastnik
5e6b46e7c5
Use array::IntoIter.
4 years ago
Blaž Hrastnik
354b822d21
Fix crash on xa<Enter> if we were on the last line.
4 years ago
Blaž Hrastnik
fae2127a11
Drop cx.view_id, it was used before we had cx.current.
4 years ago
Blaž Hrastnik
0e5b421646
When calculating a new selection, we need to take newly inserted text into account.
4 years ago
Blaž Hrastnik
4a9d1163e0
Hacky way to specify indent scopes per language via toml configs.
...
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.
Can't extract the pattern data from a parsed query either.
Oh well, toml files for now.
4 years ago
Blaž Hrastnik
e4ff75b4d4
Add :fmt (formats the whole file).
4 years ago
Blaž Hrastnik
5cbb4efa6d
Add the LICENSE file.
4 years ago
Blaž Hrastnik
ccdebb99b5
Drop some useless imports.
4 years ago
Blaž Hrastnik
ff4c1d05de
Replace the Clear widget with buffer.clear/clear_with.
4 years ago
Blaž Hrastnik
1255bcb8a3
Simplify the compositor callback.
4 years ago
Blaž Hrastnik
35606a3daa
Inline tui as helix-tui fork.
...
We only rely on some of the rendering primitives and implement our
Cursive-style compositor on top.
4 years ago
Blaž Hrastnik
0fe19ae472
clippy lint
4 years ago
Blaž Hrastnik
ed827e993f
Fix jumplist jumps, keep the selection on vsplit.
4 years ago
Blaž Hrastnik
caf4349925
Remove some of the panics, just log instead.
4 years ago
Blaž Hrastnik
d24844b73d
ui: Render command mode doc text if available.
4 years ago
Blaž Hrastnik
d4d5e88ade
Show a message if no definition was found.
4 years ago
Blaž Hrastnik
1be8b2005d
Extract a method for view alignment.
4 years ago
Blaž Hrastnik
adaf861881
vsplit can now split scratch buffers.
4 years ago
Blaž Hrastnik
570c253ffb
Disable default features on futures-util to drop proc macros.
4 years ago
Blaž Hrastnik
f0712479cb
Define text color (mostly) in theme.toml.
4 years ago
Blaž Hrastnik
f87dee926a
Simplify prompt autocompletion rendering code.
4 years ago
Blaž Hrastnik
ff84c8e394
Command mode: Per command completers.
4 years ago
Blaž Hrastnik
87e7a0de3f
Save space by having the command hashmap use const static refs.
4 years ago
Blaž Hrastnik
9604a0c294
Improve command mode handling.
4 years ago
Blaž Hrastnik
243456a583
Disallow quitting on last view if unsaved changes present.
4 years ago
Blaž Hrastnik
c0a8b81487
Only send the document close event if we're closing the underlying buffer
4 years ago
Blaž Hrastnik
c20813690f
View::new is infallible, so is editor.switch/new_file.
4 years ago
Blaž Hrastnik
f2c79e245b
Allow switching views back to scratch buffers.
4 years ago
Blaž Hrastnik
7c915dc065
Add the :new command, don't crash if saving without filename.
4 years ago
Blaž Hrastnik
f8844c6811
Implement pair expansion when pressing new line between bracket pairs.
...
From:
{|}
To:
{
|
}
4 years ago
Blaž Hrastnik
fd4fd12fa3
clippy lint
4 years ago
Blaž Hrastnik
ba97005495
Work around the rest of the blocking issues.
4 years ago
Blaž Hrastnik
d00414f81a
Start moving more LSP calls into callbacks/futures without capturing self
4 years ago
Blaž Hrastnik
1ad0581ddd
Eliminate a few more futures dependencies.
4 years ago
Blaž Hrastnik
355ad3cb82
Tokio migration.
4 years ago
Blaž Hrastnik
0e5308bce1
Need to allow this lint, the Hook signature requires Option<>.
4 years ago
Blaž Hrastnik
b6a22e955b
Closer to a full flake build via naersk.
...
Blocked on https://github.com/NixOS/nix/issues/4423 , build doesn't see
submodules.
4 years ago
Blaž Hrastnik
3038c2ef6d
ui: Draft for completion doc preview.
4 years ago
Blaž Hrastnik
ab4decfd6d
Make post hooks trigger even when a different handler processes input.
...
The default handler is now simply a fallback.
4 years ago
Blaž Hrastnik
d559199cec
Stop crashing if last view is closed.
4 years ago
Blaž Hrastnik
28c167d71d
doc: Be smarter about calculating modified status.
...
This way edit -> undo will properly show up as unmodified.
4 years ago
Blaž Hrastnik
594575ba3f
Center forward and backward jumps too.
4 years ago
Blaž Hrastnik
3b90317060
Add window/showMessage / logMessage stubs so gopls fully starts.
4 years ago
Blaž Hrastnik
c64240b6ef
Implement most of the view mode (z).
4 years ago
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.
4 years ago
Blaž Hrastnik
811f952a41
Center search results.
4 years ago
Blaž Hrastnik
180521fefe
Adjust scroll() to match kakoune: only scroll the view if cursor in bounds.
4 years ago
Blaž Hrastnik
2a1f10d1b5
Center the new position on screen after doing a goto jump.
4 years ago
Blaž Hrastnik
95dd55ba94
Fix overlap calculation.
4 years ago
Blaž Hrastnik
7493d19098
Re-introduce clearing with bg color, seems the TUI issue was fixed.
4 years ago
Blaž Hrastnik
392c4a9c02
Keep primary selection as space+space.
4 years ago
Blaž Hrastnik
73f4abbb37
N as extend with search (for now, N should be search_prev).
4 years ago
Blaž Hrastnik
978f5114d8
Horizontal scrolling! It only took a year to get around to it.
4 years ago
Blaž Hrastnik
d692390d10
Render current line:col.
4 years ago
Blaž Hrastnik
865429643b
<space>w for save, <space>c for close current split.
4 years ago
Blaž Hrastnik
52da68e49a
Render a separator between vertical splits.
4 years ago
Blaž Hrastnik
9ca2909c80
Loop around the end on regex searches.
4 years ago
Blaž Hrastnik
8b33ba2284
Correct the naming issue with vsplit and hsplit being swapped.
4 years ago
Blaž Hrastnik
58c5fec592
minor: This comment was resolved.
4 years ago
Blaž Hrastnik
bc4e54c0c4
Load config files from ~/.config/helix, fallback to defaults.
4 years ago
Blaž Hrastnik
f0d49d3ca4
hack: make queries load relative to source dir for now.
...
We want to provide a runtime dir later on.
4 years ago
Blaž Hrastnik
12961d657f
Implement P as paste_before.
4 years ago
Blaž Hrastnik
31e6bcbeb4
Clippy lint: replace with default -> take
4 years ago
Blaž Hrastnik
e8298a398c
Fix selection rendering, it would be off by 1 if reverse.
4 years ago
Blaž Hrastnik
82ff996662
Yank selection when deleting.
4 years ago
Blaž Hrastnik
463f58dfda
Fix clamping scroll in certain cases.
...
.clamp(min, max) requires that min < max. In some cases
first + scrolloff > last - scrolloff and we would panic.
4 years ago
Blaž Hrastnik
0e9ecccfc1
clippy: Drop or-patterns for now because they're not on stable rust yet
4 years ago
Blaž Hrastnik
91462af546
Allow starting hx without a file. A new blank file will be created.
4 years ago
Blaž Hrastnik
7c44443994
Handle c-n, c-p, etc. autocompletion events.
4 years ago
Blaž Hrastnik
95d0bba81a
ui: Improve completion state handling.
4 years ago
Blaž Hrastnik
59a0fc7b59
w, b, e: Match kakoune's behavior in selecting by default.
...
I initially preferred only moving the cursor, but selecting the whole
word is a lot nicer for things like wd (instead of vwd).
4 years ago
Blaž Hrastnik
ab1d11088f
Import some lsp utilities.
4 years ago
Blaž Hrastnik
77cab5a715
Merge open_above and open_below definitions.
4 years ago
Blaž Hrastnik
cc058ad78f
Simplify some code.
4 years ago
Blaž Hrastnik
0dbd5b61ef
Simplify code by providin cx.current() = (view, doc).
4 years ago
Blaž Hrastnik
ceea5eacd8
clippy lint
4 years ago
Blaž Hrastnik
7dfd7f51a0
Implement space-v as view same file in split.
4 years ago
Blaž Hrastnik
6c4093c946
Weave through view_id references so that views into one file have independent selects.
4 years ago
Blaž Hrastnik
dfc17becd5
Move pickers under my leader key mode (space).
4 years ago
Blaž Hrastnik
e166da2ab0
fix: A (append to line) was inserting before last char.
4 years ago
Blaž Hrastnik
1b5316ea74
Track document modified state.
4 years ago
Blaž Hrastnik
88bb7a1f38
Repeat insert command (.).
4 years ago
Blaž Hrastnik
ebfd67ac6a
Use StreamExt::select_next_some to avoid infinitely spinning on empty stream.
4 years ago
Blaž Hrastnik
e833d65b77
Teach file picker how to find the project root (.git).
4 years ago
Blaž Hrastnik
8098e9bdcd
Allow setting a status message.
4 years ago
Blaž Hrastnik
742b3a709f
Store intra-files jumps (goto) on the jumplist.
4 years ago
Blaž Hrastnik
0083a6c325
commands: Simplify _goto.
4 years ago
Blaž Hrastnik
ea407ccdba
Implement <n>g as goto line n.
4 years ago
Blaž Hrastnik
5c2d2fda21
Wire up opening in splits via pickers.
4 years ago
Blaž Hrastnik
aefafc25cd
Replace Mode::Goto with just using on_next_key.
4 years ago
Blaž Hrastnik
a24c3fff54
Filter the completion menu based on text entered.
4 years ago
Blaž Hrastnik
2a3910c1d9
wip: Async async. Delay response handling with a callback.
4 years ago
Blaž Hrastnik
ad3325db8e
minor: Remove a few unwraps.
4 years ago
Blaž Hrastnik
e3c4edae32
Add the machinery to load syntax config from TOML.
...
It's embedded into the binary at build time for now, but it's progress.
4 years ago
Blaž Hrastnik
9a36d2c2a8
wip: Hooks & trigger characters for completion/signature_help.
4 years ago
Blaž Hrastnik
350081a3af
Fix crash if pressing enter when nothing selected in completion.
4 years ago
Blaž Hrastnik
8657c57cf2
Trivial jumplist implementation.
4 years ago
Blaž Hrastnik
915fd9ebaf
Restore buffer_picker.
4 years ago
Blaž Hrastnik
8a0ab447ec
editor.open can now either replace the current view or open in a split.
4 years ago
Blaž Hrastnik
8328fe926d
Drop refcell use, make view simply ref doc.id.
4 years ago
Blaž Hrastnik
3f9a94fd43
ui: markdown: remove trailing blank line.
4 years ago
Blaž Hrastnik
d0530fb839
Fix a scrolling crash where it would jump past the end of the buffer.
4 years ago
Blaž Hrastnik
73c92a0bc1
Implement m / match_brackets (using tree sitter).
4 years ago
Blaž Hrastnik
df306fe031
Implement open_above (O).
4 years ago
Blaž Hrastnik
42d07b0621
Implement replace command (r<key>).
4 years ago
Blaž Hrastnik
bf95ee27aa
Store Document on the Editor type, make View reference it.
4 years ago
Blaž Hrastnik
5e6716c89c
Add tab_width and indent_unit config.
4 years ago
Blaž Hrastnik
698e4ddea4
clippy: Factor out a Completion type.
4 years ago
Blaž Hrastnik
cbcacb1063
Merge some imports.
4 years ago
Blaž Hrastnik
c4792efead
clippy lints
4 years ago
Blaž Hrastnik
71999cce43
Implement auto-pairs behavior for open and close.
4 years ago
Blaž Hrastnik
a32806b490
Improve completion: src/<tab> will now correctly complete to src/main.rs
4 years ago
Blaž Hrastnik
f29f01858d
Implement iter() and len() directly on Selection.
4 years ago
Blaž Hrastnik
e9bd9e72c3
Pos conversions always operate on whole documents.
4 years ago
Blaž Hrastnik
175d38c88c
toggle_comments needs to append to history.
4 years ago
Blaž Hrastnik
c331721565
Finish hiding doc.state / State as an implementation detail.
4 years ago
Blaž Hrastnik
8ba1e15d29
Expose doc.syntax() via accessor.
4 years ago
Blaž Hrastnik
e261f3c50d
Expose doc.language_server as an accessor.
4 years ago
Blaž Hrastnik
59e6024186
Remove State from a few more signatures.
4 years ago
Blaž Hrastnik
dbcc099f48
Move things out of state.rs.
4 years ago
Blaž Hrastnik
0f6624491b
Fix completion panicking if text changed before insert completed.
4 years ago
Blaž Hrastnik
8eaf9a432d
Make Transaction::change only rely on the rope.
4 years ago
Blaž Hrastnik
51c15da3c3
Hold a reference to executor on the Editor type.
4 years ago
Blaž Hrastnik
e3ec5e31ec
Fix goto code before merging.
4 years ago
Jan Hrastnik
eadad13efa
preparing for gd merge
4 years ago
Jan Hrastnik
4e461bea2f
editor.open now checks if view already exists
4 years ago
Jan Hrastnik
0828d1fdea
picker wip
4 years ago
Blaž Hrastnik
857763c52e
term: Remove stray files.
4 years ago
Blaž Hrastnik
cf71625d4e
term: Simplify goto code, address lints.
4 years ago
Jan Hrastnik
3869d7713e
added goto functions in helix-term
4 years ago
Jan Hrastnik
b738ae1bc7
more goto lsp functions
4 years ago
Jan Hrastnik
294791dffd
added picker for gd, but yet to test it. also need to load appropriate file when definition isnt in same file
4 years ago
Jan Hrastnik
0322c28e6b
gd now works for singular definition
4 years ago
Blaž Hrastnik
18ec8adc7f
Simplify code a bit.
4 years ago
Jan Hrastnik
8a68a04340
gotodefiniton now runs but doesnt return anything
4 years ago
Jan Hrastnik
d3ddc8dea6
wip
4 years ago
Blaž Hrastnik
d8599f3a14
ui: Syntax highlight code inside markdown popups.
4 years ago
Blaž Hrastnik
54a7e893b7
lsp: Wire up didClose notification on editor.close.
4 years ago
Blaž Hrastnik
eca2a73ad0
lsp: Pass through language_id on didOpenTextDocument.
4 years ago
Blaž Hrastnik
143cfe13e0
minor: TODO comment cleanup
4 years ago
Blaž Hrastnik
081e0ae8ae
syntax: highlight_iter always returns Ok()
4 years ago
Blaž Hrastnik
71f899cb5b
syntax: Highlight using ropes, avoiding dumping whole doc to string.
4 years ago
Blaž Hrastnik
80eca5c32f
ui: Use parsed markdown contents to determine sizing.
4 years ago
Blaž Hrastnik
f9b9bc04cc
ui: Account for padding on markdown renderer.
4 years ago
Blaž Hrastnik
eea339545c
Add command for keeping only the primary selection.
4 years ago
Blaž Hrastnik
dd91090a1a
Implement keep_selections (filter selections on regex).
4 years ago
Blaž Hrastnik
872d770753
ui: Restrain diagnostic sidebar w/h based on available area.
4 years ago
Blaž Hrastnik
87e3cd3df2
ui: Render diagnostic errors in sideline.
4 years ago
Blaž Hrastnik
1cf887dea9
Cleanup: use doc.selection() instead of doc.state.selection().
4 years ago
Blaž Hrastnik
3445abf88e
syntax: Hide the TSParser internally, borrowing when needed.
4 years ago
Blaž Hrastnik
b7dd7310c4
syntax: Reuse parser instances. highlight_iter() no longer needs &mut.
4 years ago
Blaž Hrastnik
9dcfe25e4a
Use diagnostic.severity to distinguish between error colors.
4 years ago
Blaž Hrastnik
c7ccb432ef
pass clippy lint
4 years ago
Blaž Hrastnik
4acf301022
Implement the f/t/F/T find/till family of commands.
4 years ago
Blaž Hrastnik
62c991230f
find-till (f) prototype, on_next_key mode implementation.
4 years ago
Blaž Hrastnik
8fe4590666
ui: popup: scroll documentation popups with c-u/c-d.
4 years ago
Blaž Hrastnik
ddcf5156c0
ui: menu: Adjust scroll via required_size area caching.
4 years ago
Blaž Hrastnik
5ea610c41d
ui: Move terminal into compositor, redo required_size hints.
4 years ago
Blaž Hrastnik
05aa0d6991
minor: dead code
4 years ago
Blaž Hrastnik
1d42b95915
ui: wip: Markdown doc renderer.
4 years ago
Blaž Hrastnik
a5c4314940
commands: Improve scroll functions.
...
Followed kakoune's implementation, it's no longer janky and can scroll
all the way in either direction.
4 years ago
Blaž Hrastnik
565fb94afe
commands: Correct another case that always used primary().
4 years ago
Blaž Hrastnik
7e4830215e
commands: w/b/e need to apply to all selections.
4 years ago
Blaž Hrastnik
dd6db43013
ui: Adjust selection colors.
4 years ago
Blaž Hrastnik
4c6611f96b
commands: Stop select_regex from breaking when no matches.
4 years ago
Blaž Hrastnik
a21d96e729
ui: Scrollable popup menu, with scrollbar indicator.
4 years ago
Blaž Hrastnik
513effd972
ui: unsafe theme_ref is no longer needed.
4 years ago
Blaž Hrastnik
8b2cbb53fd
minor: fix hover key
4 years ago
Blaž Hrastnik
bd0f6c1dfc
clippy lint
4 years ago
Blaž Hrastnik
0b85c16be9
ui: Share popup code with menu.
...
Menu is now just wrapped in a popup.
4 years ago
Blaž Hrastnik
11c4e0b053
ui: Calculate popup rendering and sizing.
4 years ago
Blaž Hrastnik
8f4ff4c646
editor: We still want to be able to calculate cursor pos.
4 years ago
Blaž Hrastnik
32f9a2d1d6
add missing fn
4 years ago
Blaž Hrastnik
857bce0e30
ui: Rework command mode, implement file path completion.
4 years ago
Blaž Hrastnik
2088c45075
commands: Implement X as extend line.
4 years ago
Blaž Hrastnik
ec4dd0a176
Add a selection mode again.
4 years ago
Blaž Hrastnik
00808afe3c
ui: Make editor more resilient about being shrunk too small.
4 years ago
Blaž Hrastnik
2c9b02039b
commands: Implement join_selections.
4 years ago
Blaž Hrastnik
6336c1da20
view: Reposition cursors on tree resize.
4 years ago
Blaž Hrastnik
1ae7c43391
commands: = as range formatting (via lsp)
4 years ago
Blaž Hrastnik
7162632eb7
lsp: Hover documentation draft.
4 years ago
Blaž Hrastnik
8289bd1cb0
minor, fix clippy lint
4 years ago
Blaž Hrastnik
01907b3497
commands: Implement count for a few more commands.
4 years ago
Blaž Hrastnik
5fa1ba6b1c
commands: refactor open_below to support count.
4 years ago
Blaž Hrastnik
87a6d4e736
minor: Simplify some code.
4 years ago
Blaž Hrastnik
def949e509
open_below: drop redundant collect/into_iter.
4 years ago
Blaž Hrastnik
6cfb1acb9d
commands: Implement expand_selection.
4 years ago
Blaž Hrastnik
33c67f1388
commands: add * as selection search.
4 years ago
Blaž Hrastnik
61ce2c9cfe
lsp: Disable snippet_support until we implement it.
4 years ago
Blaž Hrastnik
5096bdad33
completion: Use the language server bound to the document.
4 years ago
Blaž Hrastnik
9132c6a591
Make some Document fields read-only.
4 years ago
Blaž Hrastnik
7da6bd6a71
commands: Simplify some code, only calling cx.doc() once.
4 years ago
Blaž Hrastnik
7877647cf0
Allow closing individual views.
4 years ago
Blaž Hrastnik
1e1dae1c11
Remove unused method.
4 years ago
Blaž Hrastnik
3f6f82b0c4
Always store the log file under home dir.
4 years ago
Blaž Hrastnik
8c82f8f140
indent: use_list indentation, fix indentation bug on open_below
...
use std::{
time::Duration // <- pressing `o` here would use }'s indent instead of prev line
}
4 years ago
Blaž Hrastnik
7a1ff5e45f
commands: Wire up toggle comments as ctrl-c
4 years ago
Blaž Hrastnik
c9dd1c930e
treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref
4 years ago
Blaž Hrastnik
9cac44c7c0
minor changes
4 years ago
Blaž Hrastnik
8e1a59c140
ui: Redo selection rendering.
4 years ago
Blaž Hrastnik
c408e7e01a
commands: tie in a simple :w for now.
4 years ago
Blaž Hrastnik
48ef6598db
Increase the log level in LSP and log server errors.
4 years ago
Blaž Hrastnik
83d48f10ea
search: Barebones implementation.
4 years ago
Blaž Hrastnik
239db79834
Finally: Retain horizontal position when moving vertically.
4 years ago
Blaž Hrastnik
de5170dcda
Parse input counts: 10w, etc.
4 years ago
Blaž Hrastnik
5e73f83efa
Implement vertical split calculations.
4 years ago
Blaž Hrastnik
d4b85ce18d
popup: wip work on completion popups
4 years ago
Blaž Hrastnik
30d1b7098f
commands: % as select_all.
4 years ago
Blaž Hrastnik
f2c2fa0cad
Restore diagnostics.
4 years ago
Blaž Hrastnik
a924ad2885
simplify.
4 years ago
Blaž Hrastnik
c70080dd68
Work around rendering errors for positions offscreen.
4 years ago
Blaž Hrastnik
9c33b5340a
A dumb "next view" implementation that works.
4 years ago
Blaž Hrastnik
a81b8f3e42
Fix statusline rendering, change colors on active view.
4 years ago
Blaž Hrastnik
a014787ee8
Correctly position the real terminal cursor.
4 years ago
Blaž Hrastnik
446a7e5743
Don't render selections/cursors on views not in focus.
4 years ago
Blaž Hrastnik
448c1abba0
View tree implementation: render multiple split views.
...
Cursors are still a bit buggy and we should render in focus statusbar
differently than in the other pane.
4 years ago
Blaž Hrastnik
2bea5db7bd
commands: Implement select_on_matches.
4 years ago
Blaž Hrastnik
a702af0aeb
commands: add W and B (extend selection by word).
4 years ago
Blaž Hrastnik
d9fb60e301
commands: Simplify code further via Context::doc.
4 years ago
Blaž Hrastnik
05c7fb98df
Refactoring: move language_servers into Editor, proper load for doc.
4 years ago
Blaž Hrastnik
777a80917d
Address clippy lints.
4 years ago
Blaž Hrastnik
7d41550a23
indent: refactor logic to be more correct.
...
Thanks to atom-sane-indentation, nvim-treesitter and tree-sitter-indent.el
for inspiration.
4 years ago
Blaž Hrastnik
941c34a7fc
lsp: Move timeouts into client.request
4 years ago
Blaž Hrastnik
b2800489de
open_below is now indentation-aware.
4 years ago
Blaž Hrastnik
8b95c3353b
lsp: buggy insert completion.
4 years ago
Blaž Hrastnik
3bf4e1e8fa
Update deps.
4 years ago
Blaž Hrastnik
6ec0f8e80f
completion: Don't panic on timeout/no result, just do nothing.
4 years ago
Blaž Hrastnik
3cbab20908
lsp: Fix pos_to_lsp_pos calculation.
4 years ago
Blaž Hrastnik
2ab069bb3f
lsp: Work on syncing the state with the language server.
4 years ago
Blaž Hrastnik
cd16df19c1
lsp: generate_transaction_from_text_edits
4 years ago
Blaž Hrastnik
56f2193811
Retrieve completion options on ctrl-x.
4 years ago
Blaž Hrastnik
955cb81687
Init lsp through the registry.
4 years ago
Blaž Hrastnik
c8424c6ff0
lsp: Re-enable hooks.
4 years ago
Blaž Hrastnik
d61b4854b8
Make sure to clear the whole screen with the background color.
4 years ago
Blaž Hrastnik
4749b39b88
.
4 years ago
Blaž Hrastnik
47e282804d
buffer picker: Mark current view with (*)
4 years ago
Blaž Hrastnik
3d3295bb75
ui: buffer picker on ctrl-b
4 years ago
Blaž Hrastnik
ea502c8665
fix change -> change -> undo -> change -> undo -> undo.
4 years ago
Blaž Hrastnik
d181027225
fix: undo/redo selection handling.
4 years ago
Blaž Hrastnik
25aa45e76c
picker: Factor out file picker, we want to reuse code for other pickers.
4 years ago
Blaž Hrastnik
0b63e838e0
Port over Doc::relative_path.
4 years ago
Blaž Hrastnik
8b263ef04b
picker: open file on Enter.
4 years ago
Blaž Hrastnik
edfd3933db
picker: Implement fuzzy search.
4 years ago
Blaž Hrastnik
7c75ec04e8
File picker mockup, reuses the line editor work done on Prompt.
4 years ago
Blaž Hrastnik
ed60866c54
Add an :o open command.
4 years ago
Blaž Hrastnik
8f0b28aeb8
Make the select prompt interactive.
4 years ago
Blaž Hrastnik
1a843b6c06
prompt: make the callback a FnOnce.
4 years ago
Blaž Hrastnik
2bfdcede32
split_selection
4 years ago
Blaž Hrastnik
f92998a14b
Prompt needs to close on enter.
4 years ago
Blaž Hrastnik
ca809617b2
Take prompt length into account.
4 years ago
Blaž Hrastnik
ed6a4c4bd2
wip: Use prompt for interactive commands.
4 years ago
Blaž Hrastnik
07801b60bc
Remove the prompt on ESC.
4 years ago
Blaž Hrastnik
7dc24a25ba
Move ui modules under a ui:: namespace.
4 years ago
Blaž Hrastnik
ef0d062b1f
Fix cursor positioning.
4 years ago
Blaž Hrastnik
8695415fbf
wip: Move to new rendering structure.
4 years ago
Blaž Hrastnik
29cb33300b
wip
4 years ago
Blaž Hrastnik
ada3f92c5b
wip: Getting the new prompt to render in a new layer.
4 years ago
Blaž Hrastnik
5103dc9617
move commands and keymap back to terminal.
...
Command needs to be able to deal with UI. We'll separate it again later
on.
4 years ago
Blaž Hrastnik
be3c021046
snapshot
4 years ago
Blaž Hrastnik
83f2c24115
wip: Compositor
4 years ago
Blaž Hrastnik
a7869c728c
wip
4 years ago
Blaž Hrastnik
3f707c19f4
Save command
4 years ago
Blaž Hrastnik
8f0bcfe286
Introduce a command context that carries the executor and other fields.
4 years ago
Blaž Hrastnik
ae8a9e5bac
lsp: Make base request methods take &self instead of &mut self.
4 years ago
Blaž Hrastnik
cc6bdf8f66
Text change generation, RPC call handling.
4 years ago
Blaž Hrastnik
af1924404a
Configure logging (-vv for debug level logs)
4 years ago
Blaž Hrastnik
b39849dde1
Refactor: Document type as a wrapper around barebones State.
4 years ago
Blaž Hrastnik
ef5e5f9296
state.version tracking
4 years ago
Blaž Hrastnik
49254d7180
Total mess but it works: diagnostic marking.
4 years ago
Blaž Hrastnik
f9bfba4d96
Reroute LSP notification events into the main app event loop.
4 years ago
Blaž Hrastnik
64b5b23315
Move theme from view to editor, support multiple views in editor.
4 years ago
Blaž Hrastnik
b2b3083a62
Support multiple open views.
4 years ago
Blaž Hrastnik
13cb442850
wip: Fetching diagnostics, parsing notifications.
4 years ago
Blaž Hrastnik
f03830b047
wip: Basic LSP lifecycle requests/notifications.
4 years ago
Jan Hrastnik
1a3c647adf
added col_height calculation
4 years ago
Jan Hrastnik
2b44031929
various fixes
4 years ago
Jan Hrastnik
c9e9fcf7c5
added base col width
4 years ago
Jan Hrastnik
28a1e11fda
added more completions per line
4 years ago
Jan Hrastnik
a123cf37a0
several fixes
4 years ago
Jan Hrastnik
8f37c26f35
completion highlighting
4 years ago
Jan Hrastnik
f3ddb8631f
wip completion
4 years ago
Jan Hrastnik
06502e5a2e
added prompt close
4 years ago
Blaž Hrastnik
bc2c652fe8
Bugfix
4 years ago
Blaž Hrastnik
49b4cdb566
Refactor command calling.
4 years ago
Blaž Hrastnik
49cc6c1924
Refactor Editor into Application and Editor/Workspace.
4 years ago
Jan Hrastnik
267602328c
changed fn to fnmut
4 years ago
Jan Hrastnik
fa55b1e51c
added closures to prompt
4 years ago
Jan Hrastnik
7d58378374
added move left&right, delete char
4 years ago
Jan Hrastnik
ed03ec92a8
moved prompt command matching to prompt.rs
4 years ago
Jan Hrastnik
7208c86f23
separated statusline and prompt
4 years ago
Jan Hrastnik
c60f1a6553
created prompt.rs
4 years ago
Jan Hrastnik
9e7b6465c6
refactoring editor.rs
4 years ago
Jan Hrastnik
0c0c2c7103
modified editor.render() to prepare for command mode rendering
4 years ago
Blaž Hrastnik
4996f1b4d3
Move insert mode commands to a separate namespace.
4 years ago
Blaž Hrastnik
d64f4beede
Share tab width definitions.
4 years ago
Blaž Hrastnik
8098279676
Cleanup
4 years ago
Blaž Hrastnik
b765c17896
Hacky undo/redo integration.
4 years ago
Blaž Hrastnik
9a73d3f1b9
fix clippy warning
4 years ago
Blaž Hrastnik
7f07e66768
Cleanup: track first_line as usize.
4 years ago
Jan Hrastnik
750610f0e7
various fixes
4 years ago
Jan Hrastnik
038201647c
started work on goto mode
4 years ago
Blaž Hrastnik
b7e1c0cf82
Fix cursor positioning on a scrolled buffer.
4 years ago
Blaž Hrastnik
226fa89d46
Fix line number rendering.
4 years ago
Blaž Hrastnik
197651eb30
Merge pull request #2 from helix-editor/tab-implementation
...
added tab to insert mode
4 years ago
Jan Hrastnik
dc11124df5
added tab to insert mode
4 years ago
Blaž Hrastnik
7b4a4f6a3c
Use crate info for clap help text.
4 years ago
Blaž Hrastnik
5945815d97
Fix cursor rendering & placement on append mode.
4 years ago
Blaž Hrastnik
4189c362b2
Fix clippy warnings.
4 years ago
Blaž Hrastnik
e39bd211d1
argh -> clap to speed up compilation (no syn/proc_macro)
4 years ago
Jan Hrastnik
13800e4dd1
removed redundant line
4 years ago
Jan Hrastnik
dd94a39810
moved insert keymap to keymap.rs
4 years ago
Blaž Hrastnik
3feb00283d
clippy warnings
4 years ago
Blaž Hrastnik
3020077da8
Extend selection commands.
4 years ago
Blaž Hrastnik
eb639eb2e4
More robust syntax detection/grammar loading.
4 years ago
Blaž Hrastnik
2c3b10dbb0
Sync up view size to terminal size for now.
4 years ago
Blaž Hrastnik
935cfeae57
Split parts of helix-term into helix-view.
...
It still largely depends on term for some types but I plan to change
that later.
4 years ago
Blaž Hrastnik
48330ddb5f
Command needs access to view information for certain changes.
4 years ago
Blaž Hrastnik
1303ffd94a
Remove old test.
4 years ago
Blaž Hrastnik
91343a6846
Restore terminal mode on panics.
4 years ago
Blaž Hrastnik
929fa5474d
Simple cursor scrolling.
4 years ago
Blaž Hrastnik
b120515613
Range based highlight_iter. Only works on limiting the start right now
4 years ago
Blaž Hrastnik
3859f6963d
More work on the UI.
4 years ago
Blaž Hrastnik
eb477ec442
Speed up surface code by resetting instead of allocating a new one.
4 years ago
Blaž Hrastnik
088f8a82af
Incremental parsing: rough draft.
4 years ago
Blaž Hrastnik
31999d6528
Make state fields read-only from outside the crate.
4 years ago
Blaž Hrastnik
b08278807e
Add 'A', 'I' commands.
4 years ago
Blaž Hrastnik
fb0f56b747
Add 'o' command.
4 years ago
Blaž Hrastnik
eb6b9a9ca9
Support entering newlines.
4 years ago
Blaž Hrastnik
d466882d04
Abstract Transaction::change_by_selection, working del/backspace.
4 years ago
Blaž Hrastnik
f9348d77ec
Fix tests.
4 years ago
Blaž Hrastnik
9546164dc8
cargo fmt & clippy lint
4 years ago
Blaž Hrastnik
a106be94f1
Refactor a little bit.
4 years ago
Blaž Hrastnik
b17a77b8b8
cleanup: Import tree-sitter-highlight so we can cache trees.
4 years ago
Blaž Hrastnik
b647c7a773
tree-sitter based syntax highlighting draft
4 years ago
Blaž Hrastnik
25b3f98e3d
draft: tree-sitter highlighting
4 years ago
Blaž Hrastnik
7eac12a4bb
Add helix-syntax as a wrapper around tree-sitter parsers.
4 years ago
Blaž Hrastnik
e282fc7595
Bump deps, eliminate a lot of transitive deps.
4 years ago
Blaž Hrastnik
9ad40bc40b
Experiment with TUI so we can render selections.
4 years ago
Blaž Hrastnik
67017e5336
append mode
4 years ago
Blaž Hrastnik
dd749bb284
Expand transaction API.
4 years ago
Blaž Hrastnik
4e349add60
cleanup: Remove leftover files.
4 years ago
Blaž Hrastnik
8b3e152126
cleanup: Make Buffer just a part of State.
4 years ago
Blaž Hrastnik
579b6899f1
Work on insert mode.
4 years ago
Blaž Hrastnik
0d56ce9296
Bump deps, make it compile with latest smol.
4 years ago
Blaž Hrastnik
29f1be91a2
Fix clippy lints.
4 years ago
Blaž Hrastnik
4733afa6c2
Update dependencies.
...
smol 0.3 makes setup a whole lot easier.
4 years ago
Jan Hrastnik
8681d47292
remove unused import
4 years ago
Jan Hrastnik
6ba082697d
added cursor rendering
4 years ago
Jan Hrastnik
c3a23a1c09
file now rendered line by line
4 years ago
Jan Hrastnik
e93b15cef3
created view struct
4 years ago
Jan Hrastnik
8958f06f08
added file rendering
4 years ago
Blaž Hrastnik
8119f1ec3d
Refactor editor module to use state + keymap.
4 years ago
Jan Hrastnik
065cbcee9e
fixed async loop
4 years ago
Jan Hrastnik
2985398adc
loop is now async
4 years ago
Jan Hrastnik
19643446cd
editor.rs now uses crossterm
4 years ago
Blaž Hrastnik
f8fe273a2e
Fix build.
5 years ago
Blaž Hrastnik
843c20a550
Add a keymap module.
5 years ago
Blaž Hrastnik
387fb57c94
Allow unused code for the time being.
5 years ago
Blaž Hrastnik
57c2046070
Drop tui.
5 years ago
Blaž Hrastnik
c17045ed07
Fixup Surface
5 years ago
Blaž Hrastnik
613d06dfb0
wip: importing to github
5 years ago
Blaž Hrastnik
6905ff03c2
Start swapping from termwiz to crossterm + async.
5 years ago
Blaž Hrastnik
44ff4d3c1f
Implement a new core based on CodeMirror.
5 years ago
Blaž Hrastnik
240e5f4e3d
Initial import.
5 years ago