doc-locale/fr-fr/user/project/code_intelligence.md
{{< details >}}
{{< /details >}}
L'intelligence de code ajoute des fonctionnalités de navigation dans le code communes aux environnements de développement interactifs (IDE), notamment :
L'intelligence de code est intégrée à GitLab et repose sur LSIF (Language Server Index Format), un format de fichier pour les données d'intelligence de code précalculées. GitLab traite un seul fichier LSIF par projet, et l'intelligence de code ne prend pas en charge différents fichiers LSIF par branche.
SCIP représente la prochaine évolution des outils d'indexation du code source. Vous pouvez l'utiliser pour alimenter les fonctionnalités de navigation dans le code, telles que :
GitLab ne prend pas nativement en charge SCIP pour l'intelligence de code. Cependant, vous pouvez utiliser le SCIP CLI pour convertir les index générés avec les outils SCIP en un fichier compatible LSIF. Pour les discussions sur la prise en charge native de SCIP, consultez l'issue 412981.
Pour suivre l'avancement des améliorations à venir de l'intelligence de code, consultez l'epic 4212.
Prérequis :
Pour savoir comment votre langage est le mieux pris en charge, consultez les indexeurs recommandés par Sourcegraph.
{{< history >}}
{{< /history >}}
GitLab fournit un composant CI/CD pour configurer l'intelligence de code dans votre fichier .gitlab-ci.yml. Le composant prend en charge les langages suivants :
Pour contribuer d'autres langages au composant, ouvrez une merge request dans le projet du composant d'intelligence de code.
Ajoutez un composant CI/CD GitLab à votre fichier .gitlab-ci.yml du projet. Par exemple, ce job génère l'artefact LSIF pour Go :
include:
- component: ${CI_SERVER_FQDN}/components/code-intelligence/[email protected]
inputs:
golang_version: ${GO_VERSION}
Pour obtenir les instructions de configuration du composant d'intelligence de code, consultez le README pour chaque langage pris en charge.
Pour plus d'informations, consultez utiliser un composant.
Pour activer l'intelligence de code pour un projet, ajoutez des jobs GitLab CI/CD à votre fichier .gitlab-ci.yml du projet.
{{< tabs >}}
{{< tab title="Avec un indexeur SCIP" >}}
Ajoutez un job à votre configuration .gitlab-ci.yml. Ce job génère l'index SCIP et le convertit en LSIF pour utilisation dans GitLab :
"code_navigation":
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH # the job only needs to run against the default branch
image: node:latest
stage: test
allow_failure: true # recommended
script:
- npm install -g @sourcegraph/scip-typescript
- npm install
- scip-typescript index
- |
env \
TAG="v0.4.0" \
OS="$(uname -s | tr '[:upper:]' '[:lower:]')" \
ARCH="$(uname -m | sed -e 's/x86_64/amd64/')" \
bash -c 'curl --location "https://github.com/sourcegraph/scip/releases/download/$TAG/scip-$OS-$ARCH.tar.gz"' \
| tar xzf - scip
- chmod +x scip
- ./scip convert --from index.scip --to dump.lsif
artifacts:
reports:
lsif: dump.lsif
Selon votre configuration CI/CD, vous pourriez avoir besoin d'exécuter le job manuellement, ou d'attendre qu'il s'exécute dans le cadre d'un pipeline existant.
{{< /tab >}}
{{< tab title="Avec un indexeur LSIF" >}}
Ajoutez un job (code_navigation) à votre configuration .gitlab-ci.yml pour générer l'index :
code_navigation:
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH # the job only needs to run against the default branch
image: sourcegraph/lsif-go:v1
allow_failure: true # recommended
script:
- lsif-go
artifacts:
reports:
lsif: dump.lsif
Selon votre configuration CI/CD, vous pourriez avoir besoin d'exécuter le job manuellement, ou d'attendre qu'il s'exécute dans le cadre d'un pipeline existant.
{{< /tab >}}
{{< /tabs >}}
[!note] GitLab limite l'artefact produit par les jobs de génération de code à 200 Mo via la limite d'application d'artefact (
ci_max_artifact_size_lsif). Sur les instances GitLab Self-Managed, un administrateur d'instance peut modifier cette valeur.
Une fois le job terminé avec succès, parcourez votre dépôt pour consulter les informations d'intelligence de code :
Dans la barre supérieure, sélectionnez Rechercher ou aller à et accédez à votre projet.
Dans la barre latérale gauche, sélectionnez Code > Dépôt.
Accédez au fichier dans votre dépôt. Si vous connaissez le nom du fichier, effectuez l'une des actions suivantes :
/~ pour ouvrir le sélecteur de fichiers, puis saisissez le nom du fichier.Pointez sur les lignes de code. Les éléments de cette ligne disposant d'informations issues de l'intelligence de code affichent une ligne pointillée en dessous :
Sélectionnez l'élément pour en savoir plus à son sujet.
Utilisez l'intelligence de code pour voir toutes les utilisations d'un objet :
Dans la barre supérieure, sélectionnez Rechercher ou aller à et accédez à votre projet.
Dans la barre latérale gauche, sélectionnez Code > Dépôt.
Accédez au fichier dans votre dépôt. Si vous connaissez le nom du fichier, effectuez l'une des actions suivantes :
/~ pour ouvrir le sélecteur de fichiers, puis saisissez le nom du fichier.Pointez sur l'objet, puis sélectionnez-le.
Dans la boîte de dialogue, sélectionnez :