Skip to content

Commit

Permalink
urls werent being expanded in tree/ide mode (#3711)
Browse files Browse the repository at this point in the history
* urls werent being expanded in tree/ide mode

* also expand mainsource
  • Loading branch information
partouf committed May 26, 2022
1 parent 38d42f2 commit bf061d8
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 34 deletions.
50 changes: 33 additions & 17 deletions static/panes/compiler.js
Expand Up @@ -973,33 +973,49 @@ Compiler.prototype.compileFromTree = function (options, bypassCache) {
return;
}

var mainsource = tree.multifileService.getMainSource();

var request = {
source: mainsource,
source: tree.multifileService.getMainSource(),
compiler: this.compiler ? this.compiler.id : '',
options: options,
lang: this.currentLangId,
files: tree.multifileService.getFiles(),
};

var treeState = tree.currentState();
var cmakeProject = tree.multifileService.isACMakeProject();
const fetches = [];

if (bypassCache) request.bypassCache = true;
if (!this.compiler) {
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
} else if (cmakeProject && request.source === '') {
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
} else {
if (cmakeProject) {
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
this.sendCMakeCompile(request);
fetches.push(
this.compilerService.expand(request.source).then(contents => {
request.source = contents;
})
);

for (let file of request.files) {
fetches.push(
this.compilerService.expand(file.contents).then(contents => {
file.contents = contents;
})
);
}

Promise.all(fetches).then(() => {
var treeState = tree.currentState();
var cmakeProject = tree.multifileService.isACMakeProject();

if (bypassCache) request.bypassCache = true;
if (!this.compiler) {
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
} else if (cmakeProject && request.source === '') {
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
} else {
this.sendCompile(request);
if (cmakeProject) {
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
this.sendCMakeCompile(request);
} else {
this.sendCompile(request);
}
}
}
});
};

Compiler.prototype.compileFromEditorSource = function (options, bypassCache) {
Expand Down
51 changes: 34 additions & 17 deletions static/panes/executor.js
Expand Up @@ -25,6 +25,7 @@
'use strict';
var $ = require('jquery');
var _ = require('underscore');
var Promise = require('es6-promise').Promise;
var ga = require('../analytics').ga;
var Toggles = require('../widgets/toggles').Toggles;
var FontScale = require('../widgets/fontscale').FontScale;
Expand Down Expand Up @@ -251,33 +252,49 @@ Executor.prototype.compileFromTree = function (options, bypassCache) {
return;
}

var mainsource = tree.multifileService.getMainSource();

var request = {
source: mainsource,
source: tree.multifileService.getMainSource(),
compiler: this.compiler ? this.compiler.id : '',
options: options,
lang: this.currentLangId,
files: tree.multifileService.getFiles(),
};

var treeState = tree.currentState();
var cmakeProject = tree.multifileService.isACMakeProject();
const fetches = [];

if (bypassCache) request.bypassCache = true;
if (!this.compiler) {
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
} else if (cmakeProject && request.source === '') {
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
} else {
if (cmakeProject) {
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
this.sendCMakeCompile(request);
fetches.push(
this.compilerService.expand(request.source).then(contents => {
request.source = contents;
})
);

for (let file of request.files) {
fetches.push(
this.compilerService.expand(file.contents).then(contents => {
file.contents = contents;
})
);
}

Promise.all(fetches).then(() => {
var treeState = tree.currentState();
var cmakeProject = tree.multifileService.isACMakeProject();

if (bypassCache) request.bypassCache = true;
if (!this.compiler) {
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
} else if (cmakeProject && request.source === '') {
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
} else {
this.sendCompile(request);
if (cmakeProject) {
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
this.sendCMakeCompile(request);
} else {
this.sendCompile(request);
}
}
}
});
};

Executor.prototype.sendCMakeCompile = function (request) {
Expand Down

0 comments on commit bf061d8

Please sign in to comment.