debian-mirror-gitlab/doc/user/project/code_intelligence.md
2022-10-11 01:57:18 +05:30

2.6 KiB

stage group info type
Create Code Review To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments reference

Code Intelligence (FREE)

Introduced in GitLab 13.1.

Code Intelligence adds code navigation features common to interactive development environments (IDE), including:

  • Type signatures and symbol documentation.
  • Go-to definition.

Code Intelligence is built into GitLab and powered by LSIF (Language Server Index Format), a file format for precomputed code intelligence data. GitLab processes one LSIF file per project, and Code Intelligence does not support different LSIF files per branch. Follow epic #4212, Code intelligence enhancements for progress on upcoming enhancements.

NOTE: You can automate this feature in your applications by using Auto DevOps.

Configuration

Enable code intelligence for a project by adding a GitLab CI/CD job to the project's .gitlab-ci.yml which generates the LSIF artifact:

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

The generated LSIF file size may be limited by the artifact application limits (ci_max_artifact_size_lsif), default to 100MB (configurable by an instance administrator).

After the job succeeds, code intelligence data can be viewed while browsing the code:

Code intelligence

Find references

To find where a particular object is being used, you can see links to specific lines of code under the References tab:

Find references

Language support

Generating an LSIF file requires a language server indexer implementation for the relevant language. View a complete list of available LSIF indexers on their website and refer to their documentation to see how to generate an LSIF file for your specific language.