dependabot[bot]
b67686d318
build(deps): bump once_cell from 1.9.0 to 1.10.0 ( #1768 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.9.0 to 1.10.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.9.0...v1.10.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>
2022-03-08 08:55:23 +08:00
Gokul Soumya
b0aaf08995
Change parameter object keybind from p
to a
( #1708 )
...
This is largely to avoid a collision with the soon
to be merged paragraph object which takes up the p key.
2022-03-07 16:46:14 +09:00
Blaž Hrastnik
19247ff0ec
Split out typable commands into a separate file
2022-03-07 14:41:28 +09:00
Daniel S Poulin
9bfb0caf1b
Add comment textobject for surround selection and navigation ( #1605 )
2022-03-06 10:54:24 +05:30
Blaž Hrastnik
fd02d1bf89
Fix tab rendering to use dynamic tab width
...
Each tab is just wide enough to round to the nearest tab stop.
Refs #1243
2022-03-04 11:01:33 +09:00
Blaž Hrastnik
5d14f56fa9
Reuse visual_coords_at_pos function in view
2022-03-04 09:36:31 +09:00
Gokul Soumya
74a9dd51ff
Fallback to broader scope if theme scope not found ( #1714 )
2022-03-04 09:35:21 +09:00
Gokul Soumya
c484b08923
Rename infobox theme scopes ( #1741 )
...
This makes it play nicely with https://github.com/helix-editor/helix/pull/1714
2022-03-04 09:31:51 +09:00
Blaž Hrastnik
0062af6a19
minor: Remove some outdated comments
2022-03-03 17:18:26 +09:00
Blaž Hrastnik
737282d0e9
Extract a common function for paste_before/_after
2022-03-03 17:06:14 +09:00
Blaž Hrastnik
68bad148a5
Extract idle timeout code into ui/editor.rs
2022-03-03 16:52:41 +09:00
Blaž Hrastnik
78fba8683b
Picker performance improvements
2022-03-03 16:52:41 +09:00
Blaž Hrastnik
c0b86afdc8
Refactor align_selection by simplifying the calculation
2022-03-03 10:44:57 +09:00
Bob Qi
1c1aee74b4
refactor align_selection using kakoune logic
2022-03-03 10:44:57 +09:00
Gokul Soumya
5c810e5e52
Fix bug with auto replacing components in compositor ( #1711 )
...
* Fix bug with auto replacing components in compositor
This was last known to be working with 5995568c
at the
time of commit, but now doesn't work with latest rust
stable.
The issue probably stems from using
std::any::type_name() for finding a component in the
compositor, for which the docs explicitly warn against
considering it as a unique identifier for types.
`replace_or_push()` takes a boxed `Component` and
passes it to `find_id()` which compares this with a
bare Component. `type_name()` returns `Box<T>` for
the former and `T` for latter and we have a false
negative. This has been solved by using a generics
instead of trait objects to pass in a `T: Component`
and then use it for comparison.
I'm not exactly sure how this worked fine at the
time of commit of 5995568c; maybe the internal
implementation of `type_name()` changed to properly
indicate indirection with Box.
* Do not compare by type name in compositor find_id
2022-03-03 10:14:50 +09:00
Philipp Mildenberger
49c5bc5934
Add jumplist support for the search ( closes #1625 ) ( #1718 )
2022-03-01 20:57:57 +09:00
Mateusz S. Szczygieł
14e2ced440
Make repeat operator work with completion edits ( #1640 )
...
* add basic completion replay
* use transaction as the last completion
* completion replay only on trigger position
* cache changes in CompletionAction
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2022-03-01 10:45:29 +09:00
Daniel S Poulin
78d37fd332
Implement bulk buffer closing commands ( #1677 )
...
* Implement buffer-close-all
* Implement buffer-close-others
* Refactor all buffer close variants to use shared logic
* Fix clippy lint
* Docgen for new commands
* Shorten error message for attempting to close buffers that don't exist
* Refactor shared buffer methods to pass only editor, not whole compositor
* Switch signature of bulk buffer closing to use slice of DocumentIds
Addresses feedback that accepting an IntoIterator implementor is too
much for an internal. Also possibly saves some moving?
2022-03-01 10:31:24 +09:00
Ludwig Stecher
59c691d2db
Highlight matching text in file picker suggestions ( #1635 )
...
* Highlight matching text in file picker suggestions
* Remove cache, specialize highlighting code
* Fix outdated comments
2022-03-01 10:30:02 +09:00
Daniel S Poulin
b13d44156c
Show infobox to hint textobjects with mi
and ma
( #1686 )
...
* Show infobox to hint textobjects with `mi` and `ma`
* Add note to infobox than any pair of characters will work too
The wording could probably be a little more clear, but I wanted to
keep it short but still accurate.
* Don't allocate a vec for the static help text
* Fix bug where `mi<esc>` would swallow next input and persist infobox
* Better help text for arbitrary pair matching in textobject selection
* Add way to add fake pending key data below status, use with `mi`/`ma`
This is a bit hacky as it makes use of global state which will end
up managed in multiple places, but has precedent in the way autoinfo
works. There should probably be a bigger refactor to handle this
kind of state better.
* Return early on anything other than `mi` and `ma` for autoinfo
* Remove "ascii" from help text with `mi` and `ma`
* Update helix-term/src/ui/editor.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2022-03-01 10:29:22 +09:00
Daniel S Poulin
bdbf423876
Minor cleanup of file picker file gathering logic ( #1683 )
...
* Refactor file picker filetype filter logic to remove panic, make clearer
An unwrap was unneccesarily present due to a prior contribution of mine
which was before I had any understanding of error handling in Rust. I've
also swapped a match for an if let, as was originally suggested in the
original pull request adding filetype filtering, but was merged before I
could address.
* Add some comments to the file picker code for clarity
* Switch to expect instead of ignoring type def error
2022-03-01 10:16:25 +09:00
Triton171
f044059a2a
Implement LSP workspace/configuration
and workspace/didChangeConfiguration
( #1684 )
...
* Implement LSP `workspace/configuration` request
* Implement LSP `workspace/didChangeConfiguration` notification.
* Simplify retrieval of LSP configuration
* Implement suggestions from PR discussion
Co-authored-by: Triton171 <triton0171@gmail.com>
2022-02-28 17:57:22 +09:00
Gokul Soumya
c15996aff5
Show surround delete and replace errors in editor ( #1709 )
...
* Refactor surround commands to use early returns
* Show surround delete and replace errors in editor
2022-02-28 17:56:39 +09:00
Michael Davis
39f7ba36e0
ignore Enter keypress when menu has no selection ( #1704 )
...
* ignore Enter keypress when menu has no selection
supersedes #1622
Builds on the work in #1285 . I want to allow Enter to create a newline
when there is no selection in the autocomplete menu.
This occurs somewhat often when using LSP autocomplete in Elixir which
uses `do/end` blocks (and I set the autocomplete menu delay to 0 which
exacerbates the problem):
```elixir
defmodule MyModule do
def do_foo(x) do
x
end
def other_function(y) do|
end
```
Here the cursor is `|` in insert mode. The LSP suggests `do_foo` but I
want to create a newline. Hitting Enter currently closes the menu,
so I end up having to hit Enter twice when the module contains any
local with a `do` prefix, which can be inconsistent. With this change,
we ignore the Enter keypress to end up creating the newline in this case.
* pop compositor layer when ignoring Enter keypress
* move closing function out of consumed event result closure
* explicitly label close_fn as an 'Option<Callback>'
2022-02-27 16:20:21 +09:00
Gokul Soumya
8e07e1b898
Alert if LSP is inactive when command is invoked ( #1703 )
2022-02-25 17:53:10 +09:00
Matouš Dzivjak
951fd1c80e
fix(commands): don't indent empty lines ( #1653 )
...
* fix(commands): don't indent empty lines
Fixes: https://github.com/helix-editor/helix/issues/1642
* Apply suggestions
* Update helix-term/src/commands.rs
* Update helix-term/src/commands.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2022-02-25 17:49:02 +09:00
Skyler Hawthorne
a494f47a5d
Configurable auto pairs ( #1624 )
...
* impl auto pairs config
Implements configuration for which pairs of tokens get auto completed.
In order to help with this, the logic for when *not* to auto complete
has been generalized from a specific hardcoded list of characters to
simply testing if the next/prev char is alphanumeric.
It is possible to configure a global list of pairs as well as at the
language level. The language config will take precedence over the
global config.
* rename AutoPair -> Pair
* clean up insert_char command
* remove Rc
* remove some explicit cloning with another impl
* fix lint
* review comments
* global auto-pairs = false takes precedence over language settings
* make clippy happy
* print out editor config on startup
* move auto pairs accessor into Document
* rearrange auto pair doc comment
* use pattern in Froms
2022-02-25 17:36:54 +09:00
Blaž Hrastnik
b935fac957
Fix 1.60 lints
2022-02-25 13:06:11 +09:00
Blaž Hrastnik
9712bbb23b
Use which to resolve lsp/dap binaries
...
This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
2022-02-24 11:38:40 +09:00
Bram
40eb1268c7
Close some popups automatically ( #1285 )
...
* Add Event::Used to use event callback without consuming
* Close popup if contents ignored event
* collect event results before executing callbacks
* don't add new result variant, use Ignored(..) instead
* break in match cases
* Make auto_close configurable
* fix merge
* auto close hover popups
* fix formatting
2022-02-23 12:46:12 +09:00
Blaž Hrastnik
24f86017a6
fix: ui: Markdown popups stopped taking vertical padding into account
...
Fix #1688
2022-02-21 23:24:03 +09:00
Blaž Hrastnik
1ca6ba03ca
Simplify some code
2022-02-21 16:47:14 +09:00
Alex
d5ba0b5162
Allow separate styles for markup headings ( #1618 )
...
* update markdown highlighting to use separate heading themes
* remove markdown theme scopes in ui
2022-02-21 16:45:48 +09:00
Daniel S Poulin
700058f433
Always ignore the .git directory in file picker ( #1604 )
...
Some users (including myself) want to turn off filtering of files
prefixed with `.`, as they are often useful to edit. For example, `.env`
files, configuration for linters `.eslint.json` and the like.
2022-02-20 15:47:43 +09:00
Blaž Hrastnik
c7b326be04
ui: prompt: Render aliases + border on the doc
2022-02-20 14:55:16 +09:00
Blaž Hrastnik
2af04325d8
fix: Allow multi-line prompt documentation
2022-02-20 14:44:44 +09:00
Blaž Hrastnik
a449156702
Extract a lsp position helper
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
5af9136aec
Extract some duplication in lsp goto_ calls
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
1cd710fe01
Extract jump_to_location
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
4e845409b6
Extract a common "language server or return" macro
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
c06155ace4
Extract a helper function for lsp::Location
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
504d5ce8bd
Move most LSP specific commmands to commands::lsp
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
7b1d682fe5
dap: fix runInTerminal with lldb-vscode
2022-02-18 14:37:59 +09:00
Blaž Hrastnik
4e1b3b12f3
Refactor symbol picker to share code
2022-02-18 13:50:06 +09:00
Michael Davis
a8cf0c6b90
filter git revision on git command success exit code ( #1674 )
...
The unwrap (or '.ok()' rather) triggers for some errors but not
negative status codes. In the case where helix is being packaged
in an empty git repository, the existing mechanism will fail because
git init
git rev-parse HEAD
gives a negative exit code and prints to stderr
stderr: "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree....
with a stdout of "HEAD\n" (too short to slice with [..8]).
2022-02-18 13:05:12 +09:00
tomKPZ
368064e316
Fix bug when launching hx file.rs:10 ( #1676 )
2022-02-18 12:13:02 +09:00
Matouš Dzivjak
afec54485a
feat(commands): command palette ( #1400 )
...
* feat(commands): command palette
Add new command to display command pallete that can be used
to discover and execute available commands.
Fixes: https://github.com/helix-editor/helix/issues/559
* Make picker take the whole context, not just editor
* Bind command pallete
* Typable commands also in the palette
* Show key bindings for commands
* Fix tests, small refactor
* Refactor keymap mapping, fix typo
* Ignore sequence key bindings for now
* Apply suggestions
* Fix lint issues in tests
* Fix after rebase
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2022-02-17 14:03:11 +09:00
Blaž Hrastnik
24f90ba8d8
Manually recalculate initial completion where it matters
2022-02-17 14:02:42 +09:00
Blaž Hrastnik
af21e2a5b4
Pass through Editor instead of Context
2022-02-17 14:02:42 +09:00
Cole Helbling
e023a78919
WIP: show all buffers that couldn't be closed
2022-02-17 14:02:42 +09:00
Cole Helbling
6118486eb2
helix-term: implement buffer completer
...
In order to implement this completer, the completion function needs to
be able to access the compositor's context (to allow it to get the
list of buffers currently open in the context's editor).
2022-02-17 14:02:42 +09:00
Cole Helbling
a1207fd768
helix-term/commands: display buffer id in picker
2022-02-17 14:02:42 +09:00
Blaž Hrastnik
d11b652139
Allow static strings in set_status/set_error so API is nicer
2022-02-15 16:45:28 +09:00
Blaž Hrastnik
fd0e4b1159
dap: Reduce amount of block_on uses
2022-02-15 16:30:23 +09:00
Gokul Soumya
966fbc5984
Add tree-sitter based function, class navigation
2022-02-15 14:04:46 +09:00
Blaž Hrastnik
1422449537
..
2022-02-15 11:37:33 +09:00
Blaž Hrastnik
eeb9b39857
Fix build on master
2022-02-15 10:33:55 +09:00
Ludwig Stecher
4429993842
Add PageUp
, PageDown
, Ctrl-u
, Ctrl-d
, Home
, End
keyboard shortcuts to file picker ( #1612 )
...
* Add `PageUp`, `PageDown`, `Ctrl-u`, `Ctrl-d`, `Home`, `End` keyboard shortcuts to file picker
* Refactor file picker paging logic
* change key mapping
* Add overlay component
* Use closure instead of margin to calculate size
* Don't wrap file picker in `Overlay` automatically
2022-02-15 10:24:03 +09:00
Kirawi
23907a063c
use PathBuf::to_string_lossy() instead of to_str() ( #1655 )
2022-02-15 10:22:55 +09:00
Gokul Soumya
4c424d5ee4
Refactor language config loading ( #1658 )
2022-02-15 01:41:53 +09:00
Blaž Hrastnik
97d4b2b5fe
Mark DAP as experimental
2022-02-13 18:32:57 +09:00
Blaž Hrastnik
bd549d8a20
Merge remote-tracking branch 'origin/master' into debug
2022-02-13 18:31:51 +09:00
Cydiater
7083b98a38
postpone clone after found ( #1656 )
2022-02-13 13:53:35 +09:00
Blaž Hrastnik
1bcb624ae6
Instant is more suitable than SystemTime for spinners
2022-02-10 11:12:47 +09:00
Blaž Hrastnik
f88c077f99
Replace tendril with smartstring
...
Slightly smaller API surface, less dependencies.
2022-02-10 11:12:47 +09:00
Matouš Dzivjak
fdb9a1677b
feat(editor): add config for search wrap_around ( #1516 )
...
* feat(editor): add config for search wrap_around
Fixes: https://github.com/helix-editor/helix/issues/1489
* Move search settings into separate config
* Disable linter
2022-02-10 11:04:40 +09:00
Gokul Soumya
bf773db451
Show infobox with register contents
2022-02-10 10:52:06 +09:00
Gokul Soumya
5995568c1d
Prevent multiple code action popups
2022-02-08 16:44:39 +09:00
Gokul Soumya
547c3ecd0c
Preselect first item in code action popup menu
2022-02-08 16:44:39 +09:00
Gokul Soumya
e90276df0b
Replace if let with early return
2022-02-08 16:44:39 +09:00
Blaž Hrastnik
23553bd37c
Update dependencies (crossterm 0.23, tree-sitter 0.20.4)
...
Fixes #677
2022-02-07 10:47:57 +09:00
Blaž Hrastnik
e7f5ec5561
fix: There is no such thing as markup.normal, use ui.text
2022-02-07 10:30:03 +09:00
Blaž Hrastnik
6ea477ab60
Don't use block_on in jobs.finish(), we can .await
2022-02-05 15:05:19 +09:00
Blaž Hrastnik
d3221b03a2
fix: Only parse git revision, don't use the tag for version
...
If building from source and the source is contained in a larger
repository, we'd contain the wrong version. It's also easy to
accidentally have a newer tag that would change the version.
2022-02-03 01:19:44 +09:00
Blaž Hrastnik
36b975c4ce
ui: menu: Don't allocate scrollbar space if options fit
2022-02-01 01:25:59 +09:00
Blaž Hrastnik
f10a06f4de
ui: Only render menu scrollbar if it doesn't fit
2022-01-31 16:04:58 +09:00
Blaž Hrastnik
094a0aa3f9
Render code actions as a menu, allow adding padding to popup
2022-01-31 16:04:58 +09:00
Blaž Hrastnik
f7f55143a1
Improve code action picker by displaying it inline
2022-01-31 16:04:58 +09:00
Blaž Hrastnik
62561e9d23
Stop collecting highlight_iter events then turning back into iter
2022-01-30 22:38:44 +09:00
Blaž Hrastnik
5aead46f4b
Remove some unnecessary clippy tags
2022-01-30 22:38:44 +09:00
Blaž Hrastnik
2a7ae963e1
Automatically commit changes to history if not in insert mode
...
Fixes #1500
2022-01-30 22:38:44 +09:00
CossonLeo
d49e5323f9
Use markup scopes for the Markdown component ( #1363 )
2022-01-24 10:41:25 +09:00
Benjamin
4044c70eb2
Fix picker won't scroll down when it hits the bottom #1544 ( #1567 )
2022-01-23 23:06:28 +09:00
Ivan Tham
759b850859
Allow specifying file start position ( #445 )
...
Like helix-term/src/commands.rs:3426:15
2022-01-23 16:54:03 +09:00
Blaž Hrastnik
e2d2f19fd0
Merge pull request #1154 from sudormrfbin/cursor-shape-new
...
Change cursor shape on mode change
2022-01-23 16:35:22 +09:00
Blaž Hrastnik
add3be8528
Slicing micro-optimization
2022-01-23 16:04:26 +09:00
Blaž Hrastnik
11c3ba9350
Speed up ensure_next_boundary during render
...
This code:
let start = ensure_grapheme_boundary_next(text, text.byte_to_char(start));
let end = ensure_grapheme_boundary_next(text, text.byte_to_char(end));
Would convert byte to char index, but then internally immediately convert back
to byte index, operate on it, then convert it to char index.
This change reduces the amount of time spent in ensure_grapheme_boundary from
29% to 2%.
2022-01-23 16:04:12 +09:00
Blaž Hrastnik
53d881f172
Store theme scopes on the loader, this way theme isn't passed around
2022-01-23 16:00:24 +09:00
Blaž Hrastnik
6728e44490
syntax: Split parsing and highlighting
2022-01-23 16:00:24 +09:00
Michael Davis
f453f8724d
change show_subtree command into ':tree-sitter-subtree' typable command ( #1524 )
...
* add default keymap for show_subtree command
* remove space+t keymap
* add a typable command ':show-subtree'
* generate documentation for ':show-subtree'
* remove non-typable show_subtree command
* ':show-subtree'->':tree-sitter-subtree'
2022-01-21 23:15:35 +09:00
Michael Davis
392dfa0841
add select_next_sibling and select_prev_sibling commands ( #1495 )
...
* add select_next_sibling and select_prev_sibling commands
* refactor objects to use higher order functions
* address clippy feedback
* move selection cloning into commands
* add default keybindings under left/right brackets
* use [+t,]+t for selecting sibling syntax nodes
* setup Alt-{j,k,h,l} default keymaps for syntax selection commands
* reduce boilerplate of select_next/prev_sibling in commands
* import tree-sitter Node type in commands
2022-01-21 00:52:33 +09:00
Skyler Hawthorne
96d4ca5f73
Dependabot/cargo/pulldown cmark 0.9.1 ( #1533 )
...
* build(deps): bump pulldown-cmark from 0.8.0 to 0.9.1
Bumps [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark ) from 0.8.0 to 0.9.1.
- [Release notes](https://github.com/raphlinus/pulldown-cmark/releases )
- [Commits](https://github.com/raphlinus/pulldown-cmark/compare/v0.8.0...v0.9.1 )
---
updated-dependencies:
- dependency-name: pulldown-cmark
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* cmark 0.9 fixes
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-18 09:41:44 +08:00
Blaž Hrastnik
e7eab95b94
Update to rust 1.58, fix a bunch of optional lints
2022-01-16 14:19:48 +09:00
Mathis Brossier
f5b0821860
Fix panics when resizing ( #1408 )
...
* Change buffer.get & buffer.get_mut to return Option, Implement Trait Index & IndexMut to panic
* Prevent FilePicker from drawing outside buffer (rust panics)
* apply suggestion
* add function in_bounds to avoid useless calculations
Co-authored-by: mathis <mathis.brossier@universite-paris-saclay.fr>
2022-01-16 10:55:28 +09:00
WindSoilder
22297d0b40
Add alt-backspace, alt-<, alt->, ctrl-j to insert mode ( #1441 )
...
* add alt-backspace keymap to delete word backward
* add more useful keymap
* map to correct command
* add C-j to insert_newline
2022-01-16 10:41:21 +09:00
Matouš Dzivjak
38ca8daa09
fix(commands): run fmt for all documents being closed ( #1444 )
...
When writing all documents, fmt wouldn't be run.
Run fmt in close all implementation so that all documents
are formatted if necessary.
Fixes: https://github.com/helix-editor/helix/issues/1442
2022-01-16 10:39:49 +09:00
Michael Davis
64d3e7b705
add show_subtree command for viewing tree-sitter subtree in Popup ( #1453 )
...
* add show_subtree command for viewing tree-sitter subtree in Popup
* remove '.slice(..)' from show_subtree command
* name docs and subtree Popups 'hover'
2022-01-16 10:26:09 +09:00
Kevin Sjöberg
3a34036310
Use the correct language ID for JavaScript & TypeScript ( #1466 )
...
* Use correct language ID for JavaScript/TypeScript
* Add missing slash
* Only calculate fallback when needed
2022-01-15 15:23:06 +09:00
Mathis Brossier
85cf2648a2
buffer picker allow hsplit / vsplit ( #1502 )
2022-01-14 15:32:24 +09:00
Gokul Soumya
b3b4e78585
Merge branch 'master' into cursor-shape-new
2022-01-09 10:38:58 +05:30
Benoît Cortier
05e5520ec0
Put some tests behind #[cfg(test)] ( #1459 )
...
It was missing in a few places.
2022-01-09 00:32:50 +09:00
Gokul Soumya
449624965b
Merge branch 'master' into cursor-shape-new
2022-01-06 11:32:03 +05:30
Matouš Dzivjak
2e02a1d6bc
feat(commands): shrink_selection ( #1340 )
...
* feat(commands): shrink_selection
Add `shrink_selection` command that can be used to shrink
previously expanded selection.
To make `shrink_selection` work it was necessary to add
selection history to the Document since we want to shrink
the selection towards the syntax tree node that was initially
selected.
Selection history is cleared any time the user changes
selection other way than by `expand_selection`. This ensures
that we don't get some funky edge cases when user calls
`shrink_selection`.
Related: https://github.com/helix-editor/helix/discussions/1328
* Refactor shrink_selection, move history to view
* Remove useless comment
* Add default key mapping for extend&shrink selection
* Rework contains_selection method
* Shrink selection without expand selects first child
2022-01-06 11:12:02 +09:00
Blaž Hrastnik
3e4f81547c
fix: Use std::path::MAIN_SEPARATOR to determine completion
...
Refs #1439
2022-01-06 11:03:54 +09:00
Stuart Hinson
b18bda928f
fix slash in search selector status message ( #1449 )
2022-01-06 10:39:19 +09:00
Blaž Hrastnik
7767703979
fix: Only use shellwords parsing on unix platforms
2022-01-05 11:01:30 +09:00
Blaž Hrastnik
bed9aced5f
Revert "Convert Windows style path separator in completers to Unix style ( #1389 )"
...
This reverts commit 49444f9c05
.
2022-01-05 10:58:12 +09:00
Blaž Hrastnik
efaac6c5d3
Release 0.6
2022-01-04 18:54:37 +09:00
Mathis Brossier
dbaed0ba83
scroll: change only main selection, only when needed ( #1420 )
...
Co-authored-by: mathis <mathis.brossier@universite-paris-saclay.fr>
2022-01-03 11:50:53 +09:00
Omnikar
ed97ecceb8
Add :cquit!
command and prevent :cquit
from ignoring unsaved changes ( #1414 )
...
* Add `:cquit!` command and prevent `:cquit` from ignoring unsaved changes
* `cargo xtask docgen`
2022-01-03 11:31:24 +09:00
Triton171
4da050b4bb
Add basic indentation for languages without treesitter-based indentation rules (always use the indent of the current line for a new line). ( #1341 )
...
Fix several bugs in the treesitter indentation calculation.
Co-authored-by: Triton171 <triton0171@gmail.com>
2022-01-03 11:03:57 +09:00
Kirawi
93a948d889
switch redundant current! usage to doc! ( #1416 )
2022-01-03 10:46:57 +09:00
Alexis Mousset
8a019b423f
Detect workspace root using language markers ( #1370 )
...
* Detect workspace root using language markers
* Avoid allocating root_markers
* Update helix-core/src/lib.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Update helix-core/src/lib.rs
Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com>
2021-12-31 17:06:54 +09:00
Blaž Hrastnik
a066f59dc8
Don't just filter commands by fuzzy match, also order the matches
2021-12-30 15:20:22 +09:00
ath3
49444f9c05
Convert Windows style path separator in completers to Unix style ( #1389 )
2021-12-30 00:30:20 +09:00
WindSoilder
f1ed042c84
Fix: when goto normal mode, only want to remove indentation if the line is blank with no text following ( #1349 )
...
* when opened new line contains other characters after current position, don't dedent
* abstract checking logic
2021-12-29 18:21:20 +09:00
Stuart Hinson
34db33e1dc
Use a fuzzy matcher for commands ( #1386 )
...
* Use a fuzzy matcher for commands
* Take Clippy up on its suggestion
* Rescope FUZZY_MATCHER
2021-12-29 18:18:17 +09:00
Matouš Dzivjak
bd2ab5be43
feat(commands): ensure_selections_forward ( #1393 )
...
* feat(commands): ensure_selections_forward
Add command that ensures that selections are in forward direction.
Fixes: https://github.com/helix-editor/helix/issues/1332
* Add keybinding for ensure_selections_forward
Add `A-:` keybinding for the ensure_selections_forward command.
* Re-use range.flip for flip_selections command
2021-12-29 18:17:46 +09:00
Omnikar
5b69e9b466
Fix indentation ( #1387 )
2021-12-28 08:03:14 +09:00
Matouš Dzivjak
a4641a8613
feat(commands): sort command ( #1288 )
...
* feat(commands): sort/rsort command
Add basic implementation of sort command.
* Sort by selections instead, implement reverse sort
* Generate docs
* Rename sort! to rsort
2021-12-27 13:11:06 +09:00
Omnikar
8340d73545
Extract macro parsing to helix-view
and add unit tests
2021-12-27 10:13:18 +09:00
Omnikar
2d4bc0aec7
Change how macros separate keypresses
...
* Keypresses are no longer separated by spaces
* Single-character keypresses are serialized as-is
* Multi-character keypresses are delimited by `<>`
2021-12-27 10:13:18 +09:00
Ivan Tham
ee3eb4057a
Update macro display as [q] in message
2021-12-27 10:13:18 +09:00
Ivan Tham
b9cb3930e2
Mark macros as experimental in docs
...
Given that currently macro does not integrate well with registers and
the internal representation of macros is expected to be changed.
2021-12-27 10:13:18 +09:00
Ivan Tham
9a32617b30
Rename play macro to replay macro
...
Macro needs to be defined first before playing so replay is more accurate.
Also, replay have the same length as record which makes it looks nice.
2021-12-27 10:13:18 +09:00
Ivan Tham
5326a05117
Improve macro error handling
2021-12-27 10:13:18 +09:00
Ivan Tham
c7a59e24e6
Switch macro Q and q
2021-12-27 10:13:18 +09:00
Tamo
a306a1052a
Update settings at runtime ( #798 )
...
* feat: Update settings at runtime
fix the clippy warning
* update the documentation
* use to_value instead of to_vec+from_value
* drop the equal
* remove an useless comment
* apply suggestion
2021-12-26 10:04:33 +09:00
Matouš Dzivjak
4b0b1a5657
feat(ui): file encoding in statusline ( #1355 )
...
* feat(ui): file encoding in statusline
Display file encoding in statusline if the encoding
isn't UTF-8.
* Re-export encoding_rs from core
From there it can be imported by other mods
that rely on it.
2021-12-26 00:10:46 +09:00
Gabriel Berto
5d7b5db8ab
Resolve completion item ( #1315 )
...
Co-authored-by: Gabriel Berto <gabriel.berto@pottencial.com.br>
2021-12-25 19:00:57 +09:00
Matouš Dzivjak
0e7d757869
feat(lsp): configurable diagnostic severity ( #1325 )
...
* feat(lsp): configurable diagnostic severity
Allow severity of diagnostic messages to be configured.
E.g. allow turning of Hint level diagnostics.
Fixes: https://github.com/helix-editor/helix/issues/1007
* Use language_config() method
* Add documentation for diagnostic_severity
* Use unreachable for unknown severity level
* fix: documentation for diagnostic_severity config
2021-12-25 14:32:43 +09:00
BB
60f3225c7f
Truncate the start of file paths in the StatusLine ( #1351 )
...
* Truncate the start of file paths in the StatusLine
* cargo fmt
Co-authored-by: Bódi Balázs <97936@4ig.hu>
2021-12-25 14:24:29 +09:00
Gokul Soumya
c0bbadcaaf
Manually draw all block cursors
2021-12-23 11:56:52 +05:30
Matouš Dzivjak
75a8b789d2
LSP code action commands ( #1304 )
...
* feat(lsp): codeAction commands
* Don't block on command call
* Fix lifetime of command execution
* Fix lint issues
2021-12-21 18:21:45 +09:00
WindSoilder
600ce70cf6
Improve dedent behavior ( #1232 )
...
* tmp add code for dedent
* finish normal_mode with dedent behavior
* use function pointer
* rebase from origin
* check dedent condition inside normal_mode implementation
* using if let...
* fix check
* using char_is_whitespace instead of ch.is_whitespace
* fix clippy
* abstract restore_indent function
2021-12-21 18:17:55 +09:00
dependabot[bot]
5dfdc95f6f
build(deps): bump once_cell from 1.8.0 to 1.9.0 ( #1322 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.8.0 to 1.9.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.8.0...v1.9.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>
2021-12-21 08:48:53 +09:00
Ivan Tham
f174d27d0d
Change text for gg to explain <n>gg ( #1287 )
2021-12-18 20:28:17 +05:30
Kirawi
02fc52f6d5
Apply recent nightly suggestions ( #1286 )
...
array iterators are now implicit
2021-12-18 14:57:49 +09:00
Gokul Soumya
d4fb1d0633
Merge branch 'master' into cursor-shape-new
2021-12-18 08:33:15 +05:30
Gokul Soumya
016640f4fb
Remove ui.cursor.primary and hashmap lookups
2021-12-18 08:26:11 +05:30
Omnikar
6da2174e14
Allow paste commands to take a count ( #1261 )
...
* Allow paste commands to take a count
* Call `.repeat` within iterator methods
* Implement counts for paste-replace
2021-12-14 17:49:29 +09:00
Midnight Exigent
e188926138
Fix panic when scrolling through completion popup ( #1260 )
...
* fix(completion_popup): Fixes #1256
* Update helix-term/src/ui/completion.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-12-14 10:14:23 +09:00
Skyler Hawthorne
94535fa013
Add auto pairs for same-char pairs ( #1219 )
...
* Add auto pairs for same-char pairs
* Add unit tests for all existing functionality
* Add auto pairs for same-char pairs (quotes, etc). Account for
apostrophe in prose by requiring both sides of the cursor to be
non-pair chars or whitespace. This also incidentally will work for
avoiding a double single quote in lifetime annotations, at least until
<> is added
* Slight factor of moving the cursor transform of the selection to
inside the hooks. This will enable doing auto pairing with selections,
and fixing the bug where auto pairs destroy the selection.
Fixes #1014
2021-12-14 00:58:58 +09:00
Blaž Hrastnik
730d3be201
Add ui.gutter to theme all gutters (i.e. set bg)
2021-12-14 00:52:15 +09:00
Omnikar
cce34feb4e
Assume true color support on Windows
2021-12-14 00:48:45 +09:00
Omnikar
98ce2a301d
Load alt default theme if true color is not supported
...
* Move `runtime/themes/base16_default_terminal.toml` to
`base16_theme.toml` alongside `theme.toml`
* Use `terminfo` crate to detect whether the terminal supports true
color and, if the user has no theme configured and their terminal does
not support true color, load the alt default theme instead of the
normal default.
Remove `terminfo` dependency, use `COLORTERM` env instead
Prevent user from switching to an unsupported theme
Add `true-color-override` option
If the terminal is wrongly detected to not support true color,
`true-color-override = true` will override the detection.
Rename `true-color-override` to `true-color`
2021-12-14 00:47:18 +09:00
Blaž Hrastnik
7ad8eaaef0
wip
2021-12-14 00:41:51 +09:00
Blaž Hrastnik
b25d453f64
minor: Shorten goto file(s) descriptions
2021-12-13 14:36:53 +09:00
Omnikar
e91d357fae
Macros ( #1234 )
...
* Macros WIP
`helix_term::compositor::Callback` changed to take a `&mut Context` as
a parameter for use by `play_macro`
* Default to `@` register for macros
* Import `KeyEvent`
* Special-case shift-tab -> backtab in `KeyEvent` conversion
* Move key recording to the compositor
* Add comment
* Add persistent display of macro recording status
When macro recording is active, the pending keys display will be shifted
3 characters left, and the register being recorded to will be displayed
between brackets — e.g., `[@]` — right of the pending keys display.
* Fix/add documentation
2021-12-12 21:16:48 +09:00
ath3
3156577fbf
Open files with spaces in filename, allow opening multiple files ( #1231 )
2021-12-12 21:13:33 +09:00
Blaž Hrastnik
3307f44ce2
ui: popup: Don't allow scrolling past the end of content
2021-12-10 19:23:58 +09:00
Omnikar
b66d3d3d9d
Add save_selection
command ( #1247 )
2021-12-10 11:46:24 +09:00
Omnikar
44681c5057
Add default-run = "hx"
to helix-term/Cargo.toml
( #1244 )
...
Following the addition of `xtask`, `cargo run` has multiple possible
targets, necessitating the usage of `cargo run --bin hx` to run Helix
during development. This allows `cargo run` to be used to run `hx`.
2021-12-10 11:04:31 +09:00
Blaž Hrastnik
df3b88387b
dap: Improve variables UI
2021-12-09 11:28:53 +09:00
Blaž Hrastnik
dac317e620
TODO
2021-12-09 10:55:32 +09:00
Blaž Hrastnik
60c86eff89
dap: Simplify a few more statements that could use the debugger macro
2021-12-09 10:55:32 +09:00
Kirawi
29c053e84e
Only use a single documentation popup ( #1241 )
2021-12-08 16:11:18 +09:00
Gokul Soumya
71292f9f11
docs: Auto generate command list
2021-12-08 10:23:50 +09:00
Blaž Hrastnik
d8351d35ab
dap: Extract a macro that fetches a debugger or returns
2021-12-08 00:59:11 +09:00
Blaž Hrastnik
e98993d609
dap: Fix an off-by-one error when jumping
2021-12-08 00:22:48 +09:00
WindSoilder
93e276cd9d
Make kill_to_line_end behave like emacs ( #1235 )
2021-12-07 01:44:04 +09:00
Blaž Hrastnik
cab09093dd
fix: Normalize backtab into shift-tab
...
Fixes #1150
2021-12-06 12:25:19 +09:00
Blaž Hrastnik
bf8437d098
clippy lint
2021-12-06 09:36:02 +09:00
Blaž Hrastnik
dc8df7ba21
Make thread_picker non-blocking
2021-12-06 09:35:59 +09:00
Blaž Hrastnik
2b4de41bf0
dap: Reply to RunInTerminal
2021-12-06 09:32:21 +09:00
Blaž Hrastnik
d5d1a9b1ae
Apply suggestions from code review
...
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-12-06 09:32:11 +09:00
Jason Rodney Hansen
461cd20563
Small change
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
31ed91dc2e
Don't increment for overlapping changes
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
c74cd48f38
Cleanup
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
37e484ee38
Add support for time and more date formats
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
c9641fcced
Add Increment
trait
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
c1f6167e37
Add support for dates for increment/decrement
2021-12-05 16:22:58 +08:00
ath3
11a2f9ac31
Assert in release mode too on duplicate keys ( #1228 )
2021-12-05 13:04:10 +09:00
Oskar Nehlin
a06871a689
feat: Make it possible to keybind TypableCommands
( #1169 )
...
* Make TypableCommands mappable
* Fix pr comments
* Update PartialEq implementation
2021-12-04 20:17:18 +05:30
Blaž Hrastnik
5545f8ebb5
dap: Add RunInTerminal reverse request, support replying to requests
2021-12-03 16:09:28 +09:00
Blaž Hrastnik
43fbb6d965
Make dap_start non-blocking
2021-12-03 13:27:00 +09:00
Blaž Hrastnik
371c84f70b
cargo fmt
2021-12-03 12:51:55 +09:00
Blaž Hrastnik
34f46e7502
Bump rust to 1.57, fix new lint failures
2021-12-03 12:48:07 +09:00
Blaž Hrastnik
2dbf966293
dap: Start working on runInTerminal support
2021-12-03 11:59:44 +09:00
Ivan Tham
e2b428cc2d
Add last modified file (gm) ( #1093 )
2021-12-02 13:46:57 +09:00
Bob
418b833d2b
fix goto_window index crash ( #1207 )
2021-12-02 13:42:34 +09:00
Blaž Hrastnik
d14ca05d6b
Simplify some cases that use return None to use ?
2021-12-02 10:31:19 +09:00
Blaž Hrastnik
de5e5863aa
dap: Use cursor_line over cursor + char_to_line
2021-12-02 10:24:17 +09:00
Blaž Hrastnik
54f8e5c9c3
dap: Fix an off-by-one and move the function over to commands/dap
2021-12-02 10:22:17 +09:00
Blaž Hrastnik
573cb39926
dap: Remove some unwraps
2021-12-02 10:20:19 +09:00
Blaž Hrastnik
ffc89e483b
Mark some more TODOs as resolved
2021-12-01 19:28:29 +09:00
Blaž Hrastnik
dfd499f5a9
dap: Highlight line of current stack frame
2021-12-01 19:23:42 +09:00
Blaž Hrastnik
c955eaa6cd
Revert "Improve dedent behavior, make kill_to_line_end behave like emacs ( #1173 )"
...
1. pressing o on a line with no indentation will open a new line as
expected, but esc will then delete the line altogether
2. the kill_line behavior happens after insert mode changes are already
commited to history, and the change isn't commited. pressing u after
this will break highlighting & undo history
This reverts commit c08d2fae58
.
2021-12-01 13:40:54 +09:00
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.
2021-12-01 13:08:20 +09:00
Blaž Hrastnik
7bbf4c5b06
ui: Only calculate span styling when it's actually in bounds
2021-12-01 12:57:57 +09:00
Blaž Hrastnik
d562e13e1f
minor: Use anchor::ensure in some cases
2021-12-01 12:57:22 +09:00
Blaž Hrastnik
b4fd3148e3
These TODOs have been resolved
2021-12-01 12:56:41 +09:00
Blaž Hrastnik
96ae5897a1
Remove another parameter from render_view
2021-12-01 01:08:52 +09:00
Blaž Hrastnik
30ac5869df
dap: Extract diagnostics gutter into gutters.rs
2021-11-30 17:56:00 +09:00
Blaž Hrastnik
8ffafb826f
dap: Rewrite breakpoints so that there's a single set maintained
2021-11-30 17:56:00 +09:00
Blaž Hrastnik
3633f85b38
Pass editor into render_view & gutter, reducing the number of params
2021-11-30 16:47:46 +09:00
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
2021-11-30 16:40:38 +09:00
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
2021-11-30 13:06:30 +09:00
Blaž Hrastnik
225e8ccf31
Extract gutters into helix-view
2021-11-29 11:00:28 +09:00
Blaž Hrastnik
27c1a84f05
Reuse a text buffer for each gutter line
2021-11-29 11:00:28 +09:00
Blaž Hrastnik
ba45db84d4
Tie the GutterFn lifetime to the doc so we can avoid cloning data
2021-11-29 11:00:28 +09:00
Blaž Hrastnik
c71c9f69e2
TODO
2021-11-29 11:00:28 +09:00
Blaž Hrastnik
30171416cb
Gutter functions
2021-11-29 11:00:28 +09:00
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>
2021-11-29 10:58:21 +09:00
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>
2021-11-29 10:53:29 +09:00
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)
2021-11-28 10:19:54 +09:00
Blaž Hrastnik
6e62c3de47
Simplify some code in editor.rs
2021-11-26 18:26:22 +09:00
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
2021-11-25 11:02:51 +09:00
ath3
72f606ee19
Implement no-yank delete/change ( #1099 )
2021-11-24 16:46:40 +09:00
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.
2021-11-24 12:26:49 +05:30
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
2021-11-24 15:26:55 +09:00
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>
2021-11-23 23:08:05 +09:00
Blaž Hrastnik
72576822f3
dap: Replace breakpoint when changed event comes through
2021-11-22 16:30:56 +09:00
Blaž Hrastnik
85b4410703
dap: Toggle breakpoints without changing selection, fix offset calc
2021-11-22 16:30:35 +09:00
Blaž Hrastnik
28fd704bce
ui: Since diagnostics are sorted, we can use binary search
2021-11-22 11:26:16 +09:00
Blaž Hrastnik
b55ca8fdb8
dap: Always edit breakpoints on the correct document
2021-11-22 11:22:08 +09:00
Blaž Hrastnik
0eadeab8c7
dap: Remove the prompt line parameter, use insert_str instead
2021-11-22 11:14:10 +09:00
Blaž Hrastnik
5f329a22c4
dap: Modify breakpoints in place with no cloning
2021-11-22 11:09:09 +09:00
Blaž Hrastnik
05d3ad4a0e
dap: Remove an excess clone on enable_exceptions
2021-11-22 00:02:58 +09:00
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
2021-11-21 20:06:45 +09:00
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
2021-11-20 23:23:36 +09:00
Skyler Hawthorne
05c6cb1d0b
Solarized theme: fix popup colors, adjust menu ( #1124 )
...
* fix popup colors, adjust menu
* fix hardcoded horizontal rule color
2021-11-20 23:17:38 +09:00
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
2021-11-20 23:17:25 +09:00
Kirawi
ed76cdf238
revert log truncation ( #895 ) ( #1130 )
2021-11-19 13:26:39 +09:00
Blaž Hrastnik
2b7c086653
fix: Expand tilde first, then deal with relative paths
...
Otherwise the ~ gets treated as a relative path.
Fixes #1107
2021-11-19 12:09:17 +09:00
WindSoilder
5959356a24
Implement indent-aware delete ( #1120 )
...
* delete character backward can make undent behavior
* improve to handle mixed indentation
2021-11-19 00:19:40 +09:00
Ivan Tham
bd56dde6e2
Ensure cursor in view after pipe ( #1123 )
...
Fix #1024
2021-11-18 18:46:27 +09:00
Blaž Hrastnik
e9dc658de4
Remove unused imports
2021-11-18 18:41:44 +09:00
Blaž Hrastnik
9dcccb45bb
ui: Stop hardcoding markdown doc colors
2021-11-18 18:40:27 +09:00
Blaž Hrastnik
fa4c59df46
Simplify compositor.find
2021-11-18 11:09:04 +09:00
Blaž Hrastnik
8db6fffe90
ui: Increase diagnostics sideline width to 100 max and wrap if needed
2021-11-16 15:02:48 +09:00
Blaž Hrastnik
dd98727bad
fix: editor.close now takes only a single parameter
2021-11-16 00:37:30 +09:00
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
2021-11-16 00:32:58 +09:00
Bob
46d9ae2b62
Readline style insert mode ( #1039 )
...
* readline style insert mode
* update keymap.md
* don't save change history in insert mode
* Revert "don't save change history in insert mode"
This reverts commit cb47f946d7fb62ceda68e7d1692a3914d0be7762.
* don't affect register and history in insert mode
* add insert_register
* don't call exit_select_mode in insert mode
* avoid set_selection
* avoid duplicated current!
2021-11-16 00:31:20 +09:00
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
2021-11-16 00:30:45 +09:00
Cole Helbling
87e61a0894
helix-term/commands: implement cquit ( #1096 )
...
This allows you to exit helix with an exit code, e.g. `:cq 2`.
2021-11-15 13:06:12 +09:00
Blaž Hrastnik
f5e070e808
minor: Remove leftover log line
2021-11-15 10:33:14 +09:00
Blaž Hrastnik
e128a8702e
Implement MarkedString rendering
...
Solves typescript and python documentation rendering
2021-11-15 10:30:05 +09:00
Ivan Tham
b7c3877e94
Add movement shortcut for history ( #1088 )
...
alt-u and alt-U
2021-11-15 00:16:47 +09:00
ath3
6fa76d9fe7
Add trim_selections command ( #1092 )
2021-11-15 00:16:20 +09:00
Ebbe Steenhoudt
edc976b6bb
Added workspace_symbol_picker ( #1041 )
...
* Added workspace_symbol_picker
* Moved truncation of the symbol pickers to the end.
* Fixed typo
2021-11-15 00:12:56 +09:00
ath3
35c974c9c4
Implement "Goto last modification" command ( #1067 )
2021-11-15 00:11:53 +09:00
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>
2021-11-15 00:09:02 +09:00
Cole Helbling
b74912ea78
helix-term/editor: display scratch buffer name in status bar
2021-11-14 12:33:17 +05:30
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.
2021-11-13 13:15:41 +09:00
Omnikar
6d4409c00f
Make prompts consistent ( #1080 )
2021-11-13 01:34:49 +09:00
Blaž Hrastnik
d3def16584
fix: shift-tab mappings broken after efc2b4c7
2021-11-12 16:21:03 +09:00
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>
2021-11-12 09:48:37 +09:00
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>
2021-11-12 09:34:08 +09:00
Ivan Tham
9d591427be
Fix earlier/later missing changeset update ( #1069 )
...
Fix #1059
2021-11-11 22:32:44 +09:00
Omnikar
d131a9dd0e
Allow keys to be mapped to sequences of commands ( #589 )
...
* Allow keys to be mapped to sequences of commands
* Handle `Sequence` at the start of `Keymap::get`
* Use `"[Multiple commands]"` as command sequence doc
* Add command sequence example to `remapping.md`
2021-11-11 13:44:50 +09:00
Cole Helbling
bf70cfd050
helix-term/command: make scratch buffer name consistent ( #1071 )
2021-11-11 12:22:15 +09:00
Omnikar
ebc14d9d20
Add m
textobject for pair under cursor ( #961 )
2021-11-11 11:33:31 +09:00
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>
2021-11-11 11:32:23 +09:00
ath3
c7cb7527be
Fix moving with arrow keys in prompt ( #1070 )
2021-11-11 11:08:19 +09:00
Gokul Soumya
efc2b4c77b
Refactor keyevent handling using key, ctrl macros ( #1058 )
...
Adds ctrl! and alt! macros (which existed before the big keymap
refactor) and uses them in event handling of Components. Note
that this converts crossterm's KeyEvent to our own KeyEvent on
each invocation of handle_event in Components.
2021-11-11 00:58:46 +09:00
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 .
2021-11-11 00:58:35 +09:00
Gokul Soumya
f9e9efb3ec
Check for duplicate keys in default keymap
2021-11-11 00:58:25 +09:00
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.
2021-11-11 00:58:25 +09:00
Omnikar
5654909135
Update space w
window mode ( #1050 )
2021-11-10 11:04:03 +09:00
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>
2021-11-10 10:53:14 +09:00
CossonLeo
68224232af
buffer picker add is_modifier flag ( #1020 )
2021-11-10 10:52:39 +09:00
Ivan Tham
97893cca64
Restore screen position when abort search ( #1047 )
2021-11-10 10:46:55 +09:00
Bob
7c9f620236
add <C-h>, <C-u>, <C-d>, Delete in prompt mode ( #1034 )
2021-11-09 14:43:50 +09:00
CossonLeo
a69caff450
search_impl will only align cursor center when it isn't in view ( #959 )
2021-11-09 11:11:45 +09:00
Omnikar
a424ef4e20
Use default languages.toml
if user's is invalid ( #994 )
2021-11-09 11:07:54 +09:00
CossonLeo
29e6849413
Add LSP rename_symbol (space-r) ( #1011 )
...
improve apply_workspace_edit
2021-11-09 00:17:54 +09:00
Blaž Hrastnik
8b85903116
wip
2021-11-08 10:03:08 +09:00
Omnikar
a252ecd8c8
Add WORD textobject ( #991 )
...
* Add WORD textobject
* Document WORD textobject
2021-11-08 09:54:39 +09:00
Blaž Hrastnik
09f5796537
dap: Simplify get_breakpoint_at_current_line
2021-11-07 22:03:55 +09:00
Blaž Hrastnik
c39d9f44a0
dap: Simplify debug_parameter_prompt
2021-11-07 21:58:06 +09:00
Blaž Hrastnik
3042ff3e5a
dap: Clean up dap_start_impl, no need to clone arg keys
2021-11-07 21:47:44 +09:00
Blaž Hrastnik
9963a5614d
dap: Minor simplifications
2021-11-07 21:37:00 +09:00
Blaž Hrastnik
65868081fc
dap: Simplify launch & start
...
There's no need to re-detect language config, just use the one available
on the document.
2021-11-07 21:26:03 +09:00
Blaž Hrastnik
4f2a01cc09
dap: Error implements Display so we can format with {}
2021-11-07 21:20:58 +09:00
Blaž Hrastnik
2bd8a9b39d
dap: Consistently rename type as ty
2021-11-07 21:18:53 +09:00
Blaž Hrastnik
9dd17c46a2
dap: Avoid cloning old_breakpoints if we are immediately replacing them
2021-11-07 18:58:47 +09:00
Blaž Hrastnik
757babb1b4
dap: Avoid cloning *entire* stack frames when picking a thread
2021-11-07 18:56:09 +09:00
Blaž Hrastnik
5803de2067
dap: Simplify more calls
2021-11-07 18:51:29 +09:00
Blaž Hrastnik
9baddc825d
dap: Get rid of excessive cloning
2021-11-07 18:38:04 +09:00
Blaž Hrastnik
fd9b826f2c
dap: Inline empty completer
2021-11-07 18:15:17 +09:00
Blaž Hrastnik
5938ab1bf1
dap: Fully extract template parameter prompts
2021-11-07 18:13:37 +09:00
Blaž Hrastnik
3b8d5102ac
Make picker take the whole context, not just editor
2021-11-07 18:03:04 +09:00
Blaž Hrastnik
64bb1f7563
dap: Extract out variable rendering
...
Will improve on the UI later
2021-11-07 17:55:01 +09:00
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
2021-11-07 00:57:14 +09:00
Blaž Hrastnik
e2a23ac0b5
If there is no live debugger, treat breakpoints as unverified
2021-11-07 00:48:34 +09:00
Blaž Hrastnik
2e1aa5f15b
Fix compilation
2021-11-07 00:32:28 +09:00
Blaž Hrastnik
09d8c139af
dap: Enable sticky mode for the submode
2021-11-07 00:29:12 +09:00
Blaž Hrastnik
14a3502cf1
dap: Move template selection into a picker
...
It's time to move all these components out of ui/editor.rs
2021-11-07 00:28:57 +09:00
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
2021-11-07 00:28:19 +09:00
Blaž Hrastnik
2c1313c064
Specify vector capacity on surround_add
2021-11-06 23:52:49 +09:00
Blaž Hrastnik
1a1685acf7
Simplify current!(..).1 into doc!()
2021-11-06 23:52:26 +09:00
Blaž Hrastnik
0f4cd73000
Simplify goto_*_diagnostic commands
2021-11-06 18:58:58 +09:00
Blaž Hrastnik
f659e1178a
minor: view!(..).doc is slightly more efficient than current!(..).1.id()
2021-11-06 17:54:04 +09:00
Blaž Hrastnik
4c1321b3b6
minor: Extend search was decclared twice in the keymap
2021-11-06 17:49:18 +09:00
Blaž Hrastnik
b81a554424
Retain range direction on search
...
Co-authored-by: CossonLeo <20379044+cossonleo@users.noreply.github.com>
2021-11-06 17:41:30 +09:00
Blaž Hrastnik
6431b26a6a
Implement Selection::replace to replace a single range
...
Fixes #985
Co-authored-by: Daniel S Poulin <crimsonmage+github@gmail.com>
2021-11-06 17:37:45 +09:00
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
2021-11-06 17:33:30 +09:00
Omnikar
cfc8285867
Allow infoboxes to be disabled ( #972 )
...
* Allow infoboxes to be disabled
* Document `infoboxes` default value
* Rename `infoboxes` to `auto_info`
* Document `auto-info`
* Fix incomplete rename
2021-11-05 11:25:08 +09:00
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`
2021-11-05 10:20:06 +09:00
Blaž Hrastnik
7b65a6d687
Rewrite goto_buffer
2021-11-04 14:03:03 +09:00
ath3
78c68fae91
Implement "Goto next buffer / Goto previous buffer" commands
2021-11-04 14:03:03 +09:00
Blaž Hrastnik
e2560f427e
Replace documents SlotMap with BTreeMap
2021-11-04 13:43:45 +09:00
CossonLeo
39584cbccd
Add c-s to pick word under doc cursor to prompt line & search completion ( #831 )
...
* Add prompt shourtcut to book
Add completions to search
Add c-s to pick word under doc cursor to prompt line
* limit 20 last items of search completion, update book
* Update book/src/keymap.md
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* limit search completions 200
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-11-04 12:26:01 +09:00
diegodox
70d21a903f
Prevent preview binary or large file ( #939 )
...
* Prevent preview binary or large file (#847 )
* fix wrong method name
* fix add use trait
* update lock file
* rename MAX_PREVIEW_SIZE from MAX_BYTE_PREVIEW
* read small bytes to determine cotent type
* [WIP] add preview struct to represent calcurated preveiw
* Refactor content type detection
- Remove unwraps
- Reuse a single read buffer to avoid 1kb reallocations between previews
* Refactor preview rendering so we don't construct docs when not necessary
* Replace unwarap whit Preview::NotFound
* Use index access to hide unwrap
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* fix Get and unwarp equivalent to referce of Index acess
* better preview implementation
* Rename Preview enum and vairant
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* fixup! Rename Preview enum and vairant
* simplify long match
* Center text, add docs, fix formatting, refactor
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-11-04 12:24:52 +09:00
Omnikar
5b5d1b9dff
Truncate the starts of file paths instead of the ends in picker ( #951 )
...
* Truncate the starts of file paths in picker
* Simplify the truncate implementation
* Break loop at appropriate point
* Fix alignment and ellipsis presence
* Remove extraneous usage of `x_offset`
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-11-04 12:24:05 +09:00
Omnikar
e39cfa40df
Hide keys bound to no_op
from infobox ( #971 )
2021-11-04 09:50:38 +09:00
Ivan Tham
3eb829e233
Ensure coords in screen depends on char width ( #885 )
...
The issue affected files with lots of tabs at the start as well.
Fix #840
2021-11-03 12:02:29 +09:00
Triton171
7a0c4322ea
Simplify BTreeSet construction
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-11-03 11:56:55 +09:00
Daniel Ebert
eb8745db09
Implement key ordering for info box
2021-11-03 11:56:55 +09:00
CossonLeo
1720b98760
only remove primary index when search next without extend ( #948 )
2021-11-02 13:32:57 +09:00
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>
2021-11-02 09:34:39 +09:00
Gygaxis Vainhardt
f140a2a00e
Add arrow-key bindings for window switching ( #933 )
2021-10-30 10:48:00 +09:00
Blaž Hrastnik
e5de103728
Extract a clear_completion method
2021-10-29 16:48:41 +09:00
Ivan Tham
49f6c2623f
Bump lsp-types to 0.91.0 ( #932 )
2021-10-29 12:00:18 +09:00
Ivan Tham
bc6a34d97e
Make match work with extend and multi cursors ( #920 )
2021-10-29 10:08:53 +09:00
Ivan Tham
21d535565b
Support extend for multiple goto ( #909 )
...
gg, ge, [n]gg
2021-10-29 10:07:07 +09:00
cossonleo
f1d339919f
add expand_selection to last_motion
2021-10-29 10:04:12 +09:00
Blaž Hrastnik
f3c7f20dbc
Release v0.5.0
2021-10-28 16:41:34 +09:00
Omnikar
db56de589a
Add --tutor
option to hx --help
output ( #924 )
...
* Add `--tutor` option to `hx --help` output
* Adjust `--tutor` location in help output
2021-10-28 16:27:28 +09:00
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>
2021-10-28 10:23:46 +09:00
Nehliin
3b0c5e993a
Use deserialization fix instead
2021-10-28 10:22:52 +09:00
Oskar Nehlin
6e455fd3fb
Apply suggestions from code review
...
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-10-28 10:22:52 +09:00
Nehliin
da4d9340ba
Make key macro more portable
2021-10-28 10:22:52 +09:00
Nehliin
a4c5f46739
Fix order being empty and add test
2021-10-28 10:22:52 +09:00
Nehliin
f133d80e70
Move test to test module
2021-10-28 10:22:52 +09:00
Nehliin
fbba47fbc0
Fix panic when using multi-level key mapping
2021-10-28 10:22:52 +09:00
Blaž Hrastnik
5501669f8c
Revert "minor: Rearrange helix-term Cargo.toml"
...
This reverts commit 2cee0c58ba
.
2021-10-28 00:21:30 +09:00
Blaž Hrastnik
1066b081dd
fix: When cycling through prompt history, update event needs to trigger
2021-10-27 18:23:17 +09:00
Blaž Hrastnik
2cee0c58ba
minor: Rearrange helix-term Cargo.toml
2021-10-27 12:25:00 +09:00
Blaž Hrastnik
3fe353c47c
Remove some old TODOs
2021-10-27 12:25:00 +09:00
Omnikar
2505802d39
Improve statusline ( #916 )
...
* Improve statusline
* Change diagnostic count display to show counts of individual
diagnostic types next to their corresponding gutter dots.
* Add selection count to the statusline.
* Do not display info or hint count in statusline
* Reduce padding
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Reduce padding
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Use `Span::styled`
* Reduce padding
* Use `Style::patch`
* Remove unnecessary `Cow` creation
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-10-27 12:24:24 +09:00
radical3dd
d61e5e686b
Use current dir for file picker, after change dir. ( #910 )
2021-10-26 09:43:14 +09:00
CossonLeo
f331ba9df4
Clear competion items when start_offset > cursor ( #906 )
2021-10-26 09:42:37 +09:00
CossonLeo
b142fd4080
move_up will select last item, when no item selected ( #907 )
2021-10-26 09:42:23 +09:00
CossonLeo
bca98b5bed
Add c-j c-k to menu keymap for move_up move_down ( #908 )
2021-10-26 09:42:08 +09:00
Blaž Hrastnik
acc5ac5e73
fix warning
2021-10-25 11:11:11 +09:00
Blaž Hrastnik
3edca7854e
completion: fully revert state before apply & insertText common prefix
2021-10-25 11:09:09 +09:00
Omnikar
a7d87c79ce
Fix :quit!
description and tense of other commands ( #902 )
2021-10-25 09:25:47 +09:00
Dmitry Sharshakov
6aa9838ea6
dap: support arrays as arguments
2021-10-24 17:24:18 +03:00
CossonLeo
2ed01f2d9c
find motion and textobj motion repeat ( #891 )
2021-10-24 22:47:10 +09:00
Blaž Hrastnik
cee7ad781e
Mark a few functions as const
2021-10-24 17:28:29 +09:00
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
2021-10-24 16:55:29 +09:00
Kirawi
0cb5e0b2ca
log syntax highlighting init errors ( #895 )
2021-10-23 21:52:18 +09:00
Oskar Nehlin
0f886af4b9
Add commands for moving between splits with a direction ( #860 )
...
* Add commands for moving between splits with a direction
* Update keymaps
* Change picker mapping
* Add test and clean up some comments
2021-10-23 20:06:40 +09:00
Gokul Soumya
4ee92cad19
Add treesitter textobjects ( #728 )
...
* Add treesitter textobject queries
Only for Go, Python and Rust for now.
* Add tree-sitter textobjects
Only has functions and class objects as of now.
* Fix tests
* Add docs for tree-sitter textobjects
* Add guide for creating new textobject queries
* Add parameter textobject
Only parameter.inside is implemented now, parameter.around
will probably require custom predicates akin to nvim' `make-range`
since we want to select a trailing comma too (a comma will be
an anonymous node and matching against them doesn't work similar
to named nodes)
* Simplify TextObject cell init
2021-10-23 11:41:19 +09:00
Blaž Hrastnik
96945be1a8
Fix doctest broken on 2021 edition
2021-10-22 12:47:02 +09:00
Blaž Hrastnik
182a59b552
Update to rust 1.56 + 2021 edition
2021-10-22 12:15:18 +09:00
Daniel S Poulin
3b032e8e1f
First stab at ignoring compressed files from picker ( #767 )
2021-10-22 10:02:05 +09:00
radical3dd
b1ebd7a07e
Replace current selection with all yanked values. ( #882 )
2021-10-21 09:44:53 +09:00
Blaž Hrastnik
e9b23c29d8
Ignore errors when disabling mouse capture
2021-10-20 00:01:11 +09:00
Blaž Hrastnik
9688cb74a1
Update dependencies to bump crossterm to 0.22.1
...
Fixes #825
Fixes #690
2021-10-19 23:58:51 +09:00
VuiMuich
67829976fa
Add C-j
and C-k
to keybinds for picker ( #876 )
...
* Add `C-j` and `C-k` for moving down/up in pickers
* Add new binds to keymap doc
2021-10-19 18:37:38 +09:00
CossonLeo
9ac0c95161
Improve completion trigger ( #838 )
...
* improve idle completion trigger
* add completion-trigger-len to book
* rename semantics_completion to language_server_completion and optimize idle completion trigger
2021-10-18 15:14:50 +09:00
Blaž Hrastnik
bda05ec4bf
Use a newtype for ThreadId
2021-10-17 14:06:52 +09:00
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
2021-10-17 13:51:56 +09:00
Ivan Tham
89707a858f
Make auto-completion a config ( #853 )
2021-10-16 22:57:41 +09:00
Blaž Hrastnik
2c0468ffd1
fix: If backspacing past the start offset, cancel completion
...
Refs #822
2021-10-16 18:43:07 +09:00
Omnikar
c71b49497d
Set CWD when editor is started with a directory ( #849 )
2021-10-16 10:04:26 +09:00
Leoi Hung Kin
4d07eaa48b
Prevent LSP Messages from displaying when a prompt is presented ( #824 )
...
* Prevent LSP Messages from displaying when a prompt is presented
* use match guard
2021-10-15 17:36:39 +09:00
Blaž Hrastnik
f8f63c5508
Merge pull request #821 from helix-editor/idle-timer
...
Idle timer / Autocompletion
2021-10-10 22:11:01 +09:00
Blaž Hrastnik
76b1bbc23a
Allow trigger_offset to be unused for now
2021-10-10 12:33:22 +09:00
Blaž Hrastnik
633b981db2
Make idle-timeout configurable
2021-10-10 12:32:06 +09:00
Blaž Hrastnik
c7f3a971c0
Remove resolved TODOs
2021-10-10 12:22:11 +09:00
Dmitry Sharshakov
bc0084d071
fix command descriptions
2021-10-09 16:06:32 +03:00
Dmitry Sharshakov
48cb81eff1
Merge branch 'master' into debug
2021-10-09 16:03:46 +03:00
Leoi Hung Kin
a6852fb88f
Picker: Don't panick at move_up/move_down when matches is empty ( #818 )
2021-10-09 20:34:10 +09:00
Ethan Frei
9f27be429d
relative paths showing active file in global search ( #803 )
2021-10-08 11:08:10 +09:00
Blaž Hrastnik
f692ede2b7
fix: Don't crash on empty completion, don't retrigger on close
2021-10-07 10:37:35 +09:00
Blaž Hrastnik
8ca91891d1
fix compilation
2021-10-05 22:35:38 +09:00
Blaž Hrastnik
66f26e82ce
Filter the initial completion
2021-10-05 22:27:35 +09:00
Blaž Hrastnik
40abec80e1
Experiment with autocompletion on idle
2021-10-05 22:27:33 +09:00
Blaž Hrastnik
f99bea404f
idle timer wip
2021-10-05 22:27:10 +09:00
Irevoire
c4ae17dfd4
fix clippy warnings ( #804 )
2021-10-03 12:40:33 +09:00
Irevoire
7e958e1834
Add a bunch of aliases ( #797 )
...
* add a bunch of aliases
* apply code review from archseer
2021-10-03 11:41:41 +09:00
Dylan Richardson
4a92a79da4
global search: show file names as relative paths ( #802 )
...
This commit fixes #786
2021-10-03 08:41:52 +09:00
Dmitry Sharshakov
814dcfa8d2
fix lints
2021-09-26 21:54:36 +03:00
Dmitry Sharshakov
d943a51e3e
editor: add Node.js debugger
2021-09-26 21:36:06 +03:00
Dmitry Sharshakov
0e51e5fbaf
editor: support setExceptionBreakpoints
2021-09-26 10:24:58 +03:00
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
2021-09-25 23:14:59 +03:00
Matt W
df55eaae69
Add tilde expansion for file opening ( #782 )
...
* change to helix_core's tilde expansion,
from helix-core::path::expand_tilde
2021-09-24 11:21:04 +09:00
Blaž Hrastnik
2e0803c8d9
Implement 'remove_primary_selection' as Alt-,
...
This allows removing search matches from the selection
Fixes #713
2021-09-24 10:30:28 +09:00
Blaž Hrastnik
75dba1f956
experiment: space+k for LSP doc, K for keep_selections
2021-09-24 10:30:23 +09:00
Blaž Hrastnik
9ea9e779b2
experiment: Move keep_primary_selection to ,
2021-09-24 10:30:17 +09:00
lurpahi
a958d34bfb
Add option for automatic insertion of closing-parens/brackets/etc ( #779 )
...
* Add auto-pair editor option
* Document auto-pair editor option
* Make cargo fmt happy
* Actually make cargo fmt happy
* Rename auto-pair option to auto-pairs
* Inline a few constants
Co-authored-by: miaomai <cunso@tutanota.com>
2021-09-24 10:28:44 +09:00
Leoi Hung Kin
432bec10ed
allow smart case in global search ( #781 )
2021-09-24 10:27:16 +09:00
Leoi Hung Kin
9456d5c1a2
Initial implementation of global search ( #651 )
...
* initial implementation of global search
* use tokio::sync::mpsc::unbounded_channel instead of Arc, Mutex, Waker poll_fn
* use tokio_stream::wrappers::UnboundedReceiverStream to collect all search matches
* regex_prompt: unified callback; refactor
* global search doc
2021-09-22 01:03:12 +09:00
kraem
4a003782a5
enable smart case regex search by default ( #761 )
2021-09-20 13:45:07 +09:00
Leoi Hung Kin
1d04e5938d
search_next_impl: don't panic on invalid regex ( #740 )
2021-09-17 17:22:17 +09:00
Blaž Hrastnik
3ff5b001ac
fix: Don't allow closing the last split if there's unsaved changes
...
Fixes #674
2021-09-17 14:43:06 +09:00
Blaž Hrastnik
c7d6e4461f
fix: Wrap around the top of the picker menu when scrolling
...
Forgot to port the improvements in menu.rs
Fixes #734
2021-09-17 14:43:06 +09:00
Blaž Hrastnik
b02d872938
fix: Refactor apply_workspace_edit to remove assert
...
Fixes #698
2021-09-17 14:43:06 +09:00
Blaž Hrastnik
dd0b15e1f1
syntax: Properly handle injection-regex for language injections
2021-09-16 15:50:14 +09:00
Omnikar
3e12b00993
Add no_op
command ( #743 )
...
* Add `no_op` command
* Document `no_op` in `remapping.md`
2021-09-13 17:48:12 +09:00
Blaž Hrastnik
1540b37f34
lsp: Silence window/logMessage if -v isn't used
2021-09-13 17:45:02 +09:00
Blaž Hrastnik
32977ed341
ui: Trigger recalculate_size per popup render so contents can readjust
2021-09-13 17:44:50 +09:00
Kangwook Lee (이강욱)
05c2a72ccb
goto line start/end commands extend when in select mode ( #739 )
2021-09-11 18:31:40 +09:00
Kirawi
987d8e6dd6
Convert clipboard line ending to document line ending when pasting ( #716 )
...
* convert a paste's line-ending to the current doc's line-ending
* move paste regex into paste_impl
2021-09-11 00:12:26 +09:00
Gokul Soumya
94abc52b3b
feat: Sticky view mode with Z ( #719 )
2021-09-10 23:14:23 +09:00
Blaž Hrastnik
3426285a63
fix: Don't automatically search_next on *
...
Refs #713
2021-09-08 16:34:04 +09:00
Blaž Hrastnik
72cf86e462
Regex prompts should have a history with a specifiable register
2021-09-08 16:34:04 +09:00
CossonLeo
011f9aa47f
Optimize completion doc position. ( #691 )
...
* optimize completion doc's render
* optimize completion doc's render
* optimize completion doc position
* cargo fmt
* fix panic
* use saturating_sub
* fixs
* fix clippy
* limit completion doc max width 120
2021-09-08 16:33:59 +09:00
Blaž Hrastnik
2ce87968cd
ui: Be smarter about centering previews
...
Try centering the whole block. If the block is too big for the viewport,
then make sure that the first line is within the preview.
2021-09-08 14:19:25 +09:00
Kangwook Lee (이강욱)
7a9db95182
Add command to extend to line start or end ( #717 )
2021-09-07 23:22:39 +09:00
Blaž Hrastnik
46f3c69f06
lsp: Don't send notifications until initialize completes
...
Then send open events for all documents with the LSP attached.
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
dc7799b980
lsp: Refactor code that could use document_by_path_mut
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
63e191ea3b
lsp: Simplify lookup under method call
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
10b690b5bd
Drop some &mut bounds where & would have sufficed
2021-09-06 15:25:46 +09:00
Dmitry Sharshakov
507a1f8dd6
Get breakpoint reports from debugger
2021-09-06 08:47:54 +03:00
Dmitry Sharshakov
c9cd06e904
Fetch stack traces for all threads when debugger sets all_thread_stopped flag
2021-09-05 16:09:38 +03:00
Dmitry Sharshakov
bdd636d8ee
Clean up import
2021-09-05 15:21:39 +03:00
Gokul Soumya
6e21a748b8
Fix escape not exiting insert mode ( #712 )
...
Regression due to #635 where escape key in insert mode
would not exit normal mode. This happened due to hard
coding the escape key to cancel a sticky keymap node.
2021-09-05 21:20:11 +09:00
Dmitry Sharshakov
9b8c5bdade
Remove redundant fetching of stack traces
2021-09-05 15:19:52 +03:00
Dmitry Sharshakov
0add0c5639
Make conditional logpoints underlined
2021-09-05 15:12:13 +03:00
Dmitry Sharshakov
2d35b7b99c
Normalize line in picker preview to avoid crash
2021-09-05 14:31:16 +03:00
Dmitry Sharshakov
b6c58ea23e
Support thread previews
2021-09-05 13:39:27 +03:00
Dmitry Sharshakov
bb26c589b4
Keybinding for editing log
2021-09-05 08:52:30 +03:00
Dmitry Sharshakov
0e1e4edc5e
different display for conditional logpoints
2021-09-05 08:51:33 +03:00
Dmitry Sharshakov
8a609047c3
Mouse command for editing logpoint
2021-09-05 08:50:03 +03:00
Dmitry Sharshakov
7bdead5b4b
Drop old commands
...
TODO: edit logpoints with a keybinding and mouse
2021-09-05 08:20:21 +03:00
Dmitry Sharshakov
3b0ec750ff
Support editing breakpoint condition with right click
2021-09-05 08:14:17 +03:00
Gokul Soumya
183dcce992
Add a sticky mode for keymaps ( #635 )
2021-09-05 12:55:13 +09:00
Gokul Soumya
95cd2c645b
Refactor switch_case commands
2021-09-05 12:41:19 +09:00
Gokul Soumya
33ce8779fd
Refactor {move,extend}_word_* commands
2021-09-05 12:41:19 +09:00
Gokul Soumya
ea2b4c687d
Refactor {move,extend}_char_* commands
2021-09-05 12:41:19 +09:00
Dmitry Sharshakov
1befbd076c
Add command for editing breakpoint condition
2021-09-04 22:57:58 +03:00
Dmitry Sharshakov
e36fc57fff
refactor breakpoint edit
2021-09-04 22:18:42 +03:00
Dmitry Sharshakov
698583c241
Support setting breakpoints with mouse
2021-09-04 21:14:24 +03:00
Kangwook Lee (이강욱)
07fe4a6a40
Add commands that extends to long words ( #706 )
2021-09-04 19:00:32 +05:30
Dmitry Sharshakov
430c80ff2a
Fix crash when trying to select (view) threads when debuggee is running
2021-09-04 10:28:11 +03:00
Dmitry Sharshakov
c6186ce600
jump to selected stack frame
2021-09-04 10:24:00 +03:00
Dmitry Sharshakov
cb31d20b46
mark thread as running when resumed
2021-09-04 10:22:29 +03:00
Dmitry Sharshakov
9a1916ebfd
show thread states in thread picker
2021-09-04 10:14:04 +03:00
Dmitry Sharshakov
00cccdc62a
Don't show thread picker for single-threaded targets
2021-09-04 09:19:19 +03:00
Dmitry Sharshakov
9939dbf119
Fix clippy warnings
2021-09-04 09:08:52 +03:00
Dmitry Sharshakov
cf7237d0b9
compat: make thread IDs signed
...
Delve needs it
2021-09-03 23:11:06 +03:00
Blaž Hrastnik
c63ad60c31
dap: Allow switching between stack frames
2021-09-03 17:25:11 +09:00
Blaž Hrastnik
b997d2cdeb
dap: Allow setting breakpoints before starting the adapter
2021-09-03 13:26:30 +09:00
Blaž Hrastnik
289303a30d
dap: small TODO
2021-09-03 11:48:55 +09:00
Blaž Hrastnik
42f9718f55
dap: Extract thread_picker, make pause explicitly select a thread
2021-09-03 11:43:11 +09:00
Blaž Hrastnik
27c1b3f98b
dap: Extract a thread_states map
2021-09-03 11:30:25 +09:00
Blaž Hrastnik
5b920c53f0
Refactor resume_application state handling
2021-09-03 11:11:22 +09:00
Blaž Hrastnik
4c410eef87
Merge remote-tracking branch 'origin/master' into debug
2021-09-03 11:03:34 +09:00
Dmitry Sharshakov
9c64650a26
force update of stack trace when stopped
2021-09-02 22:51:41 +03:00
Dmitry Sharshakov
2c89107349
Fix crash when stack trace not loaded
...
Still doesn't address the issue though
2021-09-02 19:58:03 +03:00
Dmitry Sharshakov
e0180a4b88
find main thread automatically if thread stopped is not known
2021-09-02 11:08:24 +03:00
Wojciech Kępka
7e1123680f
Expand ~
in change-current-directory
command ( #692 )
2021-09-02 11:03:42 +09:00
oberblastmeister
825bceeab6
add_newline unimpaired mapping ( #653 )
...
* added some keymaps
* remove
* remove wrong mappings
* remove
* wrong import
* use enum
* correct line ending
* added to book
* column
2021-09-02 00:55:16 +09:00
Blaž Hrastnik
ce7ad2beb5
Reimplement keep-pipe, it needs to manipulate selections, not text
2021-09-01 11:09:50 +09:00
Blaž Hrastnik
dc609cafb5
Extract the shell command into a separate function
2021-09-01 10:46:35 +09:00
Dmitry Sharshakov
5b20f6020a
Merge remote-tracking branch 'origin/master' into debug
...
Contains type fix on helix-term/src/ui/editor.rs:752:13
2021-08-31 21:29:11 +03:00
Blaž Hrastnik
a3bd80a6fa
ui: prompt: Avoid allocating a prompt name if it's a static string
2021-08-31 18:29:24 +09:00
Blaž Hrastnik
9b96bb5ac8
Refactor a bit further
2021-08-31 18:24:24 +09:00
Blaž Hrastnik
4a76ea8f88
shell: Move changes outside so we can properly handle errors
2021-08-31 18:19:18 +09:00
Omnikar
e772808a5b
Shell commands ( #547 )
...
* Implement shell interaction commands
* Use slice instead of iterator for shell invocation
* Default to `sh` instead of `$SHELL` for shell commands
* Enforce trailing comma in `commands` macro
* Use `|` register for shell commands
* Move shell config to `editor` and use in command
* Update shell command prompts
* Remove clone of shell config
* Change shell function names to match prompts
* Log stderr contents upon external command error
* Remove `unwrap` calls on potential common errors
`shell` will no longer panic if:
* The user-configured shell cannot be found
* The shell command does not output UTF-8
* Remove redundant `pipe` parameter
* Rename `ShellBehavior::None` to `Ignore`
* Display error when shell command is used and `shell = []`
* Document shell commands in `keymap.md`
2021-08-31 18:13:16 +09:00
gbaranski
9c5752cbac
fix: use .cursor() instead of .head
2021-08-30 12:03:10 -07:00
gbaranski
b590504143
fix: use head instead of anchor for relative line
2021-08-30 12:03:10 -07:00
Blaž Hrastnik
0b0b1d850a
dap: Stop comparing file paths per line number
2021-08-30 11:22:26 +09:00
Blaž Hrastnik
2c7b75475f
dap: refactor frame handling
2021-08-30 11:07:59 +09:00
Omnikar
03ad9e0bfa
Fix code indentation ( #671 )
2021-08-30 09:15:49 +09:00
Blaž Hrastnik
986828e75c
dap: Remap keys, match current thread behavior from dap-mode, switch-thread
2021-08-29 23:32:46 +09:00
Blaž Hrastnik
03b2d81406
dap: better yet, use Selection::single..
2021-08-29 23:03:27 +09:00
Blaž Hrastnik
4d24a43651
dap: use smallvec! macro
2021-08-29 23:02:46 +09:00
Blaž Hrastnik
81f51c13fa
dap: continued: THis check is already done before the match statement
2021-08-29 23:01:18 +09:00
Blaž Hrastnik
51328a4966
dap: extract dap_pos_to_pos
2021-08-29 22:59:29 +09:00
Blaž Hrastnik
d6ccc150c7
Extract dap commands into a separate file
2021-08-29 22:43:08 +09:00
Blaž Hrastnik
ee2ba744a2
Rename dap_in/_out to dap_step_in/_out
2021-08-29 22:37:21 +09:00
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema
2021-08-29 14:51:47 +03:00
Dmitry Sharshakov
f53d8411cb
Add extra annotations to completions
2021-08-29 14:06:36 +03:00
Dmitry Sharshakov
98fda6b8f0
better completion
2021-08-29 13:16:57 +03:00
Dmitry Sharshakov
9d2f2a9e32
Support multiple arguments for debug configs
2021-08-29 13:06:22 +03:00
Dmitry Sharshakov
2d42766a71
wip: refactor parameters in UI start
2021-08-29 10:23:36 +03:00
Dmitry Sharshakov
af657ef2ec
Fix lints
2021-08-28 19:15:13 +03:00
Dmitry Sharshakov
94901b8677
Customized completion for template parameters
2021-08-28 19:11:19 +03:00
Dmitry Sharshakov
ef155e62ef
Add filename autocomplete to template args
2021-08-28 15:36:16 +03:00
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
2021-08-28 14:59:26 +03:00
Dmitry Sharshakov
8df6739759
New way of starting debug sessions
2021-08-28 14:23:54 +03:00
Dmitry Sharshakov
5e4da09be2
Don't let picker be too narrow
2021-08-28 13:55:52 +03:00
Dmitry Sharshakov
890b51b568
Paginated variables
2021-08-28 10:13:19 +03:00
CossonLeo
d6a9c2c0f6
Add ui.menu text style ( #664 )
...
* add menu text style
* add ui.menu.text ui.info ui.info.text to book
* change ui.menu.text to ui.menu
* fix book's ui.menu
2021-08-28 13:54:24 +09:00
Blaž Hrastnik
5cee3b634d
ui: prompt: Fix typing with alt
2021-08-27 16:39:52 +09:00
Omnikar
bfce4d4f29
Make v
in select mode switch back to normal mode ( #660 )
...
* Make `v` in select mode switch back to normal mode
* Move select mode toggle to keymap instead of command
2021-08-27 10:03:49 +09:00
Grzegorz Baranski
cec5d437d8
fix: show current line number even if relative line is on ( #656 )
2021-08-26 23:18:33 +05:30
Stuart Hinson
6192f2fa25
Show hidden files in filename completer ( #648 )
...
also removes unnecessary clone
2021-08-27 00:30:47 +09:00
Yusuf Bera Ertan
dc57f8dc89
feat: merge default languages.toml with user provided languages.toml, add a generic TOML value merge function ( #654 )
...
* feat: merge default languages.toml with user provided languages.toml
* refactor: use catch-all to override all other values for merge toml
* tests: add a test case for merging languages configs
* refactor: change test module name
2021-08-27 00:29:14 +09:00
Ivan Tham
4bafda3995
Change vsp to vs ( #647 )
...
Follow up on #639 to match vim behavior
2021-08-27 00:20:37 +09:00
Dmitry Sharshakov
3b87fce0ce
Print errors occurred in debug commands
2021-08-25 21:01:15 +03:00
Dmitry Sharshakov
c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug
2021-08-25 19:22:01 +03:00
Dmitry Sharshakov
4ee66b8766
Support remote debug adapter
2021-08-25 19:14:47 +03:00
Dmitry Sharshakov
326293cb57
only show variables' names and types
2021-08-25 08:33:46 +03:00
Kirawi
b99db7c687
Move path util functions from helix-term to helix-core ( #650 )
2021-08-25 10:04:05 +09:00
Dmitry Sharshakov
2c3e2b979b
Workaround for debugging Go tests
2021-08-24 21:28:51 +03:00
Dmitry Sharshakov
8cc6d68160
Autocomplete files for debug command
2021-08-24 20:38:49 +03:00
Dmitry Sharshakov
235a84d989
Remove shortcut for starting debug
2021-08-24 20:32:38 +03:00
Dmitry Sharshakov
299da5a35b
Support attach request
2021-08-24 20:27:54 +03:00
Dmitry Sharshakov
b001008a69
Support templates in debug configurations
2021-08-24 20:04:14 +03:00
Dmitry Sharshakov
31212e133d
Rename functions
2021-08-24 16:48:38 +03:00
Dmitry Sharshakov
1041a5bb07
Support launching configs by name
2021-08-24 12:21:00 +03:00
Dmitry Sharshakov
c463142e5e
Create new debugger config format
2021-08-24 11:56:18 +03:00
Dmitry Sharshakov
34c6094604
refactor
2021-08-24 11:32:44 +03:00
Dmitry Sharshakov
fdad7d67aa
Check capabilities for breakpoint config
2021-08-24 10:48:47 +03:00
Dmitry Sharshakov
c4085b4e88
Use saturating_sub for lenght
2021-08-24 08:54:32 +03:00
Dmitry Sharshakov
5d3c69d565
Support logpoints
...
Tested with Node (Delve and LLDB do not support logpoints)
2021-08-24 08:47:20 +03:00
Blaž Hrastnik
bf5b9a9f35
ui: Tone down the preview highlight by adding a new scope
2021-08-24 13:25:39 +09:00
Blaž Hrastnik
e6cb183134
ui: Fix preview window padding: we want horizontal, not vertical
2021-08-24 13:25:39 +09:00
Blaž Hrastnik
a5c3c6c6a9
ui: Highlight line ranges in the preview
2021-08-24 13:25:39 +09:00
CossonLeo
490125f008
info component style config use ui.info ui.info.text ( #643 )
2021-08-24 09:58:19 +09:00
Blaž Hrastnik
1d45f50781
fix: Don't internally use relative paths in the buffer picker
...
Fixes #619
2021-08-24 09:56:09 +09:00
devins2518
e1c9f13263
Add :vsplit and :hsplit commands ( #639 )
...
* add vsplit and hsplit commands
* handle splits more elegantly
2021-08-24 09:37:44 +09:00
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>
2021-08-24 09:17:57 +09:00
Dmitry Sharshakov
ec599a1eac
Do not panic if entered unknown code via stack trace
...
e.g. Rust std library
2021-08-23 21:25:58 +03:00
Dmitry Sharshakov
3a5e044c89
languages: support debug for Rust with LLDB
2021-08-23 21:11:45 +03:00
Dmitry Sharshakov
09c994a97a
editor: drop telemetry output messages
2021-08-23 20:22:55 +03:00
Dmitry Sharshakov
b6b99b2487
config: minor fixes
2021-08-23 17:26:12 +03:00
Dmitry Sharshakov
839d210573
Enable stdio transport via config
2021-08-23 17:18:03 +03:00
Dmitry Sharshakov
f55a012fb7
editor: add debug session config
2021-08-23 16:56:41 +03:00
Dmitry Sharshakov
c5b210df59
Add debug-adapter field to languages.toml
2021-08-23 16:48:06 +03:00
Dmitry Sharshakov
b78f70e602
show breakpoint condition in diagnostics
2021-08-22 15:52:05 +03:00
Dmitry Sharshakov
53ee57f84a
clippy
2021-08-22 15:16:59 +03:00
Dmitry Sharshakov
f247858055
Support conditional breakpoints
2021-08-22 15:06:27 +03:00
Dmitry Sharshakov
3197c2536e
Add eval command
2021-08-22 14:44:16 +03:00
Dmitry Sharshakov
838f69929d
Simplify variables display
2021-08-22 12:49:18 +03:00
Dmitry Sharshakov
060a422c7e
fix crash when pausing
2021-08-22 12:26:36 +03:00
Dmitry Sharshakov
d0b0c9b2ef
editor: select a range if stack pointer has an end
2021-08-22 12:06:43 +03:00
Dmitry Sharshakov
132198323c
editor: go to pos where stack pointer is located
2021-08-22 11:56:22 +03:00
Dmitry Sharshakov
be9dc5802a
editor: mark target as running when continued
2021-08-22 11:21:02 +03:00
Dmitry Sharshakov
d93cd2a261
editor: support stepIn, stepOut, next and pause commands
2021-08-22 11:16:11 +03:00
Blaž Hrastnik
28658836ee
Add more event types, simplify event decoding
2021-08-22 16:05:12 +09:00
Dmitry Sharshakov
2aee5f02d0
Style
2021-08-22 09:52:37 +03:00
Dmitry Sharshakov
7233ab2deb
Merge branch 'debug' of https://github.com/sh7dm/helix into debug
2021-08-22 09:47:22 +03:00
Blaž Hrastnik
a964cbae65
Extract handle_debugger_message, we should avoid bloating tokio::select!
2021-08-22 15:36:07 +09:00
Dmitry Sharshakov
91f2c60b36
Jump to stack pointer when stopped
2021-08-22 09:28:50 +03:00
Blaž Hrastnik
607b92b2e3
fix: Place the cursor on the start of the selected symbol
...
Fixes #626
2021-08-22 15:00:07 +09:00
Dmitry Sharshakov
89ad54a2e5
Add variable type to output
2021-08-22 08:31:01 +03:00
Dmitry Sharshakov
cc66475592
Add commands for variable introspection
2021-08-22 08:25:38 +03:00
Kirawi
59e0ceef8c
better panic messages for when you're missing selection scopes ( #608 )
2021-08-22 11:15:33 +09:00
Dmitry Sharshakov
95ba4ff5bd
Hide stack pointer when continued
2021-08-21 21:00:18 +03:00
Dmitry Sharshakov
f3e47bfee4
Disable continuing when running
2021-08-21 20:55:45 +03:00
Dmitry Sharshakov
5230a2b669
Continue command in keymap
2021-08-21 20:44:14 +03:00
Dmitry Sharshakov
66c035fa99
Continue command
2021-08-21 20:42:13 +03:00
Dmitry Sharshakov
6709b4242f
Drop and terminate debugger
2021-08-21 20:38:03 +03:00
Dmitry Sharshakov
26dee49dc9
Add command to detach debugger
2021-08-21 20:33:56 +03:00
Dmitry Sharshakov
462c8a6ec8
Show debugger output in the statusline
2021-08-21 20:29:01 +03:00
Dmitry Sharshakov
5a06263b78
report status when target started or stopped
2021-08-21 20:08:37 +03:00
Dmitry Sharshakov
bcab93c94e
Update editor window when stopped
2021-08-21 17:26:51 +03:00
Dmitry Sharshakov
a938f5a87a
refactor: handle DAP events in editor main loop
2021-08-21 17:21:35 +03:00
Dmitry Sharshakov
3fc501c99f
Correctly display 1-based breakpoints
2021-08-21 15:17:25 +03:00
Dmitry Sharshakov
56bddb12f8
Highlight line number of stack pointer
2021-08-21 14:58:05 +03:00
Dmitry Sharshakov
5f5b383979
Fix clippy warnings
2021-08-21 14:35:53 +03:00
Dmitry Sharshakov
6458edecfd
Add stack pointer display when stopped
2021-08-21 14:15:29 +03:00
Gokul Soumya
f9375f449c
Refactor new Rect construction ( #575 )
...
* Refactor new Rect construction
Introduces methods that can be chained to construct new Rects
out of pre-existing ones
* Clamp x and y to edges in Rect chop methods
* Rename Rect clipping functions
2021-08-21 14:21:20 +09:00
Dmitry Sharshakov
738e8a4dd3
Unify init and launch commands
2021-08-20 19:11:37 +03:00
Dmitry Sharshakov
9e22842d51
move debug command to keybinding
2021-08-20 19:06:52 +03:00
Dmitry Sharshakov
e2c74d26e0
Add command to run debug target
2021-08-20 18:18:35 +03:00
Dmitry Sharshakov
c4970c617e
make CI green
2021-08-20 16:48:59 +03:00
Blaž Hrastnik
a54b09e3fe
dap: Split out launch from init
2021-08-20 14:06:55 +09:00
Blaž Hrastnik
94a1951d40
Work towards a breakpoint UI
2021-08-20 13:51:38 +09:00
Blaž Hrastnik
86102a651f
wip
2021-08-20 13:48:33 +09:00
Blaž Hrastnik
d39baa3b4e
Start integrating into the editor's event loop
2021-08-20 13:48:32 +09:00
Blaž Hrastnik
d4c17b633c
minor: Extract doc.text().slice(..) into a var
2021-08-20 13:42:47 +09:00
Blaž Hrastnik
38e932bd4c
minor: Nicer errors, std::io::Error provides a Display impl
2021-08-20 13:42:17 +09:00
Blaž Hrastnik
a76ec9a64e
Make scrolling extend in extend mode
2021-08-20 13:42:01 +09:00
Blaž Hrastnik
07fea61d03
Use the correct search register
2021-08-20 11:14:57 +09:00
Blaž Hrastnik
f60b549fb7
cargo fmt
2021-08-20 11:02:28 +09:00
Blaž Hrastnik
68626b8f78
ui: Refactor styling a bit, ensure infobox is stylable
2021-08-20 10:58:44 +09:00
Blaž Hrastnik
cbd39d67a4
minor: Refactor commands.rs a bit more
2021-08-20 10:43:22 +09:00
Kirawi
da8810809a
use ui.text.focus
for the picker ( fix #622 )
2021-08-20 10:43:08 +09:00
Blaž Hrastnik
0595b0626a
Fix clippy attr
2021-08-19 16:05:05 +09:00
Blaž Hrastnik
5f8b1c7320
Avoid looking up ui.text per highlight range
2021-08-19 15:59:08 +09:00
Blaž Hrastnik
557fd86e71
Extract view.inner_area(), simplify render_focused_view_elements
2021-08-19 15:59:03 +09:00
Blaž Hrastnik
9776553ad0
Refactor view.first_line/first_col into view.offset (Position)
2021-08-19 12:52:07 +09:00
Blaž Hrastnik
115754c5ee
Simplify write/write_all commands, we no longer need to excessively block
2021-08-19 11:37:42 +09:00
Blaž Hrastnik
12ea3888c5
fix: ui: Pin popups with no positioning to the initial cursor position
...
This avoids the floating popup following the cursor as we type.
2021-08-19 11:25:19 +09:00
Yerlan
18c0509593
Exit select mode after toggle_comment. Fixes #597 ( #598 )
...
Consistent with yanking, exit select mode after toggling comment. Fixes #597
2021-08-17 09:52:52 +09:00
Gokul Soumya
14c08e855f
Refactor infobox rendering and parsing ( #579 )
2021-08-17 09:25:48 +09:00
Grzegorz Baranski
78923496a6
feat: relative numbers ( #485 )
...
* feat(helix-view): configuring line-number
* feat(helix-term): relative line numbers
* feat(helix-term): passing editor::Config to render
* fix(helix-view): remove LineNumber::None
* feat(helix-term): rendering line-number according to configuration
* fix(term): put calculating current line above line iteration
* fix: add abs_diff function
* deps: cargo update
* fix: pass config argument
2021-08-16 11:11:53 +09:00
Blaž Hrastnik
1caedc18ca
Release v0.4.1
2021-08-14 13:32:29 +09:00
Blaž Hrastnik
4167201344
ui: picker: Position count according to input bar
2021-08-13 18:00:04 +09:00
Blaž Hrastnik
eb9ac0a743
ui: picker: Use ui.selection instead of ui.selection.primary
2021-08-13 17:59:47 +09:00
Blaž Hrastnik
f20dc1283d
ui: picker: Render matches/total counts
2021-08-13 17:56:37 +09:00
Blaž Hrastnik
fd1eaafff5
Add :tree-sitter-scopes, useful when developing indents.toml
2021-08-13 13:15:53 +09:00
Blaž Hrastnik
3de40de0a9
fix build...
2021-08-13 01:28:11 +09:00
Blaž Hrastnik
733ee06b7b
Release v0.4.0
2021-08-13 01:24:04 +09:00
Gokul Soumya
d84f8b5fde
Show file preview in split pane in fuzzy finder ( #534 )
...
* Add preview pane for fuzzy finder
* Fix picker preview lag by caching
* Add picker preview for document symbols
* Cache picker preview per document instead of view
* Use line instead of range for preview doc
* Add picker preview for buffer picker
* Fix render bug and refactor picker
* Refactor picker preview rendering
* Split picker and preview and compose
The current selected item is cloned on every event, which is
undesirable
* Refactor out clones in previewed picker
* Retrieve doc from editor if possible in filepicker
* Disable syntax highlight for picker preview
Files already loaded in memory have syntax highlighting enabled
* Ignore directory symlinks in file picker
* Cleanup unnecessary pubs and derives
* Remove unnecessary highlight from file picker
* Reorganize buffer rendering
* Use normal picker for code actions
* Remove unnecessary generics and trait impls
* Remove prepare_for_render and make render mutable
* Skip picker preview if screen small, less padding
2021-08-12 16:00:42 +09:00
Dmitry Sharshakov
7d51805e94
Support primary clipboard ( #548 )
...
* clipboard-none: add in-memory fallback buffer
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: add Wayland primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: copy to primary selection after mouse move stops
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: don't update primary selection if it is a single character
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: discard result of setting primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: add commands for interaction with primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: implement primary selection copy/paste using commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xsel for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xclip for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: multiple cursor support for middle click paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* rename primary selection to primary clipboard in scope of PR
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: make middle click paste optional
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-term/src/ui/editor.rs
* fix formatting
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: correct defaults if terminal prop is not set
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* refactor: merge clipboard and primary selection implementations
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: remove names for different clipboard/selection providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-view/src/clipboard.rs
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* helix-view: tidy macros
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor paste-replace commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for middle-click-paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: remove memory fallback for command and windows providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard-win: fix build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: return empty string when primary clipboard is missing
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: fix errors in Windows build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-08-12 11:53:48 +09:00
Blaž Hrastnik
d03982ee43
cargo fmt
2021-08-12 10:18:37 +09:00
Blaž Hrastnik
6d52424303
fix: Adjust scroll offset/padding calculation to prevent wobble
...
Fixes #324
2021-08-11 13:53:38 +09:00
Blaž Hrastnik
627b899315
ui: completion: Insert suggestions when tabbing over them
...
Fixes #498
2021-08-11 10:56:32 +09:00
Blaž Hrastnik
f917b5a441
ui: completion: Use sort_text to sort the completions
2021-08-11 10:56:32 +09:00
Nathan Vegdahl
dde2be9395
Fix surround_replace replacing the wrong character on the right. ( #571 )
...
Fixes #569 .
2021-08-11 09:17:59 +09:00
Dmitry Sharshakov
27b551d345
helix-term: handle scrolling when mouse is enabled ( #554 )
...
* helix-term: handle scrolling when mouse is enabled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: configure scrolling speed
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: defaults for edtior config
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: add scroll-lines property
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: scroll hovered view
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: support inverted scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: remove duplicating code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: do not focus view while scrolled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor mouse events and scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* simplify
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-08-10 14:35:20 +09:00
Blaž Hrastnik
86209c93a3
Appease clippy
2021-08-10 10:58:46 +09:00
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
2021-08-10 10:57:07 +09:00
Blaž Hrastnik
a4564adadd
fix: Don't crash if language servers time out
2021-08-10 10:52:53 +09:00
Blaž Hrastnik
0a7add4ad4
Only recalculate resize during rendering, this stops flashing on resize
2021-08-10 10:52:52 +09:00
Kirawi
815ee9e334
fix small terminal size panic with info popup ( #563 )
...
* fix small terminal size panic with info popup
* remove unused enumerator
* fix subtraction overflow panic
2021-08-09 15:46:58 +09:00
Blaž Hrastnik
a2ccfffda1
config: Rename [terminal] to [editor] and pass it into Editor
2021-08-08 14:10:01 +09:00
Blaž Hrastnik
f0eb6ed96a
Resolve a couple TODOs
2021-08-08 14:08:54 +09:00
Blaž Hrastnik
02cba2a7f4
Implement alt-( and alt-) to rotate selection contents
2021-08-08 13:26:13 +09:00
Luctius
8714b71991
Do not shutdown lsp during claim_term
...
Fixes a bug where the language server is told to shutdown directly after application start.
2021-08-07 10:41:41 +09:00
Blaž Hrastnik
b20a5c4c0e
ui: menu: Allow wrapping around on ctrl-p/shift tab
2021-08-06 11:22:23 +09:00
Blaž Hrastnik
66a90130a5
Implement selection rotation with (
and )
2021-08-06 11:22:01 +09:00
Ivan Tham
10c77cdc03
Exit extend after yank
...
Yank should proceed with normal mode.
2021-08-05 17:25:23 +09:00
Blaž Hrastnik
0793841ac3
Refactor copy selection vertically
2021-08-05 17:04:26 +09:00
Cor
f160008add
Vertical Selection
2021-08-05 17:04:26 +09:00
Nathan Vegdahl
8c3a5b14de
Add goto_last_line
command, and bind it to ge
.
...
Resolves #529 .
2021-08-04 09:47:22 +09:00
Blaž Hrastnik
585793eb46
Use an empty stream on Windows to remove duplication
2021-08-03 09:32:21 +09:00
Ivan Tham
821565e4ef
Add ctrl-z to suspend
2021-08-03 09:32:21 +09:00
Blaž Hrastnik
adb5d842ba
Use nicer filepaths instead of URIs in goto picker
2021-08-03 09:30:51 +09:00
Blaž Hrastnik
62eb8c6b40
mouse: Remove verify_screen_coords, refactor primary selection modification
2021-07-30 16:52:14 +09:00
Blaž Hrastnik
6bb744aeac
Remove the jump
2021-07-30 16:52:10 +09:00
Dmitry Sharshakov
8361de45dc
Mouse selection support ( #509 )
...
* Initial mouse selection support
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Disable mouse event capture if editor crashes
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Translate screen coordinates to view position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Select full lines by dragging on line numbers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: don't register dragging as a jump
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count graphemes correctly
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not select lines when dragging on the line number bar
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Split out verify_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not iterate over the graphemes twice
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Switch view by clicking on it
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add disable-mouse config option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Support multiple selections with mouse
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove unnecessary check
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor using match expression
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename local variable
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename mouse option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix dragging selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix crash when clicking past last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count characters better
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove comparison not needed anymore
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Validate coordinates before resolving position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up references to editor tree
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Better way to determine line end and avoid overflow
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix for last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add unit tests for text_pos_at_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-07-30 16:52:00 +09:00
Blaž Hrastnik
0fdb626c2c
Remove embed_runtime feature
...
It's no longer practical to maintain. Closes #451
2021-07-30 16:27:22 +09:00
Nathan Vegdahl
f88d4c1e20
Move indent-style code into helix_core::indent
.
2021-07-30 12:22:59 +09:00
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 .
2021-07-30 09:39:18 +08:00
Nathan Vegdahl
3fda350494
Fixes for new clippy lints in Rust 1.54.
2021-07-29 22:47:18 +02:00
Blaž Hrastnik
05d20e196f
Merge pull request #376 from cessen/great_line_ending_and_cursor_range_cleanup
...
The Great Line Ending & Cursor Range Cleanup
2021-07-29 18:43:20 +09:00
Nathan Vegdahl
e4d41d06e3
Fix typo in comment.
2021-07-28 19:20:23 -07:00
Gokul Soumya
8a2fa692f2
Refactor case where key event is solely a character
2021-07-29 08:39:58 +08:00
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.
2021-07-28 16:03:34 -07:00
Nathan Vegdahl
cd7302ffd3
Enforce cursor/selection invariants in one place.
...
Rather than per-command like before.
2021-07-28 15:57:00 -07:00
Nathan Vegdahl
a873e719d5
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-28 14:11:08 -07:00
Gokul Soumya
b90450b9e8
Fix goto line number
...
Regression from #454 . Go to line 10 with `10gg` or `10G`.
2021-07-28 21:33:18 +08:00
Gokul Soumya
1493313750
Show pending keys in status line ( #515 )
...
* Show pending keys and counts in status line
* Refactor pending key display
2021-07-28 13:57:07 +09:00
Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-26 11:19:10 -07:00
Gokul Soumya
88d6f65239
Allow multi key remappings in config file ( #454 )
...
* Use tree like structure to store keymaps
* Allow multi key keymaps in config file
* Allow multi key keymaps in insert mode
* Make keymap state self contained
* Add keymap! macro for ergonomic declaration
* Add descriptions for editor commands
* Allow keymap! to take multiple keys
* Restore infobox display
* Fix keymap merging and add infobox titles
* Fix and add tests for keymaps
* Clean up comments and apply suggestions
* Allow trailing commas in keymap!
* Remove mode suffixes from keymaps
* Preserve order of keys when showing infobox
* Make command descriptions smaller
* Strip infobox title prefix from items
* Strip infobox title prefix from items
2021-07-27 01:07:13 +09:00
Nathan Vegdahl
01247acf0c
Start searches at the right side of the block cursor.
2021-07-26 08:50:26 -07:00
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on Range
.
2021-07-26 08:40:30 -07:00
Blaž Hrastnik
63e54e30a7
Implement in-memory prompt history
...
Implementation is similar to kakoune: we store the entries into
a register.
2021-07-26 11:19:33 +09:00
Gokul Soumya
e07e42dcfb
fix(term): undo-ing code actions
2021-07-25 19:49:05 +09:00
gbaranski
8da58fe44a
fix(term): use existing implementation of edits_to_transaction
2021-07-25 19:49:05 +09:00
Nathan Vegdahl
f96b8b769b
Switch to a cleaner range-head moving abstraction.
...
Also fix a bunch of bugs related to it.
2021-07-24 07:44:11 -07:00
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>
2021-07-24 10:26:43 +09:00
Nathan Vegdahl
20723495d3
Fixed find_till_char and find_char commands.
...
They worked correctly when extending, but not for normal cursor
movement.
2021-07-23 18:03:40 -07:00
Nathan Vegdahl
8f43dc4039
Fix surround replace command replacing the wrong position on the right.
2021-07-23 17:52:45 -07:00
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-23 17:23:16 -07:00
Nathan Vegdahl
427ae6ac6c
Put selection in separate variable in commands code.
2021-07-23 17:06:14 -07:00
Nathan Vegdahl
ad814b8c2e
Fix append mode, and make insertion always happen at head of range.
2021-07-23 14:27:12 -07:00
Blaž Hrastnik
1789dfabfe
fix: ui/menu: Don't allow scrolling past the end of completion
...
Fixes #472
2021-07-23 18:12:33 +09:00
Blaž Hrastnik
817a7e0bd6
fix: Only try expanding directory completion if it makes sense
...
Fixes #487
2021-07-23 18:10:30 +09:00
Blaž Hrastnik
58d08d36ae
Simplify ui/menu.rs
2021-07-23 18:10:17 +09:00
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
2021-07-22 11:17:03 -07:00
Nathan Vegdahl
673338bdb6
Use Range::line_range()
in some more places I missed.
2021-07-22 10:50:12 -07:00
Ivan Tham
eba0bbda2e
Resume last picker
...
Inspired by space ' in doom emacs.
2021-07-22 11:22:27 +09:00
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.
2021-07-21 09:56:21 -07:00
Nathan Vegdahl
063aa9452d
Fix yank not working with internally zero-width ranges.
2021-07-21 09:32:48 -07:00
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
2021-07-20 18:15:34 -07:00
Nathan Vegdahl
1194fc842a
Use new Range::line_range()
method in more places, as appropriate.
2021-07-20 12:40:58 -07:00
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.
2021-07-20 11:58:56 -07:00
Nathan Vegdahl
e8a3980e46
Fix line-wise p
pasting before the current line instead of after.
2021-07-20 10:56:27 -07:00
Nathan Vegdahl
1910fa7723
Fix incorrect line hihglight when a selection is at the end of a line.
2021-07-20 10:26:00 -07:00
Nathan Vegdahl
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.
2021-07-19 18:29:26 -07:00
Nathan Vegdahl
13b0784009
Fix extend line behavior.
2021-07-19 17:44:18 -07:00
Nathan Vegdahl
b0311f4fc2
Fixed primary cursor position calculation to use 1-width semantics.
...
This had a bunch of knock-on effects that were buggy, such as bracket
match highlighting.
2021-07-19 09:25:10 -07:00
Nathan Vegdahl
079d4ed86d
Properly fix last_line
view calculation.
...
Turned out to be simpler than I thought. Didn't even need to change the
other use-sites.
2021-07-19 08:39:48 -07:00
Nathan Vegdahl
1a9ae72fcb
Fix last line number being drawn in the status bar.
2021-07-18 23:09:55 -07:00
Nathan Vegdahl
e462f32723
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-18 22:02:12 -07:00
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.
2021-07-18 21:59:31 -07:00
Blaž Hrastnik
5292fe0f7d
Calculate completion popup sizing
...
Fixes #220
2021-07-19 11:29:51 +09:00
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>
2021-07-19 01:33:38 +09:00
Nathan Vegdahl
c2fd55e168
Update extend_line command to work with gap indexing.
2021-07-17 11:28:20 -07:00
Nathan Vegdahl
954314a7c9
Update change-case commands to work with gap indexing.
2021-07-17 11:03:39 -07:00
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-17 10:49:03 -07:00
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
2021-07-18 00:29:05 +09:00
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>
2021-07-17 01:12:59 +09:00
Cor
e2bcef718a
Removed double entry of extend_line
2021-07-15 23:25:00 +09:00
Blaž Hrastnik
4a5cb0e04b
Restore C-w shortcut
2021-07-11 16:42:23 +09:00
Blaž Hrastnik
d530d6e39d
Further simplify error handling in :commands
2021-07-11 16:36:36 +09:00
Lionel Flandrin
9c02a1b070
Make command implementation return a Result<()>
...
The error message is displayed with cx.editor.set_error.
2021-07-11 16:36:20 +09:00
Ivan Tham
3e4cd8f8e6
Add infobox for view
2021-07-11 11:12:04 +09:00
Kirawi
bb121a3e4b
Injection Query Support ( #430 )
...
* wip
* wip
* fixed unsafe
* fix clippy
* move out reference variable
* fmt
* remove arc
* change safety comment
2021-07-11 10:40:18 +09:00
Nathan Vegdahl
b4c59b444c
Update surround commands to work with gap indexing.
2021-07-08 16:47:20 -07:00
Ivan Tham
1c71fced0e
Add more modes to infobox
2021-07-08 09:37:18 +09:00
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-05 20:27:49 -07:00
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.
2021-07-06 10:07:01 +09:00
Nathan Vegdahl
4952d6f801
Fix phantom lines in some CRLF files.
...
Fixes #415 . The issue was that cursor highlighting wasn't extending
to encompass the entire CRLF grapheme, and therefore ended up splitting
it. This presumably was messing up other grapheme rendering as
well, and this fixes that as well.
2021-07-05 20:07:06 +08:00
Blaž Hrastnik
cb4bab8903
Remove outdated comment
2021-07-05 10:12:46 +09:00
Blaž Hrastnik
a4e28c6927
Implement X
as extend selection to line bounds
2021-07-05 10:12:34 +09:00
Ivan Tham
d02bbb7bae
Fix info panic on small terminal
2021-07-05 00:19:56 +09:00
Blaž Hrastnik
ebccc96cd4
Factor out goto t/m/b into a single function again
2021-07-04 18:07:58 +09:00
Blaž Hrastnik
6ce303977c
Revert back to 'gm'
...
top / middle / bottom mnemonic.
2021-07-04 18:02:42 +09:00
Ivan Tham
bbbbfa9bcf
Goto mode use infobox
...
In the meantime, change gm to gc.
Remove extra space in mode title.
2021-07-04 18:01:59 +09:00
Ivan Tham
5977b07e19
Reduce calculation and improve pattern in infobox
...
- switch to use static OnceCell to calculate Info once
- pass Vec<(&[KeyEvent], &str)> rather than Vec<(Vec<KeyEvent>, &str)>
- expr -> tt to allow using | as separator, make it more like match
2021-07-04 18:01:59 +09:00
Ivan Tham
64f83dfcbd
Support infobox doc gen on stable release
2021-07-04 18:01:59 +09:00
Ivan Tham
61e925cbed
Add infobox doc generation and improve ergonomics
2021-07-04 18:01:59 +09:00
Ivan Tham
6710855eac
Fix rendering issues for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
9effe71b7d
Apply suggestions from blaz for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
4c190ec9d9
Suggestions for infobox changes
...
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
2021-07-04 18:01:59 +09:00
Ivan Tham
8985c58fd3
Add infobox
2021-07-04 18:01:59 +09:00
Blaž Hrastnik
83e7dd8602
fix: Temporary fix for #402
2021-07-03 12:30:13 +09:00
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
2021-07-03 10:07:49 +09:00
Nathan Vegdahl
28d2d68804
Make horizontal selection movement work properly.
2021-07-02 09:51:29 -07:00
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
2021-07-02 23:54:50 +09:00
Nathan Vegdahl
22dca3b111
Allow last line in file to lack a line break character.
2021-07-01 23:36:09 -07:00
Nathan Vegdahl
2224a1527e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-01 19:37:28 -07:00
Nathan Vegdahl
0b2d51cf5a
Fix unused Result
warnings in helix-term.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
efa3389b6a
Fix unused variable, parameter, and mut
warnings in helix-term.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
702a0491db
Remove #[allow(unused)] from helix-term, and fix unused imports.
...
Lots of other warning still left. Will address in subsequent commits.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
e725957704
Ensure a minimum selection width on commands that need it.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
7c7be6d583
Make Selection
's normalize and transform methods self-consuming only.
2021-07-01 14:22:28 -07:00