ツール作成

自作エディターを作る! C言語でコンソールのカーソルを移動する

今回は予告通りキー移動について書いていきます。 前回までで矢印キーの入力検出はできているので、あとはコンソール上のカーソルを移動すればいいです。 あとはmessage_loop()関数でイベント処理をする仕組みについても紹介します。 前回の記事はこちらです…

自作エディターを作る! キー入力監視スレッドの改善(unixでのkbhit()の実装)

前回の記事では、getchar()をタイムアウトありで呼ぶようにして、1byteずつ取得した文字をKEY構造体に突っ込んでいたんですが、そちらを辞めにしました。 kbhit()関数を新たに作成し、入力がある場合はread()でバッファをまるごと取得し、ない場合はしばらく…

自作エディターを作る! イベントドリブンにする

今回はなにを思ったかイベント創出の仕組みを作っていきます。(なぜ……) コンソールアプリケーションで使えるイベント駆動のプラットフォームがよくわからなかったので自分で作りました。 先に誤っておきますが、この方法がスタンダードなものなのかはわか…

自作エディターを作る! コンソールのサイズ/ファイル名、モード表示

今回はコンソールサイズを取得して、ページの行数を可変にしていきます。 今回やったこと 今回の開発内容 コンソールサイズの取得 編集中のファイル名の表示 文字列の空白埋め 前景色(文字色)、背景色の制御 現在のモードの表示 CEditEngineの役割の変更 …

自作エディターを作る! エディットエンジンの分離

今回はキーの入力と操作の解析クラスをエディットエンジンから分離するところをやっていきます。 前回のおさらい コーディング main() CEditControl.cpp 次にやること 前回のおさらい 今回は前回の記事で言っていたように、CEditEngineから、キーを受け取っ…

自作エディターを作る! はじめに

「使ってるエディタはなんですか?」 「自作です」 って言えたらかっこいいなってことで、自作エディターを作り始めました。 開発とか設計情報とか リポジトリを作る 簡単な設計もどきみたいなもの 今後の方針 メモ書き - Undo/Redoについて 背景 さっそく自…