mirror of https://github.com/helix-editor/helix
deps update
parent
30d1b7098f
commit
755632f231
@ -1,18 +1,38 @@
|
||||
helper methods: iterate over selection spans in the document.
|
||||
|
||||
- Implement marks (superset of Selection/Range)
|
||||
- Implement style configs, tab settings
|
||||
- Visual tab width
|
||||
- Refactor tree-sitter-highlight to work like the atom one, recomputing partial tree updates.
|
||||
- Only render highlights on screen
|
||||
- proper selection rendering
|
||||
- Undo tree
|
||||
- selection mode
|
||||
- key sequence shortcuts (gg etc)
|
||||
- syntax errors highlight query
|
||||
|
||||
- UI work: command line
|
||||
- UI work: tab popup on command line
|
||||
- UI work: completion popup
|
||||
- UI work: floating pane
|
||||
|
||||
|
||||
------
|
||||
|
||||
1
|
||||
- [ ] selection mode
|
||||
- [x] % for whole doc selection
|
||||
- [ ] vertical splits
|
||||
- [ ] input counts (30j)
|
||||
- [ ] retain horiz when moving vertically
|
||||
- [ ] update lsp on redo/undo
|
||||
- [ ] Implement marks (superset of Selection/Range)
|
||||
- [ ] ctrl-v/ctrl-x on file picker
|
||||
- [ ] linewise selection work
|
||||
- [ ] goto definition
|
||||
- [ ] nixos packaging
|
||||
- [ ] CI binary builds
|
||||
|
||||
2
|
||||
- extend selection (treesitter select parent node) (replaces viw, vi(, va( etc )
|
||||
- bracket pairs
|
||||
- comment block (gcc)
|
||||
- completion signature popups/docs
|
||||
- multiple views into the same file
|
||||
|
||||
3
|
||||
- diagnostics popups
|
||||
- diff mode with highlighting?
|
||||
- snippet support (tab to jump between marks)
|
||||
- gamelisp/wasm scripting
|
||||
|
||||
X
|
||||
- rendering via skulpin/skia or raw wgpu
|
||||
|
@ -0,0 +1,66 @@
|
||||
|
||||
# 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)
|
||||
- transactions
|
||||
- changes
|
||||
- invert changes (generates a revert)
|
||||
- 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)
|
||||
- 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 via reverts
|
||||
- (collab mode)
|
||||
- gutter (line numbers, diagnostic marker, etc) -> ties into UI components
|
||||
- rangeset/span -> mappable over changes (can be a marker primitive?)
|
||||
- syntax (treesitter)
|
||||
- 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)
|
||||
- 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
|
Loading…
Reference in New Issue