코드 인텔리전스
코드 인텔리전스는 개발 환경(IDE)에서 흔히 볼 수 있는 코드 탐색 기능을 추가합니다.
- 유형 서명 및 심볼 문서.
- 정의로 이동.
코드 인텔리전스는 GitLab에 내장되어 있으며, LSIF(언어 서버 색인 형식)에서 파워를 받아 사전 계산된 코드 인텔리전스 데이터의 파일 형식입니다. GitLab은 프로젝트 당 하나의 LSIF 파일을 처리하며, 코드 인텔리전스는 브랜치 당 다른 LSIF 파일을 지원하지 않습니다.
SCIP은 소스 코드 색인화를 위한 다음 진화입니다. 이를 사용하여 코드 탐색 기능을 구현할 수 있습니다.
- 정의로 이동
- 참조 찾기
GitLab은 코드 인텔리전스로 SCIP를 네이티브로 지원하지 않습니다. 그러나 SCIP CLI를 사용하여 SCIP 도구로 생성된 색인을 LSIF 호환 파일로 변환할 수 있습니다. 네이티브 SCIP 지원에 대한 토론은 이슈 412981를 참조하세요.
다가오는 코드 인텔리전스 향상에 대한 진행 상황은 에픽 4212를 참조하세요.
코드 인텔리전스 구성
필수 조건:
언어별 최상의 지원 방법은 Sourcegraph에서 추천하는 인덱서를 확인하세요.
CI/CD 구성 요소로
GitLab은 프로젝트의 .gitlab-ci.yml
파일에서 코드 인텔리전스를 구성하기 위한 CI/CD 구성 요소를 제공합니다. 이 구성 요소는 다음과 같은 언어를 지원합니다.
- 이후 Go 버전 1.21.
- TypeScript 또는 JavaScript.
- Java 8, 11, 17 및 21.
다른 언어를 구성 요소에 더 추가하려면 코드 인텔리전스 구성 요소 프로젝트에서 병합 요청을 열어주세요.
-
프로젝트의
.gitlab-ci.yml
에 GitLab CI/CD 구성 요소를 추가하세요. 예를 들어, 이 작업은golang
용 LSIF 아티팩트를 생성합니다.- component: ${CI_SERVER_FQDN}/components/code-intelligence/golang-code-intel@v0.0.3 inputs: golang_version: ${GO_VERSION}
- 코드 인텔리전스 구성 요소의 구성 지침을 확인하세요.
- 자세한 구성 내용은 구성 요소 사용을 참조하세요.
코드 인텔리전스를 위한 CI/CD 작업 추가
프로젝트에 코드 인텔리전스를 활성화하려면 GitLab CI/CD 작업을 프로젝트의 .gitlab-ci.yml
에 추가하세요.
-
.gitlab-ci.yml
구성에 작업을 추가하세요. 이 작업은 SCIP 색인을 생성하고 GitLab에서 사용할 LSIF로 변환합니다."code_navigation": rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH # 해당 작업은 기본 브랜치에 대해 실행되면 됩니다 image: node:latest stage: test allow_failure: true # 권장됨 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
-
CI/CD 구성에 따라 작업을 수동으로 실행해야 할 수도 있고, 기존 파이프라인의 일부로 실행을 기다려야 할 수도 있습니다.
-
인덱스를 생성하는
.gitlab-ci.yml
구성에 (code_navigation
) 작업을 추가하세요.code_navigation: rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH # 해당 작업은 기본 브랜치에 대해 실행되면 됩니다 image: sourcegraph/lsif-go:v1 allow_failure: true # 권장됨 script: - lsif-go artifacts: reports: lsif: dump.lsif
-
CI/CD 구성에 따라 작업을 수동으로 실행해야 할 수도 있고, 기존 파이프라인의 일부로 실행을 기다려야 할 수도 있습니다.
참고:
GitLab은 코드 생성 작업으로 생성된 아티팩트를 (ci_max_artifact_size_lsif
) 아티팩트 적용 제한에 따라 100MB로 제한합니다. 자체 관리 설치에서는 인스턴스 관리자가 이 값을 변경할 수 있습니다.
코드 인텔리전스 결과 보기
작업이 성공하면 저장소를 탐색하여 코드 인텔리전스 정보를 확인하세요.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 저장소를 선택합니다.
- 저장소의 파일로 이동합니다. 파일 이름을 알고 있다면:
-
/~
키보드 단축키를 입력하여 파일 찾기창을 열고 파일 이름을 입력합니다. - 오른쪽 상단에서 파일 찾기를 선택합니다.
-
-
코드 라인을 가리키세요. 코드 인텔리전스에서 제공하는 정보를 가진 항목은 점선으로 표시됩니다.
- 항목을 선택하여 해당 정보를 더 자세히 확인하세요.
참조 찾기
객체의 모든 사용 사례를 보려면 코드 지능을 사용하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 저장소를 선택합니다.
- 저장소의 파일로 이동합니다. 파일 이름을 알고 있다면 다음 중 하나를 수행합니다:
-
/~
키보드 단축키를 입력하여 파일 찾기 도구를 열고 파일 이름을 입력합니다. - 오른쪽 상단에서 파일 찾기를 선택합니다.
-
- 객체를 가리킨 후 선택합니다.
- 대화상자에서 참조를 선택하여 이 객체를 사용하는 파일 목록을 볼 수 있습니다.