Skip to content

merge vi#420

Merged
jgarzik merged 3 commits intomainfrom
merge-vi
Nov 29, 2025
Merged

merge vi#420
jgarzik merged 3 commits intomainfrom
merge-vi

Conversation

@jgarzik
Copy link
Contributor

@jgarzik jgarzik commented Nov 29, 2025

No description provided.

@jgarzik jgarzik requested a review from Copilot November 29, 2025 02:01
@jgarzik jgarzik self-assigned this Nov 29, 2025
@jgarzik jgarzik added the enhancement New feature or request label Nov 29, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges a comprehensive vi editor implementation in Rust. The implementation includes command mode parsing, insert mode, ex commands, undo/redo functionality, search, shell integration, and terminal UI rendering.

  • Implements a POSIX-compliant vi editor with support for standard vi commands, motions, and operations
  • Provides undo/redo system, register management, and search functionality with regex support
  • Includes terminal abstraction with raw mode, screen buffering, and shell command execution

Reviewed changes

Copilot reviewed 38 out of 39 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
editors/vi/undo.rs Implements undo/redo system with change tracking and line restoration
editors/vi/ui/terminal.rs Terminal abstraction for raw mode control and screen rendering
editors/vi/ui/status.rs Status line display and file information formatting
editors/vi/ui/screen.rs Screen buffer management with tab expansion and display calculations
editors/vi/ui/mod.rs UI module exports for display utilities
editors/vi/ui/display.rs Display width calculations and text expansion utilities
editors/vi/shell.rs Shell command execution with security validation and special character expansion
editors/vi/search.rs Search and pattern matching with BRE support and substitutor
editors/vi/register.rs Register storage for yank/delete/put operations
editors/vi/options.rs Editor options management for :set commands
editors/vi/mode/mode.rs Editor mode definitions (Command, Insert, Ex, Replace, Open)
editors/vi/mode/mod.rs Mode module exports
editors/vi/mode/insert.rs Insert mode handling with character insertion and special keys
editors/vi/main.rs Main entry point with command-line argument parsing
editors/vi/lib.rs Library exports for all vi editor modules
editors/vi/input/reader.rs Input reading from terminal with escape sequence parsing
editors/vi/input/mod.rs Input module exports
editors/vi/input/key.rs Key event types and conversions
editors/vi/file.rs File I/O operations for reading, writing, and file management
editors/vi/ex/parser.rs Ex command parser for colon commands
editors/vi/ex/mod.rs Ex module exports
editors/vi/ex/command.rs Ex command definitions and result types
editors/vi/ex/address.rs Ex command address parsing and resolution
editors/vi/error.rs Error types for vi operations
editors/vi/editor.rs Main editor state and event loop
editors/vi/command/mod.rs Command processing module exports
editors/vi/buffer/position.rs Position and range types for edit buffer
Cargo.toml Adds editors workspace member

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jgarzik jgarzik merged commit 14344b2 into main Nov 29, 2025
4 checks passed
@jgarzik jgarzik deleted the merge-vi branch November 29, 2025 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant