← Back to agents

AGENTS.md from onethree7/Easy-Edit-ee

1 starsLast commit Jul 30, 2025

Contributor Guidelines for the `ee` editor

This document collects ideas and instructions for implementing future improvements. Follow these when adding features or refactoring the code. After reading this guide, consult `characters.md` for the current UTF-8 plan and progress. Refer to the module outline in [modules.md](modules.md) when moving code out of `ee.c`.

Repository Clean‑up

  • Ensure `ee` and `*.o` remain ignored by `.gitignore`.

Build & Testing

  • Use the provided `Makefile` for builds. Run `make clean && make` before committing changes to confirm the editor builds without warnings.
  • For future features, consider extending `make check` to run any new automated tests or lints.

Suggested Feature Backlog

1. **Search and Replace**

  • Implement an interactive search-and-replace command.
  • Provide prompts similar to existing search functionality.

2. **Optional Line Numbers**

  • Add a toggle to display line numbers in the text window.

3. **Syntax Highlighting**

  • Investigate using `ncurses` color pairs to highlight keywords for common languages (shell scripts, C, Markdown).
  • Make highlighting optional via the settings menu or a `.init.ee` option.

4. **Configurable Keybindings & Macros**

  • Allow users to remap common commands via a config file.

5. **Extended Undo/Redo**

  • Increase the undo stack depth and make it configurable.
  • Consider persisting undo history per file during a session.
  • *Configurable undo amount.*

6. **Color Themes**

  • Use full ncurses color support (including 256-color) and allow theme selection.

7. **Command-line Options**

  • Provide `-R` for read‑only mode and options to open at a specific line or to execute an initial command.

8. **Clipboard Integration**

  • Implement basic copy/cut/paste buffers separate from the delete/undelete logic.

9. **Tabbed Editing (Multiple Files)**

  • Add the ability to open and switch between multiple files in tabs.

10. **Testing**

  • Create a minimal test script that launches `ee` in batch mode to verify key features (opening a file, running a command, saving). This can be invoked by `make test` in the future.

Status

Undo support with grouped input chunks is complete for now. See `undo.md` for details. File I/O routines now reside in `fileio.c` as part of the ongoing module split. Screen drawing functions were moved to `screen.c` and the main editor loop now lives in `editor.c`.

Coding Style

  • The project uses C99. Stick to the existing lower‑case function naming and brace style.
  • Address compiler warnings (mostly signedness issues) as you modify the code.
  • Keep functions small and consider splitting `ee.c` into smaller source files as features grow.
  • Address signedness warnings reported during compilation (e.g. in `next_word` calls). Standardize on `unsigned char` for textual data where appropriate.

---

This file serves as a to‑do list and style reference. Update it whenever a new feature is started or completed.

Current Work

The priority is splitting the remaining logic in `ee.c` into dedicated modules. `editor.c` and the core helpers have been separated. The search routines now live in `search.c`. Continue moving menu handling and input processing next as outlined in [modules.md](modules.md). UTF‑8 refactoring from `characters.md` continues once the split is mostly done.