summaryrefslogtreecommitdiff
path: root/helix-term/src
Commit message (Collapse)AuthorAge
* Add mode specific styles (#2676)Mathspy2022-06-30
| | | | | | | | | | | | | * Add mode specific styles In similar vein to neovim's lualine and similar statusline packages this allows helix users to style their mode based on which mode it is thus making each mode more visually distinct at a glance * Add an example based on rosepine * Add editor.colors-mode config * Document statusline mode styles
* Add workspace and document diagnostics picker (#2013)Falco Hirschenberger2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add workspace and document diagnostics picker fixes #1891 * Fix some of @archseer's annotations * Add From<&Spans> impl for String * More descriptive parameter names. * Adding From<Cow<str>> impls for Span and Spans * Add new keymap entries to docs * Avoid some clones * Fix api change * Update helix-term/src/application.rs Co-authored-by: Bjorn Ove Hay Andersen <bjrnove@gmail.com> * Fix a clippy hint * Sort diagnostics first by URL and then by severity. * Sort diagnostics first by URL and then by severity. * Ignore missing lsp severity entries * Add truncated filepath * Typo * Strip cwd from paths and use url-path without schema * Make tests a doctest * Better variable names Co-authored-by: Falco Hirschenberger <falco.hirschenberger@itwm.fraunhofer.de> Co-authored-by: Bjorn Ove Hay Andersen <bjrnove@gmail.com>
* fixes background reset (#2900)Seth Bromberger2022-06-28
| | | | | | | | | * fixes background reset * moves creation of default style out of loop * patches with background_style * removes commented code
* Fix recursive macro crash and empty macro lockout (#2902)PabloMansanet2022-06-28
|
* Refactor handling of mouse events (#2893)Gokul Soumya2022-06-27
| | | | | | - Simplified match statements by destructuring MouseEvent struct at the top and then matching on event.kind. - Extracted out closures for calculating (1) position and view of mouse click and (2) gutter coordinates and view of mouse click.
* feat: highlight / select symbol under cursor using LSP ↵lazytanuki2022-06-27
| | | | | | | | | textDocument/documentHighlight (#2738) * feat: highlight symbol under cursor using LSP textDocument/documentHighlight * fix: please clippy * fix: shorter description and code style
* Only draw cursorline in the currently focused bufferBlaž Hrastnik2022-06-27
|
* Implement cursorline (#2170)Tobias Menzi2022-06-27
| | | | | * Implement cursorline * Binary search possible lines
* Right align scrollbar with track in completion popup (#2754)Gokul Soumya2022-06-27
| | | | | - Align the scollbar to the right edge of the popup rather than at a margin of one. - Add a scrollbar track and a new scope `ui.menu.scroll`.
* Add single width left margin for completion popup (#2728)Gokul Soumya2022-06-26
| | | | | | | | | | | | | | * Add single width left margin for completion popup * Clear with ui.menu style before rendering menu When rendering a completion popup, the popup component will clear the area with ui.popup and then the menu component would draw over it using a table component. We remove the left edge of the area before passing it to the table component (so that it will be left as padding), and the table component uses ui.menu as the style. If ui.menu and ui.popup are different the left edge of the popup will look different from the rest of the popup. We avoid this by clearing the whole area with ui.menu in Menu::render
* fixes showing the last prompt on empty input (#2870)Saber Haj Rabiee2022-06-24
|
* check selection's visible width when copying on mouse click (#2711)Michael Davis2022-06-24
| | | | | | | | | | | | | | * check selection's visible width when copying on mouse click Mouse-click-up copies the selection produced by dragging. The event is ignored if the selection has a width of 1 though so you don't copy when clicking rather than dragging. The current check copies text when it has a visible width of 1 but is actually multiple characters in the rope like a CRLF line-ending. With this change we check the unicode width of the character(s) in the selection rather than the range length, so clicking on a CRLF line-ending does not copy. * use range.fragment to simplify getting the primary selection width
* Redetect indent and line endings after language server replaces documents ↵farwyler2022-06-24
| | | | | | | | | | | (#2778) * redetect indent and line endings after language server replaces document * removes nested if * always redetect indent and line endings after format This reverts commit 764d14f55894dc7213e48022dfa0f91829b8ef59.
* fixes #2856 by resetting style on diagnostic (#2861)Seth Bromberger2022-06-22
|
* Fix scrollbar length proportional to total menu items (#2860)Gokul Soumya2022-06-22
| | | | | | The scrollbar length used to increase with more entries in the menu, which was counter-intuitive to how scrollbars worked in most applications. Turns out there was a typo in the floor division implementation :)
* Remove a couple more unwrapsBlaž Hrastnik2022-06-21
|
* Merge pull request #2359 from dead10ck/test-harnessBlaž Hrastnik2022-06-21
|\ | | | | Integration testing harness
| * Merge branch 'master' into test-harnessBlaž Hrastnik2022-06-21
| |\
| * | factor new Application with file arg to functionSkyler Hawthorne2022-06-19
| | |
| * | fix(command): write-quit: do not quit if write failsSkyler Hawthorne2022-06-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | During write-quit, if the file fails to be written for any reason, helix will still quit without saving the changes. This fixes this behavior by introducing fallibility to the asynchronous job queues. This will also benefit all contexts which may depend on these job queues. Fixes #1575
| * | consolidate idle timer logic, make conditionalSkyler Hawthorne2022-06-19
| | |
| * | don't read from stdin for integration testsSkyler Hawthorne2022-06-19
| | |
| * | use env var for integration test log levelSkyler Hawthorne2022-06-19
| | |
| * | use test terminal backend for integration testsSkyler Hawthorne2022-06-19
| | |
| * | Add more context; Editor::open doesn't need to own pathSkyler Hawthorne2022-06-19
| | |
| * | use idle timer instead of fixed timeoutSkyler Hawthorne2022-06-19
| | |
| * | use main application event loopSkyler Hawthorne2022-06-19
| | | | | | | | | | | | Use the Application's main event loop to allow LSP, file writes, etc
| * | reorganize tests into groupsSkyler Hawthorne2022-06-19
| | |
| * | Fix initial selection of Document in new viewSkyler Hawthorne2022-06-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a new View of a Document is created, a default cursor of 0, 0 is created, and it does not get normalized to a single width cursor until at least one movement of the cursor happens. This appears to have no practical negative effect that I could find, but it makes tests difficult to work with, since the initial selection is not what you expect it to be. This changes the initial selection of a new View to be the width of the first grapheme in the text.
| * | improve test harnessSkyler Hawthorne2022-06-19
| | | | | | | | | | | | | | | | | | | | | * Use new macro syntax for encoding sequences of keys * Make convenience helpers for common test pattern * Use indoc for inline indented raw strings * Add feature flag for integration testing to disable rendering
| * | Integration testing harnessBlaž Hrastnik2022-06-19
| | |
| * | Simplify handle_terminal_events signatureBlaž Hrastnik2022-06-19
| | |
| * | move config parsing back into mainSkyler Hawthorne2022-06-19
| | |
* | | add history suggest to global search (#2717)Termina942022-06-21
| | | | | | | | | Co-authored-by: Dean Revell <revell@gmail.com>
* | | Refactor Margin for fine grained control (#2727)Gokul Soumya2022-06-21
| | |
* | | Enable shellwords for Windows (with escaping disabled) (#2767)ath32022-06-21
| | |
* | | Format keys identically in statusline and command palette (#2790)Gokul Soumya2022-06-21
| | | | | | | | | | | | | | | | | | The command palette previously used + as a delimiter for denoting a single key in a key sequence, (like C+w). This was at odds with how the statusline displayed them with pending keys (like <C-w>). This patch changes the palette formatting to the statusline formatting
* | | Make indent guides configurableGokul Soumya2022-06-21
| | |
* | | Add indent guides supportGokul Soumya2022-06-21
| |/ |/|
* | feat: make `move_vertically` aware of tabs and wide characters (#2620)Matthew Toohey2022-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | * feat: make `move_vertically` aware of tabs and wide characters * refactor: replace unnecessary checked_sub with comparison * refactor: leave pos_at_coords unchanged and introduce separate pos_at_visual_coords * style: include comment to explain `pos_at_visual_coords` breaking condition * refactor: use `pos_at_visual_coords` in `text_pos_at_screen_coords` * feat: make `copy_selection_on_line` aware of wide characters
* | Default rulers color to red (#2669)Mathspy2022-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Default rulers color to red Currently if the theme a user is using doesn't have `ui.virtual.rulers` set and they set up a ruler it just fails silently making it really hard to figure out what went wrong. Did they set incorrectly set the ruler? Are they using an outdated version of Helix that doesn't support rulers? This happened to me today, I even switched to the default theme with the assumption that maybe my theme just doesn't have the rulers setup properly and it still didn't work. Not sure if this is a good idea or not, feel free to suggest better alternatives! * Use builtin Style methods instead of Bevy style defaults Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Only default the style if there's no ui or ui.virtual * Update themes style from ui.virtual to ui.virtual.whitespace * Revert ui.virtual change in onelight theme * Prefer unwrap_or_else Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* | text-objects: add test capture & elixir queriesConnor Lay (Clay)2022-06-21
| |
* | mouse selection now uses character indexing (#2839)Mathis Brossier2022-06-20
| |
* | fix: do not color health summary when stdout is piped (#2836)lazytanuki2022-06-20
|/ | | | | * fix: do not color health summary when stdout is piped * fix: use crossterm instead of is-terminal
* views -> buffers in write-all (#2788)Gygaxis Vainhardt2022-06-16
|
* Update auto-pairs and idle-timeout when the config is reloaded (#2736)Bjorn Ove Hay Andersen2022-06-15
|
* Improve markdown list rendering (#2687)Frojdholm2022-06-15
| | | | | | | * Cleanup old commented code * Implement line breaks in markdown rendering * Implement markdown nested, numbered and multiparagraph lists
* Better handling of symlinks (#2718)Roland Kovacs2022-06-15
| | | | | | | | | | - Add file-picker.follow-symlinks configuration option (default is true), this also controls if filename and directory completers follow symlinks. - Update FilePicker to set editor error if opening a file fails, instead of panicing. Fix #1548 Fix #2246
* Add a check to prevent re-selecting same range (#2760)Ryang Sohn2022-06-14
|
* Add docstring for language_server!() macro (#2750)Gokul Soumya2022-06-12
|