Development Environments for Developer Advocates
Developer Advocates work with different types of platforms, editors and IDEs, including AI-native workflows. This page compiles best practices and useful tips to help optimize developer advocacy-related setups.
IDEs
Developer Advocates can use different IDEs depending on their projects and content requirements. It is key to understand the IDE capabilities and use cases, put them into focus for content requests, and diversify usage for different audiences.
AI and GitLab Duo in IDEs
GitLab Duo and the GitLab Duo Agent Platform are integrated as IDE extensions/plugins.
Visual Studio Code
Visual Studio Code (short: VS Code) supports a variety of programming languages and development tool integrations through its marketplace.
GitLab Duo can be integrated through the GitLab Workflow extension in the VS Code marketplace.
Note
Review the internal guide for Dev Environments after completing the initial setup.
Tips and best practices for VS Code
- Learn and practice frequently used keyboard shortcuts for VS Code.
- Command palette:
cmd shift p
on macOS orctrl shift p
on Windows/Linux. - Settings:
cmd ,
on macOS orctrl ,
on Windows/Linux. - Tip: You can also ask GitLab Duo Chat, or Claude for help.
- Command palette:
- Open local Git repositories or directories using the
code .
shortcut from the terminal. This simplifies the workflow of editing/debugging code when you need to switch contexts between GitLab UI, VS Code and terminal. - Open a terminal in VS Code (shortcut:
cmd j
on macOS, orcmd shift p
and search forterminal
). This allows starting background tasks like running servers, compilers, Ansible playbooks, etc. while editing code and avoids context switching between different windows.
Recommended settings and extensions
- Enable auto-save while editing. This avoids data loss or missing Git commit data when writing your code.
- UI: Open the settings by clicking the gear icon in the bottom left corner (shortcut:
cmd ,
on macOS). Search forauto save
. - VS Code
settings.json
: Add a new key/value for"files.autoSave": "afterDelay"
.
- UI: Open the settings by clicking the gear icon in the bottom left corner (shortcut:
- Enable word-wrap by default. This makes long lines readable without horizontal scrolling.
- UI: Open the settings by clicking the gear icon in the bottom left corner (shortcut:
cmd ,
on macOS). Search forword wrap
. - VS Code
settings.json
: Add a new key/value for"editor.wordWrap": "on"
.
- UI: Open the settings by clicking the gear icon in the bottom left corner (shortcut:
- Install extensions you need regularly, and only use trusted sources.
- Review the maintained list in @dnsmichi’s dotfiles project
- You can install extensions on the CLI with
code --install-extension
. Examplecode --install-extension gitlab.gitlab-workflow
.
Move Chat to the right panel
By default, the Chat panel is on the left side of the VS Code UI. This might interfere with file trees in the explorer, Git commits, which are also located on the left.
In order to move the Chat to the right sidebar:
- Open the Secondary Side bar with the icon on upper right corner.
- Drag the Chat icon (for example, Duo Chat) and drop it to the right sidebar.
- You can use multiple chat panels in parallel.
@dnsmichi uses this setup by default.
Enable additional languages for GitLab Duo Code Suggestions
-
Choose between two paths:
- UI: Open the settings by clicking the gear icon in the bottom left corner. Search for
gitlab.duoCodeSuggestions
. - VS Code
settings.json
: Presscmd shift p
on macOS to open the command palette, and search forsettings.json
. Add/Modify the entry for"gitlab.duoCodeSuggestions.additionalLanguages"
with an array of strings as value.
- UI: Open the settings by clicking the gear icon in the bottom left corner. Search for
-
Add
markdown
to the array when you want to see more code suggestions when editing yourREADME.md
file.- @dnsmichi is confident with the quality and the relevance of the following languages in
settings.json
(development test cycle: 1 year+):
{ "gitlab.duoCodeSuggestions.additionalLanguages": [ "powershell", "yaml", "ansible", "perl", "dockerfile", "markdown", "json" ], }
- @dnsmichi is confident with the quality and the relevance of the following languages in
-
It is important for Code Suggestions to have proper context: Open more tabs that are relevant to your current task, as those will be used for context.
A full VS Code settings.json
example is located in @dnsmichi’s dotfiles project.
Debug VS Code extensions and GitLab Duo Agent Platform
An example use case: GitLab Duo Agentic Chat provides an MCP integration, and we want to verify that the MCP server is started and consumes the additional AI Context.
Need-to-know: The GitLab Language Server powers the backend across IDE extensions for GitLab, and handles the MCP integration for GitLab Duo Agentic Chat.
- You can debug extensions using the
Output
view in VS Code. - Steps to debug:
- Open the command palette with
cmd shift p
(macOS) and search forView: toggle Output
. - Select
GitLab Language Server
in theOutput
view dropdown (next toFilter
). - This view streams the extension log on the terminal. Trigger a UI action with GitLab Duo, and observe if the client sends the correct data.
- Open the command palette with
- You can use the
Filter
form to search/filter the output, for examplemcp
to isolate entries related to the MCP integration. - Optional: Increase the log verbosity to
debug
:- Open the settings by clicking the gear icon in the bottom left corner (shortcut:
cmd ,
on macOS). Search forGitLab
orgitlab
in the settings tree. - Tick the
GitLab: Debug
checkbox and restart VS Code.
- Open the settings by clicking the gear icon in the bottom left corner (shortcut:
JetBrains IDEs
Developer Advocates can access JetBrains IDEs for different purposes and use cases:
- IntelliJ IDEA Ultimate (Java, Kotlin, Scala)
- PyCharm (Python, Django)
- GoLand (Go)
- DataGrip (SQL, Databases)
- RubyMine (Ruby, Rails)
- PhpStorm (PHP)
- WebStorm (JavaScript, TypeScript, HTML/CSS)
- Rider (C#, .NET)
- CLion (C, C++)
- Android Studio (Android development)
IntelliJ IDEA also supports plugins for other languages, the availability depends on the subscription tier (Ultimate vs Community).
GitLab Duo can be integrated using the GitLab Duo plugin in the JetBrains marketplace.
Note
Review the internal guide for Dev Environments after completing the initial setup.
Tips and best practices for JetBrains IDEs
- Review the available IDE licenses, and eventually create an Access Request for additional permanent IDE licenses.
- Read the setup and configuration guide and install the JetBrains Toolbox to manage individual IDEs and their updates.
- Optional tip: By default, the toolbox keeps older installed versions. If this behavior causes problems with storage consumption, disable the setting in
Tools > Keep previous versions to enable instant rollback
. - JetBrains IDEs can migrate/import configuration from existing setups. This is convenient to install/configure the GitLab Duo plugin once, and import it into another JetBrains IDE.
- Optional tip: By default, the toolbox keeps older installed versions. If this behavior causes problems with storage consumption, disable the setting in
MS Visual Studio
Note: Needs access to a Windows and Visual Studio license, and requires additional security review.
Status: Research. Todos are tracked in this internal issue.
GitLab Duo can be integrated using the GitLab extension in the Visual Studio marketplace.
Note
Review the internal guide for Dev Environments after completing the initial setup.
Eclipse
GitLab Duo can be integrated using the GitLab extension in the Eclipse marketplace.
neovim
Tip: Start a new neovim configuration using a fork of kickstart.nvim to bootstrap and optimize your neovim experience.
GitLab Duo can be integrated using a neovim plugin.
Remote Development Workspaces
Workspaces offer cloud development environments, running on Developer Relations Cloud Resources.
Status: Inactive. Currently, there is no infrastructure maintainer. The following documentation exists for historical reference in the future.
The remote-development sub group has an agent for Kubernetes installed, which is documented in the agent-kubernetes-gke project. This includes troubleshooting when the agent becomes unresponsive, and workspaces are not created.
Resources:
- The Kubernetes cluster
da-remote-development-1
needs to be running in GKE. Current resources: 3 nodes. Total 6 vCPU, 12 GB memory. - The domain
remote-dev.dev
has been purchased through the Google DNS service and points to the Kubernetes cluster’s public IP. - The TLS certificates have been generated manually with Let’s Encrypt and need to be renewed quarterly (2023-08-15), following the documentation steps.
Learning resources
Team member examples
- @dnsmichi’s dotfiles project which documents the work environment setup including IDEs and development tools.
Talks and demos highlighting Dev Environments
Review the Developer Advocacy content library and the following resources:
- Learning AI 101: Practical Foundations for Developers - 2025-06, Open Source @ Siemens
- Efficient DevSecOps workflows with a little help from AI - 2024-12, GitLab DACH Roadshow FY25
7826b6ad
)