mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-23 10:08:49 +01:00
GitHub - link provider for various hovers (#237961)
* Initial implementation * Refactor code, add link to blame decoration * Add links to timeline hover * Saving my work * Update remote order for "Open on GitHub" action * Bug fixes * Add link provider for graph hover * Rename method
This commit is contained in:
@@ -12,7 +12,7 @@ import { CommandCenter } from './commands';
|
||||
import { OperationKind, OperationResult } from './operation';
|
||||
import { getCommitShortHash } from './util';
|
||||
import { CommitShortStat } from './git';
|
||||
import { getRemoteSourceControlHistoryItemCommands } from './remoteSource';
|
||||
import { getRemoteSourceControlHistoryItemCommands, provideRemoteSourceLinks } from './remoteSource';
|
||||
|
||||
export class GitTimelineItem extends TimelineItem {
|
||||
static is(item: TimelineItem): item is GitTimelineItem {
|
||||
@@ -215,25 +215,27 @@ export class GitTimelineProvider implements TimelineProvider {
|
||||
|
||||
const openComparison = l10n.t('Open Comparison');
|
||||
|
||||
const defaultRemote = repo.getDefaultRemote();
|
||||
const unpublishedCommits = await repo.getUnpublishedCommits();
|
||||
const remoteSourceCommands: Command[] = defaultRemote?.fetchUrl
|
||||
? await getRemoteSourceControlHistoryItemCommands(defaultRemote.fetchUrl)
|
||||
: [];
|
||||
const remoteSourceCommands = await getRemoteSourceControlHistoryItemCommands(repo);
|
||||
|
||||
const items: GitTimelineItem[] = [];
|
||||
for (let index = 0; index < commits.length; index++) {
|
||||
const c = commits[index];
|
||||
|
||||
const items = commits.map<GitTimelineItem>((c, i) => {
|
||||
const date = dateType === 'authored' ? c.authorDate : c.commitDate;
|
||||
|
||||
const message = emojify(c.message);
|
||||
|
||||
const item = new GitTimelineItem(c.hash, commits[i + 1]?.hash ?? `${c.hash}^`, message, date?.getTime() ?? 0, c.hash, 'git:file:commit');
|
||||
const item = new GitTimelineItem(c.hash, commits[index + 1]?.hash ?? `${c.hash}^`, message, date?.getTime() ?? 0, c.hash, 'git:file:commit');
|
||||
item.iconPath = new ThemeIcon('git-commit');
|
||||
if (showAuthor) {
|
||||
item.description = c.authorName;
|
||||
}
|
||||
|
||||
const commitRemoteSourceCommands = !unpublishedCommits.has(c.hash) ? remoteSourceCommands : [];
|
||||
item.setItemDetails(uri, c.hash, c.authorName!, c.authorEmail, dateFormatter.format(date), message, c.shortStat, commitRemoteSourceCommands);
|
||||
const messageWithLinks = await provideRemoteSourceLinks(repo, message) ?? message;
|
||||
|
||||
item.setItemDetails(uri, c.hash, c.authorName!, c.authorEmail, dateFormatter.format(date), messageWithLinks, c.shortStat, commitRemoteSourceCommands);
|
||||
|
||||
const cmd = this.commands.resolveTimelineOpenDiffCommand(item, uri);
|
||||
if (cmd) {
|
||||
@@ -244,8 +246,8 @@ export class GitTimelineProvider implements TimelineProvider {
|
||||
};
|
||||
}
|
||||
|
||||
return item;
|
||||
});
|
||||
items.push(item);
|
||||
}
|
||||
|
||||
if (options.cursor === undefined) {
|
||||
const you = l10n.t('You');
|
||||
|
||||
Reference in New Issue
Block a user