Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

diff: add a true in-place "inline" overlay (virtual text) as the future layout = "inline"

Aperta
#294 1 commento 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
lua, neovim
Ambito
devtools

Direzione di ricerca

Inizia tracciando il percorso attuale di layout = "unified" e confrontandolo con il comportamento nativo del diff citato in #293, #195, #169, #277 e #205. Definisci la vista extmark a buffer singolo, le righe aggiunte modificabili, le righe eliminate virtuali, il comportamento di accettazione/rifiuto e la gestione degli autocmd ClaudeCodeDiffOpened / ClaudeCodeDiffClosed; il lavoro è completo quando la modalità inline proposta funziona senza una finestra aggiuntiva e preserva le modifiche della revisione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

triage:done

Summary

Follow-up to #293 / #195. The diff_opts.layout = "unified" option (renamed from "inline" before v0.4.0) renders a unified diff in a separate vsplit pane — a single read-only buffer with interleaved red/green lines. This issue tracks adding a true in-place inline overlay: the diff shown as virtual text layered onto the file in the same window, the way users typically picture a "VS Code-style inline" diff (cf. mini.diff, gitsigns preview, sidekick NES, Cursor inline edits).

When implemented, this mode is the one that should claim layout = "inline" — which is exactly why we reserved that name in #293.

"unified" vs the proposed "inline"

  • "unified" (shipped): single read-only buffer in a rightbelow vsplit, deleted (red/strikethrough) + added (green) lines interleaved. Compact, but it's a separate pane and not editable before accept.
  • "inline" (this issue): no extra window — proposed changes rendered in place over the real file.

Suggested approach (keeps pre-accept editability)

The unified/read-only path forfeits editing the proposal before accepting. A prototype pattern that keeps it (the codecompanion/sidekick model):

  • Proposed/added lines = real, editable buffer lines, highlighted (e.g. ClaudeCodeInlineDiffAdd) with a + sign.
  • Deleted lines = virtual text via nvim_buf_set_extmark virt_lines (strikethrough/red), so they're visible but not part of the editable content.
  • On accept, the buffer content already is the new file (deleted lines were never real text), so edits made during review are captured. On reject, clear the extmarks / restore.

A pure-Lua, zero-dependency engine (not mini.diff/diffview — see #169) keeps this aligned with the project's philosophy. Bonus: a single-buffer extmark view sets no &diff windows, which sidesteps the closeAllDiffTabs foreign-diff class (#277) and the stale-diff repaint issues (#205).

Notes

  • The current "unified" path doesn't fire the ClaudeCodeDiffOpened / ClaudeCodeDiffClosed User autocmds that the native diff does — worth wiring up for any new mode.
  • @wookayin expressed interest ("once we implement that") on #195 — collaboration welcome.

Refs #293, #195, #82

🤖 Generated with Claude Code

Lingua principale
Lua
Stelle
3.1k
Fork
217
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di coder/claudecode.nvim

Tutte le issue di coder/claudecode.nvim

Issue simili

Altre issue su Lua

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.