forked from microsoft/vscode-pull-request-github
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresources.ts
More file actions
87 lines (81 loc) · 4.72 KB
/
resources.ts
File metadata and controls
87 lines (81 loc) · 4.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
import * as path from 'path';
import { GitChangeType } from './file';
import { GitFileChangeNode, RemoteFileChangeNode, InMemFileChangeNode } from '../view/treeNodes/fileChangeNode';
export class Resource {
static icons: any;
static initialize(context: vscode.ExtensionContext) {
Resource.icons = {
light: {
Modified: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-modified.svg')),
Added: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-added.svg')),
Deleted: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-deleted.svg')),
Renamed: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-renamed.svg')),
Copied: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-copied.svg')),
Untracked: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-untrackedt.svg')),
Ignored: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-ignored.svg')),
Conflict: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'status-conflict.svg')),
Comment: context.asAbsolutePath(path.join('resources', 'icons', 'comment.svg')),
Fold: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'fold.svg')),
Description: context.asAbsolutePath(path.join('resources', 'icons', 'light', 'git-pull-request.svg'))
},
dark: {
Modified: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-modified.svg')),
Added: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-added.svg')),
Deleted: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-deleted.svg')),
Renamed: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-renamed.svg')),
Copied: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-copied.svg')),
Untracked: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-untracked.svg')),
Ignored: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-ignored.svg')),
Conflict: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'status-conflict.svg')),
Comment: context.asAbsolutePath(path.join('resources', 'icons', 'comment.svg')),
Fold: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'fold.svg')),
Description: context.asAbsolutePath(path.join('resources', 'icons', 'dark', 'git-pull-request.svg'))
},
reactions: {
THUMBS_UP: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'thumbs_up.png')),
THUMBS_DOWN: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'thumbs_down.png')),
CONFUSED: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'confused.png')),
EYES: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'eyes.png')),
HEART: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'heart.png')),
HOORAY: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'hooray.png')),
LAUGH: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'laugh.png')),
ROCKET: context.asAbsolutePath(path.join('resources', 'icons', 'reactions', 'rocket.png')),
}
};
}
static getFileStatusUri(element: GitFileChangeNode | RemoteFileChangeNode | InMemFileChangeNode): vscode.Uri | { light: vscode.Uri, dark: vscode.Uri } {
let iconUri: vscode.Uri;
let iconDarkUri: vscode.Uri;
switch (element.status) {
case GitChangeType.ADD:
iconUri = vscode.Uri.file(Resource.icons.light.Added);
iconDarkUri = vscode.Uri.file(Resource.icons.dark.Added);
break;
case GitChangeType.COPY:
iconUri = vscode.Uri.file(Resource.icons.light.Copied);
iconDarkUri = vscode.Uri.file(Resource.icons.dark.Copied);
break;
case GitChangeType.DELETE:
iconUri = vscode.Uri.file(Resource.icons.light.Deleted);
iconDarkUri = vscode.Uri.file(Resource.icons.dark.Deleted);
break;
case GitChangeType.MODIFY:
iconUri = vscode.Uri.file(Resource.icons.light.Modified);
iconDarkUri = vscode.Uri.file(Resource.icons.dark.Modified);
break;
case GitChangeType.RENAME:
iconUri = vscode.Uri.file(Resource.icons.light.Renamed);
iconDarkUri = vscode.Uri.file(Resource.icons.dark.Renamed);
break;
}
return {
light: iconUri!,
dark: iconDarkUri!
};
}
}