This extension is not affiliated, endorsed, sponsored, or approved with or by GitLab Inc.
GITLAB is a trademark of GitLab Inc. in the United States and other countries and regions
A calmer, Go-aware code review experience for GitLab.
Navigate symbols, find interface implementations, and focus on the diff without sending repository code anywhere.
GoLens for GitLab is a dependency-light Manifest V3 extension for GitLab.com and self-hosted GitLab. It reads source through your signed-in GitLab session and runs its Go intelligence entirely inside the browser.
- Hover Go identifiers for signatures and documentation; type references include their complete struct or interface body.
Cmd/Ctrl-click to find definitions, usages, and interface implementations.- Select a Go identifier and press
Cmd/Ctrl+F12by default for the same definition or implementation navigation. - Plain-click a Go identifier to highlight its loaded-diff occurrences, then move between occurrences, hunks, and files with configurable shortcuts.
- Go back and forward through in-diff semantic jumps without leaving the merge request.
- Bookmark an old- or new-side line or contiguous range, navigate locally, and recover only uniquely matched destinations after the MR head changes.
- Switch GitLab's diff between inline and side-by-side view from the control rail or a shortcut, without opening GitLab's own preferences dropdown.
Navigation defaults follow familiar editor patterns: Cmd/Ctrl+Alt+↑/↓ for occurrences, Shift+Alt+F5/Alt+F5 for hunks, Alt+Page Up/Down for files, Alt+V for the inline/side-by-side diff view toggle, Ctrl+-/Ctrl+Shift+- for semantic history, and Alt+M/Alt+,/Alt+. for bookmark toggle, previous, and next. Settings can apply GoLens, VS Code, IntelliJ IDEA, or Vim-style keymaps before changing or clearing individual bindings; the Vim preset adds shortcuts only, not modal behavior.
First-run setup asks which keymap to use and whether GitLab-marked generated files should be hidden, then teaches four essential interactions. The complete feature reference remains available from Settings under Help.
- Enter review focus to hide GitLab chrome and give the diff more room.
- Cache related packages or the full project for broader navigation.
- Let the mascot mark review focus, a completed cache pitstop, the final resolved discussion, confirmed approvals and merges, plus an extra-long Friday-after-16:00 beer-kart lap with confetti.
- Keep source local, same-origin, and pinned to the merge-request commit.
GoLens teaches the highest-value bindings with contextual shortcut tips after the equivalent mouse action. Tips are limited to one per review session with a 24-hour cooldown, stop after the shortcut is used, and can be disabled or re-enabled in General settings. Learning progress stays in local extension storage while the preference and configured bindings use Chrome sync.
- Clone this repository.
- Open
chrome://extensionsand enable Developer mode. - Choose Load unpacked and select the repository folder.
- Refresh a GitLab.com merge-request Changes page.
The five-button control appears beside GitLab's AI-panel button: enable GoLens, enter review focus, cache related MR packages, open MR-local bookmarks, and toggle GitLab's inline/side-by-side diff view. The compact toolbar popup controls global enablement and full-project caching. Use its gear button to open the large tabbed settings overlay on GitLab, where you can configure shortcuts, approve self-hosted origins, manage cached source, or replay the quick tour. After approving a self-hosted HTTP(S) origin, refresh its merge-request page.
npm install
npm run checkThe extension deliberately favors safe, browser-native Go navigation over speculative results: missing or ambiguous symbols do not navigate.
GoLens is available under the MIT License. See the privacy policy, security policy, and third-party notices for more information.


