@theia/scm 1.34.3 → 1.34.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/LICENSE +641 -641
  2. package/README.md +31 -31
  3. package/lib/browser/decorations/scm-decorations-service.d.ts +14 -14
  4. package/lib/browser/decorations/scm-decorations-service.js +101 -101
  5. package/lib/browser/decorations/scm-navigator-decorator.d.ts +25 -25
  6. package/lib/browser/decorations/scm-navigator-decorator.js +132 -132
  7. package/lib/browser/decorations/scm-tab-bar-decorator.d.ts +17 -17
  8. package/lib/browser/decorations/scm-tab-bar-decorator.js +93 -93
  9. package/lib/browser/dirty-diff/content-lines.d.ts +12 -12
  10. package/lib/browser/dirty-diff/content-lines.js +106 -106
  11. package/lib/browser/dirty-diff/content-lines.spec.d.ts +1 -1
  12. package/lib/browser/dirty-diff/content-lines.spec.js +39 -39
  13. package/lib/browser/dirty-diff/diff-computer.d.ts +29 -29
  14. package/lib/browser/dirty-diff/diff-computer.js +102 -102
  15. package/lib/browser/dirty-diff/diff-computer.spec.d.ts +1 -1
  16. package/lib/browser/dirty-diff/diff-computer.spec.js +315 -315
  17. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +14 -14
  18. package/lib/browser/dirty-diff/dirty-diff-decorator.js +98 -98
  19. package/lib/browser/dirty-diff/dirty-diff-module.d.ts +3 -3
  20. package/lib/browser/dirty-diff/dirty-diff-module.js +24 -24
  21. package/lib/browser/scm-amend-component.d.ts +123 -123
  22. package/lib/browser/scm-amend-component.js +423 -423
  23. package/lib/browser/scm-amend-widget.d.ts +20 -20
  24. package/lib/browser/scm-amend-widget.js +101 -101
  25. package/lib/browser/scm-avatar-service.d.ts +3 -3
  26. package/lib/browser/scm-avatar-service.js +36 -36
  27. package/lib/browser/scm-commit-widget.d.ts +52 -52
  28. package/lib/browser/scm-commit-widget.js +199 -199
  29. package/lib/browser/scm-context-key-service.d.ts +10 -10
  30. package/lib/browser/scm-context-key-service.js +58 -58
  31. package/lib/browser/scm-contribution.d.ts +83 -83
  32. package/lib/browser/scm-contribution.js +353 -353
  33. package/lib/browser/scm-frontend-module.d.ts +6 -6
  34. package/lib/browser/scm-frontend-module.js +130 -130
  35. package/lib/browser/scm-groups-tree-model.d.ts +14 -14
  36. package/lib/browser/scm-groups-tree-model.js +97 -97
  37. package/lib/browser/scm-input.d.ts +53 -53
  38. package/lib/browser/scm-input.js +127 -127
  39. package/lib/browser/scm-layout-migrations.d.ts +9 -9
  40. package/lib/browser/scm-layout-migrations.js +79 -79
  41. package/lib/browser/scm-no-repository-widget.d.ts +8 -8
  42. package/lib/browser/scm-no-repository-widget.js +49 -49
  43. package/lib/browser/scm-preferences.d.ts +11 -11
  44. package/lib/browser/scm-preferences.js +51 -51
  45. package/lib/browser/scm-provider.d.ts +56 -56
  46. package/lib/browser/scm-provider.js +19 -19
  47. package/lib/browser/scm-quick-open-service.d.ts +11 -11
  48. package/lib/browser/scm-quick-open-service.js +73 -73
  49. package/lib/browser/scm-repository.d.ts +17 -17
  50. package/lib/browser/scm-repository.js +41 -41
  51. package/lib/browser/scm-service.d.ts +26 -26
  52. package/lib/browser/scm-service.js +108 -108
  53. package/lib/browser/scm-tree-label-provider.d.ts +7 -7
  54. package/lib/browser/scm-tree-label-provider.js +57 -57
  55. package/lib/browser/scm-tree-model.d.ts +74 -74
  56. package/lib/browser/scm-tree-model.js +348 -348
  57. package/lib/browser/scm-tree-widget.d.ts +201 -201
  58. package/lib/browser/scm-tree-widget.js +664 -664
  59. package/lib/browser/scm-widget.d.ts +40 -40
  60. package/lib/browser/scm-widget.js +218 -218
  61. package/package.json +6 -6
  62. package/src/browser/decorations/scm-decorations-service.ts +78 -78
  63. package/src/browser/decorations/scm-navigator-decorator.ts +121 -121
  64. package/src/browser/decorations/scm-tab-bar-decorator.ts +83 -83
  65. package/src/browser/dirty-diff/content-lines.spec.ts +42 -42
  66. package/src/browser/dirty-diff/content-lines.ts +112 -112
  67. package/src/browser/dirty-diff/diff-computer.spec.ts +387 -387
  68. package/src/browser/dirty-diff/diff-computer.ts +129 -129
  69. package/src/browser/dirty-diff/dirty-diff-decorator.ts +107 -107
  70. package/src/browser/dirty-diff/dirty-diff-module.ts +24 -24
  71. package/src/browser/scm-amend-component.tsx +600 -600
  72. package/src/browser/scm-amend-widget.tsx +77 -77
  73. package/src/browser/scm-avatar-service.ts +27 -27
  74. package/src/browser/scm-commit-widget.tsx +215 -215
  75. package/src/browser/scm-context-key-service.ts +46 -46
  76. package/src/browser/scm-contribution.ts +361 -361
  77. package/src/browser/scm-frontend-module.ts +149 -149
  78. package/src/browser/scm-groups-tree-model.ts +78 -78
  79. package/src/browser/scm-input.ts +164 -164
  80. package/src/browser/scm-layout-migrations.ts +64 -64
  81. package/src/browser/scm-no-repository-widget.tsx +41 -41
  82. package/src/browser/scm-preferences.ts +63 -63
  83. package/src/browser/scm-provider.ts +89 -89
  84. package/src/browser/scm-quick-open-service.ts +48 -48
  85. package/src/browser/scm-repository.ts +52 -52
  86. package/src/browser/scm-service.ts +108 -108
  87. package/src/browser/scm-tree-label-provider.ts +44 -44
  88. package/src/browser/scm-tree-model.ts +405 -405
  89. package/src/browser/scm-tree-widget.tsx +809 -809
  90. package/src/browser/scm-widget.tsx +204 -204
  91. package/src/browser/style/dirty-diff-decorator.css +52 -52
  92. package/src/browser/style/dirty-diff.css +50 -50
  93. package/src/browser/style/index.css +267 -267
  94. package/src/browser/style/scm-amend-component.css +94 -94
  95. package/src/browser/style/scm.svg +4 -4
@@ -1,63 +1,63 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2020 Ericsson and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- import { interfaces } from '@theia/core/shared/inversify';
18
- import {
19
- createPreferenceProxy,
20
- PreferenceProxy,
21
- PreferenceService,
22
- PreferenceSchema,
23
- PreferenceContribution
24
- } from '@theia/core/lib/browser/preferences';
25
- import { nls } from '@theia/core/lib/common/nls';
26
-
27
- export const scmPreferenceSchema: PreferenceSchema = {
28
- type: 'object',
29
- properties: {
30
- 'scm.defaultViewMode': {
31
- type: 'string',
32
- enum: ['tree', 'list'],
33
- enumDescriptions: [
34
- nls.localizeByDefault('Show the repository changes as a tree.'),
35
- nls.localizeByDefault('Show the repository changes as a list.')
36
- ],
37
- description: nls.localizeByDefault('Controls the default Source Control repository view mode.'),
38
- default: 'list'
39
- }
40
- }
41
- };
42
-
43
- export interface ScmConfiguration {
44
- 'scm.defaultViewMode': 'tree' | 'list'
45
- }
46
-
47
- export const ScmPreferenceContribution = Symbol('ScmPreferenceContribution');
48
- export const ScmPreferences = Symbol('ScmPreferences');
49
- export type ScmPreferences = PreferenceProxy<ScmConfiguration>;
50
-
51
- export function createScmPreferences(preferences: PreferenceService, schema: PreferenceSchema = scmPreferenceSchema): ScmPreferences {
52
- return createPreferenceProxy(preferences, schema);
53
- }
54
-
55
- export function bindScmPreferences(bind: interfaces.Bind): void {
56
- bind(ScmPreferences).toDynamicValue((ctx: interfaces.Context) => {
57
- const preferences = ctx.container.get<PreferenceService>(PreferenceService);
58
- const contribution = ctx.container.get<PreferenceContribution>(ScmPreferenceContribution);
59
- return createScmPreferences(preferences, contribution.schema);
60
- }).inSingletonScope();
61
- bind(ScmPreferenceContribution).toConstantValue({ schema: scmPreferenceSchema });
62
- bind(PreferenceContribution).toService(ScmPreferenceContribution);
63
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2020 Ericsson and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { interfaces } from '@theia/core/shared/inversify';
18
+ import {
19
+ createPreferenceProxy,
20
+ PreferenceProxy,
21
+ PreferenceService,
22
+ PreferenceSchema,
23
+ PreferenceContribution
24
+ } from '@theia/core/lib/browser/preferences';
25
+ import { nls } from '@theia/core/lib/common/nls';
26
+
27
+ export const scmPreferenceSchema: PreferenceSchema = {
28
+ type: 'object',
29
+ properties: {
30
+ 'scm.defaultViewMode': {
31
+ type: 'string',
32
+ enum: ['tree', 'list'],
33
+ enumDescriptions: [
34
+ nls.localizeByDefault('Show the repository changes as a tree.'),
35
+ nls.localizeByDefault('Show the repository changes as a list.')
36
+ ],
37
+ description: nls.localizeByDefault('Controls the default Source Control repository view mode.'),
38
+ default: 'list'
39
+ }
40
+ }
41
+ };
42
+
43
+ export interface ScmConfiguration {
44
+ 'scm.defaultViewMode': 'tree' | 'list'
45
+ }
46
+
47
+ export const ScmPreferenceContribution = Symbol('ScmPreferenceContribution');
48
+ export const ScmPreferences = Symbol('ScmPreferences');
49
+ export type ScmPreferences = PreferenceProxy<ScmConfiguration>;
50
+
51
+ export function createScmPreferences(preferences: PreferenceService, schema: PreferenceSchema = scmPreferenceSchema): ScmPreferences {
52
+ return createPreferenceProxy(preferences, schema);
53
+ }
54
+
55
+ export function bindScmPreferences(bind: interfaces.Bind): void {
56
+ bind(ScmPreferences).toDynamicValue((ctx: interfaces.Context) => {
57
+ const preferences = ctx.container.get<PreferenceService>(PreferenceService);
58
+ const contribution = ctx.container.get<PreferenceContribution>(ScmPreferenceContribution);
59
+ return createScmPreferences(preferences, contribution.schema);
60
+ }).inSingletonScope();
61
+ bind(ScmPreferenceContribution).toConstantValue({ schema: scmPreferenceSchema });
62
+ bind(PreferenceContribution).toService(ScmPreferenceContribution);
63
+ }
@@ -1,89 +1,89 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2019 Red Hat, Inc. and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- /* eslint-disable @typescript-eslint/no-explicit-any */
18
-
19
- import { Disposable, Event } from '@theia/core/lib/common';
20
- import URI from '@theia/core/lib/common/uri';
21
-
22
- export interface ScmProvider extends Disposable {
23
- readonly id: string;
24
- readonly label: string;
25
- readonly rootUri: string;
26
-
27
- readonly acceptInputCommand?: ScmCommand;
28
-
29
- readonly groups: ScmResourceGroup[];
30
- readonly onDidChange: Event<void>;
31
- readonly onDidChangeResources?: Event<void>;
32
-
33
- readonly statusBarCommands?: ScmCommand[];
34
- readonly onDidChangeStatusBarCommands?: Event<ScmCommand[] | undefined>;
35
-
36
- readonly onDidChangeCommitTemplate: Event<string>;
37
-
38
- readonly amendSupport?: ScmAmendSupport;
39
- }
40
-
41
- export const ScmResourceGroup = Symbol('ScmResourceGroup');
42
- export interface ScmResourceGroup extends Disposable {
43
- readonly id: string;
44
- readonly label: string;
45
- readonly resources: ScmResource[];
46
- readonly hideWhenEmpty?: boolean;
47
-
48
- readonly provider: ScmProvider;
49
- }
50
-
51
- export interface ScmResource {
52
- /** The uri of the underlying resource inside the workspace. */
53
- readonly sourceUri: URI;
54
- readonly decorations?: ScmResourceDecorations;
55
- open(): Promise<void>;
56
-
57
- readonly group: ScmResourceGroup;
58
- }
59
-
60
- export interface ScmResourceDecorations {
61
- tooltip?: string;
62
- source?: string;
63
- letter?: string;
64
- color?: string;
65
- strikeThrough?: boolean;
66
- }
67
-
68
- export interface ScmCommand {
69
- title: string;
70
- tooltip?: string;
71
- command?: string;
72
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- arguments?: any[];
74
- }
75
-
76
- export interface ScmCommit {
77
- readonly id: string; // eg Git sha or Mercurial revision number
78
- readonly summary: string;
79
- readonly authorName: string;
80
- readonly authorEmail: string;
81
- readonly authorDateRelative: string;
82
- }
83
-
84
- export interface ScmAmendSupport {
85
- getInitialAmendingCommits(amendingHeadCommitId: string, latestCommitId: string | undefined): Promise<ScmCommit[]>
86
- getMessage(commit: string): Promise<string>;
87
- reset(commit: string): Promise<void>;
88
- getLastCommit(): Promise<ScmCommit | undefined>;
89
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2019 Red Hat, Inc. and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+
19
+ import { Disposable, Event } from '@theia/core/lib/common';
20
+ import URI from '@theia/core/lib/common/uri';
21
+
22
+ export interface ScmProvider extends Disposable {
23
+ readonly id: string;
24
+ readonly label: string;
25
+ readonly rootUri: string;
26
+
27
+ readonly acceptInputCommand?: ScmCommand;
28
+
29
+ readonly groups: ScmResourceGroup[];
30
+ readonly onDidChange: Event<void>;
31
+ readonly onDidChangeResources?: Event<void>;
32
+
33
+ readonly statusBarCommands?: ScmCommand[];
34
+ readonly onDidChangeStatusBarCommands?: Event<ScmCommand[] | undefined>;
35
+
36
+ readonly onDidChangeCommitTemplate: Event<string>;
37
+
38
+ readonly amendSupport?: ScmAmendSupport;
39
+ }
40
+
41
+ export const ScmResourceGroup = Symbol('ScmResourceGroup');
42
+ export interface ScmResourceGroup extends Disposable {
43
+ readonly id: string;
44
+ readonly label: string;
45
+ readonly resources: ScmResource[];
46
+ readonly hideWhenEmpty?: boolean;
47
+
48
+ readonly provider: ScmProvider;
49
+ }
50
+
51
+ export interface ScmResource {
52
+ /** The uri of the underlying resource inside the workspace. */
53
+ readonly sourceUri: URI;
54
+ readonly decorations?: ScmResourceDecorations;
55
+ open(): Promise<void>;
56
+
57
+ readonly group: ScmResourceGroup;
58
+ }
59
+
60
+ export interface ScmResourceDecorations {
61
+ tooltip?: string;
62
+ source?: string;
63
+ letter?: string;
64
+ color?: string;
65
+ strikeThrough?: boolean;
66
+ }
67
+
68
+ export interface ScmCommand {
69
+ title: string;
70
+ tooltip?: string;
71
+ command?: string;
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ arguments?: any[];
74
+ }
75
+
76
+ export interface ScmCommit {
77
+ readonly id: string; // eg Git sha or Mercurial revision number
78
+ readonly summary: string;
79
+ readonly authorName: string;
80
+ readonly authorEmail: string;
81
+ readonly authorDateRelative: string;
82
+ }
83
+
84
+ export interface ScmAmendSupport {
85
+ getInitialAmendingCommits(amendingHeadCommitId: string, latestCommitId: string | undefined): Promise<ScmCommit[]>
86
+ getMessage(commit: string): Promise<string>;
87
+ reset(commit: string): Promise<void>;
88
+ getLastCommit(): Promise<ScmCommit | undefined>;
89
+ }
@@ -1,48 +1,48 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2017 TypeFox and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- import { injectable, inject, optional } from '@theia/core/shared/inversify';
18
- import { MessageService } from '@theia/core/lib/common/message-service';
19
- import URI from '@theia/core/lib/common/uri';
20
- import { ScmService } from './scm-service';
21
- import { LabelProvider } from '@theia/core/lib/browser/label-provider';
22
- import { QuickInputService } from '@theia/core/lib/browser';
23
-
24
- @injectable()
25
- export class ScmQuickOpenService {
26
-
27
- @inject(QuickInputService) @optional() protected readonly quickInputService: QuickInputService;
28
- @inject(MessageService) protected readonly messageService: MessageService;
29
- @inject(LabelProvider) protected readonly labelProvider: LabelProvider;
30
- @inject(ScmService) protected readonly scmService: ScmService;
31
-
32
- async changeRepository(): Promise<void> {
33
- const repositories = this.scmService.repositories;
34
- if (repositories.length > 1) {
35
- const items = await Promise.all(repositories.map(async repository => {
36
- const uri = new URI(repository.provider.rootUri);
37
- return {
38
- label: this.labelProvider.getName(uri),
39
- description: this.labelProvider.getLongName(uri),
40
- execute: () => {
41
- this.scmService.selectedRepository = repository;
42
- }
43
- };
44
- }));
45
- this.quickInputService?.showQuickPick(items, { placeholder: 'Select repository to work with:' });
46
- }
47
- }
48
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2017 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { injectable, inject, optional } from '@theia/core/shared/inversify';
18
+ import { MessageService } from '@theia/core/lib/common/message-service';
19
+ import URI from '@theia/core/lib/common/uri';
20
+ import { ScmService } from './scm-service';
21
+ import { LabelProvider } from '@theia/core/lib/browser/label-provider';
22
+ import { QuickInputService } from '@theia/core/lib/browser';
23
+
24
+ @injectable()
25
+ export class ScmQuickOpenService {
26
+
27
+ @inject(QuickInputService) @optional() protected readonly quickInputService: QuickInputService;
28
+ @inject(MessageService) protected readonly messageService: MessageService;
29
+ @inject(LabelProvider) protected readonly labelProvider: LabelProvider;
30
+ @inject(ScmService) protected readonly scmService: ScmService;
31
+
32
+ async changeRepository(): Promise<void> {
33
+ const repositories = this.scmService.repositories;
34
+ if (repositories.length > 1) {
35
+ const items = await Promise.all(repositories.map(async repository => {
36
+ const uri = new URI(repository.provider.rootUri);
37
+ return {
38
+ label: this.labelProvider.getName(uri),
39
+ description: this.labelProvider.getLongName(uri),
40
+ execute: () => {
41
+ this.scmService.selectedRepository = repository;
42
+ }
43
+ };
44
+ }));
45
+ this.quickInputService?.showQuickPick(items, { placeholder: 'Select repository to work with:' });
46
+ }
47
+ }
48
+ }
@@ -1,52 +1,52 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2019 Red Hat, Inc. and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- import { Disposable, DisposableCollection, Emitter } from '@theia/core/lib/common';
18
- import { ScmInput, ScmInputOptions } from './scm-input';
19
- import { ScmProvider } from './scm-provider';
20
-
21
- export interface ScmProviderOptions {
22
- input?: ScmInputOptions
23
- }
24
-
25
- export class ScmRepository implements Disposable {
26
-
27
- protected readonly onDidChangeEmitter = new Emitter<void>();
28
- readonly onDidChange = this.onDidChangeEmitter.event;
29
- protected fireDidChange(): void {
30
- this.onDidChangeEmitter.fire(undefined);
31
- }
32
-
33
- protected readonly toDispose = new DisposableCollection(this.onDidChangeEmitter);
34
-
35
- readonly input: ScmInput;
36
-
37
- constructor(
38
- readonly provider: ScmProvider,
39
- protected readonly options: ScmProviderOptions = {}
40
- ) {
41
- this.toDispose.pushAll([
42
- this.provider,
43
- this.input = new ScmInput(options.input),
44
- this.input.onDidChange(() => this.fireDidChange())
45
- ]);
46
- }
47
-
48
- dispose(): void {
49
- this.toDispose.dispose();
50
- }
51
-
52
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2019 Red Hat, Inc. and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { Disposable, DisposableCollection, Emitter } from '@theia/core/lib/common';
18
+ import { ScmInput, ScmInputOptions } from './scm-input';
19
+ import { ScmProvider } from './scm-provider';
20
+
21
+ export interface ScmProviderOptions {
22
+ input?: ScmInputOptions
23
+ }
24
+
25
+ export class ScmRepository implements Disposable {
26
+
27
+ protected readonly onDidChangeEmitter = new Emitter<void>();
28
+ readonly onDidChange = this.onDidChangeEmitter.event;
29
+ protected fireDidChange(): void {
30
+ this.onDidChangeEmitter.fire(undefined);
31
+ }
32
+
33
+ protected readonly toDispose = new DisposableCollection(this.onDidChangeEmitter);
34
+
35
+ readonly input: ScmInput;
36
+
37
+ constructor(
38
+ readonly provider: ScmProvider,
39
+ protected readonly options: ScmProviderOptions = {}
40
+ ) {
41
+ this.toDispose.pushAll([
42
+ this.provider,
43
+ this.input = new ScmInput(options.input),
44
+ this.input.onDidChange(() => this.fireDidChange())
45
+ ]);
46
+ }
47
+
48
+ dispose(): void {
49
+ this.toDispose.dispose();
50
+ }
51
+
52
+ }