Commit Graph

2072 Commits (1be2ac286bfb549954e99f40a14394ce765d444d)

Author SHA1 Message Date
Davide Galassi f976c004e2
Allow LSP server to be stopped (#5964) 2 years ago
wongjiahau 9726ae7dbb fix(ci/test): failing on Windows 2 years ago
wongjiahau d1e6a21016 Merge branch 'master' of https://github.com/helix-editor/helix into tree_explore 2 years ago
wongjiahau d62b487321 feat(ui/tree): undo breaking changes
- bind tree-based movements to other keys, namely J,K,H,L
2 years ago
wongjiahau aa6780e149 feat(ui/tree): tree-based movements 2 years ago
dependabot[bot] 84be5cd52c
build(deps): bump grep-regex from 0.1.10 to 0.1.11 (#6215)
Bumps [grep-regex](https://github.com/BurntSushi/ripgrep) from 0.1.10 to 0.1.11.
- [Release notes](https://github.com/BurntSushi/ripgrep/releases)
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BurntSushi/ripgrep/compare/grep-regex-0.1.10...0.1.11)

---
updated-dependencies:
- dependency-name: grep-regex
  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>
2 years ago
dependabot[bot] c00baf7da6
build(deps): bump grep-searcher from 0.1.10 to 0.1.11 (#6213)
Bumps [grep-searcher](https://github.com/BurntSushi/ripgrep) from 0.1.10 to 0.1.11.
- [Release notes](https://github.com/BurntSushi/ripgrep/releases)
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BurntSushi/ripgrep/compare/grep-searcher-0.1.10...0.1.11)

---
updated-dependencies:
- dependency-name: grep-searcher
  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>
2 years ago
Filip Dutescu 376c19e06b
feat(dap): implement Restart request (#5651)
Add a restart debug session command, which would issue a
[Restart Request][1], if the debugger supports it and a session is
running. It uses the same arguments and requests used to start the
initial session, when recreating it.

It builds upon #5532, making use of the changes to the termination
workflow of a session.

[1]: https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Restart

Closes: #5594

Signed-off-by: Filip Dutescu <filip.dutescu@gmail.com>
2 years ago
wongjiahau bc62b7615d fix(ci): failing windows test & clippy 2 years ago
wongjiahau d3db1b6204 style(tree): improve ancestor contrast 2 years ago
wongjiahau 8ef95ee56a Merge branch 'master' of https://github.com/helix-editor/helix into tree_explore 2 years ago
Santiago Vrancovich 39d5fb0e59
Remove centering view from Unimpaired commands (#6193)
Remove `align_view` calls from `goto_*_diag` as per issue #6177
2 years ago
nuid32 def26966d2
Fix lacking space panic (#6109)
* Fix lack of space for popup crash

* Fix saturating -> wrapping

* Fix wrapping -> saturating (I am an idiot)

* Remove useless "mut" in helix-tui/src/buffer.rs

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

* Remove redundant bound-check

* Return bound-check back

* Add bound-check for set_style

* Remove set_style bound-check

* Revert bound-check

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago
Pascal Kuthe ccdb144665 update MSRV to 1.65 2 years ago
Alexander Brevig a2e54167d8
fix: Handle signals before crossterm events (#6170)
This is a workaround for a freeze when suspending Helix with C-z on
non-Windows systems. The check for the keyboard enhancement protocol
locks up crossterm's internal event reading/polling system by trying to
set up multiple concurrent readers. `input_stream.next()` sets up one
reader looking for regular crossterm events while the
`supports_keyboard_enhancement` query sets up another looking for
internal events. The latter hangs for two seconds or until the former
yields an event. By handling signals first we don't lock up the mutex
by trying to read keyboard events.
2 years ago
nuid32 ddc5bf4e60
Fix 'attempt to divide by zero' panic (#6155) 2 years ago
wongjiahau a4943a7226 fix(explorer/overlay): prompt overflow
- Previously the prompt appears within the float, which has very limited
  space
- Now, the prompt will be rendered at the editor command area
2 years ago
wongjiahau c2e2f050da feat(explorer/delete): no need to press Enter, just press y
Reference: https://github.com/helix-editor/helix/pull/5768#issuecomment-1449536275
2 years ago
wongjiahau 43b226a2ab feat(explorer/keymap): combine 'a' with 'A'
Reference: https://github.com/helix-editor/helix/pull/5768#issuecomment-1449536275
2 years ago
NomisIV c082ef2863
Fix indentation lines (#6134) (#6136) 2 years ago
Michael Davis 27211abf06
Ignore key-release keyboard events (#6139)
Since crossterm 0.26.x, we receive press/release keyboard events on
Windows always. We can ignore the release events though to emulate
the behavior of keyboard input on Windows on crossterm 0.25.x.
2 years ago
wongjiahau 19d436ee56 Merge branch 'master' of https://github.com/helix-editor/helix into tree_explore 2 years ago
wongjiahau b18a9746e9 fix(explorer): go to previous root does not update state.current_root 2 years ago
lesleyrs 8dab8a0a03 Add shift-backspace keybind alias for backspace (#4937)
When the Kitty Keyboard Protocol is enabled, S-backspace is
distinguished from backspace with no modifiers. This is awkward when
typing because it's very easy to accidentally hold shift and press
backspace temporarily when typing capital letters.

Kakoune (which is also a Kitty Keyboard Protocol application) treats
S-backspace as backspace too:
3150e9b3cd/src/input_handler.cc (L1275)
2 years ago
Michael Davis a066815833 Enable the enhanced keyboard protocol if supported 2 years ago
Michael Davis 79bf5e3094 Update crossterm to 0.26.1
Crossterm 0.26.x includes a breaking change for the command to set the
cursor shape. This commit includes a change which uses the new type.
2 years ago
wongjiahau 8379669742 Merge branch 'master' of https://github.com/helix-editor/helix into tree_explore 2 years ago
wongjiahau fae4990444 test(tree): search prompt and filter prompt 2 years ago
dependabot[bot] f02fdd2f73
build(deps): bump tempfile from 3.3.0 to 3.4.0 (#6128)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/Stebalien/tempfile/releases)
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS)
- [Commits](https://github.com/Stebalien/tempfile/commits)

---
updated-dependencies:
- dependency-name: tempfile
  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>
2 years ago
wongjiahau 7e4feb02ef fix(explore): search using previous search word after filter does not work
- Also implemented restore_saved_view for filter and search
2 years ago
wongjiahau 4a0c620b77 fix(explorer/filter): not working for newly opened folder 2 years ago
WJH c3b8be978e
fix(ci): clippy + failure on Windows 2 years ago
wongjiahau 5d600fef0f doc(helix-term/.gitignore): document purpose of test-explorer 2 years ago
wongjiahau 601f2c4e5f chore(ui/tree): remove useless comments 2 years ago
wongjiahau ba00a80037 fix(tree): shouldn't use patched font 2 years ago
wongjiahau 24b50bb525 feat(explorer): toggle preview 2 years ago
wongjiahau 38ef079099 feat(tree): jump forward 2 years ago
wongjiahau b5d92aca45 chore: fix clippy warnings 2 years ago
wongjiahau 36769cb3f6 fix(explorer/keymap): change 'b' to 'B'
- to not clash with Tree 'zb'
2 years ago
wongjiahau dffbc15067 refactor(explorer,tree): remove unwrap to avoid panics 2 years ago
wongjiahau cf9b60a3d1 feat(tree): sticky ancestors 2 years ago
Yusuf Bera Ertan e5af0f1d49
build(nix): update flake to use flake-parts and nci flake-parts module 2 years ago
wongjiahau 9205117505 fix: failing tests 2 years ago
wongjiahau 6af9a06e74 feat(explorer): bind "="/"_" to "Zoom in"/"Zoom out" 2 years ago
wongjiahau 899491ba25 feat(tree): add C-n/C-p keybinding 2 years ago
wongjiahau f9ff01dd9c chore(ui/tree): bind 'o' to Toggle 2 years ago
wongjiahau 7b63fda7d2 test(explorer): add integration tests 2 years ago
wongjiahau 6321dc9ade chore: rename explore to explorer 2 years ago
wongjiahau 78bb29732a Merge branch 'master' of https://github.com/helix-editor/helix into add-integration-test 2 years ago
wongjiahau bcb1672378 fix(explore):
- preview panics when term height becomes too small
- preview content not sorted
2 years ago
wongjiahau a259c205c0 fix(explore): help overflow
- render with Info
2 years ago
wongjiahau 2e7709e505 MULTI
- refactor(explore):Move filter to Tree
- feat(explore): Implement mkdir -p (but not tested yet)
- feat(ui/tree): Implement jump backward
- test(ui/tree): Refresh
2 years ago
Filip Dutescu 44729fbaf9
fix(dap): validate key and index exist when requesting vars (#5628)
Check if the stack frames contain the thread id and the frame before
trying to get the frame id. If case any of the two fails to be
found, provide the user with messages to inform them of the issue and
gracefully return.

Closes: #5625

Signed-off-by: Filip Dutescu <filip.dutescu@gmail.com>
2 years ago
Filip Dutescu e3765ac6d2
feat(dap): send Disconnect if Terminated event received (#5532)
Send a `Disconnect` DAP request if the `Terminated` event is received.
According to the specification, if the debugging session was started by
as `launch`, the debuggee should be terminated alongside the session. If
instead the session was started as `attach`, it should not be disposed of.

This default behaviour can be overriden if the `supportTerminateDebuggee`
capability is supported by the adapter, through the `Disconnect` request
`terminateDebuggee` argument, as described in
[the specification][discon-spec].

This also implies saving the starting command for a debug sessions, in
order to decide which behaviour should be used, as well as validating the
capabilities of the adapter, in order to decide what the disconnect should
do.

An additional change made is handling of the `Exited` event, showing a
message if the exit code is different than `0`, for the user to be aware
off the termination failure.

[discon-spec]: https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Disconnect

Closes: #4674

Signed-off-by: Filip Dutescu <filip.dutescu@gmail.com>
2 years ago
wongjiahau 2e654a0775 refactor(explore): move search function to Tree 2 years ago
wongjiahau 2a60662e8b feat(explore): add focus indicator 2 years ago
wongjiahau 64059fba47 feat(tree): move left/right 2 years ago
Guillaume 78a1e2db60
feat: show current language when no argument is provided (#5895) 2 years ago
Triton171 a1a6d5f334
Replace incorrect usages of tab_width with indent_width. (#5918) 2 years ago
Erasin b7fb52d0e4
fix: decode lsp url for workspace_diagnostics_picker (#6016) 2 years ago
Jonathan LEI 9368ac76b3
Ignore invalid file URIs from LSP (#6000) 2 years ago
wongjiahau c88164f2fa feat(tree-view): add unit tests 2 years ago
wongjiahau 4dfa8696bd style(tree): increase indentation 2 years ago
Pascal Kuthe c332b16855
ignore case while filtering completions (#6008) 2 years ago
Michael Davis d8526a752c
Use Popup::ignore_escape_key helper for completion (#6006)
The completion component has a separate branch for handling the
Escape key but it can use the `ignore_escape_key` helper added for
signature-help instead.

This should not cause a behavior change - it's just cleaning up the
completion component.
2 years ago
wongjiahau 70984fd148 Merge branch 'master' of https://github.com/helix-editor/helix into refactor-tree-explorer 2 years ago
wongjiahau ef73559a8e fix(explore): cannot focus explorer if no opened document 2 years ago
wongjiahau c8578ba3cc fix: warnings 2 years ago
wongjiahau 94e2c2989b fix(command): space e does not focus explorer when no files are opened 2 years ago
Pascal Kuthe 715c4b24d9
Fix crash in goto_window_center at EOF (#5987) 2 years ago
wongjiahau 72495363f1 fix(explore): 'h' does not realign preview properly 2 years ago
wongjiahau 9bd534bb6f fix(explore): filter 2 years ago
wongjiahau 85fa1c56b7 feat(explore):
- filter
- close document if the file is deleted or renamed
2 years ago
wongjiahau a079477a23 fix(compile): warnings 2 years ago
wongjiahau 56056e8556 fix(explore): increase size will cause panic 2 years ago
wongjiahau b38a941955 feat(explore): close without clearing previous state 2 years ago
wongjiahau 2c221f0af1 fix(explore): help page overflow 2 years ago
wongjiahau 35ffc6036d feat(explore): increase/decrease explorer size 2 years ago
wongjiahau 2bafac0c4e feat(explore): go to previous root 2 years ago
wongjiahau ddb7564809 feat(explore): add help 2 years ago
wongjiahau ec2059bf93 style(ui/tree): highlight ancestor 2 years ago
wongjiahau 52a26ff72c feat(explore): refresh 2 years ago
wongjiahau 5a5a1de4b8 fix(explore/rename): should regenarate index 2 years ago
wongjiahau 44b46dda6a feat(explore): rename file/folder 2 years ago
Matouš Dzivjak 2bebc5042e
feat(ui): deprecated completions (#5932)
* feat(ui): deprecated completions

Mark deprecated completions using strike-through
(CROSSED_OUT modifier). The deprection information
is taken either from the `deprecated` field of the
completion item or from the completion tags.

The field seems to be the older way of passing
the deprecated information and it was already
marked as deprecated for Symbol. In completion
item the field is still valid but it seems that
the LSP is moving in the general direction of using
tags for this kind of information and as such
relying on tags as well seems reasonable and
future-proof.
2 years ago
wongjiahau 2af8b41007 feat(explore): remove files/folder 2 years ago
A-Walrus 8b09b00942
Add :toggle-option command (#4085)
This command toggles the value of boolean options
2 years ago
wongjiahau 458fa1ca58 feat(explore): add folder/file 2 years ago
wongjiahau 0f8b641a5d feat(tree): filter 2 years ago
wongjiahau 82fe4a309d test(ui/tree): find 2 years ago
wongjiahau bdab93e856 feat(explore): search 2 years ago
wongjiahau aa397ef801 feat(explore): reveal current file 2 years ago
wongjiahau d04a1ce214 refactor(tree): change internal implementation
Previous: Vec+Tree hybrid, hard to debug and understand
Now: Pure Tree structure, easy to understand and test
2 years ago
Gokul Soumya 425315d752 Fix completion doc popup area calculation logic
Earlier the doc popup would draw over the compeltion popup
itself and sometimes over the cursor too.
2 years ago
Gokul Soumya 1562b5ce67 Create popup rect instead of using raw values 2 years ago
Gokul Soumya 0f844ef191 Refactor our Markdown construction in completion doc 2 years ago
Gokul Soumya 937825e8fc Rename completion doc popup area variables 2 years ago
Gokul Soumya 8e9c329952 Use early return in rendering completion doc 2 years ago
Pascal Kuthe 93c7afc4ed
Negotiate LSP Position Encoding (#5894)
So far LSP always required that `PositionEncoding.characters` is an
UTF-16 offset. Now that LSP 3.17 is available in `lsp-types` request
the server to send char offsets (UTF-32) or byte offsets (UTF-8)
instead. For compatability with old servers, UTF-16 remains as the
fallback as required by the standard.
2 years ago
Daniel S Poulin 6929a12f29
Make `m` textobject look for pairs enclosing selections (#3344)
* Make `m` textobject look for pairs enclosing selections

Right now, this textobject only looks for pairs that surround the
cursor. This ensures that the pair found encloses each selection, which
is likely to be intuitively what is expected of this textobject.

* Simplification of match code

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

* Adjust logic for ensuring surround range encloses selection

Prior, it was missing the case where the start of the selection came
before the opening brace. We also had an off-by-one error where if the
end of the selection was on the closing brace it would not work.

* Refactor to search for the open pair specifically to avoid edge cases

* Adjust wording of autoinfo to reflect new functionality

* Implement tests for surround functionality in new integration style

* Fix handling of skip values

* Fix out of bounds error

* Add `ma` version of tests

* Fix formatting of tests

* Reduce indentation levels for readability, and update comments

* Preserve each selection's direction with enclosing pair surround

* Add test case for multiple cursors resulting in overlap

* Mark known failures as TODO

* Make tests multi-threaded or they fail

* Cargo fmt

* Fix typos in integration test comments

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago