Commit Graph

234 Commits (8bccd6df3054143baf128157d8dcecb10a911956)

Author SHA1 Message Date
Blaž Hrastnik 2c48d65b15 Format document on save 4 years ago
Blaž Hrastnik 2100f5a2c0 Address clippy lint. 4 years ago
Blaž Hrastnik 8f6f329057 If switching to a previously open buffer in the same view, keep it's old offset 4 years ago
Blaž Hrastnik 4a9d1163e0 Hacky way to specify indent scopes per language via toml configs.
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.

Can't extract the pattern data from a parsed query either.

Oh well, toml files for now.
4 years ago
Blaž Hrastnik 5cbb4efa6d Add the LICENSE file. 4 years ago
Blaž Hrastnik 35606a3daa Inline tui as helix-tui fork.
We only rely on some of the rendering primitives and implement our
Cursive-style compositor on top.
4 years ago
Blaž Hrastnik c0a8b81487 Only send the document close event if we're closing the underlying buffer 4 years ago
Blaž Hrastnik c20813690f View::new is infallible, so is editor.switch/new_file. 4 years ago
Blaž Hrastnik f2c79e245b Allow switching views back to scratch buffers. 4 years ago
Blaž Hrastnik 418ee17b86 Canonicalize the path on open to avoid duplicates. 4 years ago
Blaž Hrastnik 7c915dc065 Add the :new command, don't crash if saving without filename. 4 years ago
Blaž Hrastnik fd4fd12fa3 clippy lint 4 years ago
Blaž Hrastnik d00414f81a Start moving more LSP calls into callbacks/futures without capturing self 4 years ago
Blaž Hrastnik 1ad0581ddd Eliminate a few more futures dependencies. 4 years ago
Blaž Hrastnik 355ad3cb82 Tokio migration. 4 years ago
Blaž Hrastnik b6a22e955b Closer to a full flake build via naersk.
Blocked on https://github.com/NixOS/nix/issues/4423, build doesn't see
submodules.
4 years ago
Blaž Hrastnik b0bdcab970 doc: Note about diagnostic mapping. 4 years ago
Blaž Hrastnik 28c167d71d doc: Be smarter about calculating modified status.
This way edit -> undo will properly show up as unmodified.
4 years ago
Blaž Hrastnik b5b650cfe7 Fix the last line calculation inside ensure_cursor_in_view 4 years ago
Blaž Hrastnik 3e5f24a9d5 lsp: support both utf-8 and utf-16 offsets.
Still need to implement the clangd encoding negotiation, but it's
a start. Should also manually override to utf8 for pyls.
4 years ago
Blaž Hrastnik 180521fefe Adjust scroll() to match kakoune: only scroll the view if cursor in bounds. 4 years ago
Blaž Hrastnik 978f5114d8 Horizontal scrolling! It only took a year to get around to it. 4 years ago
Blaž Hrastnik 52da68e49a Render a separator between vertical splits. 4 years ago
Blaž Hrastnik 9f318a8529 Fix an issue with closing nested splits.
The parent id was never assigned to the split, so removing the container
when it became empty failed.
4 years ago
Blaž Hrastnik 8b33ba2284 Correct the naming issue with vsplit and hsplit being swapped. 4 years ago
Blaž Hrastnik bc4e54c0c4 Load config files from ~/.config/helix, fallback to defaults. 4 years ago
Blaž Hrastnik 91462af546 Allow starting hx without a file. A new blank file will be created. 4 years ago
Blaž Hrastnik cf7b19d711 Always update selection: Empty transactions can still change selections. 4 years ago
Blaž Hrastnik 0dbd5b61ef Simplify code by providin cx.current() = (view, doc). 4 years ago
Blaž Hrastnik ceea5eacd8 clippy lint 4 years ago
Blaž Hrastnik 15c9a33ebc Drop doc.state. Use doc.text + doc.selections. 4 years ago
Blaž Hrastnik 6c4093c946 Weave through view_id references so that views into one file have independent selects. 4 years ago
Blaž Hrastnik 9eaef6e333 Fully drop State references. 4 years ago
Blaž Hrastnik 1b5316ea74 Track document modified state. 4 years ago
Blaž Hrastnik 742b3a709f Store intra-files jumps (goto) on the jumplist. 4 years ago
Blaž Hrastnik c1f2a14453 view: document.rs cleanup 4 years ago
Blaž Hrastnik aefafc25cd Replace Mode::Goto with just using on_next_key. 4 years ago
Blaž Hrastnik cf0e191a6a Clippy lint 4 years ago
Blaž Hrastnik a65395d94b Load theme from toml file. 4 years ago
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.
4 years ago
Blaž Hrastnik 8657c57cf2 Trivial jumplist implementation. 4 years ago
Blaž Hrastnik 4b176caded Reset first_line when changing files. 4 years ago
Blaž Hrastnik 8a0ab447ec editor.open can now either replace the current view or open in a split. 4 years ago
Blaž Hrastnik b24cdd1295 Derive a separate ViewId type. 4 years ago
Blaž Hrastnik 8328fe926d Drop refcell use, make view simply ref doc.id. 4 years ago
Blaž Hrastnik bf95ee27aa Store Document on the Editor type, make View reference it. 4 years ago
Blaž Hrastnik 5e6716c89c Add tab_width and indent_unit config. 4 years ago
Blaž Hrastnik cbcacb1063 Merge some imports. 4 years ago
Blaž Hrastnik c4792efead clippy lints 4 years ago
Blaž Hrastnik c331721565 Finish hiding doc.state / State as an implementation detail. 4 years ago
Blaž Hrastnik 8ba1e15d29 Expose doc.syntax() via accessor. 4 years ago
Blaž Hrastnik 2b64f49f2c Document::new should just take a rope. 4 years ago
Blaž Hrastnik e261f3c50d Expose doc.language_server as an accessor. 4 years ago
Blaž Hrastnik 59e6024186 Remove State from a few more signatures. 4 years ago
Blaž Hrastnik 8eaf9a432d Make Transaction::change only rely on the rope. 4 years ago
Blaž Hrastnik 51c15da3c3 Hold a reference to executor on the Editor type. 4 years ago
Blaž Hrastnik e3ec5e31ec Fix goto code before merging. 4 years ago
Jan Hrastnik eadad13efa preparing for gd merge 4 years ago
Jan Hrastnik 4e461bea2f editor.open now checks if view already exists 4 years ago
Jan Hrastnik 3869d7713e added goto functions in helix-term 4 years ago
Jan Hrastnik b738ae1bc7 more goto lsp functions 4 years ago
Blaž Hrastnik d8599f3a14 ui: Syntax highlight code inside markdown popups. 4 years ago
Blaž Hrastnik 54a7e893b7 lsp: Wire up didClose notification on editor.close. 4 years ago
Blaž Hrastnik eca2a73ad0 lsp: Pass through language_id on didOpenTextDocument. 4 years ago
Blaž Hrastnik 143cfe13e0 minor: TODO comment cleanup 4 years ago
Blaž Hrastnik dd91090a1a Implement keep_selections (filter selections on regex). 4 years ago
Blaž Hrastnik bb87b08fc9 Configure language servers via LanguageConfiguration. 4 years ago
Blaž Hrastnik 1cf887dea9 Cleanup: use doc.selection() instead of doc.state.selection(). 4 years ago
Blaž Hrastnik 6cbfb050e2 lsp: Emit didSave notifications. 4 years ago
Blaž Hrastnik 9dcfe25e4a Use diagnostic.severity to distinguish between error colors. 4 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.
4 years ago
Blaž Hrastnik 8f4ff4c646 editor: We still want to be able to calculate cursor pos. 4 years ago
Blaž Hrastnik ec4dd0a176 Add a selection mode again. 4 years ago
Blaž Hrastnik 00808afe3c ui: Make editor more resilient about being shrunk too small. 4 years ago
Blaž Hrastnik 6336c1da20 view: Reposition cursors on tree resize. 4 years ago
Blaž Hrastnik 8289bd1cb0 minor, fix clippy lint 4 years ago
Blaž Hrastnik 01907b3497 commands: Implement count for a few more commands. 4 years ago
Blaž Hrastnik 87a6d4e736 minor: Simplify some code. 4 years ago
Blaž Hrastnik 8b9b02f08b minor 4 years ago
Blaž Hrastnik 3b6c9648f3 fix clippy lint 4 years ago
Blaž Hrastnik 9132c6a591 Make some Document fields read-only. 4 years ago
Blaž Hrastnik 7da6bd6a71 commands: Simplify some code, only calling cx.doc() once. 4 years ago
Blaž Hrastnik 7877647cf0 Allow closing individual views. 4 years ago
Blaž Hrastnik 0827c45d94 view: Disable tree.fullscreen for now to appease clippy. 4 years ago
Blaž Hrastnik c9dd1c930e treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref 4 years ago
Blaž Hrastnik d5f9622e2e lsp: edit events change ranges need to affect each other. 4 years ago
Blaž Hrastnik 1ffd1e7633 Send updates to the lsp on undo/redo. 4 years ago
Blaž Hrastnik b7da7f83c3 lsp: Test changeset_to_changes. 4 years ago
Blaž Hrastnik de5170dcda Parse input counts: 10w, etc. 4 years ago
Blaž Hrastnik 5e73f83efa Implement vertical split calculations. 4 years ago
Blaž Hrastnik d4b85ce18d popup: wip work on completion popups 4 years ago
Blaž Hrastnik a924ad2885 simplify. 4 years ago
Blaž Hrastnik c70080dd68 Work around rendering errors for positions offscreen. 4 years ago
Blaž Hrastnik 8f0ddf9632 Address clippy warnings. 4 years ago
Blaž Hrastnik 9c33b5340a A dumb "next view" implementation that works. 4 years ago
Blaž Hrastnik 5554910e08 Forgot to add the tree.rs definition... 4 years ago
Blaž Hrastnik 446a7e5743 Don't render selections/cursors on views not in focus. 4 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.
4 years ago
Blaž Hrastnik 05c7fb98df Refactoring: move language_servers into Editor, proper load for doc. 4 years ago
Blaž Hrastnik 777a80917d Address clippy lints. 4 years ago