シン・文芸的プログラミングを少し考えた
from /villagepump/シン・文芸的プログラミングを少し考えた
シン・文芸的プログラミングを少し考えてた/villagepump/nishio.icon
今VSCodeでプログラム書いてて、
Scrapboxにはたしかに今のプログラム環境にない良い機能がある
行リンクとか
でもプログラム環境の方にブラウザ上でScrapbox環境にない機能がどっさりある
型チェック
補完
GitHub Copilot
定義へのジャンプ
シンボルジャンプ
同ファイル内のシンボルに飛ぶ
markdownでいうと# 見出しとか
開発サーバの自動リロード
自動テスト
Gitでバージョン管理
リポジトリにpushしたら自動デプロイ
まともに実装できるのはformatterとLSPなし補完くらいだろうなあ/villagepump/takker.icon
なので開発環境をScrapboxの側に移すよりもScrapboxの機能をVSCodeの側に持ってくる方が素直
+1/villagepump/sta.icon
それって要するに
VSCodeというエディタの拡張としてローカルファイルシステムで動くWiki
な訳で、それって
Emacsというエディタの拡張としてローカルファイルシステムで動くWiki
であるhowmのリバイバルなのでは?となった
Vimだと/villagepump/kuuote.iconさんが作ってた
ここに書いたのはゴールデンウィークの間に作るかもしれないし作らないかもしれない的な気持ち
大体のプログラミング言語に複数行コメントの機能はある
ので、そこにScrapbox的なリンクを書けるようにする
Scrapboxをオフラインで使いたいにもつながる
インターネットがなくてもオフラインで編集できて、オンラインになったときにgit pushする
VSCodeの拡張の作り方、何も知らない
「もうVSCode用のhowmがあるよ」って可能性があるので調べる
物書きが使うVS Code 〜拡張機能〜|倉下忠憲|note
ActionLock という Visual Studio Code 用 拡張機能を作った | WriteIfElse
Howm の ActionLock って便利だったよね
一部機能だけある
https://github.com/satokaz/vscode-memo-life-for-you
howmみたいにショートカットキーで「今日の日時のページ」を開く
Your First Extension | Visual Studio Code Extension API
vscode-wikiなるものはある/villagepump/kuuote.icon
docstringがWikiになる的なものか/villagepump/inajob.icon
emacsだとマイナーモードみたいなので既存のモードを組み合わせて実装できそう(よくしらんが)/villagepump/inajob.icon
継続的ドキュメンテーションの概念もヒントになるかも/villagepump/sta.icon
今できることとしてVSCodeを拡張するのは良いと思うけど、シン・文芸的プログラミングの理想形がどんな形なのかは気になる/villagepump/yosider.icon
---
from /villagepump/ゴールデンウィーク記2022前半
シン・文芸的プログラミングを少し考えたの件、とりあえずHello world的拡張を作って「VSCodeの拡張を作ったことがある」実績解除をやろうと思った/villagepump/nishio.icon
Hello worldはできた
Cmd+Rでリロードできる、ウェブアプリを開発してる気分
---
from /villagepump/ゴールデンウィーク記2022前半
ActionLock/villagepump/nishio.icon
/villagepump/Howm の ActionLock
読解
100秒に1回、下線を引くかなどのテキストデコレーションを更新し、その時にカーソルがrangeの中にいるかどうかを判定している
/villagepump/ActionLock#626e5273aff09e00009a8e83
rangeは正規表現で定義されてる
/villagepump/ActionLock#626e5294aff09e00009a8f1c
rangeの中にいる時にEnterを押すとコマンドが実行される
/villagepump/ActionLock#626e52c2aff09e00009a9065
というような話をVSCodeかScrapboxでコードともっと一体感を持って書けるといいな
シン・文芸的プログラミングの話ね
VSCodeでは今はできないのだからScrapboxでやるか
やってみたらソースコードだけ貼られてるページができちゃったなー
これ、今は3ファイルくらいで済んでるけど、もっと多い場合にはソースファイルごとにページが分かれてた方がいいんだろうか…
[/foo/bar]的な文字列の上でエンターしたらScrapboxの該当ページにジャンプするくらいなら簡単に出来そう??
[foo]の上でEnterした時に何が起こるとよいのか?
Scrapboxはページの冒頭に暗黙のジャンプターゲットがある
fooリンクのクリックはfooページ冒頭のジャンプターゲットへのジャンプになる
VSCodeでの各ソースコードは、ファイル名は持ってるけど、Scrapbox的な意味での人間に向けたタイトルは持ってない
ジャンプターゲットを作る記法が必要?
come-fromリンクみたいに、ページの中の任意の位置にジャンプターゲットを作り出す
例えばソースコードのActionLock#626e5273aff09e00009a8e85のところに[< カーソルがrangeの中にいるかどうかを判定]と書くと[カーソルがrangeの中にいるかどうかを判定]でEnterした時にその位置にジャンプする、とか
これでできるのかな
https://code.visualstudio.com/api/references/vscode-api#WorkspaceSymbolProvider%3CT%3E
直接ジャンプできなくても「その文字列でシンボルサーチ」ってやれば2ホップで辿り着ける
それだとブラケットの中にファイル名などを入れても機能するはず
yahow