blogDartで自作したLintのルールをVSCodeで適用してリアルタイムにエラーを表示する2022-12-12by@wapa5pow10Xアドベントカレンダー13日目を担当するSWEの石田(@wapa5pow)です。好きな商品はフレスタさんで5色いなりです。これ自体は他のお店でも売っているという報告をうけたのですがいなりをたべながら公園で同僚とランチをしたのがいい思い出です。規約にそっていないソースコードを書くとLintによってエラーを出して規約に沿わせる事ができます。10Xでも様々なLintルールを使っており中には自作したLintルールを適用しています。以下のようなルールがサーバサイドDartにおいて使われています。Parameterは使わないFirestoreのcontainedIn句を使う時は動的な変数で指定できないetc...などなどDartの標準にはないルールですがプロジェクト上で守りたいものがあります。2022で「Dartにおける静的解析」を話していた通り10Xではコマンドライン上の実行で前述のようなルール違反を検知できますが、VSCode上でリアルタイムに違反を検知させることができていません。https://hisaichi5518.hatenablog.jp/entry/2022/11/17/210939面白そうだなと思ったので、上記で紹介されていたcustom_lintを使ってリアルタイムにVSCode上でLint違反を検知する検証をしてみます。その上でどういうコードをかけばStailerのサーバに適用しやすく簡単にルールを追加しやすいか考えてみます。ソースコード実際に書いたソースコードは以下です。getを行ったあとは上記のように自作したLintのエラーが表示されます。Treeを使う方法とASTを使う方法があります(参考)。今回どちらの方法も試せるように以下のように記載しています。custom_lintを参考にしてproviderはfinalで宣言しないといけないというルールを設定している。Parameterをプロジェクト内で使えないようにするルールを設定している。Lintごとにファイルもわけて追加も容易になっています。デバッガーを使うブレークポイントを設定して以下を実行すればデバッガも起動できます。コマンドラインで実行するVSCode上だけでなくCLIで実行できないとCIで利用できないですが、custom_lintにはちゃんとコマンドでも実行できるようになっています。avoid_passing_optional_positional_parametersまとめ面倒なanalyzer_pluginを書かなくてもcustom_lintで楽にLintがかけるのでその例を示しました。思ったより簡単にできたので順次Stailerのサーバに適用していきたいと思っています。10XではStailerを開発する仲間を募集中です。選考というかはカジュアル面談もやっておりますのでぜひぜひお話しましょう。blogHomeAboutTool。