A modern, customizable text editor engine for Rust applications using GTK4. Built to be a powerful alternative to GtkSourceView with full Rust integration.
- Multi-cursor editing with full selection support
- Customizable themes and syntax highlighting
- Search & replace with pattern matching
- Undo/redo with complete state management
- Line numbers, gutters and visual aids
- Cross-platform (Linux, Windows, macOS)
- Modular design - use only what you need
Perfect for:
- Building Rust desktop applications with GTK4
- Replacing GtkSourceView in existing projects
- Creating custom code editors and IDEs
- Educational projects learning text editor architecture
git clone https://github.com/Ranrar/RustEditorKit.git
cd RustEditorKit
cargo run --bin demo
Basic usage:
use rusteditorkit::editorwidget::editor::EditorWidget;
let editor = EditorWidget::new();
editor.connect_signals();
window.set_child(Some(editor.widget()));
- API Reference - Complete function reference and usage patterns
- Widget Integration - GTK4 integration guide and configuration
- Roadmap - Planned features and milestones
We need your help! This project is in active development and welcomes contributors of all skill levels.
What we're looking for:
- Bug reports and feature requests
- Code contributions (Rust experience helpful but not required)
- Documentation improvements
- Testing on different platforms
- UI/UX feedback and suggestions
Easy ways to contribute:
- Try the demo and report issues
- Improve documentation or examples
- Add tests for existing features
- Help with cross-platform compatibility
Current priority areas:
- Clipboard operations and IME support
- Performance optimization
- Theme and configuration system
- Plugin architecture design
Project Status: Alpha - Most core features working, API may change
Known Issues in Current Build
- Mouse selection and text selection are not visually working as expected.
- Arrow key navigation has issues with multi-byte UTF-8 sequences.
- Scrollbar is not working (it hasn’t been implemented yet).