aboutsummaryrefslogtreecommitdiff
path: root/helix-term
Commit message (Collapse)AuthorAge
...
* ignore Enter keypress when menu has no selection (#1704)Michael Davis2022-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ignore Enter keypress when menu has no selection supersedes #1622 Builds on the work in #1285. I want to allow Enter to create a newline when there is no selection in the autocomplete menu. This occurs somewhat often when using LSP autocomplete in Elixir which uses `do/end` blocks (and I set the autocomplete menu delay to 0 which exacerbates the problem): ```elixir defmodule MyModule do def do_foo(x) do x end def other_function(y) do| end ``` Here the cursor is `|` in insert mode. The LSP suggests `do_foo` but I want to create a newline. Hitting Enter currently closes the menu, so I end up having to hit Enter twice when the module contains any local with a `do` prefix, which can be inconsistent. With this change, we ignore the Enter keypress to end up creating the newline in this case. * pop compositor layer when ignoring Enter keypress * move closing function out of consumed event result closure * explicitly label close_fn as an 'Option<Callback>'
* Alert if LSP is inactive when command is invoked (#1703)Gokul Soumya2022-02-25
|
* fix(commands): don't indent empty lines (#1653)Matouš Dzivjak2022-02-25
| | | | | | | | | | | | | * fix(commands): don't indent empty lines Fixes: https://github.com/helix-editor/helix/issues/1642 * Apply suggestions * Update helix-term/src/commands.rs * Update helix-term/src/commands.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Configurable auto pairs (#1624)Skyler Hawthorne2022-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * impl auto pairs config Implements configuration for which pairs of tokens get auto completed. In order to help with this, the logic for when *not* to auto complete has been generalized from a specific hardcoded list of characters to simply testing if the next/prev char is alphanumeric. It is possible to configure a global list of pairs as well as at the language level. The language config will take precedence over the global config. * rename AutoPair -> Pair * clean up insert_char command * remove Rc * remove some explicit cloning with another impl * fix lint * review comments * global auto-pairs = false takes precedence over language settings * make clippy happy * print out editor config on startup * move auto pairs accessor into Document * rearrange auto pair doc comment * use pattern in Froms
* Fix 1.60 lintsBlaž Hrastnik2022-02-25
|
* Use which to resolve lsp/dap binariesBlaž Hrastnik2022-02-24
| | | | This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
* Close some popups automatically (#1285)Bram2022-02-23
| | | | | | | | | | | | | | | | | | | * Add Event::Used to use event callback without consuming * Close popup if contents ignored event * collect event results before executing callbacks * don't add new result variant, use Ignored(..) instead * break in match cases * Make auto_close configurable * fix merge * auto close hover popups * fix formatting
* fix: ui: Markdown popups stopped taking vertical padding into accountBlaž Hrastnik2022-02-21
| | | | Fix #1688
* Simplify some codeBlaž Hrastnik2022-02-21
|
* Allow separate styles for markup headings (#1618)Alex2022-02-21
| | | | | * update markdown highlighting to use separate heading themes * remove markdown theme scopes in ui
* Always ignore the .git directory in file picker (#1604)Daniel S Poulin2022-02-20
| | | | | Some users (including myself) want to turn off filtering of files prefixed with `.`, as they are often useful to edit. For example, `.env` files, configuration for linters `.eslint.json` and the like.
* ui: prompt: Render aliases + border on the docBlaž Hrastnik2022-02-20
|
* fix: Allow multi-line prompt documentationBlaž Hrastnik2022-02-20
|
* Extract a lsp position helperBlaž Hrastnik2022-02-18
|
* Extract some duplication in lsp goto_ callsBlaž Hrastnik2022-02-18
|
* Extract jump_to_locationBlaž Hrastnik2022-02-18
|
* Extract a common "language server or return" macroBlaž Hrastnik2022-02-18
|
* Extract a helper function for lsp::LocationBlaž Hrastnik2022-02-18
|
* Move most LSP specific commmands to commands::lspBlaž Hrastnik2022-02-18
|
* dap: fix runInTerminal with lldb-vscodeBlaž Hrastnik2022-02-18
|
* Refactor symbol picker to share codeBlaž Hrastnik2022-02-18
|
* filter git revision on git command success exit code (#1674)Michael Davis2022-02-18
| | | | | | | | | | | | | | The unwrap (or '.ok()' rather) triggers for some errors but not negative status codes. In the case where helix is being packaged in an empty git repository, the existing mechanism will fail because git init git rev-parse HEAD gives a negative exit code and prints to stderr stderr: "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.... with a stdout of "HEAD\n" (too short to slice with [..8]).
* Fix bug when launching hx file.rs:10 (#1676)tomKPZ2022-02-18
|
* feat(commands): command palette (#1400)Matouš Dzivjak2022-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(commands): command palette Add new command to display command pallete that can be used to discover and execute available commands. Fixes: https://github.com/helix-editor/helix/issues/559 * Make picker take the whole context, not just editor * Bind command pallete * Typable commands also in the palette * Show key bindings for commands * Fix tests, small refactor * Refactor keymap mapping, fix typo * Ignore sequence key bindings for now * Apply suggestions * Fix lint issues in tests * Fix after rebase Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Manually recalculate initial completion where it mattersBlaž Hrastnik2022-02-17
|
* Pass through Editor instead of ContextBlaž Hrastnik2022-02-17
|
* WIP: show all buffers that couldn't be closedCole Helbling2022-02-17
|
* helix-term: implement buffer completerCole Helbling2022-02-17
| | | | | | In order to implement this completer, the completion function needs to be able to access the compositor's context (to allow it to get the list of buffers currently open in the context's editor).
* helix-term/commands: display buffer id in pickerCole Helbling2022-02-17
|
* Allow static strings in set_status/set_error so API is nicerBlaž Hrastnik2022-02-15
|
* dap: Reduce amount of block_on usesBlaž Hrastnik2022-02-15
|
* Add tree-sitter based function, class navigationGokul Soumya2022-02-15
|
* ..Blaž Hrastnik2022-02-15
|
* Fix build on masterBlaž Hrastnik2022-02-15
|
* Add `PageUp`, `PageDown`, `Ctrl-u`, `Ctrl-d`, `Home`, `End` keyboard ↵Ludwig Stecher2022-02-15
| | | | | | | | | | | | | | | shortcuts to file picker (#1612) * Add `PageUp`, `PageDown`, `Ctrl-u`, `Ctrl-d`, `Home`, `End` keyboard shortcuts to file picker * Refactor file picker paging logic * change key mapping * Add overlay component * Use closure instead of margin to calculate size * Don't wrap file picker in `Overlay` automatically
* use PathBuf::to_string_lossy() instead of to_str() (#1655)Kirawi2022-02-15
|
* Refactor language config loading (#1658)Gokul Soumya2022-02-14
|
* Mark DAP as experimentalBlaž Hrastnik2022-02-13
|
* Merge remote-tracking branch 'origin/master' into debugBlaž Hrastnik2022-02-13
|\
| * postpone clone after found (#1656)Cydiater2022-02-13
| |
| * Instant is more suitable than SystemTime for spinnersBlaž Hrastnik2022-02-10
| |
| * Replace tendril with smartstringBlaž Hrastnik2022-02-10
| | | | | | | | Slightly smaller API surface, less dependencies.
| * feat(editor): add config for search wrap_around (#1516)Matouš Dzivjak2022-02-10
| | | | | | | | | | | | | | | | | | * feat(editor): add config for search wrap_around Fixes: https://github.com/helix-editor/helix/issues/1489 * Move search settings into separate config * Disable linter
| * Show infobox with register contentsGokul Soumya2022-02-10
| |
| * Prevent multiple code action popupsGokul Soumya2022-02-08
| |
| * Preselect first item in code action popup menuGokul Soumya2022-02-08
| |
| * Replace if let with early returnGokul Soumya2022-02-08
| |
| * Update dependencies (crossterm 0.23, tree-sitter 0.20.4)Blaž Hrastnik2022-02-07
| | | | | | | | Fixes #677
| * fix: There is no such thing as markup.normal, use ui.textBlaž Hrastnik2022-02-07
| |
| * Don't use block_on in jobs.finish(), we can .awaitBlaž Hrastnik2022-02-05
| |