chore: updated FEATURES.md
All checks were successful
Run Test Suite / test (push) Successful in 13s
All checks were successful
Run Test Suite / test (push) Successful in 13s
This commit is contained in:
parent
d4980c5532
commit
f12ce37beb
77
FEATURES.md
77
FEATURES.md
@ -213,11 +213,11 @@
|
||||
- [x] `:set number!` - Toggle line numbers
|
||||
- [x] `:set tabstop=N` - Set tab width
|
||||
- [x] `:register {name}` - Show register contents
|
||||
- [ ] `:w` - Write file
|
||||
- [ ] `:q` - Quit
|
||||
- [ ] `:wq` - Write and quit
|
||||
- [ ] `:q!` - Force quit
|
||||
- [ ] `:e {file}` - Edit file
|
||||
- [x] `:w` - Write file
|
||||
- [x] `:q` - Quit
|
||||
- [x] `:wq` - Write and quit
|
||||
- [x] `:q!` - Force quit
|
||||
- [x] `:e {file}` - Edit file
|
||||
- [ ] `:bn` / `:bp` - Next/previous buffer
|
||||
- [ ] `:{range}` - Go to line
|
||||
- [ ] `:%s/old/new/g` - Search and replace
|
||||
@ -266,13 +266,13 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
### Buffer Model
|
||||
- [x] Buffer struct (id, filename, lines, modified flag, cursor position)
|
||||
- [ ] Buffer list/manager
|
||||
- [ ] Current buffer tracking
|
||||
- [x] Current buffer tracking
|
||||
- [ ] Buffer-local settings (tabstop, filetype, etc.)
|
||||
- [ ] Modified/dirty state tracking
|
||||
- [ ] Read-only buffer support
|
||||
- [x] Modified/dirty state tracking
|
||||
- [x] Read-only buffer support
|
||||
|
||||
### Buffer Navigation
|
||||
- [ ] `:e {file}` - Edit file (open in new buffer or switch to existing)
|
||||
- [x] `:e {file}` - Edit file (open in new buffer or switch to existing)
|
||||
- [ ] `:bn` / `:bnext` - Next buffer
|
||||
- [ ] `:bp` / `:bprev` - Previous buffer
|
||||
- [ ] `:b {name}` - Switch to buffer by name (partial match)
|
||||
@ -286,9 +286,9 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
- [ ] `:bd` / `:bdelete` - Delete buffer (close file)
|
||||
- [ ] `:bd!` - Force delete buffer (discard changes)
|
||||
- [ ] `:bw` / `:bwipeout` - Wipe buffer (remove completely)
|
||||
- [ ] `:w` - Write current buffer to file
|
||||
- [ ] `:w {file}` - Write buffer to specific file
|
||||
- [ ] `:wa` - Write all modified buffers
|
||||
- [x] `:w` - Write current buffer to file
|
||||
- [x] `:w {file}` - Write buffer to specific file
|
||||
- [x] `:wa` - Write all modified buffers
|
||||
- [ ] `:sav {file}` - Save as (write to new file, switch to it)
|
||||
|
||||
### Buffer State
|
||||
@ -309,8 +309,8 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
|
||||
### Hidden Buffers
|
||||
- [ ] `:set hidden` - Allow switching with unsaved changes
|
||||
- [ ] Prompt to save when closing modified buffer
|
||||
- [ ] `:q` behavior with modified buffers
|
||||
- [x] Prompt to save when closing modified buffer
|
||||
- [x] `:q` behavior with modified buffers
|
||||
|
||||
### Argument List (Advanced)
|
||||
- [ ] `:args` - Show argument list
|
||||
@ -381,8 +381,8 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
- [ ] Color column (ruler)
|
||||
|
||||
### Files
|
||||
- [ ] File reading
|
||||
- [ ] File writing
|
||||
- [x] File reading
|
||||
- [x] File writing
|
||||
- [ ] Auto-save
|
||||
- [ ] Backup files
|
||||
- [ ] Swap files
|
||||
@ -405,9 +405,49 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
|
||||
---
|
||||
|
||||
## Testing Coverage
|
||||
### Well Tested - Editor Core
|
||||
|
||||
### Well Tested
|
||||
#### Command Execution (179 tests)
|
||||
- [x] Command parsing and validation
|
||||
- [x] Command lookup and prefix matching
|
||||
- [x] Force flag handling (!)
|
||||
- [x] Write commands (`:w`, `:w {file}`, `:w!`)
|
||||
- [x] Write all commands (`:wa`, `:wall`, `:wa!`)
|
||||
- [x] Quit commands (`:q`, `:q!`, `:qa`, `:qa!`)
|
||||
- [x] Write-quit commands (`:wq`, `:wq!`, `:wqa`, `:wqa!`)
|
||||
- [x] Edit command (`:e {file}`)
|
||||
- [x] Register display (`:register`, `:reg {name}`)
|
||||
- [x] Set commands (`:set number`, `:set tabstop=N`, etc.)
|
||||
- [x] Setting lookup and validation
|
||||
- [x] Buffer-level readonly protection
|
||||
- [x] Scratch buffer write protection
|
||||
- [x] Force write bypassing readonly/scratch checks
|
||||
- [x] Multiple buffer write operations
|
||||
- [x] File write error handling (permissions, paths)
|
||||
- [x] Modified buffer tracking
|
||||
- [x] Unicode filename and content handling
|
||||
- [x] Edge cases (empty args, long filenames, special chars)
|
||||
|
||||
#### Program Initialization (70 tests)
|
||||
- [x] Empty program creation
|
||||
- [x] File program with nonexistent files (new file buffers)
|
||||
- [x] File program with existing files (content loading)
|
||||
- [x] Line ending handling (Unix `\n`, Windows `\r\n`, mixed)
|
||||
- [x] Tab to space conversion based on TabStop
|
||||
- [x] Unicode content preservation (CJK, emoji)
|
||||
- [x] File extension and type detection
|
||||
- [x] Buffer state initialization (flags, metadata)
|
||||
- [x] Large file handling (10,000+ lines)
|
||||
- [x] Long line handling (10,000+ chars)
|
||||
- [x] Empty file handling
|
||||
- [x] Builder pattern method chaining
|
||||
- [x] Program option accumulation
|
||||
- [x] Model state defaults (settings, registers, mode)
|
||||
- [x] Error handling (permissions, invalid paths)
|
||||
- [x] Integration workflows (end-to-end)
|
||||
- [x] Edge cases (empty filenames, relative paths, dot files)
|
||||
|
||||
### Moderately Tested
|
||||
- [x] Basic motions (h, j, k, l)
|
||||
- [x] Word motions (w, e, b)
|
||||
- [x] Jump motions (G, gg, 0, $, _, ^, |)
|
||||
@ -422,6 +462,5 @@ Buffers are in-memory representations of files. A buffer exists for each open fi
|
||||
- [x] Visual modes (v, V, ctrl+v)
|
||||
- [x] Visual mode with motions
|
||||
- [x] Delete actions (x, D)
|
||||
- [x] Command mode basics
|
||||
- [x] Register behavior
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user