aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-02-09 06:39:52 +0000
committerBlaž Hrastnik2021-02-09 06:40:06 +0000
commit755632f23113ccff66390de1e2c3476a51886b00 (patch)
tree8036c55aa3d4edc95f206e6f28a2b8d8d98c8800 /README.md
parent30d1b7098f023ea1cf728e6b989599de364f58ab (diff)
deps update
Diffstat (limited to 'README.md')
-rw-r--r--README.md70
1 files changed, 0 insertions, 70 deletions
diff --git a/README.md b/README.md
index 5d963d0f..b3ca9107 100644
--- a/README.md
+++ b/README.md
@@ -17,73 +17,3 @@ cargo install --path helix-term
This will install the `hx` binary to `$HOME/.cargo/bin`.
-# Notes
-
-- server-client architecture via gRPC, UI separate from core
-- multi cursor based editing and slicing
-- WASM based plugins (builtin LSP & fuzzy file finder)
-
-Structure similar to codemirror:
-
-- text (ropes)
-- column utils, stuff like tab aware (row, col) -> char pos translation
-- word/grapheme/code point utils and iterators
-- state
-- transactions
- - changes
- - annotations (time changed etc)
- - state effects
- - additional editor state as facets
-- snapshots as an async view into current state
-- selections { anchor (nonmoving), head (moving) from/to } -> SelectionSet with a primary
- - cursor is just a single range selection
-- markers
- track a position inside text that synchronizes with edits
-- { doc, selection, update(), splice, changes(), facets, tabSize, identUnit, lineSeparator, changeFilter/transactionFilter to modify stuff before }
-- view (actual UI)
-- renders via termwiz
-- viewport(Lines) -> what's actually visible
-- extend the view via Decorations (inline styling) or Components (UI)
- - mark / wieget / line / replace decoration
-- commands (transform state)
-- movement
-- selection extension
-- deletion
-- indentation
-- keymap (maps keys to commands)
-- history (undo tree via immutable ropes)
-- undoes transactions
-- invert changes (generates a revert)
-- (collab mode)
-- gutter (line numbers, diagnostic marker, etc) -> ties into UI components
-- rangeset/span -> mappable over changes (can be a marker primitive?)
-- syntax (treesitter)
-- indentation strategies
-- fold
-- selections (select mode/multiselect)
-- matchbrackets
-- closebrackets
-- special-chars (shows dots etc for specials)
-- panel (for UI: file pickers, search dialogs, etc)
-- tooltip (for UI)
-- search (regex? pcre)
-- lint (async linters)
-- lsp
-- highlight (?)
-- stream-syntax
-- autocomplete
-- comment (gc, etc for auto commenting)
-- snippets
-- terminal mode?
-
-- plugins can contain more commands/ui abstractions to use elsewhere
-- languageData as presets for each language (syntax, indent, comment, etc)
-
-Vim stuff:
-- motions/operators/text objects
-- full visual mode
-- macros
-- jump lists
-- marks
-- yank/paste
-- conceal for markdown markers, etc