Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/project/code_intelligence.md')
-rw-r--r--doc/user/project/code_intelligence.md54
1 files changed, 54 insertions, 0 deletions
diff --git a/doc/user/project/code_intelligence.md b/doc/user/project/code_intelligence.md
new file mode 100644
index 00000000000..e2c2cae3158
--- /dev/null
+++ b/doc/user/project/code_intelligence.md
@@ -0,0 +1,54 @@
+---
+type: reference
+---
+
+# Code Intelligence
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/1576) 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](https://lsif.dev/)
+(Language Server Index Format), a file format for precomputed code
+intelligence data.
+
+## Configuration
+
+Enable code intelligence for a project by adding a GitLab CI/CD job to the project's
+`.gitlab-ci.yml` which will generate the LSIF artifact:
+
+```yaml
+code_navigation:
+ image: golang:1.14.0
+ allow_failure: true # recommended
+ script:
+ - go get github.com/sourcegraph/lsif-go/cmd/lsif-go
+ - lsif-go
+ artifacts:
+ reports:
+ lsif: dump.lsif
+```
+
+The generated LSIF file must be less than 170MiB.
+
+After the job succeeds, code intelligence data can be viewed while browsing the code:
+
+![Code intelligence](img/code_intelligence_v13_1.png)
+
+## Language support
+
+Generating an LSIF file requires a language server indexer implementation for the
+relevant language.
+
+| Language | Implementation |
+|---|---|
+| Go | [sourcegraph/lsif-go](https://github.com/sourcegraph/lsif-go) |
+| JavaScript | [sourcegraph/lsif-node](https://github.com/sourcegraph/lsif-node) |
+| TypeScript | [sourcegraph/lsif-node](https://github.com/sourcegraph/lsif-node) |
+
+View a complete list of [available LSIF indexers](https://lsif.dev/#implementations-server) on their website and
+refer to their documentation to see how to generate an LSIF file for your specific language.