코드 인텔리전스

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

코드 인텔리전스는 대화형 개발 환경(IDE)에서 흔히 볼 수 있는 코드 탐색 기능을 추가합니다.

  • 타입 서명 및 심볼 설명.
  • 정의로 이동.

코드 인텔리전스는 GitLab에 내장되어 있으며, LSIF (Language Server Index Format)로 구동됩니다. LSIF는 사전에 계산된 코드 인텔리전스 데이터를 위한 파일 형식으로, GitLab은 프로젝트 당 하나의 LSIF 파일을 처리하며, 코드 인텔리전스는 브랜치당 다른 LSIF 파일을 지원하지 않습니다. 다가오는 개선 사항에 대한 진행 상황은 이 에픽을 따라 4212, 코드 인텔리전스 개선하세요.

참고: Auto DevOps를 사용하여 응용 프로그램에서 이 기능을 자동화할 수 있습니다.

구성

프로젝트에 코드 인텔리전스를 활성화하려면 프로젝트의 .gitlab-ci.yml에 LSIF 아티팩트를 생성하는 GitLab CI/CD 작업을 추가하세요:

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

생성된 LSIF 파일 크기는 아티팩트 적용 제한 (ci_max_artifact_size_lsif)에 의해 제한될 수 있으며, 기본값은 100MB입니다 (인스턴스 관리자에 의해 구성 가능).

작업이 성공하면, 코드 인텔리전스 데이터를 코드를 탐색하면서 볼 수 있습니다:

코드 인텔리전스

참조 찾기

특정 객체가 사용되는 위치를 찾기 위해 참조 탭 아래에서 특정한 코드 라인에 대한 링크를 볼 수 있습니다:

참조 찾기

언어 지원

LSIF 파일을 생성하려면 관련 언어에 대한 언어 서버 인덱서 구현이 필요합니다. 이 사이트에서 사용 가능한 LSIF 인덱서의 전체 목록을 확인하고, 특정 언어에 대한 LSIF 파일을 생성하는 방법은 해당 문서를 참조하세요.