Research Report: GitLab epic 158 POC and JetBrains support
Original Research Query
What is this POC about? Does it support JetBrains? gitlab-org/editor-extensions&158
Research Report
This report synthesizes information from multiple research items to address your query about the Proof of Concept (POC) detailed in Epic gitlab-org/editor-extensions&158 and its support for JetBrains IDEs.
GitLab CI/CD YAML Language Service POC: Overview and JetBrains Support
The Proof of Concept (POC) you inquired about, tracked in Epic gitlab-org/editor-extensions&158 - GitLab CI/CD Yaml Language Service - POC, focuses on the development of a GitLab CI/CD YAML Language Service. This service aims to significantly enhance the developer experience when working with .gitlab-ci.yml files by providing advanced language support features.
What is this POC about?
The primary goal of the GitLab CI/CD YAML Language Service POC is to offer sophisticated editing capabilities for GitLab CI/CD configuration files. As stated in the epic's description:
The GitLab CI/CD Language Service aims to provide advanced language support features for
.gitlab-ci.ymlfiles through the Language Server Protocol (LSP) and the GitLab Language Server.This service enables advanced editing features, validation, and intelligent code assistance for GitLab CI/CD configuration files.
The .gitlab-ci.yml files can be complex, utilizing standard YAML along with GitLab-specific syntax extensions (e.g., !reference, extends). This language service intends to simplify working with these files by providing features such as:
- Validation: Checking syntax against GitLab's specific rules.
- Intelligent Code Assistance: Offering features like autocompletion, hover information, and code navigation.
It is important to note the experimental nature of this project, as highlighted in the epic:
Note: This project is experimental and not an official GitLab product. This page contains information related to unofficial products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
A visual example of the intended functionality can be seen in a screenshot within the epic's description:
-
(Viewable at gitlab-org/editor-extensions&158+)
Does it support JetBrains?
Yes, the POC explicitly includes support for JetBrains IDEs. This is evidenced by several related issues and merge requests within the gitlab-org/editor-extensions/gitlab-jetbrains-plugin project, which is dedicated to the GitLab plugin for JetBrains IDEs.
Evidence of JetBrains Support:
-
Dedicated Demo and Integration Efforts:
- Issue gitlab-org/editor-extensions/gitlab-jetbrains-plugin#923 - [JetBrains] Demo - CD/CD Yaml Language Service serves as a central point for a demo showcasing the CI/CD Language Service within the JetBrains extension. Its description states:
This issue is only to group information for the CI/CD Language Service demo related to the JetBrains extension.
- This issue also includes a demo video (
Screen Recording 2025-03-04 at 12.17.17 PM.mov) and links to the initial Proof of Concept Merge Request for JetBrains integration. It even provides "Try it yourself!" instructions for setting up the demo with the JetBrains Plugin.
- Issue gitlab-org/editor-extensions/gitlab-jetbrains-plugin#923 - [JetBrains] Demo - CD/CD Yaml Language Service serves as a central point for a demo showcasing the CI/CD Language Service within the JetBrains extension. Its description states:
-
LSP Message Integration for JetBrains:
- Issue gitlab-org/editor-extensions/gitlab-jetbrains-plugin#931 - [JetBrains] CI/CD Yaml Language Service messages integration (now closed) focused on integrating specific Language Server Protocol (LSP) messages into the JetBrains plugin. The problem statement clarifies:
As part of the ongoing initiative to integrate the CI/CD Yaml Language Service into JetBrains, we need to add support for some language feature.
- This issue tracked the implementation of key LSP messages crucial for a rich editing experience, including:
textDocument/documentLinktextDocument/publishDiagnostictextDocument/hovertextDocument/codeActionstextDocument/completiontextDocument/reference
- Issue gitlab-org/editor-extensions/gitlab-jetbrains-plugin#931 - [JetBrains] CI/CD Yaml Language Service messages integration (now closed) focused on integrating specific Language Server Protocol (LSP) messages into the JetBrains plugin. The problem statement clarifies:
-
Core Proof of Concept Merge Request for JetBrains:
- Merge Request gitlab-org/editor-extensions/gitlab-jetbrains-plugin!1556 - Draft: feat: GitLab CI/CD Yaml Language Service integration PoC (now closed) laid the groundwork for this integration. The MR title and its location within the
gitlab-jetbrains-pluginproject confirm its JetBrains focus. - The file changes in this MR introduced foundational components for CI/CD language support in JetBrains, such as:
-
src/main/kotlin/com/gitlab/plugin/ci/GitLabCICompletionContributor.kt(for code completion) -
src/main/kotlin/com/gitlab/plugin/ci/GitLabCIDiagnosticsAnnotator.kt(for validation and error highlighting) -
src/main/kotlin/com/gitlab/plugin/lsp/GitLabLanguageServerService.kt(for LSP client implementation)
-
- A screen recording demonstrating the functionality is also linked in this MR (
Screen Recording 2025-03-04 at 12.17.17 PM.mov).
- Merge Request gitlab-org/editor-extensions/gitlab-jetbrains-plugin!1556 - Draft: feat: GitLab CI/CD Yaml Language Service integration PoC (now closed) laid the groundwork for this integration. The MR title and its location within the
-
Implementation of Specific LSP Features for JetBrains:
-
Hover Information: Merge Request gitlab-org/editor-extensions/gitlab-jetbrains-plugin!1588 - feat: Support textDocument/hover message (merged) specifically added support for the
textDocument/hoverLSP message. The MR description states:Adds support for
textDocument/hovermessage. This is required to integrate the CI/CD Language Service from the Language Server.- This enables users to see documentation and information when hovering over elements in
.gitlab-ci.ymlfiles within JetBrains IDEs. A screen recording (Screen Recording 2025-03-14 at 11.33.17 AM.mov) demonstrates this feature. - Key files involved include:
src/main/kotlin/com/gitlab/plugin/lsp/documentation/GitLabLanguageServerDocumentationTargetProvider.kt
- This enables users to see documentation and information when hovering over elements in
-
Code Actions: Merge Request gitlab-org/editor-extensions/gitlab-jetbrains-plugin!1622 - feat: Support textDocument/codeAction from the Language Server (merged) implemented support for
textDocument/codeAction. The MR description notes:Adds support for
textDocument/codeActionfor the CI/CD Language Service.- This feature allows the language service to provide contextual actions like quick fixes or refactorings. A screen recording (
Screen Recording 2025-03-28 at 10.10.30 AM.mov) showcases this. - Key files involved include:
src/main/kotlin/com/gitlab/plugin/lsp/codeactions/GitLabLanguageServerCodeActionsService.kt
- This feature allows the language service to provide contextual actions like quick fixes or refactorings. A screen recording (
-
Hover Information: Merge Request gitlab-org/editor-extensions/gitlab-jetbrains-plugin!1588 - feat: Support textDocument/hover message (merged) specifically added support for the
Key Features Being Implemented for JetBrains
The integration of the CI/CD YAML Language Service into the GitLab JetBrains plugin aims to provide a comprehensive set of features, including:
- Code Completion: Suggestions for keywords, variables, and other CI/CD constructs.
- Diagnostics & Validation: Real-time feedback on syntax errors and violations of GitLab CI/CD rules.
- Hover Information: Displaying documentation and details about specific CI/CD elements on hover.
- Code Actions: Offering contextual quick fixes and refactoring options.
- Document Links: Allowing navigation to included files or other linked resources.
- Find Usages & Go to Definition: Enhancing code navigation within CI/CD configurations.
- CI/CD Validator Tool Window: A dedicated interface for viewing validation results.
These features are being delivered by integrating the GitLab Language Server with the JetBrains plugin using the Language Server Protocol (LSP).
Relevant Comments
The detailed research reports did not contain specific user comments (with username, date, and text) from the investigated items. For any such comments, you would need to visit the items directly.
Conclusion
The Proof of Concept outlined in Epic gitlab-org/editor-extensions&158+ is centered on creating a GitLab CI/CD YAML Language Service to provide advanced editing features for .gitlab-ci.yml files using the Language Server Protocol. This initiative explicitly includes and actively develops support for JetBrains IDEs through the GitLab JetBrains plugin. Ongoing work involves integrating various LSP features like hover information, code completion, diagnostics, and code actions to enhance the CI/CD configuration experience for JetBrains users.
This issue was automatically created from a research report generated on 2025-05-24T18:53:27.978Z
