TZEditor v0.1.6(ベータ版)を公開

TZEditor
この記事は約11分で読めます。

テキストエディタが好きすぎて Windows 用テキストエディタを自作しています。作成当初は C# で TZEditor.NET を作っていたのですがどうしても高速に動作するものが作りたかったので 2020/05/13 から C++/Win32 で作り直しました。他の開発言語の候補に WinUI3 も選択肢にあったのですが、Windows 11 のメモ帳を見たときに作りたいのはこれじゃないなと思い結局 C++/Win32 となりました。

クロスプラットフォーム対応の言語もありますが、結局、そのOSに応じた最適な言語で作るのが私には良さそうです。Mac版 TZEditor も面白そうですね。

途中で2年ほど開発が止まってしまった期間がありましたが、C++/Win32 を学びながらここまでくるのに 5 年近くかかってしまいました。あはは。一通り作成できましたのでベータ版を公開します。今後もブラッシュアップしていきますのでよろしくお願いいたします。C# 版はテキストエディタコントロールとして更新していきます。

C++/Win32 版はサクラエディタさんを目標にとにかく高速に動作する昔ながらのテキストエディタを目指しています。TZEditor のアイコンは X のフォロワーさんに作って頂きました。

ダウンロード

最新版のダウンロードはこちらから。Windows 11に対応しています。 基本的に過去バージョンの TZEditor.ini を利用できるようにしていますが、不具合などで利用できない可能性がありますので更新前に ini のバックアップをお願いします。

Windows 10は動くかもレベルですのでサポート対象外とさせて頂きます。

TZEditor C++/Win32 版

TZEditor のイメージです。このレガシーさがたまらないですね。最初はとにかく今っぽい見た目で作りたいと思っていたのですが、最終的にはそうじゃなくて速度重視で作りたかったことに気付かされました。とはいえ、見た目も大事ですのでエディタのテーマはライトモード、ダークモード、Windows XPスタイルの 3 種類から選べます。XP スタイルは React で再現した WinXP – Windows XP in React を参考に C++(GDI+) で再現しました。

v0.0.78 からメッセージダイアログも自作して各テーマに対応しました。

v0.0.62 からはカラー絵文字も扱えるようになりました。

v0.0.97 から折り返せるようにもなりました。

TZEditor のコンセプト

高速でチラツキゼロで唯一無二のテキストエディタを目指しています。例えば背景画像は TZEditor ならタイトルバーを含めた全面に設定可能です。もちろん、エディタ部分だけの設定も可能です。

こんな感じに柔軟な対応を可能にするために Windows が公開している標準コントロールで実現できない場合は一から作成するようにしています。

今までに タイトルバー、メニューバー、ツールバー、ポップアップメニュー(コンテキストメニュー)、タブコントロール、テキストエディタコントロール、スライダーコントロール、ナンバーテキストボックス、スクロールバー、メッセージダイアログは自作して使っています。

ただ、何でも作ってしまうので目標達成に時間がかかるのがネックです。あと、何かを実現するためにコストを度外視してめちゃくちゃ時間をかける傾向にあります。あはは。最終的には Windows のテキストエディタなら TZEditor となるようにしたいです。

※かなりの時間をコントロール作成に費やして気付いたのですが、とにかくウィンドウを使うとチラツキがひどくて対策にさらに時間を要するので最終的にはエディタコントロール以外は1つのコントロールとして描画してしまおうと思います。

こちらのサイトから画像をお借りしました。ありがとうございます。

✅現在の対応状況

色々なご意見を X やフォーラムで頂いております。ありがとうございます。順次対応中です。落ちるとか文書破壊系を優先して対応しています😭

リ待:対応完了リリース待、:現在対応中、:リリース済
F:フォーラム、 X:X(Twitter)、T:作者

😊ご指摘・ご要望内容

他のエディタさんでは快適なのにとかおっそとかはもっさり系😭になります。特に速度に関しては高速なものを目指しているのでなんとしても改善したいところです。

📸チラツキ(フリッカー)系

  • Xステータスバーの文字列がちらつく(2025/11/15)
    ⇒開発環境で再現しないため見込み対応になるかもしれません🙇‍♂️
  • Xタブをピン止めして行数が変わった際に、スクロールバーがちらつきます。+背景画像がわずかにずれて見える
  • X最小化から戻る際にちらつきがある(ダークモードで背景画像ありでご報告)
  • Xツールバーの表示/非表示の切り替え、僅かに遅延があるように見えます(背景画像がガタっとなる)

😭もっさり系

  • Fバックアップ と 自動保存(#8796)
  • F選択文字のドラッグによる移動について(#8311)
  • Fステータスバーに説明(ヒント)表示(#8045)
  • F現在編集中のファイルの改行コードが変更できない(#7854)
  • Fポップアップメニューが重複するニーモニックキーに対応していない
  • Fスクロールバーで右クリックのメニューが表示しない
  • Fカスタムタイトルバーが標準のタイトルバーと同じ動きをしない(システムメニューの表示など)
  • Fカスタムタイトルバーの場合タイトルバーの色がOSのアクセントカラーと連動していない
  • F[Insert]キーで上書きモード・挿入モードが切り替わらない(#5043)
  • v0.1.6済Ftxtファイル(編集モード:テキスト)で、シングルクォーテーション文字列とダブルクォーテーション文字列のハイライトが効かなくなっている(#8963)
  • T長い行の横移動がもっさり
  • Xメニューバーをつまんで移動させた際にツールバーが右端に行ってしまうことがあります(2026/2/8)
  • X「ู」が正しく扱えない(2025/12/24)
  • Xステータスバーの文字が、「1ヶ所置換した」ではなく「現在の位置から次には見つかりませんでした。」なのは仕様ですか?

📣ご要望

順次対応中です。お待ちください。

  • Xアイコンサイズ変更はスライダーで指定するのはどうか?(2026/2/12)
  • Xツールバーに表示する項目を選択できるようにできませんか?(2026/2/11)
  • T検索ダイアログはエディタのウィンドウにくっついて欲しい
  • FUSB上での動作について(#8282)
  • F「検索」および「置換」で、「選択した範囲のみ」を指定(#7717)
  • F英語表記のメニュー(#7688)
  • F「管理者として実行」してもドラッグアンドドロップしたい(#7624)
  • F行選択(Alt+V)(#5656)
  • F行選択コピー(Alt+C)(#5656)
  • F行選択切り取り(Alt+X)(#5656)
  • F行選択削除(Alt+D)(#5656)
  • Fカーソル位置から文頭まで選択(#5656)
  • Fカーソル位置から文末まで選択(#5656)
  • F空行削除(全体&選択範囲のみ)(#5656)
  • F「最近使ったファイル」のリストの表示がファイルメニューあってもいいかも(#5237)
  • v0.1.5済Fシングルクォーテーション文字列とダブルクォーテーション文字列は開始、終了でハイライトして欲しい。今は開始だけでハイライトしてしまう(#5200)
  • Fコマンドラインオプション。/r (ファイル名)で書き換え禁止で開けるようにする(#4896)
  • Fメニュー「ウィンドウ」に現在開いているファイルのリストが欲しい(#5002)
  • Fツールバーに検索窓が欲しい(#5042)
  • Fテキスト読み直し機能(#5042)
  • F引用文字に色(#5042)
  • F検索結果の文字列は全部画面内に表示された方が良い
  • F背景画像の表示位置に「並べて表示」があっても良いかも(#6297)
  • F文字コードの切り替え(#8509)
  • X更新の通知機能(できれば自動更新)が欲しい(2025/10/3)
  • X行ヘッダーとエディタでフォントを分けたい
  • XCTRL+矢印キーでスクロールの実装
  • Xタブバーのピン/閉じるボタンについて、vsでは「非アクティブタブはホバー時のみ表示」ができます
  • Xタッチパッドでの横スクロール(2025/8/9)
  • XURLの下線に点線があってもいいかも(2025/8/10)

🐞不具合対応状況

まだあるんでしょうけど、目立ったところは一旦完了しました。

  • v0.1.4済F拡張子をcやiniで名前を付けて保存しても、ステータスバーの編集モード がテキストから変更されない(#8925)
  • v0.1.4済FINIファイルのハイライター(#8926)

⚠️現時点では仕様

現時点では仕様になります。

  • XDLLが実行ファイルに埋め込まれていないのは仕様ですか?(2025/10/14)
    ⇒exeに組み込めるのですが利用時にファイル出力する必要がありインストーラーが無い状態でファイル出力に抵抗があるため一旦仕様とさせて頂きます。
  • XTZEditor、サクラと比較して、文字を入力してから反映されるまでにかなり時間がかかる(2025/9/20)
    ⇒SendInput によるキー入力はサクラエディタさんはまとめて描画しているようですが、TZEditorの場合は1文字ずつ描画します。
  • Xn行スクロールの判定について、5行スクロールを超える判定がおかしいっぽい?です。 6行スクロールにも、5行で頭打ちにもならず、1行スクロールになるようです(2025/8/17)
    ⇒加速スクロールはキーリピートが開始されるまでの遅延時間内に押された回数に応じてスクロールします。この遅延時間を超えると、カウントはリセットされます。

⏳対応保留

現時点では対応保留になります。

  • Tメモ帳のようなふっくらした絵文字の描画
    ⇒ふっくら絵文字の描画はめちゃくちゃ処理が重いので保留にしました。
  • Fタイトルバーのフォントサイズが変更(拡大)される!?(#8132)
    ⇒Windows11で発生するようでしたら対応予定です。
  • X表示(V)のツールバー/ステータスバーにキーの割り当てがない
    ⇒サクラエディタさんは割り当てられていますが、今後、動的なショートカットキー割り当て機能を実装時に改めて検討させていただきます。

🏁ロードマップ

まだまだできることは少ないですが今後順次対応予定です。

🚀v1.0.0 安定版リリースに向けて

実際はメモ帳に遠く及びませんが v1.0.0 はWindows 標準のメモ帳でできること+α を目標に対応予定です。

  • 画面分割
  • v0.1.7予ファイル拡張子ごとのハイライト
    少しずつ対応を入れていっています。ini、C/C++、C#を追加しました。ただし、複数行にまたがるハイライトはまだできません。
  • v0.1.2、v0.1.1、v0.1.0済禁則処理
  • v0.0.99、98、97済折り返し
  • v0.0.87、86済各種変換(大文字⇔小文字、全角⇔半角、ひらがな⇔カタカナ、タブ⇔空白)
  • v0.0.84済文字のコードポイントと書記素クラスタ単位の描画切り替え
  • v0.0.78済メッセージダイアログのダークモード対応
  • v0.0.67済単語単位のキャレット移動
  • v0.0.65済クラスタ単位のキャレット移動
  • v0.0.62済Direct2D/DirectWrite による描画(カラーフォント絵文字対応)
  • v0.0.56済選択した文字と行数をステータスバーに表示する機能
  • v0.0.54済行単位の切り取りとコピーする機能
  • v0.0.91、49済IMEの再変換機能
  • v0.0.48、47、46、45、44、43、42済行番号とスクロールバーに編集行の強調表示機能
  • v0.0.40済クリッカブル URL
  • v0.0.38、37、36、35、34済外部でテキストが変更された時の読み直し機能
  • v0.0.21、19、18、17済正規表現の検索/置換
  • v0.0.14済キャレット位置の文字列と同じ文字列を強調表示する自動マーカー
  • v0.0.14、13済多重起動禁止
  • v0.0.11済文字幅でのキャレット移動
  • v0.0.11済選択文字列と同じ文字列を強調表示する選択マーカー
  • v0.0.11済単語単位で検索
  • v0.0.9済自動インデント
  • v0.0.9済選択文字列での検索(Ctrl+F3、Ctrl+Shift+F3)

🔥v1.0.0 安定版リリース後の対応

以下の対応を予定しています。

  • 巨大ファイル対応
  • TDI と SDI の切り替え
  • 印刷
  • 矩形選択
  • マルチカーソル
  • フォントフォールバック
  • ファイル検索(GREP)
  • アウトライン

フォーラム

ご意見ご要望はこちらからどうぞ。

更新履歴

📣はユーザさんからの報告・要望をもとに改善した内容です。

以下の対応が含まれます。

🎉追加・変更内容
  • スクロールバーのスタイル設定を可能にした
  • テキストファイルも引用符の強調表示をするようにした📣
  • その他軽微な修正
🐞不具合対応内容
  • sql ファイルで引用符のみの場合に強調表示されない不具合を修正した

以下の対応が含まれます。

🎉追加・変更内容
  • [フォントと色]の強調表示1~10のデフォルトを有効にした
  • html、sql ファイルのハイライターを追加した
  • 引用符は終了がない場合は強調表示しないようにした📣
  • その他軽微な修正
🐞不具合対応内容
  • 文字列を選択した状態で[フォントと色]の項目を選択すると文字列の選択範囲が解除される不具合を修正した

以下の対応が含まれます。

🐞不具合対応内容
  • ini ファイルのセクションが強調文字列1で描画されない不具合を修正した📣
  • ファイル保存時にファイルに応じたハイライターに切り替わらない不具合を修正した📣
  • 折り返し時に最終行でマウスホイールでフォントサイズを変更するとキャレットの表示位置がおかしくなる不具合を修正した
  • その他軽微な修正

以下の対応が含まれます。

🎉追加・変更内容
  • C/C++、C# ファイルのハイライターを追加した
  • その他軽微な修正
🐞不具合対応内容
  • スクロールバー非表示時にスクロールボックスだけ表示される不具合を修正した

以下の対応が含まれます。

🎉追加・変更内容
  • ini ファイルのハイライターを追加した
  • ステータスバーに編集モードを追加した(現在はテキストと INI のみ表示)
  • その他軽微な修正
🐞不具合対応内容
  • スクロールバー非表示時にスクロールボックスだけ表示される不具合を修正した
  • スクロールバー非表示時の折り返し位置がずれる不具合を修正した
  • ルーラー(キャレット位置)のサンプルがテキストのフォントで描画される不具合を修正した
  • 禁則処理の[,.]がぶら下がらない不具合を修正した

以下の対応が含まれます。

🐞不具合対応内容
  • スクロールバーが非表示の状態でファイルを開くと折り返す位置がおかしい不具合を修正した
  • その他軽微な修正

コメント

タイトルとURLをコピーしました