ATL-935: Better support for opening large projects

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This commit is contained in:
Akos Kitta 2021-02-12 09:27:36 +01:00 committed by Akos Kitta
parent 1280a344a7
commit 1dc7a89dd9
4 changed files with 6 additions and 4 deletions

View File

@ -314,8 +314,8 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
protected async openSketchFiles(uri: URI): Promise<void> { protected async openSketchFiles(uri: URI): Promise<void> {
try { try {
const sketch = await this.sketchService.loadSketch(uri.toString()); const sketch = await this.sketchService.loadSketch(uri.toString());
const { mainFileUri, otherSketchFileUris, additionalFileUris } = sketch; const { mainFileUri, rootFolderFileUris } = sketch;
for (const uri of [mainFileUri, ...otherSketchFileUris, ...additionalFileUris]) { for (const uri of [mainFileUri, ...rootFolderFileUris]) {
await this.ensureOpened(uri); await this.ensureOpened(uri);
} }
await this.ensureOpened(mainFileUri, true); await this.ensureOpened(mainFileUri, true);

View File

@ -40,8 +40,8 @@ export class SketchControl extends SketchContribution {
return; return;
} }
const { mainFileUri, otherSketchFileUris, additionalFileUris } = await this.sketchService.loadSketch(sketch.uri); const { mainFileUri, rootFolderFileUris } = await this.sketchService.loadSketch(sketch.uri);
const uris = [mainFileUri, ...otherSketchFileUris, ...additionalFileUris]; const uris = [mainFileUri, ...rootFolderFileUris];
for (let i = 0; i < uris.length; i++) { for (let i = 0; i < uris.length; i++) {
const uri = new URI(uris[i]); const uri = new URI(uris[i]);
const command = { id: `arduino-focus-file--${uri.toString()}` }; const command = { id: `arduino-focus-file--${uri.toString()}` };

View File

@ -71,6 +71,7 @@ export interface Sketch {
readonly mainFileUri: string; // `MainFile` readonly mainFileUri: string; // `MainFile`
readonly otherSketchFileUris: string[]; // `OtherSketchFiles` readonly otherSketchFileUris: string[]; // `OtherSketchFiles`
readonly additionalFileUris: string[]; // `AdditionalFiles` readonly additionalFileUris: string[]; // `AdditionalFiles`
readonly rootFolderFileUris: string[]; // `RootFolderFiles` (does not include the main sketch file)
} }
export namespace Sketch { export namespace Sketch {
export function is(arg: any): arg is Sketch { export function is(arg: any): arg is Sketch {

View File

@ -94,6 +94,7 @@ export class SketchesServiceImpl implements SketchesService {
mainFileUri: FileUri.create(resp.getMainFile()).toString(), mainFileUri: FileUri.create(resp.getMainFile()).toString(),
otherSketchFileUris: resp.getOtherSketchFilesList().map(p => FileUri.create(p).toString()), otherSketchFileUris: resp.getOtherSketchFilesList().map(p => FileUri.create(p).toString()),
additionalFileUris: resp.getAdditionalFilesList().map(p => FileUri.create(p).toString()), additionalFileUris: resp.getAdditionalFilesList().map(p => FileUri.create(p).toString()),
rootFolderFileUris: resp.getRootFolderFilesList().map(p => FileUri.create(p).toString()),
mtimeMs mtimeMs
}); });
}); });