タグ

ブックマーク / rhysd.hatenablog.com (3)

  • えっちな grep をつくった - はやくプログラムになりたい

    H(uman-friendly) な grep コマンド hgrep をつくりました. github.com '\w+ で検索した時の出力 ファイルを特定のパターンで検索し,マッチした箇所を構文ハイライトしたコード片で表示します.超ざっくり言うと,ripgrep で検索して bat でマッチ箇所付近を表示するような感じです. grep -C によるコンテキスト表示に似ていますが,マッチ行が近い時は1つのコード片にまとめる,周囲何行を表示するかをヒューリスティックに少し賢く決めているなど,ちょっと出力は工夫しています. 動機 手元のリポジトリでコードを検索する時は 単純に grep で検索してマッチ結果を眺める grep | fzf のように検索結果を fzf で絞り込んだりプレビューする vim $(grep -l ...) のように検索結果をエディタで開く あたりを使い分けているのですが

    えっちな grep をつくった - はやくプログラムになりたい
    youz
    youz 2021/11/24
  • ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい

    言語処理系やテキストエディタなどのプログラミングツールが好きなので,その周辺を趣味で触ってます.VimWasm にポートするために Vim の実装を読んだりはしているのですが,フルスクラッチでテキストエディタをつくったことはありませんでした. 今年のお盆はめちゃ暑かったので,引きこもって夏休みの自由工作的に Rust でテキストエディタをつくっていたという話です.普段ターミナルで作業しているので,つくるのもターミナル向けテキストエディタです.最近 vim.wasm で C と TypeScript ばかりだったので,そろそろまた RustGo を書きたかったのですが,Go はすでに micro という良さそうなテキストエディタ実装があったので,Rust で書いてみることにしました. まずは Build Your Own Text Editor というガイドを利用して,1000行

    ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
  • ELVM で C コンパイラをポーティングしてみよう(Vim script 編) - はやくプログラムになりたい

    この記事は Vim アドベントカレンダー 2016 の2日目の記事です. 先々月に ピュア Vim script な C コンパイラを公開しました. github.com この記事では 8cc.vim で用いた,ELVM を利用して 8cc という C コンパイラを Vim script にポーティング(移植)する方法についてチュートリアル的に解説してみます. まずは登場人物から説明します. 8cc 8cc は C で書かれたコンパイラです.C コンパイラとしては小さく(1万行ぐらい),コードが読みやすいです.小さい割に C11 をサポートしており,セルフホスト(自分自身のコードをコンパイルできる)されています.まさか作者も今回説明するような用途に使われることになるとは思わなかったと思います. ELVM ELVM とは Esoteric Langage Virtual Machine の略

    ELVM で C コンパイラをポーティングしてみよう(Vim script 編) - はやくプログラムになりたい
    youz
    youz 2016/12/02
  • 1