Commit Graph

2471 Commits

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