タグ

ブックマーク / qiita.com/lighttiger2505 (2)

  • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

    MySQL互換のパーサーが多い印象ですね。どのSQLパーサーを利用するのが最も適切なのか3日ほど悩みましたが、おそらく1ヶ月悩んでも結論はでないと途中で気が付き、ザラッと中身を見た感じシンプルな作りのxwb1989/sqlparserをチョイスしました。 xwb1989/sqlparserで適当なSELECT文をパースするとAST(Abstract Syntax Tree)が構造体として返却されてきました。ASTとは聞いたことがありますが何なのかは全くわかりません。怖いですね。 ASTが何なのかはわかりませんが、ひとまず中身を解析してみるとSELECT文を読み取ったらSELECT文を表現した構造体に情報を格納しているということはわかりました。構造体を更にたどってみるとこのSELECT文どのテーブルを参照しているのか、JOINしているテーブルは何かなんてこともわかります。これなら補完候補が出

    すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
    a2ikm
    a2ikm 2020/05/16
  • Go標準のflagパッケージと比べてみようサードパーティflagライブラリ - Qiita

    tl;dr GoでCLIのツールを作るとき、皆さんフラグをどう実装しますか? 標準のflagパッケージでシンプルにしますか? それともCLIコマンドライブラリで複雑でリッチなモダンコマンドにしますか? 今回はいくつもあるCLIコマンドライブラリから、フラグを制御するライブラリに着目しようと思います。 まず手始めに標準のflagパッケージを見た上で、各ライブラリは何を解決したいのか。どのような方法で解決しようとしているのか。 この機会にちょっと眺めて遊んでみようと思います。 Go標準flagパッケージ Go製のCLIツールを見ていくと、どうもサードパーティライブラリを使っている方が多く印象を受けます。 このコマンド、中身どうなっているかな。 と見に行くと、ほとんどのツールは標準flagパッケージではなく、サードパーティライブラリをつかっています。 Go公式ツールや、古くに作られたツールなどは

    Go標準のflagパッケージと比べてみようサードパーティflagライブラリ - Qiita
  • 1