aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src
Commit message (Collapse)AuthorAge
* Put some tests behind #[cfg(test)] (#1459)Benoît Cortier2022-01-08
| | | It was missing in a few places.
* feat(commands): shrink_selection (#1340)Matouš Dzivjak2022-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(commands): shrink_selection Add `shrink_selection` command that can be used to shrink previously expanded selection. To make `shrink_selection` work it was necessary to add selection history to the Document since we want to shrink the selection towards the syntax tree node that was initially selected. Selection history is cleared any time the user changes selection other way than by `expand_selection`. This ensures that we don't get some funky edge cases when user calls `shrink_selection`. Related: https://github.com/helix-editor/helix/discussions/1328 * Refactor shrink_selection, move history to view * Remove useless comment * Add default key mapping for extend&shrink selection * Rework contains_selection method * Shrink selection without expand selects first child
* Extract macro parsing to `helix-view` and add unit testsOmnikar2021-12-27
|
* Update settings at runtime (#798)Tamo2021-12-26
| | | | | | | | | | | | | | | * feat: Update settings at runtime fix the clippy warning * update the documentation * use to_value instead of to_vec+from_value * drop the equal * remove an useless comment * apply suggestion
* feat(ui): file encoding in statusline (#1355)Matouš Dzivjak2021-12-25
| | | | | | | | | | | * feat(ui): file encoding in statusline Display file encoding in statusline if the encoding isn't UTF-8. * Re-export encoding_rs from core From there it can be imported by other mods that rely on it.
* Improve dedent behavior (#1232)WindSoilder2021-12-21
| | | | | | | | | | | | | | | | | | | | | * tmp add code for dedent * finish normal_mode with dedent behavior * use function pointer * rebase from origin * check dedent condition inside normal_mode implementation * using if let... * fix check * using char_is_whitespace instead of ch.is_whitespace * fix clippy * abstract restore_indent function
* Add ui.gutter to theme all gutters (i.e. set bg)Blaž Hrastnik2021-12-13
|
* Use `base16_tty` as 16-color default, fix theme nameOmnikar2021-12-13
|
* change to .unwrap_or_default() and fix ui.window and ui.statuslineNNB2021-12-13
|
* Update theme.rsNNB2021-12-13
|
* Load alt default theme if true color is not supportedOmnikar2021-12-13
| | | | | | | | | | | | | | | | | | | | * Move `runtime/themes/base16_default_terminal.toml` to `base16_theme.toml` alongside `theme.toml` * Use `terminfo` crate to detect whether the terminal supports true color and, if the user has no theme configured and their terminal does not support true color, load the alt default theme instead of the normal default. Remove `terminfo` dependency, use `COLORTERM` env instead Prevent user from switching to an unsupported theme Add `true-color-override` option If the terminal is wrongly detected to not support true color, `true-color-override = true` will override the detection. Rename `true-color-override` to `true-color`
* Macros (#1234)Omnikar2021-12-12
| | | | | | | | | | | | | | | | | | | | | | | | * Macros WIP `helix_term::compositor::Callback` changed to take a `&mut Context` as a parameter for use by `play_macro` * Default to `@` register for macros * Import `KeyEvent` * Special-case shift-tab -> backtab in `KeyEvent` conversion * Move key recording to the compositor * Add comment * Add persistent display of macro recording status When macro recording is active, the pending keys display will be shifted 3 characters left, and the register being recorded to will be displayed between brackets — e.g., `[@]` — right of the pending keys display. * Fix/add documentation
* Fix compilationBlaž Hrastnik2021-12-06
| | | | nix-direnv issues still mess with my shell..
* Use binary_search when looking up diagnosticsBlaž Hrastnik2021-12-06
| | | | They're sorted by range so they should also be sorted by line
* fix: Normalize backtab into shift-tabBlaž Hrastnik2021-12-06
| | | | Fixes #1150
* Bump rust to 1.57, fix new lint failuresBlaž Hrastnik2021-12-03
|
* Add last modified file (gm) (#1093)Ivan Tham2021-12-02
|
* Annotate Theme::highlight with #[inline]Blaž Hrastnik2021-12-01
|
* ui: Optimize tree-sitter style lookupsBlaž Hrastnik2021-12-01
| | | | | | | | | Tree sitter returns an index referring to the position of the scope in the scopes array. We can use that same index to avoid a hashmap lookup and instead store the styles in an array. This currently stores the styles in both a map and an array because the UI still uses hashmap lookups, but it's a reasonable tradeoff.
* Extract gutters into helix-viewBlaž Hrastnik2021-11-29
|
* Gutter functionsBlaž Hrastnik2021-11-29
|
* Detect filetype on :write (#1141)RustyStriker2021-11-28
| | | | | | | | | | | | | | | | | | | fixes #1136 * removed a log::info * removed temp.rs * cargo clippy no longer complains * new get_lang_server function * get_lang_server is now launch_language_server * launch_lang_server will now close the previous one * better code readability * remove resfresh_ls(and a wrong comment)
* Simplify some code in editor.rsBlaž Hrastnik2021-11-26
|
* Optimize space for DocumentId with NonZeroUsize (#1097)Ivan Tham2021-11-25
| | | Now Option<DocumentId> uses one byte rather than two
* File picker config (#988)Dan Nases Sha2021-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * squashed WIP commits * hide_gitignore working with config * pass reference to new config parameter of file_picker() * update config option name to match name on walk builder * add comments to config and documentation of option to book * add git_ignore option to WalkBuilder within prompt in commands.rs * WIP: add FilePickerConfig struct * WIP: cleanup * WIP: add more options including max_depth * WIP: changed defaults to match ignore crate defaults * WIP: change WalkBuilder in global_search() to use config options * WIP: removed follow_links, changed max_depth to follow config setting * WIP: update book with file-picker inline table notation * update documentation for file-picker config in book * adjusted to [editor.file-picker] in book configuration.md * adjust comments in editor.rs to be doc comments, cleanup * adjust comments * adjust book
* Simplify view/doc macrosBlaž Hrastnik2021-11-18
|
* helix-view/editor: use SCRATCH_BUFFER_NAME const (#1104)Cole Helbling2021-11-15
|
* helix-term/commands: implement buffer-close (bc, bclose) (#1035)Cole Helbling2021-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * helix-view/view: impl method to remove document from jumps * helix-view/editor: impl close_document * helix-view/editor: remove close_buffer argument from `close` According to archseer, this was never implemented or used properly. Now that we have a proper "buffer close" function, we can get rid of this. * helix-term/commands: implement buffer-close (bc, bclose) This behaves the same as Kakoune's `delete-buffer` / `db` command: * With 3 files opened by the user with `:o ab`, `:o cd`, and `:o ef`: * `buffer-close` once closes `ef` and switches to `cd` * `buffer-close` again closes `cd` and switches to `ab` * `buffer-close` again closes `ab` and switches to a scratch buffer * With 3 files opened from the command line with `hx -- ab cd ef`: * `buffer-close` once closes `ab` and switches to `cd` * `buffer-close` again closes `cd` and switches to `ef` * `buffer-close` again closes `ef` and switches to a scratch buffer * With 1 file opened (`ab`): * `buffer-close` once closes `ab` and switches to a scratch buffer * `buffer-close` again closes the scratch buffer and switches to a new scratch buffer * helix-term/commands: implement buffer-close! (bclose!, bc!) Namely, if you have a document open in multiple splits, all the splits will be closed at the same time, leaving only splits without that document focused (or a scratch buffer if they were all focused on that buffer). * helix-view/tree: reset focus if Tree is empty
* helix-term/commands: implement cquit (#1096)Cole Helbling2021-11-15
| | | This allows you to exit helix with an exit code, e.g. `:cq 2`.
* Implement "Goto last modification" command (#1067)ath32021-11-14
|
* helix-term/commands: move SCRATCH_BUFFER_NAME to helix-view/document (#1091)Cole Helbling2021-11-13
| | | | This way, the name is accessible everywhere `Document` and related types are.
* Fix earlier/later missing changeset update (#1069)Ivan Tham2021-11-11
| | | Fix #1059
* Allow piping from stdin into a buffer on startup (#996)Jason Hansen2021-11-10
| | | | | | | | | | | | | | | | | | | * Allow piping from stdin into a buffer on startup * Refactor * Don't allow piping into new buffer on macOS * Update helix-term/src/application.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Update helix-term/src/application.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Fix Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* search_impl will only align cursor center when it isn't in view (#959)CossonLeo2021-11-09
|
* Refactor shebang detection to reuse the loaded bufferBlaž Hrastnik2021-11-08
|
* Detect filetype from shebang line (#1001)ath32021-11-08
|
* Add LSP rename_symbol (space-r) (#1011)CossonLeo2021-11-08
| | | improve apply_workspace_edit
* Launch with defaults upon invalid config/theme (#982)Omnikar2021-11-06
| | | | | | | | * Launch with defaults upon invalid config/theme * Startup message if there is a problematic config * Statusline error if trying to switch to an invalid theme * Use serde `deny_unknown_fields` for config
* Make sure document diagnostics are sortedBlaž Hrastnik2021-11-06
|
* Allow infoboxes to be disabled (#972)Omnikar2021-11-05
| | | | | | | | | | | * Allow infoboxes to be disabled * Document `infoboxes` default value * Rename `infoboxes` to `auto_info` * Document `auto-info` * Fix incomplete rename
* Inform when reaching undo/redo bounds (#981)Omnikar2021-11-05
| | | | | | | | * Inform when reaching undo/redo bounds * `Already at oldest change` when undo fails * `Already at newest change` when redo fails * Add missing `the`
* Fix crash on changing from empty scratch buffer to itself (#975)ath32021-11-04
|
* Replace documents SlotMap with BTreeMapBlaž Hrastnik2021-11-04
|
* Ensure coords in screen depends on char width (#885)Ivan Tham2021-11-03
| | | | | The issue affected files with lots of tabs at the start as well. Fix #840
* Implement key ordering for info boxDaniel Ebert2021-11-03
|
* If switching away from an empty scratch buffer, remove it (#935)Omnikar2021-10-31
| | | | | | | * If switching away from an empty scratch buffer, remove it * Move `view.jumps.push` call into `else` clause * Refactor
* Uncomment mapping LSP diagnostics through changes (#925)Kirawi2021-10-29
|
* set_path: Pass in the function directlyBlaž Hrastnik2021-10-28
|
* Simplify set_pathBlaž Hrastnik2021-10-28
|
* Implement `hx --tutor` and `:tutor` to load `tutor.txt` (#898)Omnikar2021-10-28
| | | | | | | | | | | | | | | | | | | * Implement `hx --tutor` and `:tutor` to load `tutor.txt` * Document `hx --tutor` and `:tutor` * Change `Document::set_path` to take an `Option` * `Document::set_path` accepts an `Option<&Path>` instead of `&Path`. * Remove `Editor::open_tutor` and make tutor-open functionality use `Editor::open` and `Document::set_path`. * Use `PathBuf::join` Co-authored-by: Ivan Tham <pickfire@riseup.net> * Add comments explaining unsetting tutor path Co-authored-by: Ivan Tham <pickfire@riseup.net>