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