aboutsummaryrefslogtreecommitdiff
path: root/helix-term
Commit message (Collapse)AuthorAge
...
* 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
| |\
| * | replace phrase in testsSkyler Hawthorne2022-06-19
| | |
| * | 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
| * | add test for write-quit happy pathSkyler Hawthorne2022-06-19
| | |
| * | rename test helpersSkyler Hawthorne2022-06-19
| | |
| * | consolidate idle timer logic, make conditionalSkyler Hawthorne2022-06-19
| | |
| * | ignore failing write path tests until fixes are mergedSkyler Hawthorne2022-06-19
| | |
| * | rename top level module to satisfy cargo fmtSkyler Hawthorne2022-06-19
| | |
| * | use a read only file to ensure write failureSkyler Hawthorne2022-06-19
| | |
| * | use system's appropriate line endingSkyler 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 Results in integration tests for more error contextSkyler Hawthorne2022-06-19
| | |
| * | use idle timer instead of fixed timeoutSkyler Hawthorne2022-06-19
| | |
| * | tests for buffer-closeSkyler Hawthorne2022-06-19
| | |
| * | tests for serialized writesSkyler Hawthorne2022-06-19
| | |
| * | use main application event loopSkyler Hawthorne2022-06-19
| | | | | | | | | | | | Use the Application's main event loop to allow LSP, file writes, etc
| * | add test for ensuring the initial cursor on a newly opened fileSkyler Hawthorne2022-06-19
| | |
| * | reorganize tests into groupsSkyler Hawthorne2022-06-19
| | |
| * | refactor helpers, use new test helpersSkyler 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
| |