@theia/core 1.70.0-next.28 → 1.70.0-next.34
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/catalog.json +9 -3
- package/lib/browser/quick-input/quick-input-service.spec.js +53 -9
- package/lib/browser/quick-input/quick-input-service.spec.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.d.ts +1 -60
- package/lib/browser/tree/fuzzy-search.d.ts.map +1 -1
- package/lib/browser/tree/fuzzy-search.js +3 -58
- package/lib/browser/tree/fuzzy-search.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +2 -1
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +5 -1
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/test/mock-window-service.d.ts +2 -1
- package/lib/browser/window/test/mock-window-service.d.ts.map +1 -1
- package/lib/browser/window/test/mock-window-service.js +2 -1
- package/lib/browser/window/test/mock-window-service.js.map +1 -1
- package/lib/browser/window/window-service.d.ts +8 -1
- package/lib/browser/window/window-service.d.ts.map +1 -1
- package/lib/common/fuzzy-match-utils.d.ts +27 -0
- package/lib/common/fuzzy-match-utils.d.ts.map +1 -0
- package/lib/common/fuzzy-match-utils.js +96 -0
- package/lib/common/fuzzy-match-utils.js.map +1 -0
- package/lib/common/fuzzy-match-utils.spec.d.ts +2 -0
- package/lib/common/fuzzy-match-utils.spec.d.ts.map +1 -0
- package/lib/common/fuzzy-match-utils.spec.js +109 -0
- package/lib/common/fuzzy-match-utils.spec.js.map +1 -0
- package/lib/common/fuzzy-search.d.ts +63 -0
- package/lib/common/fuzzy-search.d.ts.map +1 -0
- package/lib/common/fuzzy-search.js +101 -0
- package/lib/common/fuzzy-search.js.map +1 -0
- package/lib/common/fuzzy-search.spec.d.ts.map +1 -0
- package/lib/{browser/tree → common}/fuzzy-search.spec.js +20 -1
- package/lib/common/fuzzy-search.spec.js.map +1 -0
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js +34 -7
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +3 -2
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +5 -2
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-main-window-service.d.ts +2 -1
- package/lib/electron-common/electron-main-window-service.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +1 -0
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +6 -0
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.d.ts +2 -1
- package/lib/electron-main/electron-main-window-service-impl.d.ts.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +6 -2
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/quick-input/quick-input-service.spec.ts +58 -9
- package/src/browser/tree/fuzzy-search.ts +2 -120
- package/src/browser/window/default-window-service.ts +6 -1
- package/src/browser/window/test/mock-window-service.ts +2 -1
- package/src/browser/window/window-service.ts +9 -1
- package/src/common/fuzzy-match-utils.spec.ts +141 -0
- package/src/common/fuzzy-match-utils.ts +78 -0
- package/src/{browser/tree → common}/fuzzy-search.spec.ts +23 -1
- package/src/common/fuzzy-search.ts +158 -0
- package/src/common/quick-pick-service.ts +44 -9
- package/src/electron-browser/window/electron-window-service.ts +7 -4
- package/src/electron-common/electron-main-window-service.ts +2 -1
- package/src/electron-main/electron-main-application.ts +7 -0
- package/src/electron-main/electron-main-window-service-impl.ts +7 -2
- package/lib/browser/tree/fuzzy-search.spec.d.ts.map +0 -1
- package/lib/browser/tree/fuzzy-search.spec.js.map +0 -1
- /package/lib/{browser/tree → common}/fuzzy-search.spec.d.ts +0 -0
package/lib/browser/catalog.json
CHANGED
|
@@ -2965,7 +2965,7 @@
|
|
|
2965
2965
|
".gitversion.yml",
|
|
2966
2966
|
".gitversion.yaml"
|
|
2967
2967
|
],
|
|
2968
|
-
"url": "https://gitversion.net/schemas/6.
|
|
2968
|
+
"url": "https://gitversion.net/schemas/6.6/GitVersion.configuration.json",
|
|
2969
2969
|
"versions": {
|
|
2970
2970
|
"5.12": "https://gitversion.net/schemas/5.12/GitVersion.configuration.json",
|
|
2971
2971
|
"6.0": "https://gitversion.net/schemas/6.0/GitVersion.configuration.json",
|
|
@@ -2973,7 +2973,8 @@
|
|
|
2973
2973
|
"6.2": "https://gitversion.net/schemas/6.2/GitVersion.configuration.json",
|
|
2974
2974
|
"6.3": "https://gitversion.net/schemas/6.3/GitVersion.configuration.json",
|
|
2975
2975
|
"6.4": "https://gitversion.net/schemas/6.4/GitVersion.configuration.json",
|
|
2976
|
-
"6.5": "https://gitversion.net/schemas/6.5/GitVersion.configuration.json"
|
|
2976
|
+
"6.5": "https://gitversion.net/schemas/6.5/GitVersion.configuration.json",
|
|
2977
|
+
"6.6": "https://gitversion.net/schemas/6.6/GitVersion.configuration.json"
|
|
2977
2978
|
}
|
|
2978
2979
|
},
|
|
2979
2980
|
{
|
|
@@ -7765,7 +7766,12 @@
|
|
|
7765
7766
|
{
|
|
7766
7767
|
"name": "Shopware CLI Project Store Configuration",
|
|
7767
7768
|
"description": "Shopware CLI Project Store Configuration",
|
|
7768
|
-
"fileMatch": [
|
|
7769
|
+
"fileMatch": [
|
|
7770
|
+
".shopware-project.yml",
|
|
7771
|
+
".shopware-project.yaml",
|
|
7772
|
+
".shopware-project.local.yml",
|
|
7773
|
+
".shopware-project.local.yaml"
|
|
7774
|
+
],
|
|
7769
7775
|
"url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-project-schema.json"
|
|
7770
7776
|
},
|
|
7771
7777
|
{
|
|
@@ -20,11 +20,13 @@ const quick_input_service_1 = require("./quick-input-service");
|
|
|
20
20
|
const expect = chai.expect;
|
|
21
21
|
describe('quick-input-service', () => {
|
|
22
22
|
describe('#findMatches', () => {
|
|
23
|
-
it('should return
|
|
23
|
+
it('should return a single contiguous range for substring matches', () => {
|
|
24
24
|
expect((0, quick_input_service_1.findMatches)('abc', 'a')).deep.equal([{ start: 0, end: 1 }]);
|
|
25
|
-
expect((0, quick_input_service_1.findMatches)('abc', 'ab')).deep.equal([{ start: 0, end:
|
|
25
|
+
expect((0, quick_input_service_1.findMatches)('abc', 'ab')).deep.equal([{ start: 0, end: 2 }]);
|
|
26
|
+
expect((0, quick_input_service_1.findMatches)('abc', 'abc')).deep.equal([{ start: 0, end: 3 }]);
|
|
27
|
+
});
|
|
28
|
+
it('should return per-character ranges for fuzzy-only matches', () => {
|
|
26
29
|
expect((0, quick_input_service_1.findMatches)('abc', 'ac')).deep.equal([{ start: 0, end: 1 }, { start: 2, end: 3 }]);
|
|
27
|
-
expect((0, quick_input_service_1.findMatches)('abc', 'abc')).deep.equal([{ start: 0, end: 1 }, { start: 1, end: 2 }, { start: 2, end: 3 }]);
|
|
28
30
|
});
|
|
29
31
|
it('should fail when out of order', () => {
|
|
30
32
|
expect((0, quick_input_service_1.findMatches)('abc', 'ba')).equal(undefined);
|
|
@@ -55,9 +57,7 @@ describe('quick-input-service', () => {
|
|
|
55
57
|
label: 'abc',
|
|
56
58
|
highlights: {
|
|
57
59
|
label: [
|
|
58
|
-
{ start: 0, end:
|
|
59
|
-
{ start: 1, end: 2 },
|
|
60
|
-
{ start: 2, end: 3 }
|
|
60
|
+
{ start: 0, end: 3 }
|
|
61
61
|
]
|
|
62
62
|
}
|
|
63
63
|
};
|
|
@@ -134,9 +134,7 @@ describe('quick-input-service', () => {
|
|
|
134
134
|
label: 'abc',
|
|
135
135
|
highlights: {
|
|
136
136
|
label: [
|
|
137
|
-
{ start: 0, end:
|
|
138
|
-
{ start: 1, end: 2 },
|
|
139
|
-
{ start: 2, end: 3 }
|
|
137
|
+
{ start: 0, end: 3 }
|
|
140
138
|
]
|
|
141
139
|
}
|
|
142
140
|
};
|
|
@@ -150,6 +148,52 @@ describe('quick-input-service', () => {
|
|
|
150
148
|
it('should return an empty list when no matches are found', () => {
|
|
151
149
|
expect((0, quick_input_service_1.filterItems)(items, 'yyy')).deep.equal([]);
|
|
152
150
|
});
|
|
151
|
+
it('should rank substring matches before fuzzy-only matches', () => {
|
|
152
|
+
const testItems = [
|
|
153
|
+
{ label: 'reformatting' },
|
|
154
|
+
{ label: 'fontSize' },
|
|
155
|
+
{ label: 'fontFamily' },
|
|
156
|
+
];
|
|
157
|
+
const result = (0, quick_input_service_1.filterItems)(testItems, 'font').filter(quick_input_service_1.QuickPickItem.is);
|
|
158
|
+
expect(result).length(2);
|
|
159
|
+
expect(result[0].label).equal('fontSize');
|
|
160
|
+
expect(result[1].label).equal('fontFamily');
|
|
161
|
+
});
|
|
162
|
+
it('should rank prefix matches before other substring matches', () => {
|
|
163
|
+
const testItems = [
|
|
164
|
+
{ label: 'setFont' },
|
|
165
|
+
{ label: 'fontSize' },
|
|
166
|
+
{ label: 'fontFamily' },
|
|
167
|
+
];
|
|
168
|
+
const result = (0, quick_input_service_1.filterItems)(testItems, 'font').filter(quick_input_service_1.QuickPickItem.is);
|
|
169
|
+
expect(result).length(3);
|
|
170
|
+
expect(result[0].label).equal('fontSize');
|
|
171
|
+
expect(result[1].label).equal('fontFamily');
|
|
172
|
+
expect(result[2].label).equal('setFont');
|
|
173
|
+
});
|
|
174
|
+
it('should treat segmented prefix matches as prefix matches', () => {
|
|
175
|
+
const testItems = [
|
|
176
|
+
{ label: 'backend-workspace-service.ts' },
|
|
177
|
+
{ label: 'workspace-backend-service.ts' },
|
|
178
|
+
];
|
|
179
|
+
const result = (0, quick_input_service_1.filterItems)(testItems, 'works-ser').filter(quick_input_service_1.QuickPickItem.is);
|
|
180
|
+
expect(result).length(2);
|
|
181
|
+
expect(result[0].label).equal('workspace-backend-service.ts');
|
|
182
|
+
expect(result[1].label).equal('backend-workspace-service.ts');
|
|
183
|
+
});
|
|
184
|
+
it('should drop separators when their group has no matches', () => {
|
|
185
|
+
const testItems = [
|
|
186
|
+
{ type: 'separator', label: 'Group A' },
|
|
187
|
+
{ label: 'fontSize' },
|
|
188
|
+
{ type: 'separator', label: 'Group B' },
|
|
189
|
+
{ label: 'xyz' },
|
|
190
|
+
];
|
|
191
|
+
const result = (0, quick_input_service_1.filterItems)(testItems, 'font');
|
|
192
|
+
// Group B's only item "xyz" doesn't match, so Group B separator is dropped
|
|
193
|
+
expect(result).length(2);
|
|
194
|
+
expect(result[0]).to.have.property('type', 'separator');
|
|
195
|
+
expect(result[1]).to.have.property('label', 'fontSize');
|
|
196
|
+
});
|
|
153
197
|
});
|
|
154
198
|
});
|
|
155
199
|
//# sourceMappingURL=quick-input-service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-input-service.spec.js","sourceRoot":"","sources":["../../../src/browser/quick-input/quick-input-service.spec.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,gFAAgF;AAChF,gFAAgF;;AAEhF,6BAA6B;AAC7B,+DAAgF;AAEhF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAEjC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAE1B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"quick-input-service.spec.js","sourceRoot":"","sources":["../../../src/browser/quick-input/quick-input-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class FuzzySearch {
|
|
3
|
-
private static readonly PRE;
|
|
4
|
-
private static readonly POST;
|
|
5
|
-
/**
|
|
6
|
-
* Filters the input and returns with an array that contains all items that match the pattern.
|
|
7
|
-
*/
|
|
8
|
-
filter<T>(input: FuzzySearch.Input<T>): Promise<FuzzySearch.Match<T>[]>;
|
|
9
|
-
protected sortResults<T>(left: fuzzy.FilterResult<T>, right: fuzzy.FilterResult<T>): number;
|
|
10
|
-
protected mapResult<T>(result: fuzzy.FilterResult<T>): FuzzySearch.Match<T>;
|
|
11
|
-
protected mapRanges(input: string): ReadonlyArray<FuzzySearch.Range>;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Fuzzy searcher.
|
|
15
|
-
*/
|
|
16
|
-
export declare namespace FuzzySearch {
|
|
17
|
-
/**
|
|
18
|
-
* A range representing the match region.
|
|
19
|
-
*/
|
|
20
|
-
interface Range {
|
|
21
|
-
/**
|
|
22
|
-
* The zero based offset of the match region.
|
|
23
|
-
*/
|
|
24
|
-
readonly offset: number;
|
|
25
|
-
/**
|
|
26
|
-
* The length of the match region.
|
|
27
|
-
*/
|
|
28
|
-
readonly length: number;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* A fuzzy search match.
|
|
32
|
-
*/
|
|
33
|
-
interface Match<T> {
|
|
34
|
-
/**
|
|
35
|
-
* The original item.
|
|
36
|
-
*/
|
|
37
|
-
readonly item: T;
|
|
38
|
-
/**
|
|
39
|
-
* An array of ranges representing the match regions.
|
|
40
|
-
*/
|
|
41
|
-
readonly ranges: ReadonlyArray<Range>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* The fuzzy search input.
|
|
45
|
-
*/
|
|
46
|
-
interface Input<T> {
|
|
47
|
-
/**
|
|
48
|
-
* The pattern to match.
|
|
49
|
-
*/
|
|
50
|
-
readonly pattern: string;
|
|
51
|
-
/**
|
|
52
|
-
* The items to filter based on the `pattern`.
|
|
53
|
-
*/
|
|
54
|
-
readonly items: ReadonlyArray<T>;
|
|
55
|
-
/**
|
|
56
|
-
* Function that extracts the string from the inputs which will be used to evaluate the fuzzy matching filter.
|
|
57
|
-
*/
|
|
58
|
-
readonly transform: (item: T) => string;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
export { FuzzySearch } from '../../common/fuzzy-search';
|
|
61
2
|
//# sourceMappingURL=fuzzy-search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-search.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/fuzzy-search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fuzzy-search.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/fuzzy-search.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -14,64 +14,9 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
|
-
var FuzzySearch_1;
|
|
18
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
18
|
exports.FuzzySearch = void 0;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let FuzzySearch = class FuzzySearch {
|
|
24
|
-
static { FuzzySearch_1 = this; }
|
|
25
|
-
static { this.PRE = '\x01'; }
|
|
26
|
-
static { this.POST = '\x02'; }
|
|
27
|
-
/**
|
|
28
|
-
* Filters the input and returns with an array that contains all items that match the pattern.
|
|
29
|
-
*/
|
|
30
|
-
async filter(input) {
|
|
31
|
-
return fuzzy.filter(input.pattern, input.items.slice(), {
|
|
32
|
-
pre: FuzzySearch_1.PRE,
|
|
33
|
-
post: FuzzySearch_1.POST,
|
|
34
|
-
extract: input.transform
|
|
35
|
-
}).sort(this.sortResults.bind(this)).map(this.mapResult.bind(this));
|
|
36
|
-
}
|
|
37
|
-
sortResults(left, right) {
|
|
38
|
-
return left.index - right.index;
|
|
39
|
-
}
|
|
40
|
-
mapResult(result) {
|
|
41
|
-
return {
|
|
42
|
-
item: result.original,
|
|
43
|
-
ranges: this.mapRanges(result.string)
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
mapRanges(input) {
|
|
47
|
-
const copy = input.split('').filter(s => s !== '');
|
|
48
|
-
const ranges = [];
|
|
49
|
-
const validate = (pre, post) => {
|
|
50
|
-
if (preIndex > postIndex || (preIndex === -1) !== (postIndex === -1)) {
|
|
51
|
-
throw new Error(`Error when trying to map ranges. Escaped string was: '${input}. [${[...input].join('|')}]'`);
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
let preIndex = copy.indexOf(FuzzySearch_1.PRE);
|
|
55
|
-
let postIndex = copy.indexOf(FuzzySearch_1.POST);
|
|
56
|
-
validate(preIndex, postIndex);
|
|
57
|
-
while (preIndex !== -1 && postIndex !== -1) {
|
|
58
|
-
ranges.push({
|
|
59
|
-
offset: preIndex,
|
|
60
|
-
length: postIndex - preIndex - 1
|
|
61
|
-
});
|
|
62
|
-
copy.splice(postIndex, 1);
|
|
63
|
-
copy.splice(preIndex, 1);
|
|
64
|
-
preIndex = copy.indexOf(FuzzySearch_1.PRE);
|
|
65
|
-
postIndex = copy.indexOf(FuzzySearch_1.POST);
|
|
66
|
-
}
|
|
67
|
-
if (ranges.length === 0) {
|
|
68
|
-
throw new Error(`Unexpected zero ranges for match-string: ${input}.`);
|
|
69
|
-
}
|
|
70
|
-
return ranges;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
exports.FuzzySearch = FuzzySearch;
|
|
74
|
-
exports.FuzzySearch = FuzzySearch = FuzzySearch_1 = tslib_1.__decorate([
|
|
75
|
-
(0, inversify_1.injectable)()
|
|
76
|
-
], FuzzySearch);
|
|
19
|
+
// Re-export from common location for backward compatibility.
|
|
20
|
+
var fuzzy_search_1 = require("../../common/fuzzy-search");
|
|
21
|
+
Object.defineProperty(exports, "FuzzySearch", { enumerable: true, get: function () { return fuzzy_search_1.FuzzySearch; } });
|
|
77
22
|
//# sourceMappingURL=fuzzy-search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-search.js","sourceRoot":"","sources":["../../../src/browser/tree/fuzzy-search.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF
|
|
1
|
+
{"version":3,"file":"fuzzy-search.js","sourceRoot":"","sources":["../../../src/browser/tree/fuzzy-search.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6DAA6D;AAC7D,0DAAwD;AAA/C,2GAAA,WAAW,OAAA"}
|
|
@@ -14,7 +14,8 @@ export declare class DefaultWindowService implements WindowService, FrontendAppl
|
|
|
14
14
|
protected readonly contributions: ContributionProvider<FrontendApplicationContribution>;
|
|
15
15
|
onStart(app: FrontendApplication): void;
|
|
16
16
|
openNewWindow(url: string): undefined;
|
|
17
|
-
openNewDefaultWindow():
|
|
17
|
+
openNewDefaultWindow(): Promise<number>;
|
|
18
|
+
closeWindow(windowId: number): void;
|
|
18
19
|
focus(): void;
|
|
19
20
|
/**
|
|
20
21
|
* Returns a list of actions that {@link FrontendApplicationContribution}s would like to take before shutdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,oBAAqB,YAAW,aAAa,EAAE,+BAA+B;IAEvF,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACnD,SAAS,CAAC,WAAW,UAAQ;IAE7B,SAAS,CAAC,eAAe,gBAAuB;IAChD,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAE1B;IAGD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAIpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAKvC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"default-window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,oBAAqB,YAAW,aAAa,EAAE,+BAA+B;IAEvF,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACnD,SAAS,CAAC,WAAW,UAAQ;IAE7B,SAAS,CAAC,eAAe,gBAAuB;IAChD,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAE1B;IAGD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAIpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAKvC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAK/B,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,SAAS,CAAC,+BAA+B,IAAI,gBAAgB,EAAE;IAyB/D;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,IAAI;IASnC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBhE,iBAAiB,IAAI,IAAI;IAIzB;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAU1E;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAMhE,MAAM,IAAI,IAAI;CAOjB"}
|
|
@@ -41,8 +41,12 @@ let DefaultWindowService = class DefaultWindowService {
|
|
|
41
41
|
window.open(url, undefined, 'noopener');
|
|
42
42
|
return undefined;
|
|
43
43
|
}
|
|
44
|
-
openNewDefaultWindow() {
|
|
44
|
+
async openNewDefaultWindow() {
|
|
45
45
|
this.openNewWindow(`#${window_1.DEFAULT_WINDOW_HASH}`);
|
|
46
|
+
return -1;
|
|
47
|
+
}
|
|
48
|
+
closeWindow(windowId) {
|
|
49
|
+
// No-op in browser-only mode
|
|
46
50
|
}
|
|
47
51
|
focus() {
|
|
48
52
|
window.focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-window-service.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,yCAAsD;AACtD,yCAA8C;AAC9C,oEAAgE;AAChE,8EAA0E;AAC1E,4FAAyG;AAEzG,gDAA0D;AAC1D,wCAAyC;AACzC,wFAAqE;AAI9D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAGO,gBAAW,GAAG,IAAI,CAAC;QAEnB,oBAAe,GAAG,IAAI,gBAAO,EAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"default-window-service.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import { Event } from '../../../common/event';
|
|
|
2
2
|
import { WindowService } from '../window-service';
|
|
3
3
|
export declare class MockWindowService implements WindowService {
|
|
4
4
|
openNewWindow(): undefined;
|
|
5
|
-
openNewDefaultWindow():
|
|
5
|
+
openNewDefaultWindow(): Promise<number>;
|
|
6
|
+
closeWindow(): void;
|
|
6
7
|
focus(): void;
|
|
7
8
|
reload(): void;
|
|
8
9
|
isSafeToShutDown(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-window-service.d.ts","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,qBACa,iBAAkB,YAAW,aAAa;IACnD,aAAa,IAAI,SAAS;
|
|
1
|
+
{"version":3,"file":"mock-window-service.d.ts","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,qBACa,iBAAkB,YAAW,aAAa;IACnD,aAAa,IAAI,SAAS;IACpB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,WAAW,IAAI,IAAI;IACnB,KAAK,IAAI,IAAI;IACb,MAAM,IAAI,IAAI;IACd,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IACpC,iBAAiB,IAAI,IAAI;IACzB,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAuB;CACrD"}
|
|
@@ -21,7 +21,8 @@ const inversify_1 = require("inversify");
|
|
|
21
21
|
const event_1 = require("../../../common/event");
|
|
22
22
|
let MockWindowService = class MockWindowService {
|
|
23
23
|
openNewWindow() { return undefined; }
|
|
24
|
-
openNewDefaultWindow() { }
|
|
24
|
+
async openNewDefaultWindow() { return -1; }
|
|
25
|
+
closeWindow() { }
|
|
25
26
|
focus() { }
|
|
26
27
|
reload() { }
|
|
27
28
|
isSafeToShutDown() { return Promise.resolve(true); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-window-service.js","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.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,gFAAgF;AAChF,gFAAgF;AAChF,yCAAuC;AACvC,iDAA8C;AAIvC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,aAAa,KAAgB,OAAO,SAAS,CAAC,CAAC,CAAC;IAChD,oBAAoB,KAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-window-service.js","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.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,gFAAgF;AAChF,gFAAgF;AAChF,yCAAuC;AACvC,iDAA8C;AAIvC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,aAAa,KAAgB,OAAO,SAAS,CAAC,CAAC,CAAC;IAChD,KAAK,CAAC,oBAAoB,KAAsB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,WAAW,KAAW,CAAC;IACvB,KAAK,KAAW,CAAC;IACjB,MAAM,KAAW,CAAC;IAClB,gBAAgB,KAAuB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,iBAAiB,KAAW,CAAC;IAC7B,IAAI,QAAQ,KAAkB,OAAO,aAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD,CAAA;AATY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAS7B"}
|
|
@@ -19,8 +19,15 @@ export interface WindowService {
|
|
|
19
19
|
/**
|
|
20
20
|
* Opens a new default window.
|
|
21
21
|
* - In electron and in the browser it will open the default window without a pre-defined content.
|
|
22
|
+
* @returns a window identifier that can be passed to {@link closeWindow}, or -1 if not supported.
|
|
22
23
|
*/
|
|
23
|
-
openNewDefaultWindow(params?: WindowReloadOptions):
|
|
24
|
+
openNewDefaultWindow(params?: WindowReloadOptions): Promise<number>;
|
|
25
|
+
/**
|
|
26
|
+
* Closes a window previously opened by {@link openNewDefaultWindow}.
|
|
27
|
+
* @param windowId the identifier returned by {@link openNewDefaultWindow}.
|
|
28
|
+
* No-op if the window does not exist or the platform does not support it.
|
|
29
|
+
*/
|
|
30
|
+
closeWindow(windowId: number): void;
|
|
24
31
|
/**
|
|
25
32
|
* Reveal and focuses the current window
|
|
26
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAElE
|
|
1
|
+
{"version":3,"file":"window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAElE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvD;;;;;;OAMG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC9C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the index of the first case-insensitive substring match of `pattern` in `text`,
|
|
3
|
+
* or `-1` if `pattern` is not a substring. Returns `0` for an empty pattern.
|
|
4
|
+
*/
|
|
5
|
+
export declare function findSubstringIndex(text: string, pattern: string): number;
|
|
6
|
+
export declare function hasSubstringMatch(text: string, pattern: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Tests whether `pattern` is a "prefix match" for `text`, accounting for punctuation-separated segments.
|
|
9
|
+
*
|
|
10
|
+
* The pattern is split on punctuation into query parts. The text is split on punctuation into segments.
|
|
11
|
+
* It is a prefix match when the first query part matches the start of segment 0, and each subsequent
|
|
12
|
+
* query part matches the start of a later segment, in order.
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* - `hasPrefixMatch("workspace-server", "works-ser")` → true
|
|
16
|
+
* - `hasPrefixMatch("backend-workspace-service", "works-ser")` → false (first segment doesn't match)
|
|
17
|
+
* - `hasPrefixMatch("fontSize", "font")` → true (single-part prefix)
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasPrefixMatch(text: string, pattern: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns a numeric rank for how well `pattern` matches `text`:
|
|
22
|
+
* - 0: prefix match (best)
|
|
23
|
+
* - 1: substring match
|
|
24
|
+
* - 2: fuzzy-only match (worst)
|
|
25
|
+
*/
|
|
26
|
+
export declare function matchRank(text: string, pattern: string): number;
|
|
27
|
+
//# sourceMappingURL=fuzzy-match-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-match-utils.d.ts","sourceRoot":"","sources":["../../src/common/fuzzy-match-utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAsBrE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.findSubstringIndex = findSubstringIndex;
|
|
19
|
+
exports.hasSubstringMatch = hasSubstringMatch;
|
|
20
|
+
exports.hasPrefixMatch = hasPrefixMatch;
|
|
21
|
+
exports.matchRank = matchRank;
|
|
22
|
+
/**
|
|
23
|
+
* Returns the index of the first case-insensitive substring match of `pattern` in `text`,
|
|
24
|
+
* or `-1` if `pattern` is not a substring. Returns `0` for an empty pattern.
|
|
25
|
+
*/
|
|
26
|
+
function findSubstringIndex(text, pattern) {
|
|
27
|
+
if (!pattern) {
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
return text.toLowerCase().indexOf(pattern.toLowerCase());
|
|
31
|
+
}
|
|
32
|
+
function hasSubstringMatch(text, pattern) {
|
|
33
|
+
return findSubstringIndex(text, pattern) !== -1;
|
|
34
|
+
}
|
|
35
|
+
const SEGMENT_SEPARATOR = /[\p{P}\s]+/u;
|
|
36
|
+
/**
|
|
37
|
+
* Tests whether `pattern` is a "prefix match" for `text`, accounting for punctuation-separated segments.
|
|
38
|
+
*
|
|
39
|
+
* The pattern is split on punctuation into query parts. The text is split on punctuation into segments.
|
|
40
|
+
* It is a prefix match when the first query part matches the start of segment 0, and each subsequent
|
|
41
|
+
* query part matches the start of a later segment, in order.
|
|
42
|
+
*
|
|
43
|
+
* Examples:
|
|
44
|
+
* - `hasPrefixMatch("workspace-server", "works-ser")` → true
|
|
45
|
+
* - `hasPrefixMatch("backend-workspace-service", "works-ser")` → false (first segment doesn't match)
|
|
46
|
+
* - `hasPrefixMatch("fontSize", "font")` → true (single-part prefix)
|
|
47
|
+
*/
|
|
48
|
+
function hasPrefixMatch(text, pattern) {
|
|
49
|
+
if (!pattern) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
const queryParts = pattern.toLowerCase().split(SEGMENT_SEPARATOR).filter(Boolean);
|
|
53
|
+
if (queryParts.length === 0) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
const textSegments = text.toLowerCase().split(SEGMENT_SEPARATOR).filter(Boolean);
|
|
57
|
+
if (textSegments.length === 0) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
// First query part must match the start of the first text segment.
|
|
61
|
+
if (!textSegments[0].startsWith(queryParts[0])) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
let segIdx = 1;
|
|
65
|
+
for (let qIdx = 1; qIdx < queryParts.length; qIdx++) {
|
|
66
|
+
let found = false;
|
|
67
|
+
while (segIdx < textSegments.length) {
|
|
68
|
+
if (textSegments[segIdx].startsWith(queryParts[qIdx])) {
|
|
69
|
+
segIdx++;
|
|
70
|
+
found = true;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
segIdx++;
|
|
74
|
+
}
|
|
75
|
+
if (!found) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Returns a numeric rank for how well `pattern` matches `text`:
|
|
83
|
+
* - 0: prefix match (best)
|
|
84
|
+
* - 1: substring match
|
|
85
|
+
* - 2: fuzzy-only match (worst)
|
|
86
|
+
*/
|
|
87
|
+
function matchRank(text, pattern) {
|
|
88
|
+
if (hasPrefixMatch(text, pattern)) {
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
if (hasSubstringMatch(text, pattern)) {
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
return 2;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=fuzzy-match-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-match-utils.js","sourceRoot":"","sources":["../../src/common/fuzzy-match-utils.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAMhF,gDAGC;AAED,8CAEC;AAgBD,wCAsBC;AAQD,8BAIC;AA7DD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAAY,EAAE,OAAe;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,OAAe;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAChD,mEAAmE;IACnE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IACjE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAClD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,OAAO,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,EAAE,CAAC;gBACT,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACV,CAAC;YACD,MAAM,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,OAAe;IACnD,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAChD,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACnD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-match-utils.spec.d.ts","sourceRoot":"","sources":["../../src/common/fuzzy-match-utils.spec.ts"],"names":[],"mappings":""}
|