@theia/preferences 1.24.0-next.52 → 1.24.0-next.56
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.
- package/lib/browser/abstract-resource-preference-provider.d.ts +7 -1
- package/lib/browser/abstract-resource-preference-provider.d.ts.map +1 -1
- package/lib/browser/abstract-resource-preference-provider.js +14 -5
- package/lib/browser/abstract-resource-preference-provider.js.map +1 -1
- package/package.json +8 -8
- package/src/browser/abstract-resource-preference-provider.ts +16 -6
|
@@ -3,7 +3,7 @@ import URI from '@theia/core/lib/common/uri';
|
|
|
3
3
|
import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
|
|
4
4
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
5
5
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
6
|
-
import { PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
|
|
6
|
+
import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
|
|
7
7
|
import { Emitter, Event } from '@theia/core';
|
|
8
8
|
export declare abstract class AbstractResourcePreferenceProvider extends PreferenceProvider {
|
|
9
9
|
protected preferences: Record<string, any>;
|
|
@@ -29,6 +29,12 @@ export declare abstract class AbstractResourcePreferenceProvider extends Prefere
|
|
|
29
29
|
};
|
|
30
30
|
setPreference(key: string, value: any, resourceUri?: string): Promise<boolean>;
|
|
31
31
|
protected doSetPreference(key: string, path: string[], value: unknown): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Use this method as intermediary for interactions with actual files.
|
|
34
|
+
* Allows individual providers to modify where they store their files without disrupting the preference system's
|
|
35
|
+
* conventions about scope and file location.
|
|
36
|
+
*/
|
|
37
|
+
protected toFileManager(): PreferenceContext;
|
|
32
38
|
protected getPath(preferenceName: string): string[] | undefined;
|
|
33
39
|
protected readPreferencesFromFile(): Promise<void>;
|
|
34
40
|
protected readPreferencesFromContent(content: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-resource-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAC;AACtI,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract-resource-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAC;AACtI,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,8BACsB,kCAAmC,SAAQ,kBAAkB;IAE/E,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAChD,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,iBAAkB;IAC5C,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,mBAA0B;IAEvE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAK7B;IAED,IAAI,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,CAExC;IAEqC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;cAG9E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG;IAChC,QAAQ,CAAC,QAAQ,IAAI,eAAe;IAEpC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAEQ,YAAY,IAAI,GAAG;IACnB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS;IAQvE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAYlD,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAItD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAQpE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9F;;;;OAIG;IACH,SAAS,CAAC,aAAa,IAAI,iBAAiB;IAI5C,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;cAQ/C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW3D,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IASrC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI;IA8BzE,SAAS,CAAC,KAAK,IAAI,IAAI;CAgB1B"}
|
|
@@ -56,14 +56,15 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
|
|
|
56
56
|
}
|
|
57
57
|
async init() {
|
|
58
58
|
const uri = this.getUri();
|
|
59
|
-
this.toDispose.push(disposable_1.Disposable.create(() => this.loading.reject(new Error(`
|
|
59
|
+
this.toDispose.push(disposable_1.Disposable.create(() => this.loading.reject(new Error(`Preference provider for '${uri}' was disposed.`))));
|
|
60
60
|
await this.readPreferencesFromFile();
|
|
61
61
|
this._ready.resolve();
|
|
62
62
|
this.loading.resolve();
|
|
63
|
+
const storageUri = this.toFileManager().getConfigUri();
|
|
63
64
|
this.toDispose.pushAll([
|
|
64
|
-
this.fileService.watch(
|
|
65
|
+
this.fileService.watch(storageUri),
|
|
65
66
|
this.fileService.onDidFilesChange(e => {
|
|
66
|
-
if (e.contains(
|
|
67
|
+
if (e.contains(storageUri)) {
|
|
67
68
|
this.readPreferencesFromFile();
|
|
68
69
|
}
|
|
69
70
|
}),
|
|
@@ -104,7 +105,7 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
|
|
|
104
105
|
var _a;
|
|
105
106
|
if (!((_a = this.transaction) === null || _a === void 0 ? void 0 : _a.open)) {
|
|
106
107
|
const current = this.transaction;
|
|
107
|
-
this.transaction = this.transactionFactory(this);
|
|
108
|
+
this.transaction = this.transactionFactory(this.toFileManager());
|
|
108
109
|
this.transaction.waitFor(current === null || current === void 0 ? void 0 : current.result);
|
|
109
110
|
this.transaction.onWillConclude(({ status, waitUntil }) => {
|
|
110
111
|
if (status) {
|
|
@@ -118,6 +119,14 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
|
|
|
118
119
|
}
|
|
119
120
|
return this.transaction.enqueueAction(key, path, value);
|
|
120
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Use this method as intermediary for interactions with actual files.
|
|
124
|
+
* Allows individual providers to modify where they store their files without disrupting the preference system's
|
|
125
|
+
* conventions about scope and file location.
|
|
126
|
+
*/
|
|
127
|
+
toFileManager() {
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
121
130
|
getPath(preferenceName) {
|
|
122
131
|
const asOverride = this.preferenceOverrideService.overriddenPreferenceName(preferenceName);
|
|
123
132
|
if (asOverride === null || asOverride === void 0 ? void 0 : asOverride.overrideIdentifier) {
|
|
@@ -126,7 +135,7 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
|
|
|
126
135
|
return [preferenceName];
|
|
127
136
|
}
|
|
128
137
|
async readPreferencesFromFile() {
|
|
129
|
-
const content = await this.fileService.read(this.
|
|
138
|
+
const content = await this.fileService.read(this.toFileManager().getConfigUri())
|
|
130
139
|
.then(value => {
|
|
131
140
|
this.fileExists = true;
|
|
132
141
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-resource-preference-provider.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,uDAAuD;AACvD,oCAAoC;AAEpC,4CAA4C;AAC5C,4DAAiF;AACjF,kEAA+D;AAC/D,qDAAsI;AACtI,oDAA6C;AAC7C,6GAAyG;AACzG,sEAA+D;AAC/D,6EAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"abstract-resource-preference-provider.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,uDAAuD;AACvD,oCAAoC;AAEpC,4CAA4C;AAC5C,4DAAiF;AACjF,kEAA+D;AAC/D,qDAAsI;AACtI,oDAA6C;AAC7C,6GAAyG;AACzG,sEAA+D;AAC/D,6EAAyE;AACzE,qFAA0H;AAC1H,sCAA6C;AAG7C,IAAsB,kCAAkC,GAAxD,MAAsB,kCAAmC,SAAQ,4BAAkB;IAAnF;;QAEc,gBAAW,GAAwB,EAAE,CAAC;QACtC,gBAAW,GAAG,KAAK,CAAC;QACX,YAAO,GAAG,IAAI,uBAAQ,EAAE,CAAC;QAEzB,+BAA0B,GAAG,IAAI,cAAO,EAAW,CAAC;IA+L3E,CAAC;IA7LG,IAAI,UAAU,CAAC,MAAe;QAC1B,IAAI,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE;YAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChD;IACL,CAAC;IAED,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;IACjD,CAAC;IAQS,KAAK,CAAC,IAAI;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/H,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBAClC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;iBAClC;YACL,CAAC,CAAC;YACF,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SACxC,CAAC,CAAC;IACP,CAAC;IAKD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAIQ,YAAY,CAAC,WAAoB;QACtC,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,WAA+B;QACpC,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAI,CAAC;SACf;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,IAAI,CAAC;SACf;QACD,MAAM,YAAY,GAAG,IAAI,aAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,aAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,cAAc,CAAC,WAAoB;QAC/B,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,KAAU,EAAE,WAAoB;QAC7D,IAAI,IAA0B,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACvF,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,IAAc,EAAE,KAAc;;QACvE,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,CAAA,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;gBACtD,IAAI,MAAM,EAAE;oBACR,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE;wBAClB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBACrC,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,sDAAsD;oBAClG,CAAC,CAAC,EAAE,CAAC,CAAC;iBACT;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACO,aAAa;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,OAAO,CAAC,cAAsB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,kBAAkB,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;SAC1H;QACD,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,uBAAuB;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,CAAC;aAC3E,IAAI,CAAC,KAAK,CAAC,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACR,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAES,0BAA0B,CAAC,OAAe;QAChD,IAAI,iBAAiB,CAAC;QACtB,IAAI;YACA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC3C;QAAC,WAAM;YACJ,iBAAiB,GAAG,EAAE,CAAC;SAC1B;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,OAAe;QAC3B,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAES,uBAAuB,CAAC,QAAgC;QAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,WAAW,GAAmC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtF,IAAI,gBAAgB,EAAE;gBAClB,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,yFAAyF;gBACzF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;oBAChE,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,OAAO,GAAG,mCAAmC,yBAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpI,SAAS;iBACZ;aACJ;YACD,IAAI,CAAC,4BAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACnD,WAAW,CAAC,IAAI,CAAC;oBACb,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;iBACjG,CAAC,CAAC;aACN;SACJ;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;SACjD;IACL,CAAC;IAES,KAAK;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC;oBACT,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;iBACnH,CAAC,CAAC;aACN;SACJ;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;CACJ,CAAA;AAlLyC;IAArC,IAAA,kBAAM,EAAC,6DAA4B,CAAC;;8EAAqE;AACxE;IAAjC,IAAA,kBAAM,EAAC,kCAAwB,CAAC;8BAAoC,kCAAwB;0EAAC;AACzE;IAApB,IAAA,kBAAM,EAAC,0BAAW,CAAC;8BAAiC,0BAAW;uEAAC;AAC/B;IAAjC,IAAA,kBAAM,EAAC,oDAAwB,CAAC;8BAAoC,oDAAwB;0EAAC;AAG9F;IADC,IAAA,yBAAa,GAAE;;;;8DAiBf;AAzCiB,kCAAkC;IADvD,IAAA,sBAAU,GAAE;GACS,kCAAkC,CAqMvD;AArMqB,gFAAkC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/preferences",
|
|
3
|
-
"version": "1.24.0-next.
|
|
3
|
+
"version": "1.24.0-next.56+42c93b0ecb1",
|
|
4
4
|
"description": "Theia - Preferences Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.24.0-next.
|
|
7
|
-
"@theia/editor": "1.24.0-next.
|
|
8
|
-
"@theia/filesystem": "1.24.0-next.
|
|
9
|
-
"@theia/monaco": "1.24.0-next.
|
|
6
|
+
"@theia/core": "1.24.0-next.56+42c93b0ecb1",
|
|
7
|
+
"@theia/editor": "1.24.0-next.56+42c93b0ecb1",
|
|
8
|
+
"@theia/filesystem": "1.24.0-next.56+42c93b0ecb1",
|
|
9
|
+
"@theia/monaco": "1.24.0-next.56+42c93b0ecb1",
|
|
10
10
|
"@theia/monaco-editor-core": "1.65.2",
|
|
11
|
-
"@theia/userstorage": "1.24.0-next.
|
|
12
|
-
"@theia/workspace": "1.24.0-next.
|
|
11
|
+
"@theia/userstorage": "1.24.0-next.56+42c93b0ecb1",
|
|
12
|
+
"@theia/workspace": "1.24.0-next.56+42c93b0ecb1",
|
|
13
13
|
"async-mutex": "^0.3.1",
|
|
14
14
|
"jsonc-parser": "^2.2.0",
|
|
15
15
|
"p-debounce": "^2.1.0"
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"nyc": {
|
|
53
53
|
"extends": "../../configs/nyc.json"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "42c93b0ecb14abb3635af9e19ecb66d34c66b8b0"
|
|
56
56
|
}
|
|
@@ -25,7 +25,7 @@ import URI from '@theia/core/lib/common/uri';
|
|
|
25
25
|
import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
|
|
26
26
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
27
27
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
28
|
-
import { PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
|
|
28
|
+
import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
|
|
29
29
|
import { Emitter, Event } from '@theia/core';
|
|
30
30
|
|
|
31
31
|
@injectable()
|
|
@@ -56,14 +56,15 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
|
|
|
56
56
|
@postConstruct()
|
|
57
57
|
protected async init(): Promise<void> {
|
|
58
58
|
const uri = this.getUri();
|
|
59
|
-
this.toDispose.push(Disposable.create(() => this.loading.reject(new Error(`
|
|
59
|
+
this.toDispose.push(Disposable.create(() => this.loading.reject(new Error(`Preference provider for '${uri}' was disposed.`))));
|
|
60
60
|
await this.readPreferencesFromFile();
|
|
61
61
|
this._ready.resolve();
|
|
62
62
|
this.loading.resolve();
|
|
63
|
+
const storageUri = this.toFileManager().getConfigUri();
|
|
63
64
|
this.toDispose.pushAll([
|
|
64
|
-
this.fileService.watch(
|
|
65
|
+
this.fileService.watch(storageUri),
|
|
65
66
|
this.fileService.onDidFilesChange(e => {
|
|
66
|
-
if (e.contains(
|
|
67
|
+
if (e.contains(storageUri)) {
|
|
67
68
|
this.readPreferencesFromFile();
|
|
68
69
|
}
|
|
69
70
|
}),
|
|
@@ -114,7 +115,7 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
|
|
|
114
115
|
protected async doSetPreference(key: string, path: string[], value: unknown): Promise<boolean> {
|
|
115
116
|
if (!this.transaction?.open) {
|
|
116
117
|
const current = this.transaction;
|
|
117
|
-
this.transaction = this.transactionFactory(this);
|
|
118
|
+
this.transaction = this.transactionFactory(this.toFileManager());
|
|
118
119
|
this.transaction.waitFor(current?.result);
|
|
119
120
|
this.transaction.onWillConclude(({ status, waitUntil }) => {
|
|
120
121
|
if (status) {
|
|
@@ -129,6 +130,15 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
|
|
|
129
130
|
return this.transaction.enqueueAction(key, path, value);
|
|
130
131
|
}
|
|
131
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Use this method as intermediary for interactions with actual files.
|
|
135
|
+
* Allows individual providers to modify where they store their files without disrupting the preference system's
|
|
136
|
+
* conventions about scope and file location.
|
|
137
|
+
*/
|
|
138
|
+
protected toFileManager(): PreferenceContext {
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
|
|
132
142
|
protected getPath(preferenceName: string): string[] | undefined {
|
|
133
143
|
const asOverride = this.preferenceOverrideService.overriddenPreferenceName(preferenceName);
|
|
134
144
|
if (asOverride?.overrideIdentifier) {
|
|
@@ -138,7 +148,7 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
|
|
|
138
148
|
}
|
|
139
149
|
|
|
140
150
|
protected async readPreferencesFromFile(): Promise<void> {
|
|
141
|
-
const content = await this.fileService.read(this.
|
|
151
|
+
const content = await this.fileService.read(this.toFileManager().getConfigUri())
|
|
142
152
|
.then(value => {
|
|
143
153
|
this.fileExists = true;
|
|
144
154
|
return value;
|