61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
# emacs module foo
|
|
|
|
## Hot reload for dev
|
|
```elisp
|
|
|
|
(module-load "/home/tristand/code/redvault-ai/target/release/deps/libemacs_rs_module-9ad53dadcc38727d.so")
|
|
|
|
|
|
(defun hotreload-el-rs ()
|
|
(interactive)
|
|
(rs-module/load "/home/tristand/code/redvault-ai/target/release/libredvault_el_rs.so"))
|
|
|
|
|
|
(defun el-res-say-hello-2 ()
|
|
(interactive)
|
|
(asd/say-hello "Asd"))
|
|
|
|
(defun el-res-say-hello ()
|
|
(interactive)
|
|
(redvault-el-rs/say-hello "Asd"))
|
|
|
|
```
|
|
|
|
|
|
|
|
## Planning
|
|
- MVP:
|
|
- single file overlay
|
|
- get completion from server with single file context
|
|
- put completion into overlay
|
|
- trigger completion while typing, update cursor position etc, with debounce
|
|
- multi file overlay (with context based on currently open file)
|
|
- rank by imports/keywords/embeddings, test different approaches against each other
|
|
- multi file overlay (with context based on cursored function)
|
|
- better caching
|
|
- combine file-level/function-level context somehow, cache for recently/commonly used files
|
|
|
|
|
|
### Interface
|
|
|
|
#### Notes
|
|
- how to trigger
|
|
- lisp based idle delay foo
|
|
- when to dismiss
|
|
- when scrolling, moving cursor
|
|
- when triggered via `redvai-complete`
|
|
- current-buffer
|
|
- current-point
|
|
|
|
|
|
|
|
#### Boundry
|
|
|
|
Rust:
|
|
- make requests, gather related files and built repo-level context for qwen model
|
|
- push response(s) into overlay
|
|
|
|
Lisp:
|
|
- trigger completions (either kebind or idle-delay)
|
|
- dismiss completions (when moving cursor away)
|
|
- basic mode
|