diff --git a/src/git/remotes/gitlab.ts b/src/git/remotes/gitlab.ts index 60e99d0..76486e1 100644 --- a/src/git/remotes/gitlab.ts +++ b/src/git/remotes/gitlab.ts @@ -1,4 +1,5 @@ 'use strict'; +import { Range } from 'vscode'; import { GitHubService } from './github'; export class GitLabService extends GitHubService { @@ -10,4 +11,20 @@ export class GitLabService extends GitHubService { get name() { return this.formatName('GitLab'); } + + protected getUrlForFile(fileName: string, branch?: string, sha?: string, range?: Range): string { + let line = ''; + if (range) { + if (range.start.line === range.end.line) { + line = `#L${range.start.line}`; + } + else { + line = `#L${range.start.line}-${range.end.line}`; + } + } + + if (sha) return `${this.baseUrl}/blob/${sha}/${fileName}${line}`; + if (branch) return `${this.baseUrl}/blob/${branch}/${fileName}${line}`; + return `${this.baseUrl}?path=${fileName}${line}`; + } } \ No newline at end of file