コードインテリジェンス
GitLab 13.1で導入されました。
Code Intelligence は、インタラクティブ開発環境(IDE) で一般的なコードナビゲーション機能を追加します:
- タイプシグネチャとシンボルドキュメント
- Go-to定義。
コードインテリジェンスはGitLabに組み込まれており、事前に計算されたコードインテリジェンスデータのファイルフォーマットであるLSIF(Language Server Index Format)を利用しています。GitLabは1プロジェクトにつき1つのLSIFファイルを処理し、Code Intelligenceはブランチごとに異なるLSIFファイルをサポートしません。今後の機能拡張の進捗については、エピック#4212「コードインテリジェンスの機能拡張」をフォローしてください。
設定
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
)によって制限される場合があります(インスタンス管理者によって設定可能)。
ジョブが成功すると、コードをブラウズしながらコード・インテリジェンス・データを表示できます:
リファレンスの検索
- GitLab 13.2 で
code_navigation_references
というフラグで導入されました。デフォルトでは無効になっています。- GitLab13.3ではGitLab.comで有効化され、自己管理。機能フラグ
code_navigation_references
を削除。
特定のオブジェクトが使用されている場所を見つけるには、[参照]タブで特定のコード行へのリンクを見ることができます:
言語サポート
LSIF ファイルを生成するには、該当する言語の言語サーバー・インデクサーの実装が必要です。利用可能な LSIF インデクサーの完全なリストをウェブサイトで参照し、特定の言語の LSIF ファイルを生成する方法については、そのドキュメントを参照してください。