on master help sign in
Update README.
0926904Blaž Hrastnik
README.md+49−50
@@ -7,18 +7,28 @@
7| helix-view | UI abstractions for use in backends, imperative shell. |
7| helix-view | UI abstractions for use in backends, imperative shell. |
8| helix-term | Terminal UI |
8| helix-term | Terminal UI |
9
9
10+# Installation
11+
12+```
13+git clone --depth 1 --recurse-submodules -j8 https://github.com/helix-editor/helix
14+cd helix
15+cargo install --path helix-term
16+```
17+
18+This will install the `hx` binary to `$HOME/.cargo/bin`.
19+
20+# Notes
21+
10- server-client architecture via gRPC, UI separate from core
22- server-client architecture via gRPC, UI separate from core
11- multi cursor based editing and slicing
23- multi cursor based editing and slicing
12- WASM based plugins (builtin LSP & fuzzy file finder)
24- WASM based plugins (builtin LSP & fuzzy file finder)
13−- piece table-based tree structure for changes
14−
15
25
16Structure similar to codemirror:
26Structure similar to codemirror:
17
27
18−text (ropes)
28+- text (ropes)
19- column utils, stuff like tab aware (row, col) -> char pos translation
29- column utils, stuff like tab aware (row, col) -> char pos translation
20- word/grapheme/code point utils and iterators
30- word/grapheme/code point utils and iterators
21−state
31+- state
22- transactions
32- transactions
23 - changes
33 - changes
24 - annotations (time changed etc)
34 - annotations (time changed etc)
@@ -29,62 +39,51 @@ state
29 - cursor is just a single range selection
39 - cursor is just a single range selection
30- markers
40- markers
31 track a position inside text that synchronizes with edits
41 track a position inside text that synchronizes with edits
32−{ doc, selection, update(), splice, changes(), facets, tabSize, identUnit, lineSeparator, changeFilter/transactionFilter to modify stuff before }
42+- { doc, selection, update(), splice, changes(), facets, tabSize, identUnit, lineSeparator, changeFilter/transactionFilter to modify stuff before }
33−view (actual UI)
43+- view (actual UI)
34- renders via termwiz
44- renders via termwiz
35- viewport(Lines) -> what's actually visible
45- viewport(Lines) -> what's actually visible
36- extend the view via Decorations (inline styling) or Components (UI)
46- extend the view via Decorations (inline styling) or Components (UI)
37 - mark / wieget / line / replace decoration
47 - mark / wieget / line / replace decoration
38−commands (transform state)
48+- commands (transform state)
39- movement
49- movement
40- selection extension
50- selection extension
41- deletion
51- deletion
42- indentation
52- indentation
43−keymap (maps keys to commands)
53+- keymap (maps keys to commands)
44−history (undo tree via immutable ropes)
54+- history (undo tree via immutable ropes)
45- undoes transactions
55- undoes transactions
46- invert changes (generates a revert)
56- invert changes (generates a revert)
47−(collab mode)
57+- (collab mode)
48−gutter (line numbers, diagnostic marker, etc) -> ties into UI components
58+- gutter (line numbers, diagnostic marker, etc) -> ties into UI components
49−rangeset/span -> mappable over changes (can be a marker primitive?)
59+- rangeset/span -> mappable over changes (can be a marker primitive?)
50−syntax (treesitter)
60+- syntax (treesitter)
51- indentation strategies
61- indentation strategies
52−fold
62+- fold
53−selections (select mode/multiselect)
63+- selections (select mode/multiselect)
54−matchbrackets
64+- matchbrackets
55−closebrackets
65+- closebrackets
56−special-chars (shows dots etc for specials)
66+- special-chars (shows dots etc for specials)
57−panel (for UI: file pickers, search dialogs, etc)
67+- panel (for UI: file pickers, search dialogs, etc)
58−tooltip (for UI)
68+- tooltip (for UI)
59−search (regex? pcre)
69+- search (regex? pcre)
60−lint (async linters)
70+- lint (async linters)
61−lsp
71+- lsp
62−highlight (?)
72+- highlight (?)
63−stream-syntax
73+- stream-syntax
64−autocomplete
74+- autocomplete
65−comment (gc, etc for auto commenting)
75+- comment (gc, etc for auto commenting)
66−snippets
76+- snippets
67−
68−terminal mode?
77+- terminal mode?
69−
70−plugins can contain more commands/ui abstractions to use elsewhere
71−
72−languageData as presets for each language (syntax, indent, comment, etc)
73−
74−TODO: determine rust vs script portions
75−
76−vim stuff:
77−motions/operators/text objects
78−full visual mode
79−macros
80−jump lists
81−marks
82−yank/paste
83−conceal for markdown markers, etc
84−
85
78
86−---
79+- plugins can contain more commands/ui abstractions to use elsewhere
80+- languageData as presets for each language (syntax, indent, comment, etc)
87
81
88−codemirror uses offsets exclusively with Line being computed when necessary
82+Vim stuff:
89−(with start/end extents)
83+- motions/operators/text objects
90−lines are temporarily cached in a lineCache
84+- full visual mode
85+- macros
86+- jump lists
87+- marks
88+- yank/paste
89+- conceal for markdown markers, etc