10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCode拡張でsqlfluffを使ってfixできるようにする

Last updated at Posted at 2021-05-20

はじめに

SQL Linterの「sqlfluff」というものがあります。
プログラムのLintは、極力システムに任せるようにしてしまいたい。
sqlfluff自体はpythonのライブラリですが、VSCodeの拡張もあって、VSCode上で
動作させることが可能です。ただ、この拡張がいまいちかゆいところに手が届かない感じでして、
Lintはできるがfixができない。なのでfixできるようにしてみました。

sqlfluffのVSCode拡張について

まず、sqlfluffのVSCode拡張はMarketPlaceにあります。

image.png

ですが、ここからインストールしてはいけません!
Marketplaceで配布されているバージョンは古くて、fixする設定が入っていません。
Githubのvscode-sqlfluffにはfixする処理が入っているのでこちらを使います。

導入手順

  1. githubからfix対応バージョンをclone
  2. ローカルでvscode用パッケージ作成
  3. VSCodeにインストール
  4. VSCode設定
  5. 実行

githubからfix対応バージョンをclone

前述したvscode-sqlfluffは最新のsqlfluffに対応できていなかったので、
私のほうでforkして修正したものを使ってください。こちらで動作します。

ローカルでvscode用パッケージ作成

cloneしたソースコードを使ってVSCode用のパッケージを作成します。
パッケージ作成にはnode.jsの下記ライブラリが必要です。

  • tsc
  • vsce
bash
npm i tsc -g
npm i vsce -g

上記完了したらcloneしたフォルダのルートで下記にてパッケージ作成します。

bash
# install from package.json
npm i

# create vscode package
vsce package

成功すると、vscode-sqlfluff-0.0.4.vsix というファイルが作成されます。

VSCodeにインストール

VSCodeからコマンドパレットを開いて、Extensions:Install from VSIX を実行。
VSIXファイルを選択するダイアログが開くので、前ステップで作成したファイルを選びます。
インストール成功のダイアログが表示されれば完了です。

VSCode設定

VSCodeからコマンドパレットを開いて、「setting」と入力して設定ファイルを開きます。
検索で「sqlfluff」と入力すると、sqlfluff拡張の設定画面が表示されるので、
そこで Whether the document formatter is enabled or notという項目があるので、
チェックをいれておきます。これでfix処理が可能になります。
ezgif.com-gif-maker (3).gif

実行

VSCodeにsqlfluffを入れた時点でlintは効くようになっています。
右クリックで「ドキュメントのフォーマット」を実行すると、今開いているファイルのfixが行われます。
ezgif.com-gif-maker (2).gif

さいごに

Githubに上がっているソースコードが少し古いので、調整が必要でした。
READMEにもありますが、VSCode拡張でのfix処理は内部で下記コマンドが実行されています。

sqlfluff fix --force <path>

というコマンドが行われています。
sqlfluff自体の使い方については公式ドキュメントに詳しいのでそちら参考ください。

それでは!
enjoy!

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?