コードインテリジェンス

GitLab 13.1で導入されました。

Code Intelligence は、インタラクティブ開発環境(IDE) で一般的なコードナビゲーション機能を追加します:

  • タイプシグネチャとシンボルドキュメント
  • Go-to定義。

コードインテリジェンスはGitLabに組み込まれており、事前に計算されたコードインテリジェンスデータのファイルフォーマットであるLSIF(Language Server Index Format)を利用しています。GitLabは1プロジェクトにつき1つのLSIFファイルを処理し、Code Intelligenceはブランチごとに異なるLSIFファイルをサポートしません。今後の機能拡張の進捗については、エピック#4212「コードインテリジェンスの機能拡張」をフォローしてください。

note
Auto DevOps を使用することで、アプリケーションでこの機能を自動化できます。

設定

LSIF アーティファクトを生成するプロジェクトの.gitlab-ci.yml に GitLab CI/CD ジョブを追加することで、プロジェクトのコードインテリジェンスを有効にします:

code_navigation:
  image: sourcegraph/lsif-go:v1
  allow_failure: true # recommended
  script:
    - lsif-go
  artifacts:
    reports:
      lsif: dump.lsif

生成される LSIF ファイルサイズは、アーティファクトアプリケーションの制限 (ci_max_artifact_size_lsif)によって制限される場合があります(インスタンス管理者によって設定可能)。

ジョブが成功すると、コードをブラウズしながらコード・インテリジェンス・データを表示できます:

Code intelligence

リファレンスの検索

特定のオブジェクトが使用されている場所を見つけるには、[参照]タブで特定のコード行へのリンクを見ることができます:

Find references

言語サポート

LSIF ファイルを生成するには、該当する言語の言語サーバー・インデクサーの実装が必要です。利用可能な LSIF インデクサーの完全なリストをウェブサイトで参照し、特定の言語の LSIF ファイルを生成する方法については、そのドキュメントを参照してください。