Commit Graph

3428 Commits (66a49080bc7e492c37f9cd10ed36a696de1787a3)
 

Author SHA1 Message Date
Pascal Kuthe 66a49080bc
merge underline-style and underline-color into a single table 2 years ago
Pascal Kuthe 963a0ac0bb
fix terminfo detection 2 years ago
Pascal Kuthe 328c4d002f
adress review comments 2 years ago
Pascal Kuthe 2f7088c1f3
fix typo
Co-authored-by: Omnikar <omkar.subramaniam@icloud.com>
2 years ago
pascalkuthe ad0eb4094b
add deprectation not for underlined modifier to docs 2 years ago
Pascal Kuthe 4c36c067b0
avoid visual artificats on terminal emulators that do not support underline colors 2 years ago
Pascal Kuthe 7bc324fde9
make casing consistent with other configuration 2 years ago
Pascal Kuthe 114610f7dc
switch to termini for terminfo 2 years ago
Pascal Kuthe 71ee589bbc
make underline_style a seperate option
Underline styles are mutally exclusive and overwrite each other.
Therefore implementing as an modifier lead to incorrect behaviour
when the underline style is overwritten.

For backwards compatability the "underline" modified is retained (but
deprecated). Instead the "underline_style" and "underline_color"
optios should be used to style underlines.
2 years ago
Gokul Soumya 79d3d44c3d
Detect extended underline support using terminfo
The cxterminfo crate has been used over popular alternatives
like `term` since it supports querying for extended capabilities
and also for it's small codebase size (which will make it easy
to inline it into helix in the future if required).
2 years ago
A-Walrus de72b9c04c
Update theme documentation 2 years ago
A-Walrus 79a39c1063
Fix failing tests
Add underline field to doctests, and fix bugs
2 years ago
A-Walrus 3ad7d543ca
Add separate color for underlines 2 years ago
Gokul Soumya 999b45b28c
Support different kinds of underline rendering
Adds four new  modifiers that can be used in themes:

- undercurled
- underdashed
- underdotted
- double-underline
2 years ago
zensayyy c9584251f3
Ensure cursor in view after format (#4047)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago
Roberto Vidal cc257e9bf9
Add support for webassembly text format (#4040) 2 years ago
nuid32 2113b1bb2f
themes: Add onedarker (#3980) 2 years ago
Chickenkeeper 60aa7d3607
WGSL syntax highlighting fix (#3996) 2 years ago
Maximilian Muecke 8a7a6e4cff
Add comment injection for R (#4031) 2 years ago
joleaf c4aec0a5c5
tutor: missing <ESC> before removing the second cursor (#4027)
This step was missing in section 5.2 of tutor.
2 years ago
Sora 038ad6289f
Fix tutor typo `favourite` to `favorite` (#4007) 2 years ago
Sven-Hendrik Haase 5dbca0fc08
Add gruvbox dark (#3948)
* Add gruvbox dark

* fixup! Add gruvbox dark
2 years ago
Erin Kim bdc7b35214
nix: replace `runCommandNoCC` with `runCommand` (#3992) 2 years ago
dependabot[bot] 8fc493137d
build(deps): bump serde from 1.0.144 to 1.0.145 (#3989)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
dependabot[bot] cc0018a7d3
build(deps): bump thiserror from 1.0.35 to 1.0.36 (#3991)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
dependabot[bot] e3fbeeb789
build(deps): bump unicode-general-category from 0.5.1 to 0.6.0 (#3990)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Jacob Chandler 90468ad6c5
fix: Improve JSX and TSX tag highlighting (#3973) 2 years ago
dependabot[bot] d2bb7f5a09
build(deps): bump tokio-stream from 0.1.9 to 0.1.10 (#3988)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
dependabot[bot] fd4cdf0b1f
build(deps): bump once_cell from 1.14.0 to 1.15.0 (#3987)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Oskar Köök 98dd9c4f2b
Remove `do_block` from Ruby indents (#3976)
`do_block` and `block` seem to conflict, causing double-indentation in some cases. Removing `do_block` does not seem to have any negative effect, while fixing the double-indentation issue.
2 years ago
Oskar Köök c196a90684
Add documentation for `max-line-length` (#3974) 2 years ago
Poliorcetics e8f0886b21
chore: remove unneeded attribute after MSRV bump to 1.61 (#3961) 2 years ago
Clay 1a4a9b86d7
heex: upgrade grammar, add roots matching elixir (#3959) 2 years ago
Invader Zim 42e30e7afa
Add bufferline colors to 15 themes (#3881)
Themes:

* acme
* ayu_dark
* ayu_light
* ayu_mirage
* base16_default_dark
* base16_default_light
* bogster
* catppuccin_frappe
* catppuccin_latte
* catppuccin_macchiato
* catppuccin_mocha
* darcula
* dark_plus
* doom_acario_dark
* emacs
2 years ago
adrian5 0d8d8a4ed6
docs: Punctuation on tutor (#3888) 2 years ago
Riccardo Binetti 3a245fe792
Add mix.exs and mix.lock as Elixir root markers (#3917) 2 years ago
Riccardo Binetti 888f4fef6f
Split helix_core::find_root and helix_loader::find_local_config_dirs (#3929)
* Split helix_core::find_root and helix_loader::find_local_config_dirs

The documentation of find_root described the following priority for
detecting a project root:
- Top-most folder containing a root marker in current git repository
- Git repository root if no marker detected
- Top-most folder containing a root marker if not git repository detected
- Current working directory as fallback

The commit contained in https://github.com/helix-editor/helix/pull/1249
extracted and changed the implementation of find_root in find_root_impl,
actually reversing its result order (since that is the order that made
sense for the local configuration merge, from innermost to outermost
ancestors).

Since the two uses of find_root_impl have different requirements (and
it's not a matter of reversing the order of results since, e.g., the top
repository dir should be used by find_root only if there's not marker in
other dirs), this PR splits the two implementations in two different
specialized functions.

In doing so, find_root_impl is removed and the implementation is moved
back in find_root, moving it closer to the documented behaviour thus
making it easier to verify it's actually correct

* helix-core: remove Option from find_root return type

It always returns some result, so Option is not needed
2 years ago
Pascal Kuthe 4133f1f424
Document MSRV policy (#3913) 2 years ago
A-Walrus eb6fd283dc
Deduplicate regexes in search_selection command (#3941) 2 years ago
Henrik Tjäder e621848d07
Theme: Papercolor: Tune inactive statusline (#3938) 2 years ago
Michael Davis 6e168b5099
Improve keymap errors from command typos (#3931)
* Improve keymap errors from command typos

Currently, opening helix with a config containing a bad command mapping
fails with a cryptic error. For example, say we have a config (bad.toml)
with a command name that doesn't exist:

    [keys.normal]
    b = "buffer_close" # should be ":buffer-close"

When we `hx -c bad.toml`, we get...

> Bad config: data did not match any variant of untagged enum KeyTrie for key `keys.normal` at line 1 column 1
> Press <ENTER> to continue with default config

This is because of the way that Serde tries to deserialize untagged
enums such as `helix_term::keymap::KeyTrie`. From the Serde docs[^1]:

> Serde will try to match the data against each variant in order and the
> first one that deserializes successfully is the one returned.

`MappableCommand::deserialize` fails (returns an Err variant) when a
command does not exist. Serde interprets this as the `KeyTrie::Leaf`
variant failing to match and declares that the input data doesn't
"match any variant of untagged enum KeyTrie."

Luckily the variants of KeyTrie are orthogonal in structure: we can tell
them apart by the type hints from a `serde:🇩🇪:Visitor`. This change
uses a custom Deserialize implementation along with a Visitor that
discerns which variant of the KeyTrie applies. With this change, the
above failure becomes:

> Bad config: No command named 'buffer_close' for key `keys.normal.b` at line 2 column 5
> Press <ENTER> to continue with default config

We also provide more explicit information about the expectations on
the field. A config with an unexpected type produces a message with
that information and the expectation:

    [keys.normal]
    b = 1

> Bad config: invalid type: integer `1`, expected a command, list of commands, or sub-keymap for key `keys.normal.b` at line 2 column 5
> Press <ENTER> to continue with default config

[^1]: https://serde.rs/enum-representations.html#untagged

* Update helix-term/src/keymap.rs

Co-authored-by: Ivan Tham <pickfire@riseup.net>

Co-authored-by: Ivan Tham <pickfire@riseup.net>
2 years ago
gavincrawford 1dd1476a9e
Fix highlighting on single-character Rust consts (#3927)
Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com>
Co-authored-by: Gavin Crawford <gavincrawford@users.noreply.github.com>
2 years ago
taupiqueur 75362dce83
Fix the picker’s keymap documentation (#3925) 2 years ago
Benedikt Müller 5467c65f82
fix fish completions for --config & --log (#3912) 2 years ago
Filipe Azevedo 385ccdfc9c
add :lsp-restart command (#3435) 2 years ago
Joe aa00a470f3
Fix preview bug (#3644)
* Fix preview bug

* Add comment to empty case
2 years ago
Blaž Hrastnik 1df32c917c diagnostics: Use Vec<Tag> instead of Option<Vec<Tag>> 2 years ago
Luke Cycon 64b0745413
Track source and tags in diagnostics (#3898) 2 years ago
Tobias Hunger 130793dfd0
Add command line parameter to specify log file (#3807)
* Add command line parameter to specify log file

I had the logs of my debug helix mixed in with the logs from the
production helix.

Add a `--log` command line argument to redirect any logs to other
files, making my debugging easier :-)

* Update completion files with `--log` argument
2 years ago
Michael Davis 8988c1ecc7
Re-sort diagnostics after transaction transform (#3895)
Applying document-change transactions to diagnostic ranges is not stable
with respect to the ordering of diagnostics. This can cause diagnostics
to become temporarily unordered with some edits to a document, which can
eventually break some invariants/assumptions in syntax::merge.

With this change, Document::diagnostics are always sorted.
2 years ago