@theia/ai-ide 1.63.0-next.24 → 1.63.0-next.52
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/ai-configuration/ai-configuration-widget.d.ts +0 -1
- package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/ai-configuration-widget.js +0 -1
- package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +0 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +0 -1
- package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +0 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.js +6 -21
- package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
- package/lib/browser/architect-agent.d.ts.map +1 -1
- package/lib/browser/architect-agent.js +4 -1
- package/lib/browser/architect-agent.js.map +1 -1
- package/lib/browser/frontend-module.d.ts +1 -0
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +1 -0
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/summarize-session-command-contribution.d.ts +6 -1
- package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -1
- package/lib/browser/summarize-session-command-contribution.js +53 -4
- package/lib/browser/summarize-session-command-contribution.js.map +1 -1
- package/lib/browser/task-context-file-storage-service.d.ts +4 -2
- package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
- package/lib/browser/task-context-file-storage-service.js +19 -9
- package/lib/browser/task-context-file-storage-service.js.map +1 -1
- package/lib/browser/workspace-preferences.d.ts +1 -0
- package/lib/browser/workspace-preferences.d.ts.map +1 -1
- package/lib/browser/workspace-preferences.js +9 -1
- package/lib/browser/workspace-preferences.js.map +1 -1
- package/lib/browser/workspace-search-provider.d.ts +5 -1
- package/lib/browser/workspace-search-provider.d.ts.map +1 -1
- package/lib/browser/workspace-search-provider.js +57 -17
- package/lib/browser/workspace-search-provider.js.map +1 -1
- package/lib/browser/workspace-search-provider.spec.d.ts +2 -0
- package/lib/browser/workspace-search-provider.spec.d.ts.map +1 -0
- package/lib/browser/workspace-search-provider.spec.js +227 -0
- package/lib/browser/workspace-search-provider.spec.js.map +1 -0
- package/lib/common/architect-prompt-template.d.ts +1 -0
- package/lib/common/architect-prompt-template.d.ts.map +1 -1
- package/lib/common/architect-prompt-template.js +166 -5
- package/lib/common/architect-prompt-template.js.map +1 -1
- package/lib/common/coder-replace-prompt-template.js +2 -2
- package/lib/common/coder-replace-prompt-template.js.map +1 -1
- package/lib/common/summarize-session-commands.d.ts +1 -0
- package/lib/common/summarize-session-commands.d.ts.map +1 -1
- package/lib/common/summarize-session-commands.js +5 -1
- package/lib/common/summarize-session-commands.js.map +1 -1
- package/lib/common/workspace-search-provider-util.d.ts +17 -0
- package/lib/common/workspace-search-provider-util.d.ts.map +1 -0
- package/lib/common/workspace-search-provider-util.js +51 -0
- package/lib/common/workspace-search-provider-util.js.map +1 -0
- package/package.json +19 -18
- package/src/browser/ai-configuration/ai-configuration-widget.tsx +0 -1
- package/src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx +0 -1
- package/src/browser/ai-configuration/tools-configuration-widget.tsx +8 -23
- package/src/browser/architect-agent.ts +5 -2
- package/src/browser/frontend-module.ts +2 -0
- package/src/browser/style/index.css +23 -28
- package/src/browser/summarize-session-command-contribution.ts +58 -6
- package/src/browser/task-context-file-storage-service.ts +20 -10
- package/src/browser/workspace-preferences.ts +9 -0
- package/src/browser/workspace-search-provider.spec.ts +255 -0
- package/src/browser/workspace-search-provider.ts +62 -16
- package/src/common/architect-prompt-template.ts +165 -5
- package/src/common/coder-replace-prompt-template.ts +2 -2
- package/src/common/summarize-session-commands.ts +5 -0
- package/src/common/workspace-search-provider-util.ts +50 -0
|
@@ -31,8 +31,12 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
|
|
|
31
31
|
this.onDidChangeEmitter = new core_1.Emitter();
|
|
32
32
|
this.onDidChange = this.onDidChangeEmitter.event;
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
sanitizeLabel(label) {
|
|
35
|
+
return label.replace(/^[^\p{L}\p{N}]+/vg, '');
|
|
36
|
+
}
|
|
37
|
+
async getStorageLocation() {
|
|
35
38
|
var _a;
|
|
39
|
+
await this.workspaceService.ready;
|
|
36
40
|
if (!this.workspaceService.opened) {
|
|
37
41
|
return;
|
|
38
42
|
}
|
|
@@ -45,10 +49,10 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
|
|
|
45
49
|
return asPath.isAbsolute ? new core_1.URI(configuredPath) : (_a = this.workspaceService.tryGetRoots().at(0)) === null || _a === void 0 ? void 0 : _a.resource.resolve(configuredPath);
|
|
46
50
|
}
|
|
47
51
|
init() {
|
|
48
|
-
this.watchStorage();
|
|
52
|
+
this.watchStorage().catch(error => this.logger.error(error));
|
|
49
53
|
this.preferenceService.onPreferenceChanged(e => {
|
|
50
54
|
if (e.affects(workspace_preferences_1.TASK_CONTEXT_STORAGE_DIRECTORY_PREF)) {
|
|
51
|
-
this.watchStorage();
|
|
55
|
+
this.watchStorage().catch(error => this.logger.error(error));
|
|
52
56
|
}
|
|
53
57
|
});
|
|
54
58
|
}
|
|
@@ -56,7 +60,7 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
|
|
|
56
60
|
var _a;
|
|
57
61
|
(_a = this.toDisposeOnStorageChange) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
58
62
|
this.toDisposeOnStorageChange = undefined;
|
|
59
|
-
const newStorage = this.getStorageLocation();
|
|
63
|
+
const newStorage = await this.getStorageLocation();
|
|
60
64
|
if (!newStorage) {
|
|
61
65
|
return;
|
|
62
66
|
}
|
|
@@ -107,10 +111,11 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
|
|
|
107
111
|
return;
|
|
108
112
|
}
|
|
109
113
|
const { frontmatter, body } = this.maybeReadFrontmatter(content);
|
|
114
|
+
const rawLabel = (frontmatter === null || frontmatter === void 0 ? void 0 : frontmatter.label) || uri.path.base.slice(0, (-1 * uri.path.ext.length) || uri.path.base.length);
|
|
110
115
|
const summary = {
|
|
111
116
|
...frontmatter,
|
|
112
117
|
summary: body,
|
|
113
|
-
label:
|
|
118
|
+
label: this.sanitizeLabel(rawLabel),
|
|
114
119
|
uri,
|
|
115
120
|
id: (frontmatter === null || frontmatter === void 0 ? void 0 : frontmatter.sessionId) || uri.path.base
|
|
116
121
|
};
|
|
@@ -121,21 +126,22 @@ let TaskContextFileStorageService = class TaskContextFileStorageService {
|
|
|
121
126
|
this.inMemoryStorage.store(summary);
|
|
122
127
|
}
|
|
123
128
|
async store(summary) {
|
|
124
|
-
const
|
|
129
|
+
const label = this.sanitizeLabel(summary.label);
|
|
130
|
+
const storageLocation = await this.getStorageLocation();
|
|
125
131
|
if (storageLocation) {
|
|
126
132
|
const frontmatter = {
|
|
127
133
|
sessionId: summary.sessionId,
|
|
128
134
|
date: new Date().toISOString(),
|
|
129
|
-
label
|
|
135
|
+
label,
|
|
130
136
|
};
|
|
131
|
-
const derivedName =
|
|
137
|
+
const derivedName = label.trim().replace(/[^\p{L}\p{N}]/vg, '-').replace(/^-+|-+$/g, '');
|
|
132
138
|
const filename = (derivedName.length > 32 ? derivedName.slice(0, derivedName.indexOf('-', 32)) : derivedName) + '.md';
|
|
133
139
|
const content = yaml.dump(frontmatter).trim() + `${core_1.EOL}---${core_1.EOL}` + summary.summary;
|
|
134
140
|
const uri = storageLocation.resolve(filename);
|
|
135
141
|
summary.uri = uri;
|
|
136
142
|
await this.fileService.writeFile(uri, buffer_1.BinaryBuffer.fromString(content));
|
|
137
143
|
}
|
|
138
|
-
this.inMemoryStorage.store(summary);
|
|
144
|
+
this.inMemoryStorage.store({ ...summary, label });
|
|
139
145
|
this.onDidChangeEmitter.fire();
|
|
140
146
|
}
|
|
141
147
|
getAll() {
|
|
@@ -200,6 +206,10 @@ tslib_1.__decorate([
|
|
|
200
206
|
(0, inversify_1.inject)(browser_1.OpenerService),
|
|
201
207
|
tslib_1.__metadata("design:type", Object)
|
|
202
208
|
], TaskContextFileStorageService.prototype, "openerService", void 0);
|
|
209
|
+
tslib_1.__decorate([
|
|
210
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
211
|
+
tslib_1.__metadata("design:type", Object)
|
|
212
|
+
], TaskContextFileStorageService.prototype, "logger", void 0);
|
|
203
213
|
tslib_1.__decorate([
|
|
204
214
|
(0, inversify_1.postConstruct)(),
|
|
205
215
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-context-file-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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;;;;AAGhF,0GAAqG;AACrG,4DAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"task-context-file-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-file-storage-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
|
|
2
2
|
export declare const CONSIDER_GITIGNORE_PREF = "ai-features.workspaceFunctions.considerGitIgnore";
|
|
3
3
|
export declare const USER_EXCLUDE_PATTERN_PREF = "ai-features.workspaceFunctions.userExcludes";
|
|
4
|
+
export declare const SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF = "ai-features.workspaceFunctions.searchMaxResults";
|
|
4
5
|
export declare const PROMPT_TEMPLATE_WORKSPACE_DIRECTORIES_PREF = "ai-features.promptTemplates.WorkspaceTemplateDirectories";
|
|
5
6
|
export declare const PROMPT_TEMPLATE_ADDITIONAL_EXTENSIONS_PREF = "ai-features.promptTemplates.TemplateExtensions";
|
|
6
7
|
export declare const PROMPT_TEMPLATE_WORKSPACE_FILES_PREF = "ai-features.promptTemplates.WorkspaceTemplateFiles";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,qDAAqD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,gDAAgD,CAAC;AACvF,eAAO,MAAM,0CAA0C,6DAA6D,CAAC;AACrH,eAAO,MAAM,0CAA0C,mDAAmD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,uDAAuD,CAAC;AACzG,eAAO,MAAM,mCAAmC,4DAA4D,CAAC;AAK7G,eAAO,MAAM,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"workspace-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,qDAAqD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,gDAAgD,CAAC;AACvF,eAAO,MAAM,oCAAoC,oDAAoD,CAAC;AACtG,eAAO,MAAM,0CAA0C,6DAA6D,CAAC;AACrH,eAAO,MAAM,0CAA0C,mDAAmD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,uDAAuD,CAAC;AACzG,eAAO,MAAM,mCAAmC,4DAA4D,CAAC;AAK7G,eAAO,MAAM,0BAA0B,EAAE,gBAmExC,CAAC"}
|
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.WorkspacePreferencesSchema = exports.TASK_CONTEXT_STORAGE_DIRECTORY_PREF = exports.PROMPT_TEMPLATE_WORKSPACE_FILES_PREF = exports.PROMPT_TEMPLATE_ADDITIONAL_EXTENSIONS_PREF = exports.PROMPT_TEMPLATE_WORKSPACE_DIRECTORIES_PREF = exports.USER_EXCLUDE_PATTERN_PREF = exports.CONSIDER_GITIGNORE_PREF = void 0;
|
|
18
|
+
exports.WorkspacePreferencesSchema = exports.TASK_CONTEXT_STORAGE_DIRECTORY_PREF = exports.PROMPT_TEMPLATE_WORKSPACE_FILES_PREF = exports.PROMPT_TEMPLATE_ADDITIONAL_EXTENSIONS_PREF = exports.PROMPT_TEMPLATE_WORKSPACE_DIRECTORIES_PREF = exports.SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF = exports.USER_EXCLUDE_PATTERN_PREF = exports.CONSIDER_GITIGNORE_PREF = void 0;
|
|
19
19
|
const core_1 = require("@theia/core");
|
|
20
20
|
exports.CONSIDER_GITIGNORE_PREF = 'ai-features.workspaceFunctions.considerGitIgnore';
|
|
21
21
|
exports.USER_EXCLUDE_PATTERN_PREF = 'ai-features.workspaceFunctions.userExcludes';
|
|
22
|
+
exports.SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF = 'ai-features.workspaceFunctions.searchMaxResults';
|
|
22
23
|
exports.PROMPT_TEMPLATE_WORKSPACE_DIRECTORIES_PREF = 'ai-features.promptTemplates.WorkspaceTemplateDirectories';
|
|
23
24
|
exports.PROMPT_TEMPLATE_ADDITIONAL_EXTENSIONS_PREF = 'ai-features.promptTemplates.TemplateExtensions';
|
|
24
25
|
exports.PROMPT_TEMPLATE_WORKSPACE_FILES_PREF = 'ai-features.promptTemplates.WorkspaceTemplateFiles';
|
|
@@ -43,6 +44,13 @@ exports.WorkspacePreferencesSchema = {
|
|
|
43
44
|
type: 'string'
|
|
44
45
|
}
|
|
45
46
|
},
|
|
47
|
+
[exports.SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF]: {
|
|
48
|
+
type: 'number',
|
|
49
|
+
title: core_1.nls.localize('theia/ai/workspace/searchMaxResults/title', 'Maximum Search Results'),
|
|
50
|
+
description: core_1.nls.localize('theia/ai/workspace/searchMaxResults/description', 'Maximum number of search results returned by the workspace search function.'),
|
|
51
|
+
default: 30,
|
|
52
|
+
minimum: 1
|
|
53
|
+
},
|
|
46
54
|
[exports.PROMPT_TEMPLATE_WORKSPACE_DIRECTORIES_PREF]: {
|
|
47
55
|
type: 'array',
|
|
48
56
|
title: core_1.nls.localize('theia/ai/promptTemplates/directories/title', 'Workspace-specific Prompt Template Directories'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-preferences.js","sourceRoot":"","sources":["../../src/browser/workspace-preferences.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,sCAAkC;AAGrB,QAAA,uBAAuB,GAAG,kDAAkD,CAAC;AAC7E,QAAA,yBAAyB,GAAG,6CAA6C,CAAC;AAC1E,QAAA,0CAA0C,GAAG,0DAA0D,CAAC;AACxG,QAAA,0CAA0C,GAAG,gDAAgD,CAAC;AAC9F,QAAA,oCAAoC,GAAG,oDAAoD,CAAC;AAC5F,QAAA,mCAAmC,GAAG,yDAAyD,CAAC;AAE7G,MAAM,+BAA+B,GAAG;iEACyB,CAAC;AAErD,QAAA,0BAA0B,GAAqB;IACxD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,+BAAuB,CAAC,EAAE;YACvB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,qBAAqB,CAAC;YACxF,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EACxE,qHAAqH,CAAC;YAC1H,OAAO,EAAE,KAAK;SACjB;QACD,CAAC,iCAAyB,CAAC,EAAE;YACzB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EAAE,wBAAwB,CAAC;YACzF,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,gDAAgD,EAAE,gEAAgE,CAAC;YAC7I,OAAO,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC;YACtC,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,kDAA0C,CAAC,EAAE;YAC1C,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,gDAAgD,CAAC;YACnH,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EACxE,4HAA4H;gBAC5H,+BAA+B,CAAC;YACpC,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,kDAA0C,CAAC,EAAE;YAC1C,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,4CAA4C,CAAC;YAC9G,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACvE,wJAAwJ,CAAC;YAC7J,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,4CAAoC,CAAC,EAAE;YACpC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,0CAA0C,CAAC;YACvG,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAClE,oGAAoG;gBACpG,+BAA+B,CAAC;YACpC,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,2CAAmC,CAAC,EAAE;YACnC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,uDAAuD,EAC7E,qGAAqG;gBACrG,+FAA+F,CAClG;YACD,OAAO,EAAE,wBAAwB;SACpC;KACJ;CACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"workspace-preferences.js","sourceRoot":"","sources":["../../src/browser/workspace-preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { ToolProvider, ToolRequest } from '@theia/ai-core';
|
|
2
|
+
import { PreferenceService } from '@theia/core/lib/browser/preferences/preference-service';
|
|
3
|
+
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
2
4
|
import { SearchInWorkspaceService } from '@theia/search-in-workspace/lib/browser/search-in-workspace-service';
|
|
3
5
|
import { WorkspaceFunctionScope } from './workspace-functions';
|
|
4
6
|
export declare class WorkspaceSearchProvider implements ToolProvider {
|
|
5
7
|
protected readonly searchService: SearchInWorkspaceService;
|
|
6
8
|
protected readonly workspaceScope: WorkspaceFunctionScope;
|
|
7
|
-
|
|
9
|
+
protected readonly preferenceService: PreferenceService;
|
|
10
|
+
protected readonly fileService: FileService;
|
|
8
11
|
getTool(): ToolRequest;
|
|
12
|
+
private determineSearchRoots;
|
|
9
13
|
private handleSearch;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=workspace-search-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-search-provider.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-search-provider.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAE3F,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAA8B,MAAM,oEAAoE,CAAC;AAG1I,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,qBACa,uBAAwB,YAAW,YAAY;IAGxD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,OAAO,IAAI,WAAW;YAwCR,oBAAoB;YAsBpB,YAAY;CAqG7B"}
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.WorkspaceSearchProvider = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
|
-
const
|
|
20
|
+
const preference_service_1 = require("@theia/core/lib/browser/preferences/preference-service");
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
22
23
|
const search_in_workspace_service_1 = require("@theia/search-in-workspace/lib/browser/search-in-workspace-service");
|
|
23
24
|
const workspace_functions_1 = require("../common/workspace-functions");
|
|
24
25
|
const workspace_functions_2 = require("./workspace-functions");
|
|
26
|
+
const workspace_preferences_1 = require("./workspace-preferences");
|
|
27
|
+
const workspace_search_provider_util_1 = require("../common/workspace-search-provider-util");
|
|
25
28
|
let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.MAX_RESULTS = 50;
|
|
28
|
-
}
|
|
29
29
|
getTool() {
|
|
30
30
|
return {
|
|
31
31
|
id: workspace_functions_1.SEARCH_IN_WORKSPACE_FUNCTION_ID,
|
|
@@ -34,7 +34,7 @@ let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
|
34
34
|
The search uses case-insensitive string matching or regular expressions (controlled by the `useRegExp` parameter). \
|
|
35
35
|
It returns a list of matching files, including the file path (URI), the line number, and the full text content of each matching line. \
|
|
36
36
|
Multi-word patterns must match exactly (including spaces, case-insensitively). \
|
|
37
|
-
For best results, use specific search terms and consider filtering by file extensions to avoid overwhelming results. \
|
|
37
|
+
For best results, use specific search terms and consider filtering by file extensions or limiting to specific subdirectories to avoid overwhelming results. \
|
|
38
38
|
For complex searches, prefer multiple simpler queries over one complex query or regular expression.',
|
|
39
39
|
parameters: {
|
|
40
40
|
type: 'object',
|
|
@@ -53,6 +53,11 @@ let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
|
53
53
|
type: 'string'
|
|
54
54
|
},
|
|
55
55
|
description: 'Optional array of file extensions to search in (e.g., ["ts", "js", "py"]). If not specified, searches all files.'
|
|
56
|
+
},
|
|
57
|
+
subDirectoryPath: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Optional subdirectory path to limit search scope. Use relative paths from workspace root ' +
|
|
60
|
+
'(e.g., "packages/ai-ide/src", "packages/core/src/browser"). If not specified, searches entire workspace.'
|
|
56
61
|
}
|
|
57
62
|
},
|
|
58
63
|
required: ['query', 'useRegExp']
|
|
@@ -60,13 +65,31 @@ let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
|
60
65
|
handler: (argString, ctx) => { var _a; return this.handleSearch(argString, (_a = ctx === null || ctx === void 0 ? void 0 : ctx.response) === null || _a === void 0 ? void 0 : _a.cancellationToken); }
|
|
61
66
|
};
|
|
62
67
|
}
|
|
68
|
+
async determineSearchRoots(subDirectoryPath) {
|
|
69
|
+
const workspaceRoot = await this.workspaceScope.getWorkspaceRoot();
|
|
70
|
+
if (!subDirectoryPath) {
|
|
71
|
+
return [workspaceRoot.toString()];
|
|
72
|
+
}
|
|
73
|
+
const subDirUri = workspaceRoot.resolve(subDirectoryPath);
|
|
74
|
+
this.workspaceScope.ensureWithinWorkspace(subDirUri, workspaceRoot);
|
|
75
|
+
try {
|
|
76
|
+
const stat = await this.fileService.resolve(subDirUri);
|
|
77
|
+
if (!stat || !stat.isDirectory) {
|
|
78
|
+
throw new Error(`Subdirectory '${subDirectoryPath}' does not exist or is not a directory`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
throw new Error(`Invalid subdirectory path '${subDirectoryPath}': ${error.message}`);
|
|
83
|
+
}
|
|
84
|
+
return [subDirUri.toString()];
|
|
85
|
+
}
|
|
63
86
|
async handleSearch(argString, cancellationToken) {
|
|
64
87
|
try {
|
|
65
88
|
const args = JSON.parse(argString);
|
|
66
89
|
const results = [];
|
|
67
90
|
let expectedSearchId;
|
|
68
91
|
let searchCompleted = false;
|
|
69
|
-
const searchPromise = new Promise((resolve, reject) => {
|
|
92
|
+
const searchPromise = new Promise(async (resolve, reject) => {
|
|
70
93
|
const callbacks = {
|
|
71
94
|
onResult: (id, result) => {
|
|
72
95
|
if (expectedSearchId !== undefined && id !== expectedSearchId) {
|
|
@@ -86,23 +109,26 @@ let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
|
86
109
|
}
|
|
87
110
|
searchCompleted = true;
|
|
88
111
|
if (error) {
|
|
89
|
-
reject(new Error(
|
|
112
|
+
reject(new Error('Search failed: ' + error));
|
|
90
113
|
}
|
|
91
114
|
else {
|
|
92
115
|
resolve(results);
|
|
93
116
|
}
|
|
94
117
|
}
|
|
95
118
|
};
|
|
119
|
+
// Use one more than our actual maximum. this way we can determine if we have more results than our maximum and warn the user
|
|
120
|
+
const maxResultsForTheiaAPI = this.preferenceService.get(workspace_preferences_1.SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF, 30) + 1;
|
|
96
121
|
const options = {
|
|
97
122
|
useRegExp: args.useRegExp,
|
|
98
123
|
matchCase: false,
|
|
99
124
|
matchWholeWord: false,
|
|
100
|
-
maxResults:
|
|
125
|
+
maxResults: maxResultsForTheiaAPI,
|
|
101
126
|
};
|
|
102
127
|
if (args.fileExtensions && args.fileExtensions.length > 0) {
|
|
103
128
|
options.include = args.fileExtensions.map(ext => `**/*.${ext}`);
|
|
104
129
|
}
|
|
105
|
-
this.
|
|
130
|
+
await this.determineSearchRoots(args.subDirectoryPath)
|
|
131
|
+
.then(rootUris => this.searchService.searchWithCallback(args.query, rootUris, callbacks, options))
|
|
106
132
|
.then(id => {
|
|
107
133
|
expectedSearchId = id;
|
|
108
134
|
cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.onCancellationRequested(() => {
|
|
@@ -124,15 +150,21 @@ let WorkspaceSearchProvider = class WorkspaceSearchProvider {
|
|
|
124
150
|
}, 30000);
|
|
125
151
|
});
|
|
126
152
|
const finalResults = await Promise.race([searchPromise, timeoutPromise]);
|
|
153
|
+
const maxResults = this.preferenceService.get(workspace_preferences_1.SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF, 30);
|
|
127
154
|
const workspaceRoot = await this.workspaceScope.getWorkspaceRoot();
|
|
128
|
-
const formattedResults =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
155
|
+
const formattedResults = (0, workspace_search_provider_util_1.optimizeSearchResults)(finalResults, workspaceRoot);
|
|
156
|
+
let numberOfMatchesInFinalResults = 0;
|
|
157
|
+
for (const result of finalResults) {
|
|
158
|
+
numberOfMatchesInFinalResults += result.matches.length;
|
|
159
|
+
}
|
|
160
|
+
if (numberOfMatchesInFinalResults > maxResults) {
|
|
161
|
+
return JSON.stringify({
|
|
162
|
+
info: 'Search limit exceeded: Found ' + maxResults + '+ results. ' +
|
|
163
|
+
'Please refine your search with more specific terms or use file extension filters. ' +
|
|
164
|
+
'You can increase the limit in preferences under \'ai-features.workspaceFunctions.searchMaxResults\'.',
|
|
165
|
+
incompleteResults: formattedResults
|
|
166
|
+
});
|
|
167
|
+
}
|
|
136
168
|
return JSON.stringify(formattedResults);
|
|
137
169
|
}
|
|
138
170
|
catch (error) {
|
|
@@ -149,6 +181,14 @@ tslib_1.__decorate([
|
|
|
149
181
|
(0, inversify_1.inject)(workspace_functions_2.WorkspaceFunctionScope),
|
|
150
182
|
tslib_1.__metadata("design:type", workspace_functions_2.WorkspaceFunctionScope)
|
|
151
183
|
], WorkspaceSearchProvider.prototype, "workspaceScope", void 0);
|
|
184
|
+
tslib_1.__decorate([
|
|
185
|
+
(0, inversify_1.inject)(preference_service_1.PreferenceService),
|
|
186
|
+
tslib_1.__metadata("design:type", Object)
|
|
187
|
+
], WorkspaceSearchProvider.prototype, "preferenceService", void 0);
|
|
188
|
+
tslib_1.__decorate([
|
|
189
|
+
(0, inversify_1.inject)(file_service_1.FileService),
|
|
190
|
+
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
191
|
+
], WorkspaceSearchProvider.prototype, "fileService", void 0);
|
|
152
192
|
exports.WorkspaceSearchProvider = WorkspaceSearchProvider = tslib_1.__decorate([
|
|
153
193
|
(0, inversify_1.injectable)()
|
|
154
194
|
], WorkspaceSearchProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-search-provider.js","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.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":"workspace-search-provider.js","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-search-provider.spec.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
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
|
+
const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
|
|
19
|
+
const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
|
|
20
|
+
let disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
21
|
+
frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
|
|
22
|
+
const chai_1 = require("chai");
|
|
23
|
+
const core_1 = require("@theia/core");
|
|
24
|
+
const workspace_search_provider_util_1 = require("../common/workspace-search-provider-util");
|
|
25
|
+
disableJSDOM();
|
|
26
|
+
describe('WorkspaceSearchProvider - Token Optimization', () => {
|
|
27
|
+
before(() => {
|
|
28
|
+
disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
29
|
+
});
|
|
30
|
+
after(() => {
|
|
31
|
+
disableJSDOM();
|
|
32
|
+
});
|
|
33
|
+
describe('optimizeSearchResults method', () => {
|
|
34
|
+
it('should preserve all information while optimizing format', () => {
|
|
35
|
+
const workspaceRoot = new core_1.URI('file:///workspace');
|
|
36
|
+
const mockResults = [
|
|
37
|
+
{
|
|
38
|
+
root: 'file:///workspace',
|
|
39
|
+
fileUri: 'file:///workspace/src/test.ts',
|
|
40
|
+
matches: [
|
|
41
|
+
{
|
|
42
|
+
line: 1,
|
|
43
|
+
character: 5,
|
|
44
|
+
length: 8,
|
|
45
|
+
lineText: ' const test = "hello"; '
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
line: 5,
|
|
49
|
+
character: 10,
|
|
50
|
+
length: 4,
|
|
51
|
+
lineText: '\t\tfunction test() { }\n'
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
root: 'file:///workspace',
|
|
57
|
+
fileUri: 'file:///workspace/lib/utils.js',
|
|
58
|
+
matches: [
|
|
59
|
+
{
|
|
60
|
+
line: 10,
|
|
61
|
+
character: 0,
|
|
62
|
+
length: 6,
|
|
63
|
+
lineText: 'export default function() {}'
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
const result = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
69
|
+
(0, chai_1.expect)(result).to.have.length(2);
|
|
70
|
+
// First file
|
|
71
|
+
(0, chai_1.expect)(result[0]).to.deep.equal({
|
|
72
|
+
file: 'src/test.ts',
|
|
73
|
+
matches: [
|
|
74
|
+
{
|
|
75
|
+
line: 1,
|
|
76
|
+
text: 'const test = "hello";'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
line: 5,
|
|
80
|
+
text: 'function test() { }'
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
});
|
|
84
|
+
// Second file
|
|
85
|
+
(0, chai_1.expect)(result[1]).to.deep.equal({
|
|
86
|
+
file: 'lib/utils.js',
|
|
87
|
+
matches: [
|
|
88
|
+
{
|
|
89
|
+
line: 10,
|
|
90
|
+
text: 'export default function() {}'
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('should handle LinePreview objects correctly', () => {
|
|
96
|
+
const workspaceRoot = new core_1.URI('file:///workspace');
|
|
97
|
+
const linePreview = {
|
|
98
|
+
text: ' preview text with spaces ',
|
|
99
|
+
character: 5
|
|
100
|
+
};
|
|
101
|
+
const mockResults = [
|
|
102
|
+
{
|
|
103
|
+
root: 'file:///workspace',
|
|
104
|
+
fileUri: 'file:///workspace/preview.ts',
|
|
105
|
+
matches: [
|
|
106
|
+
{
|
|
107
|
+
line: 3,
|
|
108
|
+
character: 5,
|
|
109
|
+
length: 7,
|
|
110
|
+
lineText: linePreview
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
];
|
|
115
|
+
const result = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
116
|
+
(0, chai_1.expect)(result[0].matches[0]).to.deep.equal({
|
|
117
|
+
line: 3,
|
|
118
|
+
text: 'preview text with spaces'
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
it('should handle empty LinePreview text gracefully', () => {
|
|
122
|
+
const workspaceRoot = new core_1.URI('file:///workspace');
|
|
123
|
+
const linePreview = {
|
|
124
|
+
text: '',
|
|
125
|
+
character: 0
|
|
126
|
+
};
|
|
127
|
+
const mockResults = [
|
|
128
|
+
{
|
|
129
|
+
root: 'file:///workspace',
|
|
130
|
+
fileUri: 'file:///workspace/empty.ts',
|
|
131
|
+
matches: [
|
|
132
|
+
{
|
|
133
|
+
line: 1,
|
|
134
|
+
character: 0,
|
|
135
|
+
length: 0,
|
|
136
|
+
lineText: linePreview
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
];
|
|
141
|
+
const result = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
142
|
+
(0, chai_1.expect)(result[0].matches[0]).to.deep.equal({
|
|
143
|
+
line: 1,
|
|
144
|
+
text: ''
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
it('should preserve semantic whitespace within lines', () => {
|
|
148
|
+
const workspaceRoot = new core_1.URI('file:///workspace');
|
|
149
|
+
const mockResults = [
|
|
150
|
+
{
|
|
151
|
+
root: 'file:///workspace',
|
|
152
|
+
fileUri: 'file:///workspace/spaces.ts',
|
|
153
|
+
matches: [
|
|
154
|
+
{
|
|
155
|
+
line: 1,
|
|
156
|
+
character: 0,
|
|
157
|
+
length: 20,
|
|
158
|
+
lineText: ' if (a && b) { '
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
];
|
|
163
|
+
const result = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
164
|
+
(0, chai_1.expect)(result[0].matches[0].text).to.equal('if (a && b) {');
|
|
165
|
+
});
|
|
166
|
+
it('should use absolute URI when relative path cannot be determined', () => {
|
|
167
|
+
const workspaceRoot = new core_1.URI('file:///different-workspace');
|
|
168
|
+
const mockResults = [
|
|
169
|
+
{
|
|
170
|
+
root: 'file:///workspace',
|
|
171
|
+
fileUri: 'file:///workspace/outside.ts',
|
|
172
|
+
matches: [
|
|
173
|
+
{
|
|
174
|
+
line: 1,
|
|
175
|
+
character: 0,
|
|
176
|
+
length: 4,
|
|
177
|
+
lineText: 'test'
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
];
|
|
182
|
+
const result = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
183
|
+
(0, chai_1.expect)(result[0].file).to.equal('file:///workspace/outside.ts');
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
describe('token efficiency validation', () => {
|
|
187
|
+
it('should produce more compact JSON than original format', () => {
|
|
188
|
+
const workspaceRoot = new core_1.URI('file:///workspace');
|
|
189
|
+
const mockResults = [
|
|
190
|
+
{
|
|
191
|
+
root: 'file:///workspace',
|
|
192
|
+
fileUri: 'file:///workspace/src/test.ts',
|
|
193
|
+
matches: [
|
|
194
|
+
{
|
|
195
|
+
line: 1,
|
|
196
|
+
character: 5,
|
|
197
|
+
length: 8,
|
|
198
|
+
lineText: ' const test = "hello"; '
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
];
|
|
203
|
+
// Original format (simulated)
|
|
204
|
+
const originalFormat = JSON.stringify([{
|
|
205
|
+
root: 'file:///workspace',
|
|
206
|
+
fileUri: 'file:///workspace/src/test.ts',
|
|
207
|
+
matches: [{
|
|
208
|
+
line: 1,
|
|
209
|
+
character: 5,
|
|
210
|
+
length: 8,
|
|
211
|
+
lineText: ' const test = "hello"; '
|
|
212
|
+
}]
|
|
213
|
+
}]);
|
|
214
|
+
// Optimized format
|
|
215
|
+
const optimizedResults = (0, workspace_search_provider_util_1.optimizeSearchResults)(mockResults, workspaceRoot);
|
|
216
|
+
const optimizedFormat = JSON.stringify(optimizedResults);
|
|
217
|
+
// The optimized format should be significantly shorter
|
|
218
|
+
(0, chai_1.expect)(optimizedFormat.length).to.be.lessThan(originalFormat.length);
|
|
219
|
+
// But should preserve essential information
|
|
220
|
+
const parsed = JSON.parse(optimizedFormat);
|
|
221
|
+
(0, chai_1.expect)(parsed[0].file).to.equal('src/test.ts');
|
|
222
|
+
(0, chai_1.expect)(parsed[0].matches[0].line).to.equal(1);
|
|
223
|
+
(0, chai_1.expect)(parsed[0].matches[0].text).to.equal('const test = "hello";');
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
//# sourceMappingURL=workspace-search-provider.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-search-provider.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-search-provider.spec.ts"],"names":[],"mappings":"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"}
|