投稿者

インターシステムズジャパン
お知らせ Toshihiko Minamoto · 11月 20, 2024

CachéQuality for VSCode がリリースされました

ほとんどの方が @Daniel TamajonCachéQuality プロジェクトをご存知かと思います。 まだご存知でない方のために説明すると、InterSystems 製品用に記述されたコードの静的構文アナライザーです。 コード内の様々な種類の問題や潜在的なバグがお客様のプロダクション環境で見つかる前に、それらを検出して解決するのに役立てられます。 つまり、CachéQuality を使用することで、より優れた製品を提供できるようになります。 ObjectScript コードのチェックに使用されるルールの完全なリストは、こちらをご覧ください。

これは Studio ですでに提供されているものですが、 VSCode でも使用できるようになりました。

インストール

VSCode の拡張機能セクションで、「cachequality」を検索し、SonarLint for CachéQuality をインストールします。より優れたエクスペリエンスを得るには、先に VSCode for ObjectScript をインストールしてください。 いずれの拡張機能も、「objectscript」の検索で見つかります。

この拡張機能をインストールした時点から、構成を行わずに使用し始めることができ、クラスを開くと、検出されるすべての問題が下線表示されるようになります。

下線表示にマウスポインターを合わせると、詳細を表示できます。

また、直接 VSCode で問題の詳細を開くこともできます。

VSCode には問題ビューが備わっており、Cmd+Shift+M ホットキーで有効にできます。このビューには、開いているソースファイルで検出された問題のリストが表示されます。 CacheQuality が検出した問題のリストを確認し、実際の場所に移動できます。

修正された行は保存後に再チェックされます

ただし、制限があります。 ルールのリストと、ルールに関連する他のいくつかのパラメーターを制御できません。 拡張機能は、デフォルト値による事前構成済みで提供されます。 さらに制御が必要な場合は、コネクテッドモードを使用できます。

コネクテッドモード

この拡張機能には、コネクテッドというモードも備わっています。 このモードでは、SonarQube サーバーをインストール済みの CacheQuality プラグインに接続できます。

SonarQube を使って、ルールのリストをカスタマイズできます。 ルールのパラメーターを無効化または有効化し、変更できます。 たとえば、To method has too many lines ルールはデフォルトで 50 行以降にトリガーされますが、この数値を変更することができます。

SonarQube Server がある場合は、まず、プロジェクト全体を解析する必要があります。 これには様々な方法があり、詳細は SonarQube ドキュメントに記載されています。 また、VSCode からプロジェクトにアクセスするにはトークンが必要です。

VSCode 設定の変更

    "sonarlint.connectedMode.project": {
        "projectKey": "Samples",
        "serverId": "local"
    },
    "sonarlint.connectedMode.servers": [
        {
            "serverId": "local",
            "serverUrl": "http://localhost:9000",
            "token": "65b19eb2ef04cd81a033c89820acf65d1f349c4f"
        }
    ]

projectKey は SonarQube に定義されているもので、サーバーセクションに定義されたリストの serverId である必要があります。

設定を保存し、SonarQube 側に変更を保存したら、バインディングを更新して VSCode を最新状態にします。

設定が正しく更新されたら、以下の通知が表示されます。

プロジェクトに使用されているルールのリストをカスタマイズする場合は、まず、ビルトインの品質プロファイル Caché Quality をコピーする必要があります。

そして、プロジェクトに新しいプロファイルを有効化します。

検出された一部の問題は SonarQube で解決でき、VSCode 拡張機能はそれを認識するため、再度表示されることはありません。

たとえば、このような問題があります。

呼び出されないメソッドの問題を誤検出として解決し、変数の問題を修正しないようにしましょう。

ファイルを開き直すと、新しい情報でもう一度解析されます。 %OnNew メソッドには未解決の問題が残っていません。

問題とフィードバック

CacheQuality プロジェクト自体はオープンソースではありませんが、VSCode の拡張機能はオープンソースです。 問題やフィードバックはそちらにお送りください。