#!/usr/bin/php <?php declare(strict_types=1); namespace Kilo; // ----------------------------------------------------------------------------- // ! App Constants // ----------------------------------------------------------------------------- define('KILO_VERSION', '0.0.1'); define('KILO_TAB_STOP', 4); define('KILO_QUIT_TIMES', 3); // Set up autoloading require_once __DIR__ . '/src/functions.php'; spl_autoload_register(static function ($class) { $parts = explode('\\', $class); $file = __DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . $parts[1] . '.php'; if (file_exists($file)) { require_once $file; } }); function main(int $argc, array $argv): int { enable_raw_mode(); $editor = Editor::new(); if ($argc >= 2) { $editor->open($argv[1]); } $editor->setStatusMessage('HELP: Ctrl-S = save | Ctrl-Q = quit | Ctrl-F = find'); // Input Loop while (true) { $editor->refreshScreen(); $char = $editor->processKeypress(); if ($char === NULL) { break; } } return 0; } //! Init main($argc, $argv);