aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src/editor.rs
Commit message (Collapse)AuthorAge
* 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
* Add last modified file (gm) (#1093)Ivan Tham2021-12-02
|
* 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
* 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`.
* 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>
* 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
* 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
* Fix crash on changing from empty scratch buffer to itself (#975)ath32021-11-04
|
* Replace documents SlotMap with BTreeMapBlaž Hrastnik2021-11-04
|
* 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
* find motion and textobj motion repeat (#891)CossonLeo2021-10-24
|
* log syntax highlighting init errors (#895)Kirawi2021-10-23
|
* Add commands for moving between splits with a direction (#860)Oskar Nehlin2021-10-23
| | | | | | | | | * Add commands for moving between splits with a direction * Update keymaps * Change picker mapping * Add test and clean up some comments
* Improve completion trigger (#838)CossonLeo2021-10-18
| | | | | | | * improve idle completion trigger * add completion-trigger-len to book * rename semantics_completion to language_server_completion and optimize idle completion trigger
* Make auto-completion a config (#853)Ivan Tham2021-10-16
|
* fix: Make sure to actually use idle_timeout config value for the timersBlaž Hrastnik2021-10-10
|
* Make idle-timeout configurableBlaž Hrastnik2021-10-10
|
* idle timer wipBlaž Hrastnik2021-10-05
|
* Add option for automatic insertion of closing-parens/brackets/etc (#779)lurpahi2021-09-24
| | | | | | | | | | | | | | | * Add auto-pair editor option * Document auto-pair editor option * Make cargo fmt happy * Actually make cargo fmt happy * Rename auto-pair option to auto-pairs * Inline a few constants Co-authored-by: miaomai <cunso@tutanota.com>
* enable smart case regex search by default (#761)kraem2021-09-20
|
* log errors produced when trying to initialize the LSP (#746)Kirawi2021-09-15
|
* Regex prompts should have a history with a specifiable registerBlaž Hrastnik2021-09-08
|
* lsp: Don't send notifications until initialize completesBlaž Hrastnik2021-09-06
| | | | Then send open events for all documents with the LSP attached.
* Simplify documents & documents_mut()Blaž Hrastnik2021-09-06
|
* lsp: Refactor code that could use document_by_path_mutBlaž Hrastnik2021-09-06
|
* Simplify textDocument/didClose, we don't need to look up LSP againBlaž Hrastnik2021-09-06
|
* Document macros (#693)oberblastmeister2021-09-05
| | | | | | | | | | | | | | | * add docs * clean up * remove * more * Update helix-view/src/macros.rs Co-authored-by: Ivan Tham <pickfire@riseup.net> Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Shell commands (#547)Omnikar2021-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement shell interaction commands * Use slice instead of iterator for shell invocation * Default to `sh` instead of `$SHELL` for shell commands * Enforce trailing comma in `commands` macro * Use `|` register for shell commands * Move shell config to `editor` and use in command * Update shell command prompts * Remove clone of shell config * Change shell function names to match prompts * Log stderr contents upon external command error * Remove `unwrap` calls on potential common errors `shell` will no longer panic if: * The user-configured shell cannot be found * The shell command does not output UTF-8 * Remove redundant `pipe` parameter * Rename `ShellBehavior::None` to `Ignore` * Display error when shell command is used and `shell = []` * Document shell commands in `keymap.md`
* Move path util functions from helix-term to helix-core (#650)Kirawi2021-08-25
|
* Extract view.inner_area(), simplify render_focused_view_elementsBlaž Hrastnik2021-08-19
|
* Refactor view.first_line/first_col into view.offset (Position)Blaž Hrastnik2021-08-19
|
* feat: relative numbers (#485)Grzegorz Baranski2021-08-16
| | | | | | | | | | | | | | | | | | | * feat(helix-view): configuring line-number * feat(helix-term): relative line numbers * feat(helix-term): passing editor::Config to render * fix(helix-view): remove LineNumber::None * feat(helix-term): rendering line-number according to configuration * fix(term): put calculating current line above line iteration * fix: add abs_diff function * deps: cargo update * fix: pass config argument
* Show file preview in split pane in fuzzy finder (#534)Gokul Soumya2021-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add preview pane for fuzzy finder * Fix picker preview lag by caching * Add picker preview for document symbols * Cache picker preview per document instead of view * Use line instead of range for preview doc * Add picker preview for buffer picker * Fix render bug and refactor picker * Refactor picker preview rendering * Split picker and preview and compose The current selected item is cloned on every event, which is undesirable * Refactor out clones in previewed picker * Retrieve doc from editor if possible in filepicker * Disable syntax highlight for picker preview Files already loaded in memory have syntax highlighting enabled * Ignore directory symlinks in file picker * Cleanup unnecessary pubs and derives * Remove unnecessary highlight from file picker * Reorganize buffer rendering * Use normal picker for code actions * Remove unnecessary generics and trait impls * Remove prepare_for_render and make render mutable * Skip picker preview if screen small, less padding
* Support primary clipboard (#548)Dmitry Sharshakov2021-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clipboard-none: add in-memory fallback buffer Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * view: add Wayland primary clipboard Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Format Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: copy to primary selection after mouse move stops Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: don't update primary selection if it is a single character Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: discard result of setting primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: add commands for interaction with primary clipboard Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * editor: implement primary selection copy/paste using commands Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: support xsel for primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: support xclip for primary selection Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: multiple cursor support for middle click paste Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * rename primary selection to primary clipboard in scope of PR Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: make middle click paste optional Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Format Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Update helix-term/src/ui/editor.rs * fix formatting Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: correct defaults if terminal prop is not set Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * refactor: merge clipboard and primary selection implementations Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Tidy up code Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * view: remove names for different clipboard/selection providers Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * Update helix-view/src/clipboard.rs Co-authored-by: Gokul Soumya <gokulps15@gmail.com> * helix-view: tidy macros Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: refactor paste-replace commands Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: use new config for middle-click-paste Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: remove memory fallback for command and windows providers Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard-win: fix build Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: return empty string when primary clipboard is missing Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * clipboard: fix errors in Windows build Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* helix-term: handle scrolling when mouse is enabled (#554)Dmitry Sharshakov2021-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * helix-term: handle scrolling when mouse is enabled Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: configure scrolling speed Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: use new config for scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: defaults for edtior config Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * config: add scroll-lines property Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: scroll hovered view Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: support inverted scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: remove duplicating code Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: do not focus view while scrolled Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * helix-term: refactor mouse events and scrolling Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com> * simplify Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* config: Rename [terminal] to [editor] and pass it into EditorBlaž Hrastnik2021-08-08
|
* Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-26
|\
| * Allow multi key remappings in config file (#454)Gokul Soumya2021-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use tree like structure to store keymaps * Allow multi key keymaps in config file * Allow multi key keymaps in insert mode * Make keymap state self contained * Add keymap! macro for ergonomic declaration * Add descriptions for editor commands * Allow keymap! to take multiple keys * Restore infobox display * Fix keymap merging and add infobox titles * Fix and add tests for keymaps * Clean up comments and apply suggestions * Allow trailing commas in keymap! * Remove mode suffixes from keymaps * Preserve order of keys when showing infobox * Make command descriptions smaller * Strip infobox title prefix from items * Strip infobox title prefix from items
* | Collect some common patterns into methods on `Range`.Nathan Vegdahl2021-07-26
| |
* | Fixed primary cursor position calculation to use 1-width semantics.Nathan Vegdahl2021-07-19
|/ | | | | This had a bunch of knock-on effects that were buggy, such as bracket match highlighting.
* Changed startup behaviour to only open a single view when multiple files are ↵Cor2021-07-17
| | | | | | specified on the commandline. Changed the behaviour; the first argument on the commandline is the file on display
* Further simplify error handling in :commandsBlaž Hrastnik2021-07-11
|