✒️

C言語1000行でテキストエディタを作るチュートリアルをやった

2024/09/04に公開

結果的に1200行を越えましたが。


kilo

成果物はこれ↓

https://github.com/kawarimidoll/kilo-study

参考サイトはこれです↓

https://viewsourcecode.org/snaptoken/kilo/index.html

インスパイア元↓

https://qiita.com/yo314159265/items/279d644cd9b3f40f8dc1

感想

  • C言語は10年ぶりくらいに書いた
    • 進めていくうちになんとなく思い出すことができた
    • 最初にちゃんと授業で学んだ言語なので懐かしく思った
    • Cに出会っていなければプログラミングしてなかったかもしれないので感慨深い
  • しかしこのレベルのメモリ管理は正直たいへん
    • 「この関数で確保したメモリはこっちの関数で開放されるので問題ありません」みたいな
    • この調子でやっていったらバグる未来しか見えない
    • 1000行・1ファイルというコンセプトは良いのだがファイル分けて管理したいナ〜〜と思った
  • 配列や文字列の操作、メモリ管理がやりやすい別の言語で書き直したい
    • Cを書くの大変だな…という感想を持った
    • 速さはともかく他の言語で書きたい もっとimmutableに…
  • お手本よりも行数が増えた
    • 1行のif文などでもブロックを省略せず書いてるため
  • 検索はできるが選択もコピペもできないので実用レベルとはいえない
    • ASCII範囲しか考慮していないので日本語を扱えない
    • undo/redoができないのもきつい
    • あとは複数ファイルにも対応させたい
  • hex numberのハイライトは自前で追加した
    • 一つだけでも自作ポイントを入れられると楽しい
    • とはいえメモリ開放がちゃんとできているか不安である
    • これを追加したのも合計行数が増えた要因
  • scientificaは魅せfontなので開発作業には向かない

次はRust版をやるつもりです。

https://www.flenker.blog/hecto/

追記:やりました。

https://zenn.dev/kawarimidoll/articles/0b3edd1b000124

Discussion