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