-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathglobal.d.ts
More file actions
119 lines (105 loc) · 2.66 KB
/
global.d.ts
File metadata and controls
119 lines (105 loc) · 2.66 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import {RootState} from './store/store';
declare global {
interface Commit {
readonly hash: string;
readonly message: string;
readonly parents: string[];
readonly authorDate: string;
readonly authorName: string;
readonly authorEmail?: string | undefined;
commitDate: string;
}
type PostMessageCommand =
| 'requestConfig'
| 'closeTab'
| 'requestRecentCommits'
| 'confirmAmend'
| 'copyFromExtensionMessageBox'
| 'importConfig'
| 'exportConfig'
| 'loadCurrentConfig'
| 'saveToSettings'
| 'openConfigurationPage';
interface PostMessageDO {
command: PostMessageCommand;
payload?: unknown;
}
type MessageEventCommand =
| 'amendPerformed'
| 'copyFromSCMInputBox'
| 'recentCommitMessages'
| 'receiveConfig'
| 'repositoryInfo'
| 'receiveImportedConfig'
| 'statusMessage'
| 'loadCurrentConfig';
interface ReceivedMessageDO {
command: MessageEventCommand;
payload?: unknown;
}
interface VSCodeAPI {
postMessage: (message: PostMessageDO) => void;
getState: () => RootState;
setState: (state: RootState) => void;
}
type TokenType = 'text' | 'boolean' | 'enum';
interface EnumTokenOption {
label: string;
value?: string;
description?: string;
}
interface Token {
label: string;
name: string;
type: TokenType;
value?: string;
options?: EnumTokenOption[];
description?: string;
multiline?: boolean;
monospace?: boolean;
combobox?: boolean;
filter?: string;
lines?: number;
maxLines?: number;
maxLength?: number;
maxLineLength?: number;
multiple?: boolean;
separator?: string;
prefix?: string;
suffix?: string;
isConditionalToken?: boolean;
linkedToken?: Token;
matchValue?: string;
}
type DefaultViewConfig = 'text' | 'form';
type VisibleViewsConfig = 'text' | 'form' | 'both';
interface ExtensionConfig {
confirmAmend: boolean;
dynamicTemplate: string[];
staticTemplate: string[];
tokens: Token[];
reduceEmptyLines: boolean;
view: {
defaultView: DefaultViewConfig;
visibleViews: VisibleViewsConfig;
showRecentCommits: boolean;
saveAndClose: boolean;
fullWidth: boolean;
useMonospaceEditor: boolean;
tabSize: number;
useTabs: boolean;
rulers: number[];
visibleLines: number;
};
}
type ShareableConfig = Pick<
ExtensionConfig,
'dynamicTemplate' | 'staticTemplate' | 'tokens'
>;
interface RepositoryInfo {
numberOfRepositories: number;
selectedRepositoryPath: string;
availableRepositories: string[];
}
function acquireVsCodeApi(): VSCodeAPI;
}