CDを数枚取り込み、使えるかと思って部屋に留め置いていたゴミを捨て、あとはサーモンラン(スプラトゥーン2)ばかりやっていた日だった。近年稀に見る何も達成しようとしない姿勢で、なんとも気の長い生活をしている。こういう雰囲気の気の長さが長期的かつ常時もっとある生活を求めている。
今日の落書き
今日の落書きは、ソースコードの単語を列挙するシェルスクリプト。作ってる拡張機能のソースコードでやってみたので JavaScript 、つまりキャメルケースと全部大文字な定数がある。罠としては HTMLElement みたいな大文字が続くキャメルケースもある。
こういう感じになる: 単語のリストも一緒に入れたらめっちゃ長い、ブログの URL をコメント文に入れたりしているので hogashi とか hatenablog とかも入っていて面白い。
gist.github.com
Gitの情報からGitHubのパーマリンクをクリップボードにコピーするVSCode拡張機能
VSCode の拡張機能をつくる練習として、開いているワークスペースの Git の情報から、 GitHub のパーマリンクをクリップボードにコピーする拡張機能を作った。練習なので壊れているかもだけどよければお使いください。
remote (origin) の URL 、 HEAD のハッシュ、開いているファイル名、カーソル行の行番号をくっつけた、 https://github.com/hogashi/sketch-20200411-vscode-ext-git/blob/47b96dd6cc7c521d9ab017ce7760d62536cbb4cc/src/extension.ts#L4
みたいな URL をクリップボードに入れる。選択範囲で見ているので、複数行選択しているときはその範囲の URL になる ( https://github.com/hogashi/sketch-20200411-vscode-ext-git/blob/47b96dd6cc7c521d9ab017ce7760d62536cbb4cc/src/extension.ts#L4-L6
みたいな)。
remote の URL は難しくて、 ssh://
git://
https://
とか git@
とか(末尾の) .git
とかがあったりするので、正規表現で雑に頑張って消している。 ssh のときはドメイン名とパス名の間は :
になるのでこれをスラッシュにしたりもしている。
つくり方のコーナー
最初の最初はここを見ながらつくった。 yo code
ですべてが登場する。
初 VSCode 拡張機能で Git の情報を取るコードを書くのは至難の業で、なんとか行き着いた先で「この .d.ts ファイルをコピーして使ってな」みたいなことが書いてある。実際この src/api/git.d.ts
を一緒に置いて import { GitExtention } from './git'
とかやると急に型がつく。
vscode/README.md at 433380c3c16c73c7e711dedf20de12760160bc7b · microsoft/vscode · GitHubAPI
The Git extension exposes an API, reachable by any other extension.
- Copy
src/api/git.d.ts
to your extension's sources;- Include
git.d.ts
in your extension's compilation.- Get a hold of the API with the following snippet:
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports; const git = gitExtension.getAPI(1);
あとは型のおかげで出るそれっぽい API を眺めたり、 API リファレンスを見たりしつつ、コミットハッシュを取ったり、行番号を取ったり、クリップボードに書き込んだりして完成した。
ところで公開はまたひと苦労で、公開するドキュメントを見ながらやろうとするけど vsce がどうやっても 401 を返してくる。ちょっと検索すると FAQ が後からできているらしくて、そこでは上で述べられていた内容と真逆なことが書いてあってそんな……となる (token の権限は全部許可してくれみたいなことが書いてある)。
code.visualstudio.com
■
部屋の中掃除(整理)、毎回何かしらきっかけがあったときにだけやっていて、今回の動機は在宅勤務にあたって机上を整理したいのとキーボードを置くサイドデスク的なワゴンを動かしたいのと自分の誕生日プレゼントに買った落語の DVD が本棚に収まらなくて床に置いていたのなんとかしたかったのの 3つだった、一回で部屋の全部をやるのは無理なので毎回どこかに的を絞ってやっていて今回は本棚編となった、大体部屋の中の物の量のうち半分くらいが本棚にあるので掃除の規模がめっちゃでかくなってしまって都合 12時間くらい掃除していたので疲れ果てた、それに見合う環境の改善はあったのでよいと思う、ちなみに今まで一度も捨てたことのなかった主に漫画を捨てつつ Kindle で買い直そうということで本棚から頑張って全部出して残すものと捨てるものに分けて残すものを本棚に戻したら捨てるものが 100冊くらい出てすごい、買い直すにも何を買い直すのか確かめるのが大変だったのでいったん Amazon の wishlist に非公開リストをつくってとりあえず全部そこに登録しておいた、後でこれは買い直したいなと思うものを買い直す算段で多分 9割方買い直すことになる。
■
時折何かがきっかけではちゃめちゃ落ち込んでもうだめだ〜ってなることは多いものの毎度数時間落ち込みまくってだんだん開き直るというかもうよく考えるしかないねとかになって立て直っていく、今日は何やってもうまくならんな〜何も泣けるほど好きになれないんだろうな〜という落ち込みで、考えていくとずっと聞きまくっている曲とか信頼度マックスで読んでいる小説とか泣いたアニメとかはあり好きなものはあるにはあるんだなとなっていった、それはそれとしてそういうコンテンツみたいな受動的なものはめっちゃ局所的ではあるものの泣けるくらい好きなものがあるけど芸術とかコーディングとかコーヒーいれるとか自分が何かする能動的なことで泣けるくらい好きなことは無いので一生好きな活動は無いな〜って凹みながら居るんだろうなとは思っている。