hogashi.*

日記から何から

Gitの情報からGitHubのパーマリンクをクリップボードにコピーするVSCode拡張機能

 VSCode拡張機能をつくる練習として、開いているワークスペースの Git の情報から、 GitHubパーマリンククリップボードにコピーする拡張機能を作った。練習なので壊れているかもだけどよければお使いください。

marketplace.visualstudio.com

 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 ですべてが登場する。

code.visualstudio.com

 初 VSCode 拡張機能で Git の情報を取るコードを書くのは至難の業で、なんとか行き着いた先で「この .d.ts ファイルをコピーして使ってな」みたいなことが書いてある。実際この src/api/git.d.ts を一緒に置いて import { GitExtention } from './git' とかやると急に型がつく。

API

The Git extension exposes an API, reachable by any other extension.

  1. Copy src/api/git.d.ts to your extension's sources;
  2. Include git.d.ts in your extension's compilation.
  3. Get a hold of the API with the following snippet:
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
const git = gitExtension.getAPI(1);
vscode/README.md at 433380c3c16c73c7e711dedf20de12760160bc7b · microsoft/vscode · GitHub

 あとは型のおかげで出るそれっぽい API を眺めたり、 API リファレンスを見たりしつつ、コミットハッシュを取ったり、行番号を取ったり、クリップボードに書き込んだりして完成した。

 ところで公開はまたひと苦労で、公開するドキュメントを見ながらやろうとするけど vsce がどうやっても 401 を返してくる。ちょっと検索すると FAQ が後からできているらしくて、そこでは上で述べられていた内容と真逆なことが書いてあってそんな……となる (token の権限は全部許可してくれみたいなことが書いてある)。

code.visualstudio.com

 部屋の中掃除(整理)、毎回何かしらきっかけがあったときにだけやっていて、今回の動機は在宅勤務にあたって机上を整理したいのとキーボードを置くサイドデスク的なワゴンを動かしたいのと自分の誕生日プレゼントに買った落語の DVD が本棚に収まらなくて床に置いていたのなんとかしたかったのの 3つだった、一回で部屋の全部をやるのは無理なので毎回どこかに的を絞ってやっていて今回は本棚編となった、大体部屋の中の物の量のうち半分くらいが本棚にあるので掃除の規模がめっちゃでかくなってしまって都合 12時間くらい掃除していたので疲れ果てた、それに見合う環境の改善はあったのでよいと思う、ちなみに今まで一度も捨てたことのなかった主に漫画を捨てつつ Kindle で買い直そうということで本棚から頑張って全部出して残すものと捨てるものに分けて残すものを本棚に戻したら捨てるものが 100冊くらい出てすごい、買い直すにも何を買い直すのか確かめるのが大変だったのでいったん Amazon の wishlist に非公開リストをつくってとりあえず全部そこに登録しておいた、後でこれは買い直したいなと思うものを買い直す算段で多分 9割方買い直すことになる。

 部屋を掃除していたら高校のときになぜかたまにやってたテスト勉強の短冊が登場して頑張ってたんだな……となった、大事な語句とかその意味とか図とかをノートから書き写してテスト前にペラペラ眺めるやつです、字は醜いのでぼかしをかけました、左に見切れているのは黒霧島の紙パックです。

f:id:hogashi:20200405193135j:plain

 幅跳びのルールの図とかもある。

f:id:hogashi:20200405193714j:plain

 時折何かがきっかけではちゃめちゃ落ち込んでもうだめだ〜ってなることは多いものの毎度数時間落ち込みまくってだんだん開き直るというかもうよく考えるしかないねとかになって立て直っていく、今日は何やってもうまくならんな〜何も泣けるほど好きになれないんだろうな〜という落ち込みで、考えていくとずっと聞きまくっている曲とか信頼度マックスで読んでいる小説とか泣いたアニメとかはあり好きなものはあるにはあるんだなとなっていった、それはそれとしてそういうコンテンツみたいな受動的なものはめっちゃ局所的ではあるものの泣けるくらい好きなものがあるけど芸術とかコーディングとかコーヒーいれるとか自分が何かする能動的なことで泣けるくらい好きなことは無いので一生好きな活動は無いな〜って凹みながら居るんだろうなとは思っている。

梅見20200223高尾梅郷

f:id:hogashi:20200329212121j:plain

 2月の終わりに梅見に行った。計画自体は 1年前からしていて、ちょうど梅の時期が終わった頃にそういえば行きたかったな……と思い、「来年は絶対行くぞ」という意思で個人 Slack のリマインダに「梅見行きませんか」というのが仕込んであった。有名な梅見の場所を探して、高尾山のほうに梅見スポットがめっちゃあるということがわかったので、(高尾山方面に行ったこともなかったし)練り歩くか、となった。

高尾梅郷|八王子市公式ホームページ

 13時ごろに高尾山口駅で電車を降りて、めっちゃ登山っぽい人たちが居るなと思いながら、誰も向かわない(高尾山のケーブルカーとは逆の)方に向かう。

 大きい道があるけどできるだけ大きい道は通りたくないな〜と思う性質なので、脇に逸れる坂道を登って、電車が山に吸い込まれていくのを眺めたりした。途中梅の木が登場して、咲きかけいいな〜と撮っている(写真は記事冒頭)と、地元の方に「もっとあっちのほうが沢山咲いてる、こんなとこ撮らなくても」と心配そうに声をかけられ、咲きかけのも撮りたくて……みたいな会話をする(あそう? みたいな感じで会話は終わった)。もちろんもっと咲いてるのも撮る。

f:id:hogashi:20200329212825j:plainf:id:hogashi:20200329212846j:plain
f:id:hogashi:20200329212858j:plain
もっと沢山咲いてるあっちのほう

 てくてく歩きまくって楽しくなって曲がるべき道を完全に見逃したりしつつ、最初のスポット「遊歩道梅林」に入り込む。遊歩道ってなんとなく細長いイメージがあったものの、ここはカッとひらけた感じの場所で、すぐ前に赤い梅の木が映える。

f:id:hogashi:20200329214147j:plain
遊歩道梅林を橋から

 聡明な読者はもうお気付きかと思うが、ここに猫が歩いていて、しばらく夢中で猫の写真を撮っていた。ピントが全然合わなくて、手動モードみたいなのにして頑張って合わせたりしている。

f:id:hogashi:20200329215919j:plainf:id:hogashi:20200329220129j:plain
落ち着き払っている様子
f:id:hogashi:20200329215943j:plain

 遊歩道を進むと、来る前の想像の 20倍くらい花が咲いていてテンションが上がり、ここまで花粉症のためにマスクをつけていたけど、どう考えても梅の香りを感じるほうが優先でしょうということですぐさま外す。ちなみに咲いている花が梅なのか他の何かなのかを見分ける力はないので、全然違うものも混ざっているかもしれない。

f:id:hogashi:20200329222219j:plain

f:id:hogashi:20200329220829j:plain
f:id:hogashi:20200329220756j:plainf:id:hogashi:20200329220808j:plain
f:id:hogashi:20200329220845j:plainf:id:hogashi:20200329220903j:plain

 遊歩道が終わって川から離れ、苔とかを撮りつつ、中央本線の線路が下に見えるところまで坂をぐんぐん上っていった。最初は線路に全く気づけなかったのだけど、カメラを持って時計を見ている人が何人か居り、電車を待っているのか……と思い当たった。

f:id:hogashi:20200329221937j:plain
道端の苔
f:id:hogashi:20200329224036j:plainf:id:hogashi:20200329224119j:plain
線路と梅

 高尾梅郷の西側のスポット「湯の花梅林」まで行ったところで、日が傾いていることに気づき、影から逃げるように急いで東に戻る。地図でふと高尾天満宮というのを発見して、川を渡ってお参りした。もうこのあたりは日があたっていない。

f:id:hogashi:20200329224823j:plainf:id:hogashi:20200329224836j:plain
山の存在を感じる影の様子

 昼は暖かめだったこの日も流石に夕方には寒くなり、とても満足かつ結構疲れてきたので、お土産屋さんで栗のういろうを買って高尾山口駅に戻った。そういえば一番最初に氷川神社にお参りしたのに写真を撮っていなかったので、高い駅のホームからとってもズームして撮って梅見を終えた。

f:id:hogashi:20200329230821j:plain
めっちゃ斜めになっている気がする

 個人的にはなんとなく静かで涼しい梅見が好きなので、来年もどこかに行きたい。