Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2016-03-08

[](まだ)生きてます 19:03 (まだ)生きてます - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - (まだ)生きてます - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

まぁ何も勉強してないし、作ってもないんだけどなぁ。

2015-09-17

[][][]dman が見つけてきた URL を w3m で読みたかったメモ 02:13 dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

POSIX (というか Linux )上での話です。*1


本質的なコードは dman.d にはなくて、読むべきは std.process.browse (のソース) だった。やってることは

  • 検索クエリを打つためのコマンドを決める
    • デフォルトでは xdg-open を使う
    • 環境変数 BROWSER にコマンドが指定されている場合はそれを使う
  • exec する

くらいかな。あとはエラー処理。

で、最初は単に BROWSER=w3m してみたけどダメだった。プロセス関係よくわからない。

仕方ないので BROWSER=echo して、 stdio 経由で w3m へ渡すようにしたら上手くいった。

あとは dman の吐く URIsed とかで(ここではパラメータ展開してるけど…)修正してローカルに向けてやれば cppref みたいな使い方ができそうな気がする。

以下コード例。

# web のリソースを読みたいならこれでいける
w3m `BROWSER=echo dman process`
# あるいは curl の出力を流し込んでも読める(ファイルとして読んだほうが便利だから上のほうが良いと思う)
BROWSER=curl dman std.stdio | w3m -T text/html

ローカルにある html ファイルを開く例。だけどちゃんと確認してない。あとdlang.org以外のリソースは開けない。

# ここでは denv を使わせてもらってる
export HTML_DIR="$( denv prefix )/html/d"
export BROWSER=echo

w3m "${HTML_DIR}/${$( dman assert )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman writeln )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman simd )##*dlang.org/}"

まぁざっくりこんな感じですかね。

気が向いたらスクリプトにしよう。

*1:ついでに言えば D-man ( D 言語くん)の話ではないよ。リファレンス検索コマンドの dman だよ。

2015-08-23

[][][]universal-ctags の Dscanner ドライバ書いた 01:24 universal-ctags の Dscanner ドライバ書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - universal-ctags の Dscanner ドライバ書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

例によって gist 。

Dscanner driver for universal-ctags ? GitHub


適当に設置すれば動くと思う。

--list-kindsを見るようになってるのがつらいなぁ。今回のケースだとハードコードせざる得ないっぽい。(dscanner が受け付けない)


なんか最近 Dscanner の周辺ツールばかり書いてるけど、実はあんまり Dscanner 使ってない……。

本当は DCD をちゃんと使いたいんだけど、 vim のプラギンの出来がイチマチなんだよなぁ。

自分で補完関数書いてしまおうかとも思ってるけど、そこまでのやる気も出ず。

2015-07-24

[][]compiler/dscanner.vim 書いた 06:06 compiler/dscanner.vim 書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - compiler/dscanner.vim 書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

大したことしてないのでgistに置いてあります。

https://gist.github.com/h14i/117d5d2f95d953e072b6


以下メモ。

久しぶりにコンパイラプラギン書いて知ったんだけど、エラーとワーニングの認識のために %t ってのを使うんですね。

んで、サンプルには %trror とか %tarning とか書いてあるわけですよ。

これって非常に気持ち悪くないですか?

もしかしてもっと良い書き方があるのかな…。

あと &efm 書くのが結構つらい。scanf 風のフォーマットってのがなぁ。

パターンマッチも出来るみたいだけど、 % の乱舞になってしまって読むのがつらくなる。

自前でパースして Quickfix に流し込むのよりは遥かに楽なので仕方無く使う感じですかね。

2015-07-19

[]ctrlp-buftab.vim 直した(追記 直ってなかった) 04:46 ctrlp-buftab.vim 直した(追記 直ってなかった) - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - ctrlp-buftab.vim 直した(追記 直ってなかった) - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

今回の変更

  • tabpagebuffer.vim への依存を無くした。
  • buflistedではないバッファを表示してしまうバグを直した。(致命的なのに今更…。)

BufEnter のタイミングで b:ctrlp_buftab_tabnr って変数をセットするようにしたので NeoBundleLazy などで遅延読み込みさせるとちゃんと動きません。

追記。

相変わらずバグってます。

github issueに書いたけど…。