素材の味

丁寧に暮らしています

日記 2020/09/07

ここ何日かのことをまとめて

ゲーム

Craftopia やりました

store.steampowered.com

いろんなゲームをごちゃまぜにした感じのゲーム
アーリーアクセスだから数時間やって満足したけどこれからが楽しみ

英語

ELSA Speakやってる
英文読んでどのくらいあってるかどうかを出してくれるんだけど、間違った部分はアプリ側がどう聞こえたのか発音記号を出してくれるのがめちゃくちゃ良い
ʊ のところが u だったとか
いまは学んでも使う機会がないのでオンライン英会話やろうかなと考えてる

PC

Mac miniくらいのサイズのPCが欲しいなと思っててちょこちょこ探してたんだけど、System76のmeerkatいいじゃんってなった

Meerkat - System76

36 × 117 × 112mm でめちゃくちゃ小さい

そのうち買うかも

2020/08/31 日記

8月が終わる...

ご飯

モス、豚肩ロース食べた
モスは早く海老天のライスバーガーを復活してくれ

ゲーム

Apex飽きてきたのでやってない

ブログ

前から書いておこうと思ったやつを一つ書いた
9月はもうちょっと技術的なのを書く頻度を増やしたい

その他

瑛人にドルチェ&ガッバーナから、宣伝になりましたっていって香水が送られてて欲しい
思い出す香水はスポーツってやつらしいから機会があったら嗅いでみたい

独自yamlに対してvalidation & auto completionを行う

tl;dr

  • configに対するJSON Schemaを作成すれば yaml-language-server がやってくれる
  • protoがある場合は protoc-gen-jsonschemaJSON Schemaを生成できる

社内ツールとかでconfigがあって、それに対するvalidationとかauto completionがあれば便利だなという時があると思う

わざわざLSPを自作するのは流石に大変だと思うけど、configがyamlの場合は yaml-lanugage-serverJSON Schema をサポートしているので、configに対するschemaを作成して、読む込むだけでvalidation,auto completionが実現できる

github.com

https://media.giphy.com/media/XxvLRnep3Cu9B14A3K/giphy.gif

protoからJSON Schemaの生成

ツールの中でgRPCを使っていてprotoファイルが存在している場合は、protocのpluginを使ってprotoファイルからJSON Schemaを生成することができるので楽

github.com

syntax = "proto3";
package example;

message MyToolConfig {
    string hello = 1;
    int32 world = 2;
}

こういう config.proto を使って protoc --jsonschema_out=. config.proto を実行すると、

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "properties": {
        "hello": {
            "type": "string"
        },
        "world": {
            "type": "integer"
        }
    },
    "additionalProperties": true,
    "type": "object"
}

こういう MyToolCofnig.jsonschema が生成される
あとはさっきの yaml-language-server の設定で、この JSON を読み込めば良い