本稿は自作エディタをつくる Advent Calendar 2016の21日目です、レポジトリはこちら
プルリクエストをもらう
equal-l2氏から2件プルリクエストをもらいました٩(๑❛ᴗ❛๑)۶
自分がこまめにpushしていなかったせいでconflictして申し訳ない(しかも直してもらった。。。)
1件目はmakefileに関するもので、暗黙変数を使うようにするものです。
16日目にmakefileを書き間違えてgcc(指定したつもりが、設定ミス)ではなくcc(デフォルト)でコンパイルされていました。
そういうデフォルトルールがいくつかあるらしく(参考)、
デフォルトルールを使うようにしたらmakeする人の環境に合わせてビルドできるよ、
っていうプルリクエストでした。
C言語でもCPPFLAGSを指定するのが不思議ですが、
調べた感じ、普通はそうするようです。
C++だとCXXFLAGSみたいなので、歴史的経緯とかでしょうか?
あわせて、makefileのちょっとしたリファクタリングをしました。
2件目はスペルミスの修正です。
単純にスペルが間違ってるもののほかに、
lines_calculatotion_width
→ lines_calculate_width
のように動詞と名詞が違うものと、
ARROW
(矢印キー)はutf8として正しくないがALLOW
しているネーミングセンスのわかりにくいさの修正がありました。
自分でもわかりにくいと思ってARROW_KEY
にリネームしていたのでconflictしてしまいました。
テストを充実させる
自分の中ではMVCでいうとMのコードにテストを増やしていきました。
備考:自分の中の基準
- M -> typeフォルダ
- V -> renderフォルダ
- C -> commandフォルダ
なので、typeフォルダのコードにテストをつけました。
条件分岐を網羅してないですが、該当フォルダには全メソッドテストがつきました。
基本的にテストしたい関数を呼んでprintfするだけなので、お手軽なのが良いですね。
テストを増やしたので、バグを2つみつけました。
1つめは、asciiコードだと上手くいっていたがutf8だと上手くいかないところで、
2つめは、free先がファイル先端・末尾を超えている時にセグフォでした。
テストがあったらあったで色々わかっていいですね。
せっかくなので、変数名のリネームもしまくります。
あと、モンキーテストで見つけたバグもいくつか直しました。
include を整理する
いままで適当にincludeしていたheaderを整理しました
あわせて、clang-formatのSortIncludesをtrueにしました
今日のまとめ
- テストが充実しました
- bugをいくつか修正しました
- includeを整理しました
知人のrubyエンジニアにiOSアプリの作り方を休みに教えていた、
っていう更新が遅れた言い訳でした。
最初はswiftどうこうよりもXcodeが難しい気がしますね。
19日目のコメントの静的解析ツールが気になります、valgrindも動かしたいけど。
残り日数も少ないですが、目標としては25日目のブログまでに検索とコピーペーストをつけたい!