Commit Graph

4428 Commits (5ec41195a0dde08c559f9f1b95c0ff4054dfa2ba)
 

Author SHA1 Message Date
Michael Davis 50b191a7df
Log failures to load tree-sitter parsers as error (#4315)
Info logs don't show up in the log file by default, but this line
should: failures to load tree-sitter parser objects are useful errors.
A parser might fail to load it is misconfigured
(https://github.com/helix-editor/helix/pull/4303#discussion_r996448543)
or if the file does not exist.
2 years ago
Michael Davis 5f4f171b73
Fix debug assertion for diagnostic sort order (#4319)
The debug assertion that document diagnostics are sorted incorrectly
panics for cases like `[161..164, 162..162]`. The merging behavior
in the following lines that relies on the assertion only needs the
input ranges to be sorted by `range.start`, so this change simplifies
the assertion to only catch violations of that assumption.
2 years ago
Ben White-Horne 63fe423710
Show keys required to enter each minor mode (#4302)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago
Filip Dutescu 2457111bf0
feat(csharp,debug): add C# debugger support (#4213) 2 years ago
Wojciech Kępka 661f48d62f
themes: Add `bogster_light` theme (#4265)
Co-authored-by: Wojciech Kępka <wojciech.kepka@softax.pl>
2 years ago
Wojciech Kępka 05ca21cb1b
themes: Update bogster theme (#4264)
Co-authored-by: Wojciech Kępka <wojciech.kepka@softax.pl>
2 years ago
Chickenkeeper 1c08c80e4f
C# syntax highlight tweaks (#4285) 2 years ago
Sora f444ba8beb
Fixup Zig Indent Queries (#4281) 2 years ago
ZJPzjp 0e8e7cae3b
fix `:insert-output` doc: inserting output **before** each selection (#4286) 2 years ago
Sam McCall aef37d43d7 c/c++ highlighting: various tweaks
- treat `restrict`/`_Atomic` like `const`/`volatile` => @keyword.storage.modifier
- highlight `unsigned int` as builtin => @type.builtin
- recognize `static_cast` and friends => @keyword
- `template` is a kind of entity like `typename` => @keyword.storage.type
- many declaration modifiers have nothing to do with storage/types
  (explicit, friend, access specifiers, inline in C++) => @keyword
- fix floats highlighted as integer => @constant.numeric
2 years ago
Sam McCall a3ed9169df
c/c++ highlights: *& are @type or @operator based on context (#4278) 2 years ago
Poliorcetics 45e038f4d5
nit: remove a String allocation that is immediately used as an &str (#4277) 2 years ago
Nathaniel Graham e80beaa7b0
Changed Selection Yank Message (#4275)
Co-authored-by: Nathaniel Graham <ngraham@protonmail.com>
2 years ago
Dario Oddenino 2d958d6c50
Add support for Purescript language (#4242) 2 years ago
IrishMaestro 13d81b7478
Created heisenberg theme for helix editor (#4209) 2 years ago
Chickenkeeper b4e795d704
Fix C++ syntax highlighting, and improve C & WGSL highlighting (#4079) 2 years ago
Ben Lee-Cohen cf4a5cca96
Monokai Pro Octagon statusline modes (#4247) 2 years ago
Pascal Kuthe 66a49080bc
merge underline-style and underline-color into a single table 2 years ago
Tim Siegel 5077ce76b3 tutor: Normalize key names, capitalization, etc. 2 years ago
Tim Siegel 425df93fb8 book: Refer to keys by key names, not representations
This is an attempt to clean up the inconsistent way that keys are
written in various places. These rules require the fewest changes to the
existing text.

Use the "Key name", as defined in remapping.md, which uses
"Some-Modifiers-PascalCaseKey". The "Representation", which uses
"S-M-lowercasekey", is only used for configuration entries.

For key combinations which do not present a popup, just present the keys
one after the other, with no intervening space, like `]p`.

For key combinations which present a popup, separate them with ` + `,
like `Space + f`.

The Ctrl modifier is called Ctrl, not Control.
2 years ago
Tim Siegel e542f2e08f tutor: Minor grammar fix
No need to say additionally, as well, also, etc. One is enough.
2 years ago
Tim Siegel f5f4d3dc2a tutor: Clarify forward reference to "primary selection" 2 years ago
Tim Siegel 0571fa4d56 tutor: Clarify first multi-cursor example
If the reader is unfortunate enough to place the cursor at the beginning
of the line on step #1, subsequent steps will fail.
2 years ago
Tim Siegel 6db39eacd3 tutor: Clarify forward reference to "select command"
The phrase "Like the select command" suggests that the reader has been
introduced to select already. That doesn't happen until the next
chapter.
2 years ago
Michael Davis e16c632760
Apply transactions to the jumplist for undo/redo (#4227)
Undo/redo/earlier/later call `Document::apply_impl` which applies
transactions to the document. These transactions also need to be
applied to the view as in 0aedef0.
2 years ago
Armin Ronacher 7f75458e6f
Fix some commands not showing names in palette (#4223) 2 years ago
Lennard Hofmann a24fae3b3c
Update tree-sitter-lua and add textobjects for Lua (#3552) 2 years ago
Graic 68909dcef4
Fix append cursor location when selection anchor is at end of document (#4147) 2 years ago
Pascal Kuthe 963a0ac0bb
fix terminfo detection 2 years ago
Jacob Kiesel c54a0363bb
Rearrange README.md slightly (#4206) 2 years ago
Brian Orwe f4d96b2ca3
Fix confusion with using --hsplit --vsplit on startup at same time (#4202) 2 years ago
Pascal Kuthe 328c4d002f
adress review comments 2 years ago
Daniel Ebert 081327695f Rename extend indent captures.
Clarify comments in indent code.
2 years ago
Daniel Ebert dc443487d4 Slightly change the behavior of the `@stop-extend` capture.
This improves the behavior in case of multiple nested extensions.
2 years ago
Daniel Ebert 2b02785f19 Improve code style for tree-sitter indentation.
Split extend logic into a separate file.
2 years ago
Triton171 05832f90cb Fix a bug that caused the indent for the line below to also be added in rare cases at the beginning of a file. 2 years ago
Triton171 1ceecbd062 Fix clippy warning. 2 years ago
Triton171 8f19956218 Add python indentation support to docs.
Document @extend-indented and @stop-extend captures for indent queries.
2 years ago
Triton171 3ab9abb642 Add `extend-indented` and `stop-extend` captures for indent queries.
Improve and re-enable python indent queries.
2 years ago
Alex 8c4ae4df1c
update everforest theme (#3998) 2 years ago
Stuart Baker ce2a5b6d9f
Add colours "color-modes" to ayu_light theme (#4109)
* Rename "dark gray" to "light gray"

* Add colours for statusline modes

* Use UI background for inactive panes
2 years ago
Pascal Kuthe 543d75da23
do not reparse unmodified injections (#4146) 2 years ago
Alexis (Poliorcetics) Bourget b58899bc8e fix: remove unneeded allocations when calling helix_view::Info::new 2 years ago
Alexis (Poliorcetics) Bourget 28cb89eadb chore: fix clippy linting 2 years ago
Michael Davis 65febe0cf4
Overlay all diagnostics with highest severity on top (#4113)
Here we separate the diagnostics by severity and then overlay the Vec
of spans for each severity on top of the highlights. The error
diagnostics end up overlaid on the warning diagnostics, which are
overlaid on the hints, overlaid on info, overlaid on any other severity
(default), then overlaid on the syntax highlights.

This fixes two things:

* Error diagnostics are now always visible when overlapped with other
  diagnostics.
* Ghost text is eliminated.
    * Ghost text was caused by duplicate diagnostics at the EOF:
      overlaps within the merged `Vec<(usize, Range<usize>)>` violate
      assumptions in `helix_core::syntax::Merge`.
    * When we push a new range, we check it against the last range and
      merge the two if they overlap. This is safe because they both
      have the same severity and therefore highlight.

The actual merge is skipped for any of these when they are empty, so
this is very fast in practice. For some data, I threw together an FPS
counter which renders as fast as possible and logs the renders per
second.

With no diagnostics, I see an FPS gain from this change from 868 FPS
to 878 (+1.1%) on a release build on a Rust file. On an Erlang file
with 12 error diagnostics and 6 warnings in view (233 errors and 66
warnings total), I see a decrease in average FPS from 795 to 790
(-0.6%) on a release build.
2 years ago
Pascal Kuthe 1a87cbd508 remove filterting with C-space from picker 2 years ago
Pascal Kuthe 7af599e0af Treat space as a seperator instead of a character in fuzzy picker 2 years ago
Michael Davis c388e16e09 Add a helper function for applying transactions
It is easy to forget to call `Document::apply` and/or `View::apply` in
the correct order. This commit introduces a helper function which
closes over both calls.
2 years ago
Michael Davis 0aedef0333 Apply transactions to Views
This change adds View::apply calls for all Document::apply call-sites,
ensuring that changes to a document do not leave invalid entries in
the View's jumplist.
2 years ago
Michael Davis d418f0795d Add View::apply for adjusting jumplist ranges
Applying a transaction to a View adjusts the ranges in the jumplist
to ensure that they remain within the text of the document and follow
regular selection invariants (for example, must be have a width of at
least one).
2 years ago