@theia/scm 1.39.0-next.2 → 1.39.0-next.20

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/lib/browser/decorations/scm-decorations-service.js +1 -1
  2. package/lib/browser/decorations/scm-decorations-service.js.map +1 -1
  3. package/lib/browser/decorations/scm-navigator-decorator.js +1 -1
  4. package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -1
  5. package/lib/browser/decorations/scm-tab-bar-decorator.js +1 -1
  6. package/lib/browser/decorations/scm-tab-bar-decorator.js.map +1 -1
  7. package/lib/browser/dirty-diff/content-lines.js +1 -1
  8. package/lib/browser/dirty-diff/content-lines.js.map +1 -1
  9. package/lib/browser/dirty-diff/content-lines.spec.js +1 -1
  10. package/lib/browser/dirty-diff/content-lines.spec.js.map +1 -1
  11. package/lib/browser/dirty-diff/diff-computer.js +1 -1
  12. package/lib/browser/dirty-diff/diff-computer.js.map +1 -1
  13. package/lib/browser/dirty-diff/diff-computer.spec.js +1 -1
  14. package/lib/browser/dirty-diff/diff-computer.spec.js.map +1 -1
  15. package/lib/browser/dirty-diff/dirty-diff-decorator.js +1 -1
  16. package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +1 -1
  17. package/lib/browser/dirty-diff/dirty-diff-module.js +1 -1
  18. package/lib/browser/dirty-diff/dirty-diff-module.js.map +1 -1
  19. package/lib/browser/scm-amend-component.js +1 -1
  20. package/lib/browser/scm-amend-component.js.map +1 -1
  21. package/lib/browser/scm-amend-widget.js +1 -1
  22. package/lib/browser/scm-amend-widget.js.map +1 -1
  23. package/lib/browser/scm-avatar-service.js +1 -1
  24. package/lib/browser/scm-avatar-service.js.map +1 -1
  25. package/lib/browser/scm-commit-widget.js +1 -1
  26. package/lib/browser/scm-commit-widget.js.map +1 -1
  27. package/lib/browser/scm-context-key-service.js +1 -1
  28. package/lib/browser/scm-context-key-service.js.map +1 -1
  29. package/lib/browser/scm-contribution.js +1 -1
  30. package/lib/browser/scm-contribution.js.map +1 -1
  31. package/lib/browser/scm-frontend-module.js +1 -1
  32. package/lib/browser/scm-frontend-module.js.map +1 -1
  33. package/lib/browser/scm-groups-tree-model.js +1 -1
  34. package/lib/browser/scm-groups-tree-model.js.map +1 -1
  35. package/lib/browser/scm-input.js +1 -1
  36. package/lib/browser/scm-input.js.map +1 -1
  37. package/lib/browser/scm-layout-migrations.js +1 -1
  38. package/lib/browser/scm-layout-migrations.js.map +1 -1
  39. package/lib/browser/scm-no-repository-widget.js +1 -1
  40. package/lib/browser/scm-no-repository-widget.js.map +1 -1
  41. package/lib/browser/scm-preferences.js +1 -1
  42. package/lib/browser/scm-preferences.js.map +1 -1
  43. package/lib/browser/scm-provider.d.ts +2 -0
  44. package/lib/browser/scm-provider.d.ts.map +1 -1
  45. package/lib/browser/scm-provider.js +1 -1
  46. package/lib/browser/scm-provider.js.map +1 -1
  47. package/lib/browser/scm-quick-open-service.js +1 -1
  48. package/lib/browser/scm-quick-open-service.js.map +1 -1
  49. package/lib/browser/scm-repository.js +1 -1
  50. package/lib/browser/scm-repository.js.map +1 -1
  51. package/lib/browser/scm-service.js +1 -1
  52. package/lib/browser/scm-service.js.map +1 -1
  53. package/lib/browser/scm-tree-label-provider.js +1 -1
  54. package/lib/browser/scm-tree-label-provider.js.map +1 -1
  55. package/lib/browser/scm-tree-model.js +1 -1
  56. package/lib/browser/scm-tree-model.js.map +1 -1
  57. package/lib/browser/scm-tree-widget.d.ts +5 -0
  58. package/lib/browser/scm-tree-widget.d.ts.map +1 -1
  59. package/lib/browser/scm-tree-widget.js +28 -6
  60. package/lib/browser/scm-tree-widget.js.map +1 -1
  61. package/lib/browser/scm-widget.js +1 -1
  62. package/lib/browser/scm-widget.js.map +1 -1
  63. package/package.json +6 -6
  64. package/src/browser/decorations/scm-decorations-service.ts +1 -1
  65. package/src/browser/decorations/scm-navigator-decorator.ts +1 -1
  66. package/src/browser/decorations/scm-tab-bar-decorator.ts +1 -1
  67. package/src/browser/dirty-diff/content-lines.spec.ts +1 -1
  68. package/src/browser/dirty-diff/content-lines.ts +1 -1
  69. package/src/browser/dirty-diff/diff-computer.spec.ts +1 -1
  70. package/src/browser/dirty-diff/diff-computer.ts +1 -1
  71. package/src/browser/dirty-diff/dirty-diff-decorator.ts +1 -1
  72. package/src/browser/dirty-diff/dirty-diff-module.ts +1 -1
  73. package/src/browser/scm-amend-component.tsx +1 -1
  74. package/src/browser/scm-amend-widget.tsx +1 -1
  75. package/src/browser/scm-avatar-service.ts +1 -1
  76. package/src/browser/scm-commit-widget.tsx +1 -1
  77. package/src/browser/scm-context-key-service.ts +1 -1
  78. package/src/browser/scm-contribution.ts +1 -1
  79. package/src/browser/scm-frontend-module.ts +1 -1
  80. package/src/browser/scm-groups-tree-model.ts +1 -1
  81. package/src/browser/scm-input.ts +1 -1
  82. package/src/browser/scm-layout-migrations.ts +1 -1
  83. package/src/browser/scm-no-repository-widget.tsx +1 -1
  84. package/src/browser/scm-preferences.ts +1 -1
  85. package/src/browser/scm-provider.ts +3 -1
  86. package/src/browser/scm-quick-open-service.ts +1 -1
  87. package/src/browser/scm-repository.ts +1 -1
  88. package/src/browser/scm-service.ts +1 -1
  89. package/src/browser/scm-tree-label-provider.ts +1 -1
  90. package/src/browser/scm-tree-model.ts +1 -1
  91. package/src/browser/scm-tree-widget.tsx +26 -6
  92. package/src/browser/scm-widget.tsx +1 -1
  93. package/src/browser/style/dirty-diff.css +14 -14
  94. package/src/browser/style/index.css +119 -111
  95. package/src/browser/style/scm-amend-component.css +46 -46
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/scm",
3
- "version": "1.39.0-next.2+d6b5c5ce2",
3
+ "version": "1.39.0-next.20+7012fd29f",
4
4
  "description": "Theia - Source control Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.39.0-next.2+d6b5c5ce2",
7
- "@theia/editor": "1.39.0-next.2+d6b5c5ce2",
8
- "@theia/filesystem": "1.39.0-next.2+d6b5c5ce2",
6
+ "@theia/core": "1.39.0-next.20+7012fd29f",
7
+ "@theia/editor": "1.39.0-next.20+7012fd29f",
8
+ "@theia/filesystem": "1.39.0-next.20+7012fd29f",
9
9
  "@types/diff": "^3.2.2",
10
10
  "diff": "^3.4.0",
11
11
  "p-debounce": "^2.1.0",
@@ -23,7 +23,7 @@
23
23
  "keywords": [
24
24
  "theia-extension"
25
25
  ],
26
- "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
26
+ "license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
27
27
  "repository": {
28
28
  "type": "git",
29
29
  "url": "https://github.com/eclipse-theia/theia.git"
@@ -50,5 +50,5 @@
50
50
  "nyc": {
51
51
  "extends": "../../configs/nyc.json"
52
52
  },
53
- "gitHead": "d6b5c5ce2601983f06797fe8c4db0fb642c5d1e7"
53
+ "gitHead": "7012fd29fa9d3e78327e4f0d678ef4bae58c15e8"
54
54
  }
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { inject, injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import * as chai from 'chai';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  export interface ContentLines extends ArrayLike<string> {
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import * as chai from 'chai';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import * as jsdiff from 'diff';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { interfaces } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import '../../src/browser/style/scm-amend-component.css';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
  import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
17
17
  import { Emitter } from '@theia/core/lib/common/event';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import '../../src/browser/style/index.css';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { interfaces } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -58,6 +58,8 @@ export interface ScmResource {
58
58
  }
59
59
 
60
60
  export interface ScmResourceDecorations {
61
+ icon?: string;
62
+ iconDark?: string;
61
63
  tooltip?: string;
62
64
  source?: string;
63
65
  letter?: string;
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject, optional } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { Disposable, DisposableCollection, Emitter } from '@theia/core/lib/common';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { inject, injectable } from '@theia/core/shared/inversify';
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject } from '@theia/core/shared/inversify';
@@ -11,13 +11,13 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  /* eslint-disable no-null/no-null, @typescript-eslint/no-explicit-any */
18
18
 
19
19
  import * as React from '@theia/core/shared/react';
20
- import { injectable, inject } from '@theia/core/shared/inversify';
20
+ import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
21
21
  import URI from '@theia/core/lib/common/uri';
22
22
  import { isOSX } from '@theia/core/lib/common/os';
23
23
  import { DisposableCollection, Disposable } from '@theia/core/lib/common/disposable';
@@ -32,6 +32,7 @@ import { IconThemeService } from '@theia/core/lib/browser/icon-theme-service';
32
32
  import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
33
33
  import { Decoration, DecorationsService } from '@theia/core/lib/browser/decorations-service';
34
34
  import { FileStat } from '@theia/filesystem/lib/common/files';
35
+ import { ThemeService } from '@theia/core/lib/browser/theming';
35
36
 
36
37
  @injectable()
37
38
  export class ScmTreeWidget extends TreeWidget {
@@ -55,6 +56,7 @@ export class ScmTreeWidget extends TreeWidget {
55
56
  @inject(IconThemeService) protected readonly iconThemeService: IconThemeService;
56
57
  @inject(DecorationsService) protected readonly decorationsService: DecorationsService;
57
58
  @inject(ColorRegistry) protected readonly colors: ColorRegistry;
59
+ @inject(ThemeService) protected readonly themeService: ThemeService;
58
60
 
59
61
  // TODO: Make TreeWidget generic to better type those fields.
60
62
  override readonly model: ScmTreeModel;
@@ -69,6 +71,12 @@ export class ScmTreeWidget extends TreeWidget {
69
71
  this.addClass('groups-outer-container');
70
72
  }
71
73
 
74
+ @postConstruct()
75
+ protected override init(): void {
76
+ super.init();
77
+ this.toDispose.push(this.themeService.onDidColorThemeChange(() => this.update()));
78
+ }
79
+
72
80
  set viewMode(id: 'tree' | 'list') {
73
81
  // Close the search box because the structure of the tree will change dramatically
74
82
  // and the search results will be out of date.
@@ -153,6 +161,7 @@ export class ScmTreeWidget extends TreeWidget {
153
161
  sourceUri: node.sourceUri,
154
162
  decoration: this.decorationsService.getDecoration(new URI(node.sourceUri), true)[0],
155
163
  colors: this.colors,
164
+ isLightTheme: this.isCurrentThemeLight(),
156
165
  renderExpansionToggle: () => this.renderExpansionToggle(node, props),
157
166
  }}
158
167
  />;
@@ -436,6 +445,11 @@ export class ScmTreeWidget extends TreeWidget {
436
445
  return super.getPaddingLeft(node, props);
437
446
  }
438
447
 
448
+ protected isCurrentThemeLight(): boolean {
449
+ const type = this.themeService.getCurrentTheme().type;
450
+ return type.toLocaleLowerCase().includes('light');
451
+ }
452
+
439
453
  protected override needsExpansionTogglePadding(node: TreeNode): boolean {
440
454
  const theme = this.iconThemeService.getDefinition(this.iconThemeService.current);
441
455
  if (theme && (theme.hidesExplorerArrows || (theme.hasFileIcons && !theme.hasFolderIcons))) {
@@ -528,12 +542,16 @@ export class ScmResourceComponent extends ScmElement<ScmResourceComponent.Props>
528
542
 
529
543
  override render(): JSX.Element | undefined {
530
544
  const { hover } = this.state;
531
- const { model, treeNode, colors, parentPath, sourceUri, decoration, labelProvider, commandExecutor, menus, contextKeys, caption } = this.props;
545
+ const { model, treeNode, colors, parentPath, sourceUri, decoration, labelProvider, commandExecutor, menus, contextKeys, caption, isLightTheme } = this.props;
532
546
  const resourceUri = new URI(sourceUri);
533
547
 
548
+ const decorationIcon = treeNode.decorations;
549
+ const themedIcon = isLightTheme ? decorationIcon?.icon : decorationIcon?.iconDark;
550
+ const classNames: string[] = themedIcon ? ['decoration-icon', themedIcon] : ['decoration-icon', 'status'];
551
+
534
552
  const icon = labelProvider.getIcon(resourceUri);
535
- const color = decoration && decoration.colorId ? `var(${colors.toCssVariableName(decoration.colorId)})` : '';
536
- const letter = decoration && decoration.letter || '';
553
+ const color = decoration && decoration.colorId && !themedIcon ? `var(${colors.toCssVariableName(decoration.colorId)})` : '';
554
+ const letter = decoration && decoration.letter && !themedIcon ? decoration.letter : '';
537
555
  const tooltip = decoration && decoration.tooltip || '';
538
556
  const textDecoration = treeNode.decorations?.strikeThrough === true ? 'line-through' : 'normal';
539
557
  const relativePath = parentPath.relative(resourceUri.parent);
@@ -567,7 +585,7 @@ export class ScmResourceComponent extends ScmElement<ScmResourceComponent.Props>
567
585
  model,
568
586
  treeNode
569
587
  }}>
570
- <div title={tooltip} className='status' style={{ color }}>
588
+ <div title={tooltip} className={classNames.join(' ')} style={{ color }}>
571
589
  {letter}
572
590
  </div>
573
591
  </ScmInlineActions>
@@ -630,6 +648,7 @@ export class ScmResourceComponent extends ScmElement<ScmResourceComponent.Props>
630
648
  }
631
649
  };
632
650
  }
651
+
633
652
  export namespace ScmResourceComponent {
634
653
  export interface Props extends ScmElement.Props {
635
654
  treeNode: ScmFileChangeNode;
@@ -637,6 +656,7 @@ export namespace ScmResourceComponent {
637
656
  sourceUri: string;
638
657
  decoration: Decoration | undefined;
639
658
  colors: ColorRegistry;
659
+ isLightTheme: boolean
640
660
  }
641
661
  }
642
662
 
@@ -11,7 +11,7 @@
11
11
  // with the GNU Classpath Exception which is available at
12
12
  // https://www.gnu.org/software/classpath/license.html.
13
13
  //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
17
  /* eslint-disable no-null/no-null, @typescript-eslint/no-explicit-any */
@@ -11,40 +11,40 @@
11
11
  * with the GNU Classpath Exception which is available at
12
12
  * https://www.gnu.org/software/classpath/license.html.
13
13
  *
14
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- @import 'dirty-diff-decorator.css';
17
+ @import "dirty-diff-decorator.css";
18
18
 
19
19
  .monaco-editor .dirty-diff-added-line {
20
- border-left: 3px solid var(--theia-editorGutter-addedBackground);
21
- transition: opacity 0.5s;
20
+ border-left: 3px solid var(--theia-editorGutter-addedBackground);
21
+ transition: opacity 0.5s;
22
22
  }
23
23
  .monaco-editor .dirty-diff-added-line:before {
24
- background: var(--theia-editorGutter-addedBackground);
24
+ background: var(--theia-editorGutter-addedBackground);
25
25
  }
26
26
  .monaco-editor .margin:hover .dirty-diff-added-line {
27
- opacity: 1;
27
+ opacity: 1;
28
28
  }
29
29
 
30
30
  .monaco-editor .dirty-diff-removed-line:after {
31
- border-left: 4px solid var(--theia-editorGutter-deletedBackground);
32
- transition: opacity 0.5s;
31
+ border-left: 4px solid var(--theia-editorGutter-deletedBackground);
32
+ transition: opacity 0.5s;
33
33
  }
34
34
  .monaco-editor .dirty-diff-removed-line:before {
35
- background: var(--theia-editorGutter-deletedBackground);
35
+ background: var(--theia-editorGutter-deletedBackground);
36
36
  }
37
37
  .monaco-editor .margin:hover .dirty-diff-removed-line {
38
- opacity: 1;
38
+ opacity: 1;
39
39
  }
40
40
 
41
41
  .monaco-editor .dirty-diff-modified-line {
42
- border-left: 3px solid var(--theia-editorGutter-modifiedBackground);
43
- transition: opacity 0.5s;
42
+ border-left: 3px solid var(--theia-editorGutter-modifiedBackground);
43
+ transition: opacity 0.5s;
44
44
  }
45
45
  .monaco-editor .dirty-diff-modified-line:before {
46
- background: var(--theia-editorGutter-modifiedBackground);
46
+ background: var(--theia-editorGutter-modifiedBackground);
47
47
  }
48
48
  .monaco-editor .margin:hover .dirty-diff-modified-line {
49
- opacity: 1;
49
+ opacity: 1;
50
50
  }