You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: clarify Emacs integration philosophy vs Neovim UI approach
- fff.nvim in Neovim are UI custom 97KB (picker_ui.lua), NU Telescope backend
- Pentru Emacs: zero UI propriu, plugging in completing-read / consult
- Utilizatorul primeste vertico/embark/marginalia gratis
- Abordare superioara celei din Neovim din perspectiva UX
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/emacs-integration-plan.md
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Plan de implementare: fff.el — Suport Emacs pentru fff.nvim
2
2
3
-
> **Status**: Draft tehnic v1.0
3
+
> **Status**: Draft tehnic v1.1
4
4
> **Audiență**: Contribuitori Rust + Emacs Lisp
5
5
> **Bază de cod analizată**: `dmtrKovalenko/fff.nvim` @ `2465c2ca`
6
6
@@ -14,6 +14,40 @@ fff.nvim are un backend Rust de înaltă calitate (`fff-core`) izolat de fronten
14
14
15
15
---
16
16
17
+
## 0. Clarificare esențială: fff în Neovim NU se integrează în Telescope
18
+
19
+
> Această secțiune există pentru a evita o greșeală de design frecventă.
20
+
21
+
O presupunere naturală este că fff.nvim funcționează ca un backend pentru Telescope sau `vim.ui.select` — adică se integrează în tooling-ul de completion existent din Neovim. **Presupunerea e greșită.**
22
+
23
+
`picker_ui.lua` are **97KB** de cod — fff are propria interfață grafică completă: floating window, renderer, scrollbar, highlighting, preview panel, keybindings proprii. Este un picker standalone, ca Telescope însuși, nu un backend pentru Telescope.
### De ce Emacs e diferit — și mai bun în acest caz
33
+
34
+
Emacs are un contract standardizat: **`completing-read`**. Orice funcție care returnează candidați prin `completing-read` este interceptată automat de framework-ul de completion instalat de utilizator:
35
+
36
+
| Dacă utilizatorul are | Primește automat |
37
+
|---|---|
38
+
|`vertico`| UI vertical cu preview |
39
+
|`ivy`| UI ivy cu acțiuni |
40
+
|`helm`| UI helm cu secțiuni |
41
+
|`marginalia`| adnotări (frecency, git status) în coloana dreaptă |
42
+
|`embark`| acțiuni (open, copy-path, git-diff, grep-in-dir) via `C-;`|
43
+
|`consult`| source async cu narrowing și preview live |
44
+
45
+
**Concluzie**: pentru Emacs NU construim UI. Contribuția noastră este exclusiv backend-ul Rust (scoring Smith-Waterman, frecency LMDB, git status, query parser). UI-ul vine gratis din stack-ul deja instalat al utilizatorului.
46
+
47
+
Această abordare este idiomatică în Emacs (ex: `consult-fd` = `fd` subprocess + `completing-read`, zero UI propriu) și produce o integrare superioară celei din Neovim — utilizatorul nu trebuie să reînvețe keybindings, acțiunile embark funcționează imediat, marginalia afișează scorurile fff automat.
0 commit comments