Commit graph

2323 commits

Author SHA1 Message Date
Rolo
b587baa728 refactor: tweak with bufferline icon spacing 2025-01-04 09:03:30 -08:00
Rolo
e1476b37b5 refactor: small renames for better clarity 2025-01-04 09:03:30 -08:00
Rolo
041192eaae refactor: remove Default impls and add config parsing 2025-01-04 09:03:30 -08:00
Rolo
39638b6394 feat: add support for basic icons 2025-01-04 09:03:30 -08:00
Jean Abou Samra
9cc056e755
fix (hx --health): Don't print headers in white (#12355) 2024-12-29 10:38:28 -06:00
Michael Davis
073efe48f9
minor: Setup default keymap directly in xtask docgen
Instantiating EditorView is a lot of machinery which is unnecessary:
the default keymap is exposed through the `default` function in the
keymap module.
2024-12-28 21:42:09 -05:00
RoloEdits
19c91dfb80
fix: string literals with format args not in format! (#12354) 2024-12-28 07:44:16 -06:00
Michael Davis
c262fe41ab
Consistently replace line-endings in paste/replace commands
Previously we replaced line-endings in pasted text to the document
line-ending for some values in paste commands. We missed the `repeat`
values in paste though and didn't do any replacement in the replace
command.

Along with this change I've refactored the replace command to avoid
intermediary collections. We previously eagerly collected the values
from the input register as a `Vec<String>` but we can avoid both of
those conversions and only allocate for the conversion to a `Tendril`.
We can also switch from `str::repeat` to a manual implementation to
avoid the intermediary conversion to a String - this avoids an extra
allocation in the common case (i.e. no count).

Fixes #12329
2024-12-25 11:38:44 -05:00
Michael Davis
4f63a46e14
minor: Remove redundant condition in shell pipe trimming
`output.ends_with('\n')` implies `!output.is_empty()`

Connects #11183
2024-12-22 09:42:37 -05:00
Nikita Revenco
ac4c017165
feat: autohelp for delete, replace and add surrounds (#12262) 2024-12-22 08:17:44 -06:00
Nikita Revenco
ba6e6dc3dd
Colors for items in the completion menu (#12299) 2024-12-20 10:16:15 -06:00
Nikita Revenco
355e381626
feat: use ui.text.directory for path completion item if its a folder (#12295) 2024-12-19 14:36:54 -06:00
Eduardo Rittner Coelho
9e4da4b950
Show parser availability in --health [LANG] (#12228) 2024-12-18 11:21:58 -06:00
Nikita Revenco
91a5d407da
Allow theming directory prompt completions (#12205) 2024-12-17 21:13:42 -06:00
Christian Schneider
fcded6ce1e
Trim trailing colons from paths to allow copy/pasting git grep -n output (#9963)
Co-authored-by: Christian Schneider <schneider@search.ch>
2024-12-17 13:02:06 -06:00
Pascal Kuthe
1badd9e434
implement snippet tabstop support 2024-12-17 13:34:40 -05:00
Pascal Kuthe
66fb1e67c0
add fallback onNextKey
adds a variant of on_next_key callbacks that are only called when no other
mapping matches a key
2024-12-17 13:34:40 -05:00
Pascal Kuthe
609c29bf7e
add DocumentFocusLost event 2024-12-17 13:34:40 -05:00
Pascal Kuthe
5537e68b5e
add changes and ghost_transaction to DocumentDidChange events 2024-12-17 13:34:40 -05:00
Integral
250d9fa8fe
Avoid allocating the --help message (#12243) 2024-12-16 11:16:48 -06:00
Aaalibaba
3b36cf1a15
Expand tildes in :read command (#12271) 2024-12-16 11:10:35 -06:00
Takumi Matsuura
e14c346ee7
Fix panic in kill_to_end_of_line when handling multibyte characters (#12237) 2024-12-13 14:04:52 -06:00
TornaxO7
89a7cde2f0
Fix continuing comment token for first line (#12215) 2024-12-10 13:24:34 -06:00
TornaxO7
5005c14e99
Add config option for continue commenting (#12213)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-12-09 17:31:41 -06:00
Nikita Revenco
db1d84256f
fix: report correct amount of files opened and improved error message when Helix can't parse directory as file (#12199)
* feat: improve information on the amount of files loaded

* refactor: naming consitency Doc and not Buf

* fix: correct name of method

* chore: appease clippy

* feat: more human error information when Helix cannot start

* refatcor: use if guard on match arm
2024-12-08 20:14:29 +09:00
Michael Davis
28953ef40f
Simplify change_current_directory and remove extra allocs 2024-12-05 18:50:31 -05:00
Nikita Revenco
93deb1f6ae
feat: :cd - changes to the previous working directory (#12194)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-12-05 17:40:37 -06:00
Michael Davis
1e6fe00001 Trim all trailing whitespace on insert_newline 2024-12-05 20:53:53 +09:00
Ian Hobson
4c8175ca04 Draw each message line separately in draw_eol_diagnostic
`set_string_truncated` renders the entire string while ignoring
newlines, so if the diagnostic's message contains multiple lines it
produces messages like 'first linesecond line'.

To avoid these run-ons, this commit renders each line separately,
inserting double spaces for disambiguation.
2024-12-04 18:23:30 -06:00
Ian Hobson
715a13b2d3 Remove an incorrect comment
This was copied from the function above (set_style). I don't know enough
about the function to suggest an alternative.
2024-12-04 18:23:30 -06:00
Nikita Revenco
565bfbba25
feat: :cd with no args changes to home directory (#12042) 2024-12-04 18:09:33 -06:00
Tomasz Zurkowski
7a2afdc080
Show an error when formatter is not available (#12183) 2024-12-04 08:27:54 -06:00
Michael Davis
085c4fe4c8
docs: Eliminate improper use of "LSP" term
Sometimes we used "LSP" to mean "language server". This change
eliminates the improper "LSP" usage.

Ref https://github.com/helix-editor/helix/pull/12183#discussion_r1868436105
2024-12-03 18:29:44 -05:00
RoloEdits
5ba97ba41e
fix(clippy): clippy 1.83 lints (#12150) 2024-12-02 08:23:32 -06:00
Poliorcetics
0f4729289b
fix: Remove leftover debug println! (#12138)
Introduced in dc941d6d24
2024-11-27 20:05:18 +09:00
Milan Vaško
7676106960
Search selection with word boundary detection (#12126)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-26 13:30:53 -06:00
RoloEdits
cbbeca6c52
fix(clippy): suppress unused lint on windows (#12107) 2024-11-22 08:10:11 -06:00
Philipp Mildenberger
dc941d6d24
Add support for path completion (#2608)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
2024-11-21 21:12:36 -06:00
yehor
9e171e7d1d
Add default-yank-register option (#11430)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-20 17:24:55 -06:00
Alfie Richards
68ee87695b
Add clipboard provider configuration (#10839) 2024-11-20 16:06:23 -06:00
Michael Davis
59b020ec91
Save an undo checkpoint before paste in insert mode (#8121) 2024-11-20 16:02:10 -06:00
TornaxO7
be2884d800
Continue line comments (#10996) 2024-10-19 05:48:07 -04:00
RoloEdits
f6d39cbc1d
refactor(lsp): handle out-of-range active_signature (#11825) 2024-10-06 08:54:17 -05:00
Pascal Kuthe
162028d444
Merge pull request #11486 from helix-editor/lsp-location-refactor
Replace uses of `lsp::Location` with a custom Location type
2024-10-04 03:33:35 +02:00
chtenb
8cdce9212c
Improve tree-sitter-subtree (#11663)
* Make unnamed nodes visible in subtree view

* Refine command description

* Update generated docs

* Update unit test expected output
2024-09-30 10:59:31 +09:00
rhogenson
73deabaa40
Fix panic when drawing at the edge of the screen. (#11737)
When pressing tab at the edge of the screen, Helix panics in debug mode
subtracting position.col - self.offset.col.

To correctly account for graphemes that are partially visible,
column_in_bounds takes a width and returns whether the whole range is
in bounds.

Co-authored-by: Rose Hogenson <rosehogenson@posteo.net>
2024-09-23 02:17:02 +09:00
rhogenson
8b1764d164
Join single-line comments with J. (#11742)
Fixes #8565.

Co-authored-by: Rose Hogenson <rosehogenson@posteo.net>
2024-09-23 02:16:24 +09:00
Ayoub Benali
b85e824ba9
Handle window/showMessage and display it bellow status line (#5535)
* Handle window/showMessage and display it bellow status line

* Enable `editor.lsp.display_messages` by default

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-09-18 21:43:06 +02:00
Michael Davis
48e9357788
picker: Removed owned variant of PathOrId
The only caller of `from_path_buf` was removed in the parent commit
allowing us to drop owned variant of path's `Cow`. With this change we
never need to allocate in the picker preview callback.
2024-09-03 09:48:32 -04:00
Michael Davis
606b957172
Replace uses of lsp::Location with a custom Location type
The lsp location type has the lsp's URI type and a range. We can replace
that with a custom type private to the lsp commands module that uses the
core URI type instead.

We can't entirely replace the type with a new Location type in core.
That type might look like:

    pub struct Location {
        uri: crate::Uri,
        range: crate::Range,
    }

But we can't convert every `lsp::Location` to this type because for
definitions, references and diagnostics language servers send documents
which we haven't opened yet, so we don't have the information to convert
an `lsp::Range` (line+col) to a `helix_core::Range` (char indexing).

This cleans up the picker definitions in this file so that they can all
use helpers like `jump_to_location` and `location_to_file_location` for
the picker preview. It also removes the only use of the deprecated
`PathOrId::from_path_buf` function, allowing us to drop the owned
variant of that type in the child commit.
2024-09-03 09:48:32 -04:00