dependabot[bot]
ed45d380eb
build(deps): bump smallvec from 1.7.0 to 1.8.0 ( #1532 )
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.7.0...v1.8.0 )
---
updated-dependencies:
- dependency-name: smallvec
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-01-18 09:42:07 +08:00
Skyler Hawthorne
56a9ce5d83
fix(auto_pairs): fix auto pairs with crlf ( #1470 )
...
Auto pairs were resulting in incorrect ranges in the resulting when the
line terminators are CRLF (i.e. Windows). It turns out this is because
when we were checking if the selection was a single-width cursor, it
incorrectly assumed that this would be a single char. This is not the
case, as a cursor can cover a multi-code point grapheme. Therefore,
we must instead explicitly work with and check graphemes to determine
if the cursor should move or extend the selection.
Fixes #1436
2022-01-18 00:39:12 +09:00
Blaž Hrastnik
e7eab95b94
Update to rust 1.58, fix a bunch of optional lints
2022-01-16 14:19:48 +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
Kirawi
8d273a5613
remove outdated note ( #1485 )
2022-01-12 13:11:00 +09:00
Michael Davis
939261fc07
expand_selection to current node with no children ( #1454 )
2022-01-09 00:31:05 +09:00
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
efaac6c5d3
Release 0.6
2022-01-04 18:54:37 +09:00
Sebastian Neubauer
641255ccc8
Add llvm-mir highlighting ( #1398 )
...
* Add injection regex for more languages
To support embedding them in other languages like markdown.
* Add llvm-mir highlighting
LLVM Machine IR is dumped as yaml files that can embed LLVM IR and
Machine IR.
To support this, add a llvm-mir-yaml language that uses the yaml
parser, but uses different injections to highlight IR and MIR.
* Update submodule with fixed multiline comments
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2022-01-04 10:52:34 +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
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
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
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
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
Stuart Hinson
02f24e1214
Fix match brackets comment ( #1346 )
2021-12-24 07:27:31 +05:30
Skyler Hawthorne
5b4540fc2d
Auto pairs selection ( #1254 )
...
* use auto pairs with selections
Previously, the auto pairs code was converting the user selection into
its cursor form, and setting the transaction's selection to that cursor.
This has the effect of destroying the user's selection if they type a
pair character that gets auto completed.
This fixes the code to work with the user's selection, inserting auto
pairs where appropriate, but either keeping or extending the user's
selection.
* use movement::Direction instead of bool
* assume 0-width cursor is forward
2021-12-21 18:17:33 +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
Kirawi
02fc52f6d5
Apply recent nightly suggestions ( #1286 )
...
array iterators are now implicit
2021-12-18 14:57:49 +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
ath3
3156577fbf
Open files with spaces in filename, allow opening multiple files ( #1231 )
2021-12-12 21:13:33 +09:00
Gokul Soumya
d08bdfa838
Use same name used in config files for langs in docs
2021-12-08 10:23:50 +09:00
Gokul Soumya
a78b789406
Auto generate docs for language support
2021-12-08 10:23:50 +09:00
Jason Rodney Hansen
539c27e3f5
Remove Clone
derive
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
0b7911d921
Remove FormatError
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
584a31cd90
Used checked_add for years and months
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
c74cd48f38
Cleanup
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
febee2dc0c
No need to clone format
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
2a0c685a78
Remove dependency on gregorian crate
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
64afd54654
Cleanup
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
cc04fabe40
Formatting
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
57a8e79940
No default features for gregorian
2021-12-05 16:22:58 +08:00
Jason Rodney Hansen
95cfeed2fa
Add support for incrementing year and month
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
70c62530ee
Support env flags in shebang ( #1224 )
2021-12-04 00:13:24 +09:00
Blaž Hrastnik
2dbf966293
dap: Start working on runInTerminal support
2021-12-03 11:59:44 +09:00
Blaž Hrastnik
01f7a312d0
Address new lint on 1.57
2021-12-03 10:02:44 +09:00
Blaž Hrastnik
119dee2980
fix: Correctly detect empty transactions
...
Fixes #1221
2021-12-02 23:49:54 +09:00
Blaž Hrastnik
d14ca05d6b
Simplify some cases that use return None to use ?
2021-12-02 10:31:19 +09:00
George Rodrigues
3e15aead4a
Fix typo on docs ( #1201 )
2021-12-01 09:11:25 +09:00
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
2021-11-30 13:06:30 +09:00
Blaž Hrastnik
30171416cb
Gutter functions
2021-11-29 11:00:28 +09:00
Gokul Soumya
dc53e65b9e
Fix surround cursor position calculation ( #1183 )
...
Fixes #1077 . This was caused by the assumption that a block
cursor is represented as zero width internally and simply
rendered to be a single width selection, where as in reality
a block cursor is an actual single width selection in form and
function.
Behavioural changes:
1. Surround selection no longer works when cursor is _on_ a
surround character that has matching pairs (like `'`
or `"`). This was the intended behaviour from the start
but worked till now because of the cursor position
calculation mismatch.
2021-11-29 10:33:53 +09:00
ath3
1d773bcefb
Implement black hole register ( #1165 )
2021-11-28 10:21:40 +09:00
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
2021-11-21 20:06:45 +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
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
ath3
90fd09f2cc
Fix selection remove doc comment ( #1122 )
2021-11-18 09:49:56 +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
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
Blaž Hrastnik
1817b7f581
minor: Import Range too
2021-11-15 00:12:14 +09:00
ath3
35c974c9c4
Implement "Goto last modification" command ( #1067 )
2021-11-15 00:11:53 +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
Omnikar
a424ef4e20
Use default languages.toml
if user's is invalid ( #994 )
2021-11-09 11:07:54 +09:00
Blaž Hrastnik
e18198aeb2
Revert "fix(core): stop merging array toml config values ( #1004 )"
...
It breaks languages.toml merging
This reverts commit 4304b52ff8
.
2021-11-09 10:58:23 +09:00
Blaž Hrastnik
f804ed3192
Make shebangs optional, they don't make sense outside of scripts
2021-11-09 10:57:08 +09:00
Blaž Hrastnik
549cdee561
Refactor shebang detection to reuse the loaded buffer
2021-11-09 00:30:34 +09:00
ath3
77dbbc73f9
Detect filetype from shebang line ( #1001 )
2021-11-09 00:19:44 +09:00
Blaž Hrastnik
82ff5b0ab6
Specify capacity on toggle_line_comments
2021-11-08 10:03:21 +09:00
Daniel S Poulin
1e793c2bbf
Adds single and double quotes to matching pairs ( #995 )
...
This enables `mm` to work on quote characters as well as highlighting of
matching quote when on it.
2021-11-08 09:57:26 +09:00
Omnikar
a252ecd8c8
Add WORD textobject ( #991 )
...
* Add WORD textobject
* Document WORD textobject
2021-11-08 09:54:39 +09:00
Carter Snook
4304b52ff8
fix(core): stop merging array toml config values ( #1004 )
2021-11-08 09:50:03 +09:00
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
2021-11-07 00:28:19 +09:00
Blaž Hrastnik
f979bdc442
Specify capacity on toggle_line_comments
2021-11-06 23:57:42 +09:00
Blaž Hrastnik
e80708eba7
Make sure document diagnostics are sorted
2021-11-06 18:58:58 +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
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
Kirawi
ee889aaa85
Updated tree-sitter query scopes ( #896 )
...
* updated theme scopes
variable.property -> variable.field
property -> variable.field
* updated theme scopes
* update book and themes
updated book and themes to reflect scope changes
* wip
* update more queries
* update dark_plus.toml
2021-11-03 12:00:52 +09:00
cossonleo
befecc8a9a
select smaller range on some case
2021-10-29 10:04:12 +09:00
Omnikar
45fadf6151
Add hyperlinks to fix cargo doc
warn ( #931 )
2021-10-29 09:55:15 +09:00
Blaž Hrastnik
f3c7f20dbc
Release v0.5.0
2021-10-28 16:41:34 +09:00
Gygaxis Vainhardt
0a38983ee3
Remove three transmutes from helix-core syntax.rs ( #923 )
2021-10-28 10:24:11 +09:00
Kirawi
92c2d5d3bf
Document more of helix-core ( #904 )
2021-10-26 01:02:16 +09:00
Blaž Hrastnik
3edca7854e
completion: fully revert state before apply & insertText common prefix
2021-10-25 11:09:09 +09:00
Blaž Hrastnik
bfb6cff5a9
fix: Compose where changes.compose(empty_other)
2021-10-25 11:09:09 +09:00
Dmitry Sharshakov
6aa9838ea6
dap: support arrays as arguments
2021-10-24 17:24:18 +03:00
Blaž Hrastnik
cee7ad781e
Mark a few functions as const
2021-10-24 17:28:29 +09:00
Kirawi
0cb5e0b2ca
log syntax highlighting init errors ( #895 )
2021-10-23 21:52:18 +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
182a59b552
Update to rust 1.56 + 2021 edition
2021-10-22 12:15:18 +09:00
Michael Davis
1766bdb9d4
clean up combined-injections comment ( #880 )
2021-10-19 13:08:06 +09:00
Blaž Hrastnik
83a8167402
Invert core -> dap dependency
2021-10-17 13:58:11 +09:00
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
2021-10-17 13:51:56 +09:00
Dmitry Sharshakov
48cb81eff1
Merge branch 'master' into debug
2021-10-09 16:03:46 +03:00
Ivan Tham
4260b31ec0
Update mdbook style and fix unreadable table head ( #806 )
...
The styles are now pulled from upstream styles, some of the changes I
submitted it back to upstream.
Fix #796
2021-10-09 20:35:27 +09:00
Midnight Exigent
eedcea7e6b
Allow language.config
(in languages.toml) to be passed in as a toml object ( #807 )
...
* allow language.config (in languages.toml) to be passed in as a toml object
* Change config field for languages from json string to toml object
* remove indents on languages.toml config
* fix: remove patch version from serde_json import in helix-core
* Use same tree-sitter-zig as upstream/master
2021-10-08 11:14:12 +09:00
dependabot[bot]
8925fdd6f3
build(deps): bump smallvec from 1.6.1 to 1.7.0 ( #813 )
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.6.1...v1.7.0 )
---
updated-dependencies:
- dependency-name: smallvec
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-10-05 12:18:37 +09:00
dependabot[bot]
97b24fd91e
build(deps): bump similar from 2.0.0 to 2.1.0 ( #812 )
...
Bumps [similar](https://github.com/mitsuhiko/similar ) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/mitsuhiko/similar/releases )
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/mitsuhiko/similar/compare/2.0.0...2.1.0 )
---
updated-dependencies:
- dependency-name: similar
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-10-05 12:18:25 +09:00
Dmitry Sharshakov
d943a51e3e
editor: add Node.js debugger
2021-09-26 21:36:06 +03:00
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
2021-09-25 23:14:59 +03: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
64e8f0017c
...
2021-09-16 16:04:32 +09:00
Blaž Hrastnik
d8b94ba85f
Fix broken test
2021-09-16 15:54:43 +09:00
Blaž Hrastnik
dd0b15e1f1
syntax: Properly handle injection-regex for language injections
2021-09-16 15:50:14 +09:00
dependabot[bot]
51b7f40da1
build(deps): bump similar from 1.3.0 to 2.0.0 ( #754 )
...
Bumps [similar](https://github.com/mitsuhiko/similar ) from 1.3.0 to 2.0.0.
- [Release notes](https://github.com/mitsuhiko/similar/releases )
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/mitsuhiko/similar/compare/1.3.0...2.0.0 )
---
updated-dependencies:
- dependency-name: similar
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-14 09:21:35 +09:00
Blaž Hrastnik
066367c0a4
fix: Need to reset set_byte_range in case cursor_ref is reused.
2021-09-13 17:44:57 +09:00
Dmitry Sharshakov
413e477dc2
lldb: use stdio transport by default
2021-09-06 13:49:31 +03:00
Blaž Hrastnik
4ac29434cb
syntax: Add go & rust locals, improve tree-sitter error message
2021-09-06 18:13:52 +09:00
Blaž Hrastnik
585e3ce830
fix: tree-sitter-scopes would infinitely loop
2021-09-06 15:25:46 +09:00
Blaž Hrastnik
3cb95be452
Update tree-sitter to 0.20
...
0.20 includes querying improvements, we no longer have to convert
fragments to strings but can return an iterator of chunks instead.
2021-09-06 13:21:53 +09:00
Blaž Hrastnik
4d24a43651
dap: use smallvec! macro
2021-08-29 23:02:46 +09:00
Blaž Hrastnik
2a7e38a2b4
helix-core doesn't need to import serde_json
2021-08-29 22:33:42 +09:00
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema
2021-08-29 14:51:47 +03:00
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
2021-08-28 14:59:26 +03:00
Brian Shu
fa4caf7e3d
remove unsafe
2021-08-27 09:50:57 +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
Blaž Hrastnik
68bf9fdf02
Fix tests broken by the State change
2021-08-26 09:26:38 +09:00
Blaž Hrastnik
9d4c301563
Reduce State use a bit further
...
This is a legacy type that should be fully removed.
2021-08-26 09:21:07 +09:00
Dmitry Sharshakov
2ad2838a27
Fix tests
2021-08-25 19:36:49 +03:00
Dmitry Sharshakov
c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug
2021-08-25 19:22:01 +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
c463142e5e
Create new debugger config format
2021-08-24 11:56:18 +03:00
Dmitry Sharshakov
56d00fa7f4
Fix tests
2021-08-23 18:00:30 +03:00
Dmitry Sharshakov
b6b99b2487
config: minor fixes
2021-08-23 17:26:12 +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
langbamit
36095326d0
Fix auto pairs return wrong selection ( #613 )
2021-08-19 00:59:53 +09:00
Cor Peters
ac3c1719c9
Fixes crash on empty rust file. ( #592 )
...
Fixes #591
Co-authored-by: Cor Peters <luctius@gmail.com>
2021-08-16 19:18:23 +09:00
Blaž Hrastnik
1caedc18ca
Release v0.4.1
2021-08-14 13:32:29 +09:00
Blaž Hrastnik
b635e35818
Appease clippy
2021-08-13 13:16:31 +09:00
Blaž Hrastnik
fd1eaafff5
Add :tree-sitter-scopes, useful when developing indents.toml
2021-08-13 13:15:53 +09:00
Blaž Hrastnik
7c834d6506
fix: tree sitter rendering glitches with multiple selection edits
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
Nathan Vegdahl
b5223618ed
Document pos_at_coords
better.
...
Particularly the effect of the `limit_before_line_ending`
parameter.
2021-08-09 11:12:38 +09:00
Nathan Vegdahl
953125d3f3
Fix around-word text-object selection. ( #546 )
...
* Fix around-word text-object selection.
* Text object around-word: select to the left if no whitespace on the right.
Also only select around when there's whitespace at all.
* Make select-word-around select all white space on a side.
* Update commented-out test case.
* Fix unused import warning from rebase.
2021-08-06 09:32:33 +09:00
Nathan Vegdahl
c9cbc344fc
Fix buggy surround behavior from #376 .
...
Fixes #543 .
2021-08-04 09:55:59 +08:00
Blaž Hrastnik
62eb8c6b40
mouse: Remove verify_screen_coords, refactor primary selection modification
2021-07-30 16:52:14 +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
3fda350494
Fixes for new clippy lints in Rust 1.54.
2021-07-29 22:47:18 +02: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
aead4e69a6
Minor cleanup of the vertical movement code.
2021-07-26 23:20:58 -07:00
Nathan Vegdahl
84f8167fd1
Use match
for branching on the Direction
enum in more places.
2021-07-26 23:09:58 -07:00
Nathan Vegdahl
5229c5387f
Add unit tests for some of the new Range
methods.
2021-07-26 20:03:12 -07:00
Nathan Vegdahl
b2c76dc627
Improve Range
documentation and organization.
2021-07-26 18:04:03 -07:00
Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-26 11:19:10 -07:00
Nathan Vegdahl
5ee6ba5b38
Address some PR comments.
2021-07-26 10:51:00 -07:00
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on Range
.
2021-07-26 08:40:30 -07:00
Ivan Tham
f7c8500797
Fix append newline indent
...
Fix #492
2021-07-26 22:36:40 +09: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
Omnikar
112ae5cffe
Determine whether to use a margin of 0 or 1 when uncommenting ( #476 )
...
* Implement `margin` calculation for uncommenting
* Move `margin` calculation to `find_line_comment`
* Fix comment bug with multiple selections on a line
* Fix `find_line_comment` test for new return type
* Generate a single vec of lines for comment toggle
`toggle_line_comments` collects the lines covered by all selections into
a `Vec`, skipping duplicates. `find_line_comment` now returns the lines
to operate on, instead of returning the lines to skip.
* Fix test for `find_line_comment`
* Reserve length of `to_change` instead of `lines`
The length of `lines` includes blank lines which will be skipped, and as
such do not need space for a change reserved for them. `to_change`
includes only the lines which will be changed.
* Use `token.chars().count()` for token char length
* Create `changes` with capacity instead of reserving
* Remove unnecessary clones in `test_find_line_comment`
* Add test case for 0 margin comments
* Add comments explaining `find_line_comment`
2021-07-26 11:00:58 +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
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-23 17:23:16 -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
Nathan Vegdahl
ffb8057a7f
Fix ocassional panic when matching brackets.
2021-07-22 18:47:37 -07:00
Nathan Vegdahl
fd684ef693
Revert display-width-based vertical cursor movement.
...
Still needs to be done, but should be part of a separate PR.
2021-07-22 13:21:44 -07:00
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
2021-07-22 11:17:03 -07:00
fossdd
d4bd5b3766
The item fmt
was imported redundantly
...
Fixed warning:
```
warning: the item `fmt` is imported redundantly
--> helix-core/src/syntax.rs:98:9
|
16 | fmt,
| --- the item `fmt` is already imported here
...
98 | use std::fmt;
| ^^^^^^^^
|
```
2021-07-22 22:39:17 +09:00
Nathan Vegdahl
bc85c85501
Fix selections not being modified quite correctly with text edits.
2021-07-21 09:23:01 -07:00
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
2021-07-20 18:15:34 -07:00
Nathan Vegdahl
c9300ec35f
Fix comment toggle command also sometimes toggling the next line.
2021-07-20 12:23:40 -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
c400a60377
Fix Selection::push()
to make the pushed range primary.
...
Apparently I accidentally deleted that behavior in the cleanup.
2021-07-19 18:25:36 -07:00
Nathan Vegdahl
e98d669c30
Handle edge case in range_to_target()
correctly.
2021-07-19 12:30:08 -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
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
bf43fabf65
Remove ExactSizeIterator requirement on Transaction::change
...
Size hint is enough.
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
Cor Peters
0aa43902ca
Added option to provide a custom config file to the lsp. ( #460 )
...
* Added option to provide a custom config file to the lsp.
* Simplified lsp loading routine with anyhow
* Moved config to language.toml
* Fixed test case
* Cargo fmt
* Revert now-useless changes
* Renamed custom_config to config
Co-authored-by: Cor <prive@corpeters.nl>
2021-07-18 16:56:25 +09:00
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-17 10:49:03 -07:00
Blaž Hrastnik
dd2903ff10
Dynamically load grammar libraries at runtime
2021-07-14 10:00:05 +09:00
Nathan Vegdahl
b4c59b444c
Update surround commands to work with gap indexing.
2021-07-08 16:47:20 -07:00
Kirawi
084a8a9522
Rewritten Rust highlights.scm
( #425 )
...
* rewrote Rust highlights.scm
* wip
* wip
* wip
* wip
* fixed type highlighting
* wip
* rewrite again
* moved operators
* missing newline
* missing newline
* update book
* fix constructor highlighting
* fix constructor highlighting
* fix const highlighting
* better constructor highlighting
* remove dup, bug was my locals.scm file
* fixed docs
* merge
* fixed for highlighting
* add yield
* remove yield
* added yield back
* fixed yield highlighting
* unecessary
2021-07-09 01:11:20 +09:00
Nathan Vegdahl
753f7f381b
Implement Range::put()
which manages range movements and extensions.
...
In particular, this wraps the annoying logic involved in keeping the
cursor width to 1 grapheme.
2021-07-07 17:24:39 -07:00
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-05 20:27:49 -07:00
Nathan Vegdahl
6e15c9b874
Make vertical selection movement work properly.
2021-07-05 18:58:33 -07:00
dependabot[bot]
c8681a820c
Bump unicode-segmentation from 1.7.1 to 1.8.0
...
Bumps [unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation ) from 1.7.1 to 1.8.0.
- [Release notes](https://github.com/unicode-rs/unicode-segmentation/releases )
- [Commits](https://github.com/unicode-rs/unicode-segmentation/compare/1.7.1...v1.8.0 )
---
updated-dependencies:
- dependency-name: unicode-segmentation
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-07-06 09:52:33 +09:00
Ivan Tham
6ccfa229ed
Fix typo on comment in surround
2021-07-03 20:20:24 +08:00
Gokul Soumya
351c1e7e55
Fix surround bug when cursor on same pair
...
For example when the cursor is _on_ the `'` in `'word'`, the cursor
wouldn't move because the search for a matching pair started _from_ the
position of the cursor and simply found itself.
2021-07-03 20:20:24 +08: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
Perry Thompson
e177b27baf
Add missing import
2021-07-02 12:10:15 +09:00
Nathan Vegdahl
230248bbc3
Fix a couple additional unused
warnings after merge.
2021-07-01 19:40:37 -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
9f62ad0715
Fixed last unused
warning.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
c389f41f14
Fix one of the two remaining warnings.
...
One of them was a lot more obvious than I thought.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
220bc85821
Fix all remaining warnings in helix-core except for two.
...
I'm not sure how to address them, because they look like they
might be bugs, and code is involved. Will poke the relevant people.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
b571f28641
Remove #[allow(unused)] from helix-core, and fix unused imports.
...
Still a bunch more warnings to fix in core, but it's a start.
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
Nathan Vegdahl
0ae522f3df
Clean up Selection
to not use so many allocations.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
77a266e818
Better validation method APIs for Range
.
...
This way they do less work, are more specific to what we actually
need, and they compose.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
d07074740b
Add Range
methods for various kinds of validation.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
c1b0a71975
Change the Range
type and associated functions to gap indexing.
2021-07-01 14:22:28 -07:00
Blaž Hrastnik
3007478567
fix: Correctly merge multiple selection ranges together
...
Fixes #391
2021-06-30 16:08:41 +09:00
PabloMansanet
de8745aea7
Incorporate long word commands into keymap
2021-06-30 00:56:19 +09:00
PabloMansanet
73572b7780
Add long word unit tests
2021-06-30 00:56:19 +09:00
PabloMansanet
073517a92f
Add long word motion implementation
2021-06-30 00:56:19 +09:00
Blaž Hrastnik
51162ae6b2
fix ca98210d20
2021-06-28 18:05:20 +09:00
Blaž Hrastnik
ca98210d20
fix: insert() | delete() would calculate the new insert incorrectly
...
Refs #386
2021-06-28 17:49:34 +09:00
Blaž Hrastnik
d4e1ec339e
Don't crash if diagnostics span past EOF
2021-06-28 14:50:35 +09:00
Blaž Hrastnik
1b102d5532
Extract the merge "operator" into helix-core
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
44566ea812
Release 0.3.0
2021-06-27 13:27:47 +09:00
Nathan Vegdahl
a6cadddef4
Fix silly mistake in previous phantom line bug fix.
...
Fixes #381 . I was trying to change an index value that... wasn't
even an index value.
2021-06-26 14:26:18 +09:00
Nathan Vegdahl
2dba228c76
Fix highlight code splitting graphemes.
...
This resulted in phantom blank lines in files with CRLF line
endings, but could potentially have manifested with other
graphemes as well.
2021-06-26 11:09:50 +09:00
Gokul Soumya
394629ab73
Skip enclosed pairs in surround
...
Surround operations previously ignored other pairs that are
enclosed within which should be skipped. For example if the
cursor is on the `,` in `{{a},{b}}`, doing `md{` previously
would delete the `{` on the left of `a` and `}` on the right
of `b` instead of the outermost braces. This commit corrects
this behavior.
2021-06-24 13:02:56 +09:00
Nathan Vegdahl
9cbf564d08
Handle erroneously ignored case in RopeGraphemes iterator.
2021-06-24 10:04:03 +09:00
Blaž Hrastnik
7f6265ecf3
fix: crash with ctrl-c on empty file
2021-06-24 01:38:02 +09:00
Shafkath Shuhan
fd98e743e8
Handle non-UTF8 files
2021-06-23 15:40:27 +09:00
Nathan Vegdahl
38bf9c2576
Missed some items in the CRLF PR.
2021-06-23 12:43:09 +09:00
Blaž Hrastnik
9c53461429
fix: Select matching at the start of the doc could crash. Fixes #346
2021-06-23 12:27:38 +09:00
Gokul Soumya
892c80771a
Correctly identify pairs when cursor on pair
2021-06-22 14:27:51 +09:00
Gokul Soumya
86271bac18
Refactor and add tests for surround
2021-06-22 14:27:51 +09:00
Gokul Soumya
4754b2e5ae
Add more surround pair characters
2021-06-22 14:27:51 +09:00
Gokul Soumya
13648d28b9
Add surround keybinds
2021-06-22 14:27:51 +09:00
Nathan Vegdahl
f2954fa153
Flesh out the line ending utility unit tests.
2021-06-21 12:56:42 -07:00
Nathan Vegdahl
7c4fa18764
Fix clippy warnings.
2021-06-21 12:02:44 -07:00
Nathan Vegdahl
07e28802f6
Add function to get the line ending of a str slice.
...
This is needed in some places.
2021-06-21 10:29:29 -07:00
Nathan Vegdahl
3d3149e0d5
Silence clippy warning.
2021-06-20 16:13:59 -07:00
Nathan Vegdahl
e686c3e462
Merge branch 'master' of github.com:helix-editor/helix into line_ending_detection
...
Rebasing was making me manually fix conflicts on every commit, so
merging instead.
2021-06-20 16:09:14 -07:00
Nathan Vegdahl
4efd6713c5
Work on moving code over to LineEnding instead of assuming '\n'.
...
Also some general cleanup and some minor fixes along the way.
2021-06-20 15:33:02 -07:00
Nathan Vegdahl
5d22e3c4e5
Misc fixes and clean up of line ending detect code.
2021-06-20 00:40:41 -07:00
Blaž Hrastnik
e9a3245aae
Re-export unicode crates from helix_core
2021-06-20 16:38:58 +09:00
Blaž Hrastnik
9275021497
ui: prompt: Better unicode support
...
We copied over eval_movement from wezterm, that already solves most of
our problems. self.cursor is now byte-based.
2021-06-20 16:38:58 +09:00
Jan Hrastnik
8634e04a31
added the line_end helper function
2021-06-20 02:22:10 +02:00
Jan Hrastnik
701eb0dd68
changed some hardcoded newlines, removed a else if in line_ending.rs
2021-06-20 01:24:36 +02:00
wojciechkepka
6825e19509
Only reconfiure highlights when setting theme
2021-06-20 00:07:13 +09:00
wojciechkepka
ce97a2f05f
Add ability to change theme on editor
2021-06-20 00:07:13 +09:00
Jan Hrastnik
cdd9347457
Merge remote-tracking branch 'origin/master' into line_ending_detection
2021-06-19 14:51:53 +02:00
Jan Hrastnik
97323dc2f9
ran cargo fmt
2021-06-19 14:05:11 +02:00
Jan Hrastnik
ecb884db98
added get_line_ending from pr comment
2021-06-19 14:03:14 +02:00
Benoît CORTIER
03d1ca7b0a
cargo: add more metadata to manifests
2021-06-19 10:04:59 +09:00
Benoît CORTIER
db5bdf4f2d
Run cargo-diet
...
cargo-diet is a helper for computing the optimal `include` directives
for Cargo.toml manifests.
https://github.com/the-lean-crate/cargo-diet
2021-06-19 10:04:59 +09:00
Benoît CORTIER
b48054f3ee
cargo: add version to local dependencies
...
First step towards enabling us to publish on crates.io.
See: https://github.com/helix-editor/helix/issues/42
2021-06-19 10:04:59 +09:00
Benoît CORTIER
b0522239e7
Update ropey dependency to 1.3
2021-06-18 22:56:36 +09:00
Wojciech Kępka
41b07486ad
Fix expansion of ~
( #284 )
...
* Fix expansion of `~`, dont use directory relative to cwd.
* Add `expand_tilde`
* Bring back `canonicalize_path`, use `expand_tilde` to `normalize`
* Make `:open ~` completion work
* Fix clippy
* Fold home dir into tilde in Document `realitve_path`
2021-06-18 15:19:34 +09:00
Jan Hrastnik
8bccd6df30
applied changes from pr review
2021-06-17 13:49:50 +02:00
Jan Hrastnik
a4f5a0134e
trying out line ending helper functions in commands.rs
2021-06-16 17:13:41 +02:00
Jan Hrastnik
a9a718c3ca
added some tests and a line_ending helper function in document.rs
2021-06-16 17:11:16 +02:00
Jan Hrastnik
e4849f41be
fix typo
2021-06-16 17:09:03 +02:00
Jan Hrastnik
9c419fe05c
added more changes from pr review for line_ending_detection
2021-06-16 17:08:46 +02:00
Jan Hrastnik
5eb6918392
resolved conflict in rebase
2021-06-16 17:05:14 +02:00
Jan Hrastnik
17f69a03e0
ran cargo clippy and cargo fmt
2021-06-16 17:00:30 +02:00
Jan Hrastnik
3756c21bae
rebase on branch line_ending_detection
2021-06-16 17:00:21 +02:00
Benoît CORTIER
6bdf609caa
Remove RwLock for registers
...
Registers are stored inside `Editor` and accessed without `RwLock`.
To work around ownership, I added a sister method to `Editor::current`:
`Editor::current_with_context`. I tried to modify `Editor::current`
directly but it's used at a lot of places so I reverted into this for
now at least.
2021-06-15 23:01:56 +08:00
Nathan Vegdahl
0a5580aa21
Address PR comments.
...
- Move char functions into their own module under helix_core.
- Use matches!() macro where appropriate.
- Use a static lifetime on indent_unit() now that we can.
2021-06-14 18:32:23 -07:00
Ivan Tham
1bda454149
Add ctrl-w for prompt
2021-06-15 01:06:53 +09:00
dependabot[bot]
e4b3a666d2
Bump once_cell from 1.7.2 to 1.8.0 ( #255 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.7.2...v1.8.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-06-14 17:46:12 +09:00
Blaž Hrastnik
ae5ecfdf66
Release v0.2.0
2021-06-13 22:35:13 +09:00
Wojciech Kępka
4b6aff8c66
Use runtime
dir when defaulting to executable location
2021-06-12 17:26:41 +08:00
Wojciech Kępka
4a40e935de
Make runtime_dir
private
2021-06-12 17:26:41 +08:00
Wojciech Kępka
716067ba05
Add more ways to detect runtime directory
2021-06-12 17:26:41 +08:00
Blaž Hrastnik
1665bac1b6
Fix broken test
2021-06-12 10:24:48 +09:00
Blaž Hrastnik
278361a086
Only auto-format for certain languages
...
Fixes #53
Fixes #207
2021-06-12 10:20:37 +09:00
Jakub Bartodziej
69fe46a122
Add :earlier and :later commands that can be used to navigate the full edit history. ( #194 )
...
* Disable deleting from an empty buffer which can cause a crash.
* Improve on the fix for deleting from the end of the buffer.
* Clean up leftover log.
* Avoid theoretical underflow.
* Implement :before which accepts a time interval and moves the editor to
the closest history state to the commit of the current time minus that
interval. Current time is now by default, or the commit time if :before
has just been used.
* Add :earlier an :later commands that can move through
the edit history and retrieve changes hidded by undoing
and commiting new changes. The commands accept a number
of steps or a time period relative to the currrent change.
* Fix clippy lint error.
* Remove the dependency on parse_duration, add a custom parser instead.
* Fix clippy errors.
* Make helix_core::history a public module.
* Use the helper for getting the current document and view.
* Handled some PR comments.
* Fix the logic in :later n.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for :earlier.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add an alias for later.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Run cargo fmt.
* Add some tests for earlier and later.
* Add more tests and restore the fix for later that diappeared somehow.
* Use ? instead of a match on an option.
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Rename to UndoKind.
* Remove the leftover match.
* Handle a bunch of review comments.
* More systemd.time compliant time units and additional description for the new commands.
* A more concise rewrite of the time span parser using ideas from PR discussion.
* Replace a match with map_err().
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: Jakub Bartodziej <jqb@google.com>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-11 22:06:13 +09:00
PabloMansanet
86af55c379
Movement fixes, refactor and unit test suite ( #217 )
...
* Add convenience/clarity wrapper for Range initialization
* Test horizontal moves
* Add column jumping tests
* Add failing movement conditions for multi-word moves
* Refactor skip_over_next
* Add complex forward movement unit tests
* Add strict whitespace checks and edge case tests
* Restore formatting
* Remove unused function
* Add empty test case for deletion and fix nth_prev_word_boundary
* Add tests for backward motion
* Refactor word movement
* Address review comments and finish refactoring backwards move
* Finish unit test suite
* Fmt pass
* Fix lint erors
* Clean up diff restoring bad 'cargo fmt' actions
* Simplify movement closures (thanks Pickfire)
* Fmt pass
* Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API
* Break down tuple function
* Extract common logic to all movement functions
* Split iterator helpers away into their own module
* WIP reducing clones
* Operate on spans
* WIP simplifying iterators
* Simplify motion helpers
* Fix iterator
* Fix all unit tests
* Refactor and simplify
* Simplify fold
2021-06-11 21:57:07 +09:00
notoria
1b14e9a19a
Downgrade unicode-segmentation
2021-06-10 22:00:08 +09:00
Ivan Tham
7cc13fefe9
Derive debug without feature
...
Note that this also removed those `finish_non_exhaustive()`.
2021-06-10 22:00:08 +09:00
notoria
1a3a924634
Implement Debug for data structure as a feature
2021-06-10 22:00:08 +09:00
Blaž Hrastnik
aebdef8257
Reuse a cursor from the pool if available ( fixes #202 )
2021-06-10 12:49:34 +09:00
Ivan Tham
5e2ba28e0e
Fix panic on ctrl-w empty document
2021-06-08 23:08:08 +09:00
Wojciech Kępka
c978d811d9
Cleanup find_first_non_whitespace_char funcs
2021-06-08 17:22:37 +09:00
Wojciech Kępka
48df05b16d
commands: Add goto first non-whitespace char of line
2021-06-08 17:22:37 +09:00
Kirawi
b873fb9897
Fix Unicode ( #135 )
...
* init
* wip
* wip
* fix unicode break
* fix unicode break
* Update helix-core/src/transaction.rs
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
* clippy
* fix
* add changes
* added test
* wip
* wip
* wip
* wip
* fix
* fix view
* fix #88
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
2021-06-08 13:20:15 +09:00
Benoît CORTIER
68affa3c59
Implement register selection
...
User can select register to yank into with the " command.
A new state is added to `Editor` and `commands::Context` structs.
This state is managed by leveraging a new struct `RegisterSelection`.
2021-06-07 21:52:09 +09:00
Blaž Hrastnik
8d6fad4cac
lsp: Provide workspace root on client.initialize()
2021-06-07 21:32:01 +09:00
Blaž Hrastnik
f48a60b8e2
Release 0.0.10
2021-06-07 09:42:15 +09:00
ahkrr
e2d780f993
fix: 2 panics while setting style + off by 1
...
The panics would occur because set_style
would draw outside of the the surface.
Both occured using `find_prev` or `till_prev`
In my case the first panic! would appear
in a terminal with around 80 columns
in helix/README.md going to the end of the file
with `geglf(`
the second with `geglfX`
The off by one fix ensures that `find_nth_prev`
starts at the first character to the left
2021-06-07 09:15:08 +09:00
Ethan Bodzioney
843c2cdebd
Install instructions and version number corrections ( #148 )
...
* Add MacOS install instructions
* Change version name argument
When using the -V command to get the version you are given 'helix-term x.x.x', I changed this to just helix as it makes more sense.
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
2021-06-07 09:14:06 +09:00
Benoît CORTIER
8a29086c1a
Fix panic when moving over unicode punctuation
...
`is_ascii_punctuation` will only work for ASCII punctuations, and when
we have unicode punctuation (or other) we jump into the `unreachable`.
This patch fallback into categorizing everything in this branch as
`Unknown`.
Fixes https://github.com/helix-editor/helix/issues/123
https://github.com/helix-editor/helix/pull/135 : add better support for
unicode categories.
2021-06-07 09:12:01 +09:00
Ivan Tham
df80f3c966
Add test for prev word
2021-06-06 21:30:18 +09:00
Ivan Tham
40744ce835
Add ctrl-w in insert mode
...
It seemed to panic when I pressed too many times, but that is from
lsp side.
2021-06-06 21:30:18 +09:00
Brian Dawn
5463a436a8
Return an error if we request an embedded file that does not exist.
...
This makes the load_runtime_file function behave like the non-embedded
one.
2021-06-06 10:49:17 +09:00
Brian Dawn
e09b0f4eff
Add a smoke test around loading runtime files.
...
This test makes sure we can read some amount of data from the runtime folder.
2021-06-06 10:49:17 +09:00
Brian Dawn
f3db12e240
Simplify the load_runtime_file code.
...
Reduce the number of feature switches for the embed_runtime feature.
2021-06-06 10:49:17 +09:00
Brian Dawn
676719b361
Simplify creating pathbufs.
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-06 10:49:17 +09:00
Brian Dawn
ae105812d6
Apply suggestions from code review
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-06 10:49:17 +09:00
Brian Dawn
255598a2cb
Make rust-embed optionally included based on the embed_runtime feature.
2021-06-06 10:49:17 +09:00
Brian Dawn
62d181de78
Provide a feature flag to be able to embed the runtime folder.
...
These changes provide a new feature flag "embed_runtime" that when
enabled and built in release mode will embed the runtime folder into the
resulting binary.
2021-06-06 10:49:17 +09:00
ahkrr
444cd0b068
fix: make find_prev_char and till_prev_char work
...
Bevore this PR `commands::find_prev_char` and `commands::till_prev_char` were triggerable through keys
but `seach::find_nth_next()` was hardcoded in `_find_char`.
The passed `fn` was nerver used. With this PR the passed `fn` is used.
The change in search.rs resolves an off by one error in the behivor of `find_nth_prev`
2021-06-06 00:01:16 +09:00
Ivan Tham
6254720f53
Add unreachable context
...
Better error for #123
2021-06-05 20:18:27 +08:00
notoria
2bb71a829e
Don't panic on empty file/buffer ( #108 )
2021-06-05 13:00:43 +09:00
Kirawi
c17dcb8633
Fixing Multiple Panics ( #121 )
...
* init
* wip
* wip
2021-06-05 12:49:19 +09:00
Blaž Hrastnik
06d8d3f55f
Try to detect language when document file path is set
...
Fixes #91
2021-06-04 11:03:40 +09:00
notoria
8af5a9a5cf
Remove swapfile
2021-06-04 10:30:14 +09:00
notoria
f76f44c8af
Convert byte index to char index for find
2021-06-04 10:00:22 +09:00
Blaž Hrastnik
74e4ac8d49
Merge pull request #77 from notoria/match_brackets
...
Fix match_brackets::find
2021-06-03 22:13:48 +09:00
notoria
4fe654cf9a
Fix match_brackets::find
2021-06-03 10:35:17 +02:00
Ivan Tham
d664d1dec0
Default log file to cache
2021-06-03 10:15:17 +08:00
Ivan Tham
f5f46b1fed
Separate document history into Cell
...
As history is used separately from the rest of the edits, separating it
can avoid needless borrowing and cloning. But one need to be aware later.
2021-06-02 23:47:50 +08:00
Blaž Hrastnik
f4560cb68a
Better fix for w/e that also covers ia<esc>we
/ia<esc>wb
2021-06-02 14:57:43 +09:00
Blaž Hrastnik
0851110d10
f/t: Check if at bounds before searching, refs #43 , closes #37
2021-06-02 13:20:27 +09:00
Blaž Hrastnik
3ace581191
Fix panics when triggering w or e on the last char of the line
...
Closes #32
2021-06-02 13:19:40 +09:00
Blaž Hrastnik
c0264b9f7f
fix: Don't allow moving past last line, fixes #30 , #24
...
Off by 1 error
2021-06-02 13:19:40 +09:00
Blaž Hrastnik
2cc30cd07c
Categorize _ as a word char, not punctuation
2021-05-31 21:09:17 +09:00
Blaž Hrastnik
17e9386388
Allow moving to EOL byte, also fixes #15
2021-05-31 17:08:19 +09:00
Blaž Hrastnik
138787f76e
Drop clap for pico-args
...
We barely have any flags so it's not worth the compilation time or
binary size to use clap.
2021-05-31 17:07:43 +09:00
Blaž Hrastnik
6460501a44
Update architecture.md
2021-05-30 17:52:46 +09:00
Blaž Hrastnik
094203c74e
Update deps, introduce the new tree-sitter lifetimes
2021-05-28 00:00:51 +09:00
Blaž Hrastnik
0e5b421646
When calculating a new selection, we need to take newly inserted text into account.
2021-05-15 10:50:36 +09:00
Blaž Hrastnik
4a9d1163e0
Hacky way to specify indent scopes per language via toml configs.
...
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.
Can't extract the pattern data from a parsed query either.
Oh well, toml files for now.
2021-05-14 19:21:46 +09:00
Blaž Hrastnik
5cbb4efa6d
Add the LICENSE file.
2021-05-11 01:44:00 +09:00
Blaž Hrastnik
0190fee1c2
Fix indent test, we need to use the in-tree runtime dir.
2021-05-10 17:57:17 +09:00
Blaž Hrastnik
cd1754f783
Fix runtime dir lookup.
2021-05-10 17:37:04 +09:00
Blaž Hrastnik
1f2d87cb95
Make the config dir locator work on Windows.
2021-05-10 16:21:55 +09:00
Blaž Hrastnik
0f77f543e5
Determine runtime dir based on executable location or env override.
2021-05-10 01:02:53 +09:00
Blaž Hrastnik
5954dafdbc
Indent array and tuple lists too.
2021-05-09 19:02:35 +09:00
Blaž Hrastnik
6c705f09e8
Lint
2021-05-09 17:13:59 +09:00
Blaž Hrastnik
7c915dc065
Add the :new command, don't crash if saving without filename.
2021-05-07 14:19:58 +09:00
Blaž Hrastnik
f8844c6811
Implement pair expansion when pressing new line between bracket pairs.
...
From:
{|}
To:
{
|
}
2021-05-06 23:02:32 +09:00
Blaž Hrastnik
fd4fd12fa3
clippy lint
2021-05-06 17:20:00 +09:00
Blaž Hrastnik
28c167d71d
doc: Be smarter about calculating modified status.
...
This way edit -> undo will properly show up as unmodified.
2021-05-03 17:23:11 +09:00
Blaž Hrastnik
7e9ea30a0b
auto_pairs: move if cursor, extend if selection.
2021-04-22 23:26:57 +09:00
Blaž Hrastnik
5edb374237
And some more indent patterns.
2021-04-14 17:14:13 +09:00
Blaž Hrastnik
9e6c8c2a5a
Rust: add a few more scopes to indent.
2021-04-14 15:39:31 +09:00
Blaž Hrastnik
9445b24b88
Simplify calculate_indentation.
2021-04-14 14:28:31 +09:00
Blaž Hrastnik
95dd55ba94
Fix overlap calculation.
2021-04-10 12:02:23 +09:00
Blaž Hrastnik
73f4abbb37
N as extend with search (for now, N should be search_prev).
2021-04-10 00:21:13 +09:00
Blaž Hrastnik
35b4fe4cd0
Fix range.overlap()
2021-04-10 00:20:12 +09:00
Blaž Hrastnik
c1e5733b02
Remove the path specifier.
2021-04-09 18:57:46 +09:00
Blaž Hrastnik
71c06c11cb
Import tree sitter queries.
2021-04-08 23:25:35 +09:00
Blaž Hrastnik
bc4e54c0c4
Load config files from ~/.config/helix, fallback to defaults.
2021-04-07 23:56:20 +09:00
Blaž Hrastnik
f0d49d3ca4
hack: make queries load relative to source dir for now.
...
We want to provide a runtime dir later on.
2021-04-07 18:05:59 +09:00
Blaž Hrastnik
e8298a398c
Fix selection rendering, it would be off by 1 if reverse.
2021-04-07 16:57:58 +09:00
Blaž Hrastnik
63e602bda6
Fix issues with "enum A {|}" <Enter> indent calculation.
2021-04-07 16:39:13 +09:00
Blaž Hrastnik
9dfd6f6bbc
clippy lint
2021-04-06 20:00:35 +09:00
Blaž Hrastnik
f00cb15137
core: Improve changeset composition behavior.
...
It would fail to combine with an empty set.
2021-04-06 19:01:48 +09:00
Blaž Hrastnik
015fd2ffa2
pairs: Use token utf8 lengths instead of 1.
2021-04-06 17:28:56 +09:00
Blaž Hrastnik
59a0fc7b59
w, b, e: Match kakoune's behavior in selecting by default.
...
I initially preferred only moving the cursor, but selecting the whole
word is a lot nicer for things like wd (instead of vwd).
2021-04-05 16:35:04 +09:00
Blaž Hrastnik
cc058ad78f
Simplify some code.
2021-04-01 11:04:25 +09:00
Blaž Hrastnik
9eaef6e333
Fully drop State references.
2021-03-31 15:45:18 +09:00
Blaž Hrastnik
742b3a709f
Store intra-files jumps (goto) on the jumplist.
2021-03-29 16:32:42 +09:00
Blaž Hrastnik
1d96cbfbd2
Transaction: Add a changes_iter() that can convert back to a list of Changes
2021-03-29 14:56:00 +09:00
Blaž Hrastnik
a74ff6bc03
Transaction: need to consume insert | delete properly.
2021-03-29 14:55:35 +09:00
Blaž Hrastnik
b52474cf66
clippy lint
2021-03-27 12:14:58 +09:00
Blaž Hrastnik
ad3325db8e
minor: Remove a few unwraps.
2021-03-26 11:03:14 +09:00
Blaž Hrastnik
8b28bf2533
Fix broken test.
2021-03-25 16:53:32 +09:00
Blaž Hrastnik
e3c4edae32
Add the machinery to load syntax config from TOML.
...
It's embedded into the binary at build time for now, but it's progress.
2021-03-25 15:26:25 +09:00
Blaž Hrastnik
9a36d2c2a8
wip: Hooks & trigger characters for completion/signature_help.
2021-03-24 18:17:00 +09:00
Blaž Hrastnik
06aca7691c
clippy lint
2021-03-24 14:58:01 +09:00
Blaž Hrastnik
d0530fb839
Fix a scrolling crash where it would jump past the end of the buffer.
2021-03-22 18:06:52 +09:00
Blaž Hrastnik
73c92a0bc1
Implement m / match_brackets (using tree sitter).
2021-03-22 17:58:49 +09:00
Blaž Hrastnik
bd607b4cbd
Provide a capacity on Selection::new's normalize.
2021-03-22 14:50:08 +09:00
Blaž Hrastnik
5e6716c89c
Add tab_width and indent_unit config.
2021-03-22 13:53:36 +09:00
Blaž Hrastnik
cbcacb1063
Merge some imports.
2021-03-22 12:40:07 +09:00
Blaž Hrastnik
c4792efead
clippy lints
2021-03-22 12:29:55 +09:00
Blaž Hrastnik
798dbd27c5
Selection: fail early if new() is called with no ranges.
2021-03-22 12:22:33 +09:00
Blaž Hrastnik
71999cce43
Implement auto-pairs behavior for open and close.
2021-03-22 12:22:33 +09:00
Blaž Hrastnik
f29f01858d
Implement iter() and len() directly on Selection.
2021-03-19 11:14:13 +09:00
Blaž Hrastnik
c331721565
Finish hiding doc.state / State as an implementation detail.
2021-03-18 15:07:02 +09:00
Blaž Hrastnik
59e6024186
Remove State from a few more signatures.
2021-03-18 14:17:32 +09:00
Blaž Hrastnik
dbcc099f48
Move things out of state.rs.
2021-03-18 14:07:53 +09:00
Blaž Hrastnik
8eaf9a432d
Make Transaction::change only rely on the rope.
2021-03-18 13:39:56 +09:00
Blaž Hrastnik
4f77d80e74
Clippy lint
2021-03-16 13:51:35 +09:00
Blaž Hrastnik
081e0ae8ae
syntax: highlight_iter always returns Ok()
2021-03-16 13:51:35 +09:00
Blaž Hrastnik
71f899cb5b
syntax: Highlight using ropes, avoiding dumping whole doc to string.
2021-03-16 13:47:06 +09:00
Blaž Hrastnik
dd91090a1a
Implement keep_selections (filter selections on regex).
2021-03-15 17:09:18 +09:00
Blaž Hrastnik
87e3cd3df2
ui: Render diagnostic errors in sideline.
2021-03-15 16:19:31 +09:00
Blaž Hrastnik
9c55b3e306
state.rs cleanup
2021-03-15 14:45:09 +09:00
Blaž Hrastnik
bb87b08fc9
Configure language servers via LanguageConfiguration.
2021-03-14 17:14:34 +09:00
Blaž Hrastnik
1cf887dea9
Cleanup: use doc.selection() instead of doc.state.selection().
2021-03-14 17:14:34 +09:00
Blaž Hrastnik
3445abf88e
syntax: Hide the TSParser internally, borrowing when needed.
2021-03-13 11:06:02 +09:00
Blaž Hrastnik
b7dd7310c4
syntax: Reuse parser instances. highlight_iter() no longer needs &mut.
2021-03-12 14:46:23 +09:00
Blaž Hrastnik
9dcfe25e4a
Use diagnostic.severity to distinguish between error colors.
2021-03-11 16:31:49 +09:00
Blaž Hrastnik
4acf301022
Implement the f/t/F/T find/till family of commands.
2021-03-11 16:15:27 +09:00
Blaž Hrastnik
62c991230f
find-till (f) prototype, on_next_key mode implementation.
2021-03-11 10:44:38 +09:00
Blaž Hrastnik
90f9cd6d62
search: draft f/t
2021-03-10 17:50:46 +09:00
Blaž Hrastnik
a16c6e2585
clippy lints
2021-03-01 17:37:31 +09:00
Blaž Hrastnik
2c9b02039b
commands: Implement join_selections.
2021-02-26 17:21:59 +09:00
Blaž Hrastnik
ad58286dc7
graphemes: fix nth_prev_grapheme_boundary calculation.
2021-02-26 15:53:01 +09:00
Blaž Hrastnik
01907b3497
commands: Implement count for a few more commands.
2021-02-25 16:49:30 +09:00
Blaž Hrastnik
6bd16a7320
graphemes: Optimize nth_next/nth_prev operation.
...
It's used a lot more than it used to in position calculation. Instead of
throwing away state between boundary calculation, reuse it.
2021-02-24 17:12:44 +09:00
Blaž Hrastnik
f118e7580f
Improve coords_at_pos & pos_at_coords, test with graphemes.
2021-02-24 16:08:17 +09:00
Blaž Hrastnik
87a6d4e736
minor: Simplify some code.
2021-02-24 16:07:39 +09:00
Blaž Hrastnik
6cfb1acb9d
commands: Implement expand_selection.
2021-02-22 17:02:32 +09:00
Blaž Hrastnik
33c67f1388
commands: add * as selection search.
2021-02-22 15:14:02 +09:00
Blaž Hrastnik
9132c6a591
Make some Document fields read-only.
2021-02-21 19:47:21 +09:00
Blaž Hrastnik
8c82f8f140
indent: use_list indentation, fix indentation bug on open_below
...
use std::{
time::Duration // <- pressing `o` here would use }'s indent instead of prev line
}
2021-02-19 14:55:53 +09:00
Blaž Hrastnik
7a1ff5e45f
commands: Wire up toggle comments as ctrl-c
2021-02-19 13:59:24 +09:00
Blaž Hrastnik
4ab5631d65
more lints
2021-02-18 18:45:41 +09:00
Blaž Hrastnik
d0791e0f98
core: Implement comment toggling module.
2021-02-18 18:35:39 +09:00
Blaž Hrastnik
c9dd1c930e
treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref
2021-02-18 18:34:22 +09:00
Blaž Hrastnik
af55ebd002
transaction: Also modify map_pos to work with insert|delete order.
2021-02-18 12:17:33 +09:00
Blaž Hrastnik
9cac44c7c0
minor changes
2021-02-17 17:26:27 +09:00
Blaž Hrastnik
d8bc19f715
Update deps, switch tendril over to crates.io
2021-02-16 18:11:17 +09:00
Blaž Hrastnik
9821c4dd3b
Optimize Changeset::is_empty()
...
Checked the ASM output for these three options:
pub enum Operation {
/// Move cursor by n characters.
Retain(usize),
/// Delete n characters.
Delete(usize),
/// Insert text at position.
Insert(String),
}
pub struct A {
changes: Vec<Operation>,
len: usize,
}
impl A {
pub fn is_empty1(&self) -> bool {
match self.changes.as_slice() {
[] => true,
[Operation::Retain(_)] => true,
_ => false,
}
}
/// `true` when the set is empty.
pub fn is_empty2(&self) -> bool {
let len = self.changes.len();
len == 0
|| (
len == 1
&& self.changes[0] == Operation::Retain(self.len)
)
}
pub fn is_empty3(&self) -> bool {
match self.changes.as_slice() {
[] | [Operation::Retain(_)] => true,
_ => false
}
}
}
2021-02-16 13:39:04 +09:00
Blaž Hrastnik
b0b5451c38
Since insert preceedes deletes, follow that ordering in Transaction::changes.
...
Produces the same output but will take the happy path.
2021-02-16 11:09:05 +09:00
Blaž Hrastnik
b4312c9492
transaction: Use builder methods to generate compact changesets.
2021-02-16 11:03:36 +09:00
Blaž Hrastnik
19fb4ed835
transaction: Merge consecutive inserts on compose.
2021-02-16 00:15:49 +09:00
Blaž Hrastnik
65893a2cbc
fix test
2021-02-16 00:15:38 +09:00
Blaž Hrastnik
239db79834
Finally: Retain horizontal position when moving vertically.
2021-02-12 16:49:24 +09:00
Blaž Hrastnik
a924ad2885
simplify.
2021-02-05 16:06:48 +09:00
Blaž Hrastnik
2bea5db7bd
commands: Implement select_on_matches.
2021-01-22 17:13:14 +09:00
Blaž Hrastnik
7c99ff58fd
nix: include rust-src so rust-analyzer works correctly.
2021-01-19 16:16:15 +09:00
Blaž Hrastnik
22e1692adc
indent: Fix edge cases, refactor test.
2021-01-10 23:46:18 +09:00
Blaž Hrastnik
777a80917d
Address clippy lints.
2021-01-08 16:37:36 +09:00
Blaž Hrastnik
7d41550a23
indent: refactor logic to be more correct.
...
Thanks to atom-sane-indentation, nvim-treesitter and tree-sitter-indent.el
for inspiration.
2021-01-08 16:15:12 +09:00
Blaž Hrastnik
a7869c728c
wip
2020-12-03 13:12:07 +09:00
Blaž Hrastnik
cc6bdf8f66
Text change generation, RPC call handling.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
f5981f72c2
Introduce Selection::point.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
efc5aa2016
Simplify old_state handling.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
c0e17dd324
Fix undo/redo not updating the syntax tree.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
b39849dde1
Refactor: Document type as a wrapper around barebones State.
2020-12-03 13:10:35 +09:00
Blaž Hrastnik
ef5e5f9296
state.version tracking
2020-12-03 13:10:34 +09:00
Blaž Hrastnik
49254d7180
Total mess but it works: diagnostic marking.
2020-12-03 13:10:34 +09:00
Blaž Hrastnik
f9bfba4d96
Reroute LSP notification events into the main app event loop.
2020-12-03 13:10:32 +09:00
Blaž Hrastnik
64b5b23315
Move theme from view to editor, support multiple views in editor.
2020-12-03 13:07:55 +09:00
Blaž Hrastnik
bc2c652fe8
Bugfix
2020-10-16 16:58:26 +09:00
Jan Hrastnik
7d58378374
added move left&right, delete char
2020-10-16 12:01:21 +09:00
Jan Hrastnik
ed03ec92a8
moved prompt command matching to prompt.rs
2020-10-16 12:00:28 +09:00
Jan Hrastnik
0c0c2c7103
modified editor.render() to prepare for command mode rendering
2020-10-16 11:53:31 +09:00
Blaž Hrastnik
16828d322a
wip
2020-10-15 23:31:37 +09:00
Blaž Hrastnik
6e658aae1c
Auto-indent on enter based on tree-sitter scopes.
2020-10-14 18:07:42 +09:00
Blaž Hrastnik
d64f4beede
Share tab width definitions.
2020-10-14 13:35:54 +09:00
Blaž Hrastnik
0b74d423d0
Validate compose len after applying a is same as before applying b.
2020-10-14 13:35:54 +09:00
Blaž Hrastnik
7fcc6f8f1b
Fix overlapping (insert | delete) compose
2020-10-14 11:48:01 +09:00
Blaž Hrastnik
94f9603c74
Fix compose not merging certain changesets correctly.
2020-10-14 09:38:52 +09:00
Blaž Hrastnik
00e661f600
Indent draft, linewise paste
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
4a648555ed
Don't try to compose zero-width deletes.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
490e23b645
Simplify changeset tracking.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
8098279676
Cleanup
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
1dba0f2b1c
Simple yank/paste registers.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
eba5b1ef33
Fix changeset composition, lengths don't have to match.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
b765c17896
Hacky undo/redo integration.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
04b1546634
history.redo()
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
8c7bc71ede
Split on matches off by one, breaks tests again.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
fd311fb8ad
Undo tree draft.
...
We keep a tree of transactions. This allows for persistent undo by
simply serializing the changesets.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik
5392b48268
Drop Coords.
2020-10-07 13:59:19 +09:00
Jan Hrastnik
038201647c
started work on goto mode
2020-10-04 23:47:37 +02:00
Blaž Hrastnik
883b77bd24
Fix transaction.invert()/.apply() using byte counts instead of char counts.
2020-10-04 17:37:46 +09:00
Blaž Hrastnik
aa077a07f3
Implement Transaction::invert.
2020-10-02 18:16:26 +09:00
Blaž Hrastnik
5945815d97
Fix cursor rendering & placement on append mode.
2020-10-01 18:44:12 +09:00
Blaž Hrastnik
e39bd211d1
argh -> clap to speed up compilation (no syn/proc_macro)
2020-10-01 12:25:03 +09:00
Blaž Hrastnik
592c5b0af2
Fix test, break split + append
2020-09-29 18:13:19 +09:00
Blaž Hrastnik
3feb00283d
clippy warnings
2020-09-29 18:07:05 +09:00
Blaž Hrastnik
1bb01d27ae
Simplify line ending calculation.
2020-09-29 17:49:19 +09:00
Blaž Hrastnik
13d1ea542e
Clamp character movement to line.
2020-09-29 01:11:17 +09:00
Blaž Hrastnik
36e7e2133f
Split selection on regex, fix InputEdit generation.
2020-09-29 01:01:27 +09:00
Blaž Hrastnik
3020077da8
Extend selection commands.
2020-09-29 01:00:35 +09:00
Blaž Hrastnik
e0785aabe7
Move-by-word commands: w, b, e.
2020-09-24 19:16:35 +09:00
Blaž Hrastnik
eb639eb2e4
More robust syntax detection/grammar loading.
2020-09-22 18:27:37 +09:00
Blaž Hrastnik
935cfeae57
Split parts of helix-term into helix-view.
...
It still largely depends on term for some types but I plan to change
that later.
2020-09-21 18:24:16 +09:00
Blaž Hrastnik
48330ddb5f
Command needs access to view information for certain changes.
2020-09-19 23:16:00 +09:00
Blaž Hrastnik
b120515613
Range based highlight_iter. Only works on limiting the start right now
2020-09-19 11:58:08 +09:00
Blaž Hrastnik
3859f6963d
More work on the UI.
2020-09-19 11:58:08 +09:00
Blaž Hrastnik
088f8a82af
Incremental parsing: rough draft.
2020-09-17 16:32:40 +09:00
Blaž Hrastnik
31999d6528
Make state fields read-only from outside the crate.
2020-09-14 19:50:46 +09:00
Blaž Hrastnik
96db02742e
Simplify some more code.
2020-09-13 23:40:11 +09:00
Blaž Hrastnik
0427acd18c
Avoid collect() by accepting iterators into Transaction::change.
2020-09-13 23:12:14 +09:00
Blaž Hrastnik
2027f69eae
Deduplicate some code.
2020-09-13 20:11:29 +09:00
Blaž Hrastnik
b827b41efe
Address clippy lint.
2020-09-13 20:06:53 +09:00
Blaž Hrastnik
b08278807e
Add 'A', 'I' commands.
2020-09-13 20:04:16 +09:00
Blaž Hrastnik
fb0f56b747
Add 'o' command.
2020-09-13 19:51:42 +09:00
Blaž Hrastnik
22cb7b3338
Change -> Operation, Change2 -> Change
2020-09-13 19:18:05 +09:00