2020-04-03
やること宣言
gaaamii.icon
Nekobito今日使おうとしたらだいぶ使いにくかったので改修をする tommy.icon /icons/いいぞ!.icon tanabe.icon一通り改修終わったら使ってみたいです。左上の左側2つのボタンの使い方知りたい…
gaaamii.icon ファイルを開いたりする保存したりするボタンなんですなんか今見たら押してもエラー出るようになっていました...直します!
tanabe.icon*3
tommy.icon
勉強中メモ
gaaamii.icon
久しぶりのNekobitoなので心が踊る。 tommy.icon /icons/いいぞ!.icon なぜか window.chooseFileSystemEntries is not a function になってしまうのでそこから見ていく
Chrome更新して再起動したら治った
chrome://flagsいじらなくてもデフォルトでつかえるようになってほしいなー
今日は見た目系TODOやっていこう
ナビゲーションの見た目を普通のネイティブアプリっぽい感じに寄せる
サイドバー時代の名残でナビゲーション部分のview関数の名前がviewSidebarのままだった。
なおした
見た目なおすぞ
こんなかんじにする
File
New
Open
View
Theme
✓Dark
White
✓Split view
まずはプルダウンビューみたいなものからつくっていく
common/PullDownにしよう
どういう仕様にしよう
ダジャレではない tommy.icon w
意外と難しいなこれ。
code:common/PullDown.elm
type alias PullDownItem msg =
{ label : String
, msg : msg
, children : Maybe (List PullDownItem)
}
view : List PullDownItem
こんな感じだろうか
ここからコマンドを発行して利用側のモジュールでうまいことやるのってどうやるんだっけか
今回の場合は
code:common/PullDown.elm
view : List (PullDownItem msg)
muzukashii
書いてみよう。
怒られた
This type alias is recursive, forming an infinite type!
code:PullDown.elm
type alias PullDownItem msg =
{ label : String
, msg : msg
, children : PullDownChildren
}
type PullDownChildren = PullDownChildren (List PullDownItem)
これでいいのだろうか。
ふむ。
ここにさらにmsgのことまで考えると複雑になってくるから、見た目だけ出せるようにまずはしよう。
なんかコンパイルは通るのにVSCodeの拡張にだけ怒られる
Error parsing fileelm-analyse(1)
原因tabスペースだった...
理由教えてくれよという感じもするけどコンパイルエラーみたらそっちに出てたので今後はそっちも見るように気をつける
今度はこんなエラーが
code:Main.elm
Compiling ...-- TYPE MISMATCH -------------------------------------------------- src/Main.elm
The 1st argument to view is not what I expect:
182| , PullDown.view [ { label = "File", children = [] }, { label = "View", children = [] } ]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This argument is a list of type:
List { children : List a, label : String }
But view needs the 1st argument to be:
List PullDown.PullDown
とりあえずHTML出すだけはできた
こういう感じで呼び出せるようにした
code:Main.elm
PullDown.view
[ { label = "File"
, children =
PullDown.Children
[ { label = "New"
, children = PullDown.empty
}
, { label = "Open"
, children = PullDown.empty
}
]
}
, { label = "View"
, children =
PullDown.Children
[ { label = "Theme"
, children = PullDown.empty
}
, { label = "Split View"
, children = PullDown.empty
}
]
}
]
パターンマッチと再帰をこんなにふつうにプログラム書いてて必要が出てきて書いたのは初めてかもしれない
あまり出くわす機会がないので興奮した
なぜかこけとる
tommy.icon
早起きチャレンジ失敗した
在宅勤務なので移動時間の分を勉強にまわせるのは良い面かな
Chapter 5-9 から
RSpec、ためらいなく日本語で期待する動作を説明できるのはいいな
RSpecを最初に読んだ時に戸惑ったletの使い方イメージできた
遅延評価を利用して処理の共通化もできるんだな
朝勉終わり
夜はお酒飲むので今日の勉強も終わりかな〜
やったこと
gaaamii.icon
Common.PullDownのHTML表示だけ実装
tommy.icon