ミルク蒼屋のチラシ

Colloid(コロイド)が何か色々と残したりするブログです

VSCode 退勤タイマー拡張機能開発日記

github.com

vscode.connpass.com

こちらにLTで参加するにあたり、LTネタを作るために拡張機能を開発していたので
ほぼ殴り書きに近いですが、毎日何をしていてたかを残していました
Hello worldから実際に物になる過程を感じていただけると幸いです

11/10

下のフッターの名称をステータスバーという名前と知る
とりあえず test dayo という文字を表示して、文字を押下すると通知が出て comando- という値に変化するというクソ機能を実装
f:id:Colloid:20201110235619p:plain

f:id:Colloid:20201110235330p:plain
世間からみたら小さな一歩かもしれないが、私の中では大きな一歩である

できるようになったこと

  • extension.ts の実行順?
  • statusBarItem 系のAPIを知る

拡張機能VSCodeインスト済の時常時起動ってどうやるんだ…

11/11

現在時刻を設定できたが、なぜか時差が発生する謎
f:id:Colloid:20201111225412p:plain
どうやら分と秒のメソッドを間違えていたという(;・ω<)

f:id:Colloid:20201111234537p:plain

画像だとわかりにくいけどリアルタイムで現在時刻をとれるようにできた

できるようになったこと

  • setIntervalを使う
  • VSCodeのシーケンス

11/12と13と14

平日は社畜業で力を尽きてしまう
14日は終日私用でなにもせず

11/15

Spotifyに登録する。昔登録した情報は使わなさすぎて勝手に消えた臭い…
f:id:Colloid:20201115150320p:plain
とりあえずこの2曲かなと探し出して、お気に入り登録する

SpotifyAPIからローカルへ方針転換

Web APIとWeb Playback SDKとあるが、今回は前者
後者はフロントエンド専用なので、VSCodeはnode.jsをお使いになっているのでWeb APIかなと思いやってみる
…が、再生にはプレミアム(課金)である必要があるとわかったので、ローカルの音楽ファイルを再生するという方針に切り替え

github.com

できるようになったこと

  • wavファイルの再生

11/16

突然キーボードがUS配列になったり、Ponponpainに襲われながらも追加したコマンドが反応しない

と思えば、package.jsonに追記するものがあったのね

"activationEvents": [
        "onCommand:leave-wildly-timer.set",
        "onCommand:leave-wildly-timer.enabled",
        "onCommand:leave-wildly-timer.notify"
    ],
    "main": "./dist/extension.js",
    "contributes": {
        "commands": [
            {
                "command": "leave-wildly-timer.set",
                "title": "Timer setting"
            },
            {
                "command": "leave-wildly-timer.enabled",
                "title": "Timer enabled"
            },
            {
                "command": "leave-wildly-timer.notify",
                "title": "Timer show"
            }
        ]
    },

commands配列だけ設定すればいいかと思っていたけど、activationEventsにも追記しないとコマンドと認識してくれないのね
とかしていたら、とりあえずおおよそ動くものができたぞ
Get Wild退勤タイマー

できるようになったこと

11/17,18

体調が絶妙に悪く、おやすみ

11/19,20

スライド作成とかるいリハをしたりする

11/21 ふりかえると

基本的には仕事後、夕飯&風呂を済ませた後1~2hでやってきて
なおかつ先週は納期があったので、時間の確保が難しい中(ちゃんと取り組んだのは日曜では?)
一応自分の考えた仕様通り動くところまで出来たのは良かったなと思っております
というより思ったよりサクッと実装できるので、拡張機能は難しいというイメージが払拭できたのは良い収穫かなと

一方でSpotifyの機能制限は調査浅かったので時間がちょい無駄だったな…と思ったり(;´Д`)
もうちょい調査してもよかったなとは思いましたorz  

他には、他の方のタイマー拡張機能のコードを比較したりして、色んな実装の仕方があるなぁと勉強になりました

そんな感じの拡張機能開発、思ったよりサクッとできたので、いつか真面目なのも作ってみたいなぁとおもいました( ˘ω˘)