Commit Graph
75 Commits
Author SHA1 Message Date
kyle 56dc904432 Fix horizontal scrolling and cursor placement.
Ensure horizontal scrolling for cursor visibility, add accurate click handling for rendered columns, and improve syntax highlighting bounds adjustment.
2025-12-02 23:46:35 -08:00
kyle a8197939f8 Add thread-safe font loading requests and integrate FiraCode-Regular font 2025-12-02 23:41:52 -08:00
kyle 9f722ec2bb fix naming issue 2025-12-02 19:26:23 -08:00
kyle 094020dab5 Adding additional fonts. 2025-12-02 19:18:34 -08:00
kyle 09e4cd7ec6 Stashing fonts, start font registry. 2025-12-02 19:05:08 -08:00
kyle 49fa7ff8a7 refactoring some font support 2025-12-02 19:05:08 -08:00
kyle 38915484ac bump version
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
Release / Bump Homebrew formula (push) Has been cancelled
2025-12-02 18:44:17 -08:00
kyle 87b1e6f502 Prevent kge from inhibiting sleep. 2025-12-02 18:43:45 -08:00
kyle ae822083c2 Bump version.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-02 11:22:59 -08:00
kyle 0c93d619c8 Set custom ImGui ini file path
Path is set to `~/.config/kte/imgui.ini`, enable keyboard and gamepad navigation, and ensure configuration directory creation.
2025-12-02 11:22:38 -08:00
kyle 483ff18b0d Add ScrollUp and ScrollDown commands for viewport scrolling, refine mouse wheel handling in GUI and terminal, and bump version to 1.2.2.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-02 02:53:02 -08:00
kyle cd33e8feb1 Refactor scrolling logic for GUIRenderer and terminal to improve synchronization and cursor visibility. 2025-12-02 02:43:05 -08:00
kyle 0bfe75fbf0 Refactor indentation for consistent style across codebase.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-02 01:37:44 -08:00
kyle d15b241140 Refactor syntax highlighting infrastructure and related classes.
- Moved all language highlighter implementations (`CppHighlighter`, `GoHighlighter`, `JsonHighlighter`, etc.), the engine, and registry to `syntax/`.
2025-12-02 01:36:26 -08:00
kyle ceef6af3ae Add extensible highlighter registration and Tree-sitter support.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
- Implemented runtime API for registering custom highlighters.
- Added optional Tree-sitter integration for advanced syntax parsing (disabled by default).
- Updated buffer initialization and copying to support dynamic highlighter configuration.
- Introduced `NullHighlighter` as a fallback for unsupported filetypes.
- Enhanced CMake configuration with `KTE_ENABLE_TREESITTER` option.
2025-12-01 19:04:37 -08:00
kyle e62cf3ee28 Add viewport-aware syntax prefetching and background warming.
- Added prefetching in both terminal and GUI renderers to optimize visible row highlights.
- Introduced background worker for offscreen highlight warming to improve scrolling performance.
- Refactored `HighlighterEngine` to manage thread-safety, caching, and stateful re-computation.
- Integrated changes into `HighlighterEngine`, `TerminalRenderer`, and `GUIRenderer`.
- Bumped version to 1.2.0 in preparation for the release.
2025-12-01 18:37:01 -08:00
kyle 1a77f28ce4 Add syntax highlighting infrastructure
- Introduced `HighlighterRegistry` with support for multiple language highlighters (e.g., JSON, Markdown, Python).
- Added `JsonHighlighter` implementation for basic JSON syntax highlighting.
2025-12-01 18:20:36 -08:00
kyle 4d84b352eb format style 2025-12-01 16:47:16 -08:00
kyle 1892075d82 bump version
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-01 16:38:10 -08:00
kyle 719862c842 Fix double scroll issue. 2025-12-01 16:37:51 -08:00
kyle 655cc40162 Refine help text, keybindings, GUI themes, and undo system.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
- Expanded help text and command documentation with detailed keybinding descriptions.
- Added theme customization support to GUIConfig (Nord default, light/dark variants).
- Adjusted for consistent indentation and debug instrumentation in undo system.
- Enhanced test cases for multi-line, UTF-8, and branching scenarios.
2025-12-01 15:21:52 -08:00
kyle d98785e825 bump
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-01 12:00:52 -08:00
kyle 970a31e0d9 Add Nord theme for real 2025-12-01 12:00:10 -08:00
kyle 464ad8d1ae Nord theme and undo system refinements
- Improve text input/event batching
- Enhance debugging with optional instrumentation
- Begin implementation of non-linear undo tree structure.
2025-12-01 11:59:51 -08:00
kyle 0cb7d36f2a bump version
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-12-01 11:22:47 -08:00
kyle 09a6df0c33 Add regex search, search/replace, and buffer read-only mode functionality with help text 2025-12-01 02:54:40 -08:00
kyle 69457c424c add regex and search/replace functionality to editor 2025-11-30 23:33:17 -08:00
kyle 24c8040d8a trash flake-gui 2025-11-30 22:02:43 -08:00
kyle e869249a7c thaaaaanks jeremy 2025-11-30 22:02:23 -08:00
kyle 35e957b326 Fix void crash in kge.
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-11-30 21:51:03 -08:00
kyle e7eb35626c NixOS build 2025-11-30 21:07:41 -08:00
kyle f9128a336d better support for smaller screens
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
editor_prompt should replace the status line when active
2025-11-30 20:25:53 -08:00
kyle f8d0e9213f bump version
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
Also add some TODOs.
2025-11-30 19:57:05 -08:00
kyle 68286ecb7c Add icon to share/icons for Linux. 2025-11-30 19:55:03 -08:00
kyle 44807d0f40 clang-tidy was zealous on macOS. 2025-11-30 19:47:43 -08:00
kyle 41f37478c1 bump cmake version
Release / Bump Homebrew formula (push) Has been cancelled
Release / Build Linux amd64 (push) Has been cancelled
Release / Build Linux arm64 (push) Has been cancelled
Release / Build macOS arm64 (.app) (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
2025-11-30 19:09:35 -08:00
kyle d582979eb3 release maybe 2025-11-30 19:08:34 -08:00
kyle 2b194c7910 Actually add the screenshot. 2025-11-30 18:55:55 -08:00
kyle 6498213378 updating readme and roadmap 2025-11-30 18:54:24 -08:00
kyle 1a37a92534 add screenshot to README 2025-11-30 18:45:11 -08:00
kyle fb5976f123 Add buffer position display and documentation improvements.
Release / Bump Homebrew formula (push) Has been cancelled
- Display buffer position prefix "[x/N]" in GUI and terminal renderers.
- Improve `kte` and `kge` man pages with frontend usage details and project homepage.
- Update README with GUI invocation instructions.
- Bump version to 1.0.0.
2025-11-30 18:40:44 -08:00
kyle e4cd4877cc Introduce file picker and GUI configuration with enhancements.
- Add visual file picker for GUI with toggle support.
- Introduce `GUIConfig` class for loading GUI settings from configuration file.
- Refactor window initialization to support dynamic sizing based on configuration.
- Add macOS-specific handling for fullscreen behavior.
- Improve header inclusion order and minor code cleanup.
2025-11-30 18:35:12 -08:00
kyle ba9bd4a27d Bump version.
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-30 17:22:54 -08:00
kyle fcb2e9a7ed Add horizontal scrolling support and refactor mouse click handling in GUI.
- Introduce horizontal scrolling with column offset synchronization in GUI.
- Refactor mouse click handling for improved accuracy and viewport alignment.
- Enhance tab expansion and cursor rendering logic for better user experience.
- Replace redundant variable declarations in `Buffer` for cleaner code.
2025-11-30 17:19:46 -08:00
kyle 38ba8c9871 Refactor code for consistency and enhanced functionality.
- Normalize path handling for buffer operations, supporting tilde expansion and absolute paths.
- Introduce `DisplayNameFor` to uniquely resolve buffer display names, minimizing filename clashes.
- Add new commands: `ShowWorkingDirectory` and `ChangeWorkingDirectory`.
- Refine keybindings and enhance existing commands for improved command flow.
- Adjust GUI and terminal renderers to display total line counts alongside filenames.
- Update coding style to align with project guidelines.
2025-11-30 16:49:24 -08:00
kyle b91406860c update nix build
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-30 16:07:30 -08:00
kyle 8d1e9b2799 default to using the piece table 2025-11-30 10:35:28 -08:00
kyle c91fe214d6 building nix 2025-11-30 04:46:10 -08:00
kyle 99042f5ef1 update nix build 2025-11-30 04:42:21 -08:00
kyle 96242154f7 build non-gui by default 2025-11-30 04:34:15 -08:00
kyle f34e88c490 revert downwards
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-30 04:29:09 -08:00
kyle b8942b9804 Add GUI initialization updates and improve navigation commands.
- Implement terminal detachment for GUI mode to enable terminal closure post-launch.
- Add `+N` support for opening files at specific line numbers and refine cursor positioning.
- Introduce `JumpToLine` command for direct navigation by line number.
- Enhance mouse wheel handling for line-wise scrolling.
2025-11-30 04:28:40 -08:00
kyle 65869bd143 Add man pages for kge and kte with installation targets in CMake.
- Introduce `docs/kge.1` and `docs/kte.1` man pages covering usage, options, keybindings, and examples.
- Update `CMakeLists.txt` to install man pages under `${CMAKE_INSTALL_MANDIR}/man1`.
- Ensure `kge` man page installation is conditional on GUI being built.
2025-11-30 03:34:37 -08:00
kyle 2da9665e6e Update MacOS build.
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-30 03:21:46 -08:00
kyle 091bfa8095 Remove packaging.cmake, deprecate test_undo setup, and add new testing infrastructure.
- Delete `packaging.cmake` to streamline build system.
- Deprecate `test_undo` in CMake setup; condition builds on `BUILD_TESTS`.
- Introduce `TestFrontend`, `TestRenderer`, and `TestInputHandler` for structured testing.
- Update `GUIInputHandler` and `Command` for enhanced buffer save handling and overwrite confirmation.
- Enhance kill ring operations and new prompt workflows in `Editor`.
2025-11-30 03:18:50 -08:00
kyle 8c8e4e59a4 Add TestFrontend documentation and UndoSystem buffer reference update.
- Document `TestFrontend` for programmatic testing, including examples and usage details.
- Add `UpdateBufferReference` to `UndoSystem` to support updating buffer associations.
2025-11-30 02:56:39 -08:00
kyle 91bc986e51 Update NixOS build. 2025-11-30 01:49:38 -08:00
kyle c2785de96b commit flake lock 2025-11-30 01:49:38 -08:00
kyle 12fe5f5c94 add nix build files 2025-11-30 01:49:38 -08:00
kyle b77ebdfd07 Add non-linear undo/redo design documentation and improve UndoSystem with backspace batching and GUI integration fixes. 2025-11-30 01:49:07 -08:00
kyle 35ffe6d11c Add UndoSystem implementation and refactor UndoNode for simplicity. 2025-11-30 00:04:29 -08:00
kyle e91a32dd90 Enable installation targets. 2025-11-29 23:26:13 -08:00
kyle 0002f0f56b Handle end-of-file newline semantics and improve scroll alignment logic. 2025-11-29 23:14:35 -08:00
kyle d527c7b1b2 Refactor Buffer to use Line abstraction and improve handling of row operations.
This uses either a GapBuffer or PieceTable depending on the compilation.
2025-11-29 23:00:09 -08:00
kyle 1a72e2b312 Add undo/redo infrastructure and buffer management additions. 2025-11-29 22:48:31 -08:00
kyle 40d33e1847 Support delete to end of line and delete line. 2025-11-29 21:40:07 -08:00
kyle b41946c470 Various minor bug cleanups. 2025-11-29 21:33:45 -08:00
kyle 3de5ec68f8 Fix status message when there's nothing to show.
I was using "refresh requested" for debugging, but this is better.
2025-11-29 21:00:03 -08:00
kyle f9606626b4 emacs-style movememnts and page up / down. 2025-11-29 20:56:21 -08:00
kyle f7c6e3db9f fix modeline 2025-11-29 20:34:09 -08:00
kyle 57bfab633d Lots of updates:
1. Scrolling and click to set the cursor works.
2. GUI now uses Brass Mono as the font.
3. A lot of stability and other updates.
2025-11-29 20:22:24 -08:00
kyle 932bc3c504 Basic new file work, some graphics glitches fixed. 2025-11-29 18:22:42 -08:00
kyle 548d760df5 Support empty file-backed buffers. 2025-11-29 18:03:29 -08:00
kyle 69e7959fa4 Basic shell working. 2025-11-29 17:54:55 -08:00
kyle 46c7a4e8a2 Initial import. 2025-11-29 16:57:01 -08:00