Commit Graph

467 Commits (19535888735a97e0a9ccb057ea12f8bbd4dfaa7a)

Author SHA1 Message Date
Blaž Hrastnik e3c4edae32 Add the machinery to load syntax config from TOML.
It's embedded into the binary at build time for now, but it's progress.
3 years ago
Blaž Hrastnik 9a36d2c2a8 wip: Hooks & trigger characters for completion/signature_help. 3 years ago
Blaž Hrastnik 350081a3af Fix crash if pressing enter when nothing selected in completion. 3 years ago
Blaž Hrastnik 8657c57cf2 Trivial jumplist implementation. 3 years ago
Blaž Hrastnik 915fd9ebaf Restore buffer_picker. 3 years ago
Blaž Hrastnik 8a0ab447ec editor.open can now either replace the current view or open in a split. 3 years ago
Blaž Hrastnik 8328fe926d Drop refcell use, make view simply ref doc.id. 3 years ago
Blaž Hrastnik 3f9a94fd43 ui: markdown: remove trailing blank line. 3 years ago
Blaž Hrastnik d0530fb839 Fix a scrolling crash where it would jump past the end of the buffer. 3 years ago
Blaž Hrastnik 73c92a0bc1 Implement m / match_brackets (using tree sitter). 3 years ago
Blaž Hrastnik df306fe031 Implement open_above (O). 3 years ago
Blaž Hrastnik 42d07b0621 Implement replace command (r<key>). 3 years ago
Blaž Hrastnik bf95ee27aa Store Document on the Editor type, make View reference it. 3 years ago
Blaž Hrastnik 5e6716c89c Add tab_width and indent_unit config. 3 years ago
Blaž Hrastnik 698e4ddea4 clippy: Factor out a Completion type. 3 years ago
Blaž Hrastnik cbcacb1063 Merge some imports. 3 years ago
Blaž Hrastnik c4792efead clippy lints 3 years ago
Blaž Hrastnik 71999cce43 Implement auto-pairs behavior for open and close. 3 years ago
Blaž Hrastnik a32806b490 Improve completion: src/<tab> will now correctly complete to src/main.rs 3 years ago
Blaž Hrastnik f29f01858d Implement iter() and len() directly on Selection. 3 years ago
Blaž Hrastnik e9bd9e72c3 Pos conversions always operate on whole documents. 3 years ago
Blaž Hrastnik 175d38c88c toggle_comments needs to append to history. 3 years ago
Blaž Hrastnik c331721565 Finish hiding doc.state / State as an implementation detail. 3 years ago
Blaž Hrastnik 8ba1e15d29 Expose doc.syntax() via accessor. 3 years ago
Blaž Hrastnik e261f3c50d Expose doc.language_server as an accessor. 3 years ago
Blaž Hrastnik 59e6024186 Remove State from a few more signatures. 3 years ago
Blaž Hrastnik dbcc099f48 Move things out of state.rs. 3 years ago
Blaž Hrastnik 0f6624491b Fix completion panicking if text changed before insert completed. 3 years ago
Blaž Hrastnik 8eaf9a432d Make Transaction::change only rely on the rope. 3 years ago
Blaž Hrastnik 51c15da3c3 Hold a reference to executor on the Editor type. 3 years ago
Blaž Hrastnik e3ec5e31ec Fix goto code before merging. 3 years ago
Jan Hrastnik eadad13efa preparing for gd merge 3 years ago
Jan Hrastnik 4e461bea2f editor.open now checks if view already exists 3 years ago
Jan Hrastnik 0828d1fdea picker wip 3 years ago
Blaž Hrastnik cf71625d4e term: Simplify goto code, address lints. 3 years ago
Jan Hrastnik 3869d7713e added goto functions in helix-term 3 years ago
Jan Hrastnik b738ae1bc7 more goto lsp functions 3 years ago
Jan Hrastnik 294791dffd added picker for gd, but yet to test it. also need to load appropriate file when definition isnt in same file 3 years ago
Jan Hrastnik 0322c28e6b gd now works for singular definition 3 years ago
Blaž Hrastnik 18ec8adc7f Simplify code a bit. 3 years ago
Jan Hrastnik 8a68a04340 gotodefiniton now runs but doesnt return anything 3 years ago
Jan Hrastnik d3ddc8dea6 wip 3 years ago
Blaž Hrastnik d8599f3a14 ui: Syntax highlight code inside markdown popups. 3 years ago
Blaž Hrastnik 54a7e893b7 lsp: Wire up didClose notification on editor.close. 3 years ago
Blaž Hrastnik eca2a73ad0 lsp: Pass through language_id on didOpenTextDocument. 3 years ago
Blaž Hrastnik 143cfe13e0 minor: TODO comment cleanup 3 years ago
Blaž Hrastnik 081e0ae8ae syntax: highlight_iter always returns Ok() 3 years ago
Blaž Hrastnik 71f899cb5b syntax: Highlight using ropes, avoiding dumping whole doc to string. 3 years ago
Blaž Hrastnik 80eca5c32f ui: Use parsed markdown contents to determine sizing. 3 years ago
Blaž Hrastnik f9b9bc04cc ui: Account for padding on markdown renderer. 3 years ago
Blaž Hrastnik eea339545c Add command for keeping only the primary selection. 3 years ago
Blaž Hrastnik dd91090a1a Implement keep_selections (filter selections on regex). 3 years ago
Blaž Hrastnik 872d770753 ui: Restrain diagnostic sidebar w/h based on available area. 3 years ago
Blaž Hrastnik 87e3cd3df2 ui: Render diagnostic errors in sideline. 3 years ago
Blaž Hrastnik 1cf887dea9 Cleanup: use doc.selection() instead of doc.state.selection(). 3 years ago
Blaž Hrastnik 3445abf88e syntax: Hide the TSParser internally, borrowing when needed. 3 years ago
Blaž Hrastnik b7dd7310c4 syntax: Reuse parser instances. highlight_iter() no longer needs &mut. 3 years ago
Blaž Hrastnik 9dcfe25e4a Use diagnostic.severity to distinguish between error colors. 3 years ago
Blaž Hrastnik c7ccb432ef pass clippy lint 3 years ago
Blaž Hrastnik 4acf301022 Implement the f/t/F/T find/till family of commands. 3 years ago
Blaž Hrastnik 62c991230f find-till (f) prototype, on_next_key mode implementation. 3 years ago
Blaž Hrastnik 8fe4590666 ui: popup: scroll documentation popups with c-u/c-d. 3 years ago
Blaž Hrastnik ddcf5156c0 ui: menu: Adjust scroll via required_size area caching. 3 years ago
Blaž Hrastnik 5ea610c41d ui: Move terminal into compositor, redo required_size hints. 3 years ago
Blaž Hrastnik 05aa0d6991 minor: dead code 3 years ago
Blaž Hrastnik 1d42b95915 ui: wip: Markdown doc renderer. 3 years ago
Blaž Hrastnik a5c4314940 commands: Improve scroll functions.
Followed kakoune's implementation, it's no longer janky and can scroll
all the way in either direction.
3 years ago
Blaž Hrastnik 565fb94afe commands: Correct another case that always used primary(). 3 years ago
Blaž Hrastnik 7e4830215e commands: w/b/e need to apply to all selections. 3 years ago
Blaž Hrastnik dd6db43013 ui: Adjust selection colors. 3 years ago
Blaž Hrastnik 4c6611f96b commands: Stop select_regex from breaking when no matches. 3 years ago
Blaž Hrastnik a21d96e729 ui: Scrollable popup menu, with scrollbar indicator. 3 years ago
Blaž Hrastnik 513effd972 ui: unsafe theme_ref is no longer needed. 3 years ago
Blaž Hrastnik 8b2cbb53fd minor: fix hover key 3 years ago
Blaž Hrastnik bd0f6c1dfc clippy lint 3 years ago
Blaž Hrastnik 0b85c16be9 ui: Share popup code with menu.
Menu is now just wrapped in a popup.
3 years ago
Blaž Hrastnik 11c4e0b053 ui: Calculate popup rendering and sizing. 3 years ago
Blaž Hrastnik 8f4ff4c646 editor: We still want to be able to calculate cursor pos. 3 years ago
Blaž Hrastnik 32f9a2d1d6 add missing fn 3 years ago
Blaž Hrastnik 857bce0e30 ui: Rework command mode, implement file path completion. 3 years ago
Blaž Hrastnik 2088c45075 commands: Implement X as extend line. 3 years ago
Blaž Hrastnik ec4dd0a176 Add a selection mode again. 3 years ago
Blaž Hrastnik 00808afe3c ui: Make editor more resilient about being shrunk too small. 3 years ago
Blaž Hrastnik 2c9b02039b commands: Implement join_selections. 3 years ago
Blaž Hrastnik 6336c1da20 view: Reposition cursors on tree resize. 3 years ago
Blaž Hrastnik 1ae7c43391 commands: = as range formatting (via lsp) 3 years ago
Blaž Hrastnik 7162632eb7 lsp: Hover documentation draft. 3 years ago
Blaž Hrastnik 8289bd1cb0 minor, fix clippy lint 3 years ago
Blaž Hrastnik 01907b3497 commands: Implement count for a few more commands. 3 years ago
Blaž Hrastnik 5fa1ba6b1c commands: refactor open_below to support count. 3 years ago
Blaž Hrastnik 87a6d4e736 minor: Simplify some code. 3 years ago
Blaž Hrastnik def949e509 open_below: drop redundant collect/into_iter. 3 years ago
Blaž Hrastnik 6cfb1acb9d commands: Implement expand_selection. 3 years ago
Blaž Hrastnik 33c67f1388 commands: add * as selection search. 3 years ago
Blaž Hrastnik 5096bdad33 completion: Use the language server bound to the document. 3 years ago
Blaž Hrastnik 9132c6a591 Make some Document fields read-only. 3 years ago
Blaž Hrastnik 7da6bd6a71 commands: Simplify some code, only calling cx.doc() once. 3 years ago
Blaž Hrastnik 7877647cf0 Allow closing individual views. 3 years ago
Blaž Hrastnik 1e1dae1c11 Remove unused method. 3 years ago
Blaž Hrastnik 3f6f82b0c4 Always store the log file under home dir. 3 years ago
Blaž Hrastnik 8c82f8f140 indent: use_list indentation, fix indentation bug on open_below
use std::{
  time::Duration // <- pressing `o` here would use }'s indent instead of prev line
}
3 years ago
Blaž Hrastnik 7a1ff5e45f commands: Wire up toggle comments as ctrl-c 3 years ago
Blaž Hrastnik c9dd1c930e treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref 3 years ago
Blaž Hrastnik 9cac44c7c0 minor changes 3 years ago
Blaž Hrastnik 8e1a59c140 ui: Redo selection rendering. 3 years ago
Blaž Hrastnik c408e7e01a commands: tie in a simple :w for now. 3 years ago
Blaž Hrastnik 48ef6598db Increase the log level in LSP and log server errors. 3 years ago
Blaž Hrastnik 83d48f10ea search: Barebones implementation. 3 years ago
Blaž Hrastnik 239db79834 Finally: Retain horizontal position when moving vertically. 3 years ago
Blaž Hrastnik de5170dcda Parse input counts: 10w, etc. 3 years ago
Blaž Hrastnik 5e73f83efa Implement vertical split calculations. 3 years ago
Blaž Hrastnik d4b85ce18d popup: wip work on completion popups 3 years ago
Blaž Hrastnik 30d1b7098f commands: % as select_all. 3 years ago
Blaž Hrastnik f2c2fa0cad Restore diagnostics. 3 years ago
Blaž Hrastnik a924ad2885 simplify. 3 years ago
Blaž Hrastnik c70080dd68 Work around rendering errors for positions offscreen. 3 years ago
Blaž Hrastnik 9c33b5340a A dumb "next view" implementation that works. 3 years ago
Blaž Hrastnik a81b8f3e42 Fix statusline rendering, change colors on active view. 3 years ago
Blaž Hrastnik a014787ee8 Correctly position the real terminal cursor. 3 years ago
Blaž Hrastnik 446a7e5743 Don't render selections/cursors on views not in focus. 3 years ago
Blaž Hrastnik 448c1abba0 View tree implementation: render multiple split views.
Cursors are still a bit buggy and we should render in focus statusbar
differently than in the other pane.
3 years ago
Blaž Hrastnik 2bea5db7bd commands: Implement select_on_matches. 3 years ago
Blaž Hrastnik a702af0aeb commands: add W and B (extend selection by word). 3 years ago
Blaž Hrastnik d9fb60e301 commands: Simplify code further via Context::doc. 3 years ago
Blaž Hrastnik 05c7fb98df Refactoring: move language_servers into Editor, proper load for doc. 3 years ago
Blaž Hrastnik 777a80917d Address clippy lints. 4 years ago
Blaž Hrastnik 7d41550a23 indent: refactor logic to be more correct.
Thanks to atom-sane-indentation, nvim-treesitter and tree-sitter-indent.el
for inspiration.
4 years ago
Blaž Hrastnik 941c34a7fc lsp: Move timeouts into client.request 4 years ago
Blaž Hrastnik b2800489de open_below is now indentation-aware. 4 years ago
Blaž Hrastnik 8b95c3353b lsp: buggy insert completion. 4 years ago
Blaž Hrastnik 6ec0f8e80f completion: Don't panic on timeout/no result, just do nothing. 4 years ago
Blaž Hrastnik 3cbab20908 lsp: Fix pos_to_lsp_pos calculation. 4 years ago
Blaž Hrastnik 2ab069bb3f lsp: Work on syncing the state with the language server. 4 years ago
Blaž Hrastnik cd16df19c1 lsp: generate_transaction_from_text_edits 4 years ago
Blaž Hrastnik 56f2193811 Retrieve completion options on ctrl-x. 4 years ago
Blaž Hrastnik 955cb81687 Init lsp through the registry. 4 years ago
Blaž Hrastnik c8424c6ff0 lsp: Re-enable hooks. 4 years ago
Blaž Hrastnik d61b4854b8 Make sure to clear the whole screen with the background color. 4 years ago
Blaž Hrastnik 4749b39b88 . 4 years ago
Blaž Hrastnik 47e282804d buffer picker: Mark current view with (*) 4 years ago
Blaž Hrastnik 3d3295bb75 ui: buffer picker on ctrl-b 4 years ago
Blaž Hrastnik ea502c8665 fix change -> change -> undo -> change -> undo -> undo. 4 years ago
Blaž Hrastnik d181027225 fix: undo/redo selection handling. 4 years ago
Blaž Hrastnik 25aa45e76c picker: Factor out file picker, we want to reuse code for other pickers. 4 years ago
Blaž Hrastnik 0b63e838e0 Port over Doc::relative_path. 4 years ago
Blaž Hrastnik 8b263ef04b picker: open file on Enter. 4 years ago
Blaž Hrastnik edfd3933db picker: Implement fuzzy search. 4 years ago
Blaž Hrastnik 7c75ec04e8 File picker mockup, reuses the line editor work done on Prompt. 4 years ago
Blaž Hrastnik ed60866c54 Add an :o open command. 4 years ago
Blaž Hrastnik 8f0b28aeb8 Make the select prompt interactive. 4 years ago
Blaž Hrastnik 1a843b6c06 prompt: make the callback a FnOnce. 4 years ago
Blaž Hrastnik 2bfdcede32 split_selection 4 years ago
Blaž Hrastnik f92998a14b Prompt needs to close on enter. 4 years ago
Blaž Hrastnik ca809617b2 Take prompt length into account. 4 years ago
Blaž Hrastnik ed6a4c4bd2 wip: Use prompt for interactive commands. 4 years ago
Blaž Hrastnik 07801b60bc Remove the prompt on ESC. 4 years ago
Blaž Hrastnik 7dc24a25ba Move ui modules under a ui:: namespace. 4 years ago
Blaž Hrastnik ef0d062b1f Fix cursor positioning. 4 years ago
Blaž Hrastnik 8695415fbf wip: Move to new rendering structure. 4 years ago
Blaž Hrastnik 29cb33300b wip 4 years ago
Blaž Hrastnik ada3f92c5b wip: Getting the new prompt to render in a new layer. 4 years ago
Blaž Hrastnik 5103dc9617 move commands and keymap back to terminal.
Command needs to be able to deal with UI. We'll separate it again later
on.
4 years ago
Blaž Hrastnik be3c021046 snapshot 4 years ago
Blaž Hrastnik 83f2c24115 wip: Compositor 4 years ago
Blaž Hrastnik a7869c728c wip 4 years ago
Blaž Hrastnik 3f707c19f4 Save command 4 years ago
Blaž Hrastnik 8f0bcfe286 Introduce a command context that carries the executor and other fields. 4 years ago
Blaž Hrastnik ae8a9e5bac lsp: Make base request methods take &self instead of &mut self. 4 years ago
Blaž Hrastnik cc6bdf8f66 Text change generation, RPC call handling. 4 years ago
Blaž Hrastnik af1924404a Configure logging (-vv for debug level logs) 4 years ago
Blaž Hrastnik b39849dde1 Refactor: Document type as a wrapper around barebones State. 4 years ago
Blaž Hrastnik ef5e5f9296 state.version tracking 4 years ago
Blaž Hrastnik 49254d7180 Total mess but it works: diagnostic marking. 4 years ago
Blaž Hrastnik f9bfba4d96 Reroute LSP notification events into the main app event loop. 4 years ago
Blaž Hrastnik 64b5b23315 Move theme from view to editor, support multiple views in editor. 4 years ago
Blaž Hrastnik b2b3083a62 Support multiple open views. 4 years ago
Blaž Hrastnik 13cb442850 wip: Fetching diagnostics, parsing notifications. 4 years ago
Blaž Hrastnik f03830b047 wip: Basic LSP lifecycle requests/notifications. 4 years ago
Jan Hrastnik 1a3c647adf added col_height calculation 4 years ago
Jan Hrastnik 2b44031929 various fixes 4 years ago
Jan Hrastnik c9e9fcf7c5 added base col width 4 years ago
Jan Hrastnik 28a1e11fda added more completions per line 4 years ago
Jan Hrastnik a123cf37a0 several fixes 4 years ago
Jan Hrastnik 8f37c26f35 completion highlighting 4 years ago
Jan Hrastnik f3ddb8631f wip completion 4 years ago
Jan Hrastnik 06502e5a2e added prompt close 4 years ago
Blaž Hrastnik bc2c652fe8 Bugfix 4 years ago
Blaž Hrastnik 49b4cdb566 Refactor command calling. 4 years ago
Blaž Hrastnik 49cc6c1924 Refactor Editor into Application and Editor/Workspace. 4 years ago
Jan Hrastnik 267602328c changed fn to fnmut 4 years ago
Jan Hrastnik fa55b1e51c added closures to prompt 4 years ago
Jan Hrastnik 7d58378374 added move left&right, delete char 4 years ago
Jan Hrastnik ed03ec92a8 moved prompt command matching to prompt.rs 4 years ago
Jan Hrastnik 7208c86f23 separated statusline and prompt 4 years ago
Jan Hrastnik c60f1a6553 created prompt.rs 4 years ago
Jan Hrastnik 9e7b6465c6 refactoring editor.rs 4 years ago
Jan Hrastnik 0c0c2c7103 modified editor.render() to prepare for command mode rendering 4 years ago
Blaž Hrastnik 4996f1b4d3 Move insert mode commands to a separate namespace. 4 years ago
Blaž Hrastnik d64f4beede Share tab width definitions. 4 years ago
Blaž Hrastnik 8098279676 Cleanup 4 years ago
Blaž Hrastnik b765c17896 Hacky undo/redo integration. 4 years ago
Blaž Hrastnik 9a73d3f1b9 fix clippy warning 4 years ago
Blaž Hrastnik 7f07e66768 Cleanup: track first_line as usize. 4 years ago
Jan Hrastnik 750610f0e7 various fixes 4 years ago
Jan Hrastnik 038201647c started work on goto mode 4 years ago
Blaž Hrastnik b7e1c0cf82 Fix cursor positioning on a scrolled buffer. 4 years ago
Blaž Hrastnik 226fa89d46 Fix line number rendering. 4 years ago
Blaž Hrastnik 197651eb30
Merge pull request #2 from helix-editor/tab-implementation
added tab to insert mode
4 years ago
Jan Hrastnik dc11124df5 added tab to insert mode 4 years ago
Blaž Hrastnik 7b4a4f6a3c Use crate info for clap help text. 4 years ago
Blaž Hrastnik 5945815d97 Fix cursor rendering & placement on append mode. 4 years ago
Blaž Hrastnik 4189c362b2 Fix clippy warnings. 4 years ago
Blaž Hrastnik e39bd211d1 argh -> clap to speed up compilation (no syn/proc_macro) 4 years ago
Jan Hrastnik 13800e4dd1 removed redundant line 4 years ago
Jan Hrastnik dd94a39810 moved insert keymap to keymap.rs 4 years ago
Blaž Hrastnik 3feb00283d clippy warnings 4 years ago
Blaž Hrastnik 3020077da8 Extend selection commands. 4 years ago
Blaž Hrastnik eb639eb2e4 More robust syntax detection/grammar loading. 4 years ago
Blaž Hrastnik 2c3b10dbb0 Sync up view size to terminal size for now. 4 years ago
Blaž Hrastnik 935cfeae57 Split parts of helix-term into helix-view.
It still largely depends on term for some types but I plan to change
that later.
4 years ago
Blaž Hrastnik 48330ddb5f Command needs access to view information for certain changes. 4 years ago
Blaž Hrastnik 1303ffd94a Remove old test. 4 years ago
Blaž Hrastnik 91343a6846 Restore terminal mode on panics. 4 years ago
Blaž Hrastnik 929fa5474d Simple cursor scrolling. 4 years ago
Blaž Hrastnik b120515613 Range based highlight_iter. Only works on limiting the start right now 4 years ago
Blaž Hrastnik 3859f6963d More work on the UI. 4 years ago
Blaž Hrastnik eb477ec442 Speed up surface code by resetting instead of allocating a new one. 4 years ago
Blaž Hrastnik 088f8a82af Incremental parsing: rough draft. 4 years ago
Blaž Hrastnik 31999d6528 Make state fields read-only from outside the crate. 4 years ago
Blaž Hrastnik b08278807e Add 'A', 'I' commands. 4 years ago
Blaž Hrastnik fb0f56b747 Add 'o' command. 4 years ago
Blaž Hrastnik eb6b9a9ca9 Support entering newlines. 4 years ago
Blaž Hrastnik d466882d04 Abstract Transaction::change_by_selection, working del/backspace. 4 years ago
Blaž Hrastnik f9348d77ec Fix tests. 4 years ago
Blaž Hrastnik 9546164dc8 cargo fmt & clippy lint 4 years ago
Blaž Hrastnik a106be94f1 Refactor a little bit. 4 years ago
Blaž Hrastnik b17a77b8b8 cleanup: Import tree-sitter-highlight so we can cache trees. 4 years ago
Blaž Hrastnik b647c7a773 tree-sitter based syntax highlighting draft 4 years ago
Blaž Hrastnik 25b3f98e3d draft: tree-sitter highlighting 4 years ago
Blaž Hrastnik e282fc7595 Bump deps, eliminate a lot of transitive deps. 4 years ago
Blaž Hrastnik 9ad40bc40b Experiment with TUI so we can render selections. 4 years ago
Blaž Hrastnik 67017e5336 append mode 4 years ago
Blaž Hrastnik dd749bb284 Expand transaction API. 4 years ago
Blaž Hrastnik 4e349add60 cleanup: Remove leftover files. 4 years ago
Blaž Hrastnik 8b3e152126 cleanup: Make Buffer just a part of State. 4 years ago
Blaž Hrastnik 579b6899f1 Work on insert mode. 4 years ago
Blaž Hrastnik 0d56ce9296 Bump deps, make it compile with latest smol. 4 years ago
Blaž Hrastnik 29f1be91a2 Fix clippy lints. 4 years ago
Blaž Hrastnik 4733afa6c2 Update dependencies.
smol 0.3 makes setup a whole lot easier.
4 years ago
Jan Hrastnik 8681d47292 remove unused import 4 years ago