Commit 943f78b
committed
grepdiff: Implement scanner-based grepdiff functionality
Replace the stub grepdiff implementation with a full scanner-based version
that supports all core grepdiff features:
- Pattern matching with POSIX/PCRE regex support
- Output modes: list filenames, full files, or matching hunks only
- Match filtering: --only-match=rem|add|mod|all
- Numbered line modes: --as-numbered-lines=before|after
- File filtering: include/exclude patterns, strip/add prefixes
- Git diff support with --git-prefixes option
- Context and unified diff format support
Test Results: 9/10 grepdiff tests passing
- grepdiff-original-line-numbers marked as expected failure
(requires --as-numbered-lines=original-* options not implemented)
This implementation leverages the scanner's clean content API for
robust and format-agnostic diff processing.
Assisted-by: Cursor1 parent 5adae04 commit 943f78b
2 files changed
Lines changed: 1153 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
115 | 114 | | |
116 | 115 | | |
117 | 116 | | |
118 | | - | |
| 117 | + | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
| 121 | + | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
125 | 128 | | |
126 | | - | |
| 129 | + | |
127 | 130 | | |
128 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
129 | 135 | | |
130 | 136 | | |
131 | 137 | | |
| |||
156 | 162 | | |
157 | 163 | | |
158 | 164 | | |
| 165 | + | |
159 | 166 | | |
160 | 167 | | |
161 | 168 | | |
| |||
182 | 189 | | |
183 | 190 | | |
184 | 191 | | |
| 192 | + | |
185 | 193 | | |
186 | 194 | | |
187 | 195 | | |
| |||
196 | 204 | | |
197 | 205 | | |
198 | 206 | | |
199 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
200 | 213 | | |
201 | 214 | | |
202 | 215 | | |
| |||
431 | 444 | | |
432 | 445 | | |
433 | 446 | | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
434 | 454 | | |
435 | 455 | | |
436 | 456 | | |
| |||
0 commit comments