diff --git a/apps/remix-ide-e2e/src/tests/url.spec.ts b/apps/remix-ide-e2e/src/tests/url.spec.ts index bca3e11e68..04d61a1afe 100644 --- a/apps/remix-ide-e2e/src/tests/url.spec.ts +++ b/apps/remix-ide-e2e/src/tests/url.spec.ts @@ -71,13 +71,14 @@ module.exports = { 'Should load using URL compiler params': function (browser: NightwatchBrowser) { browser .pause(5000) - .url('http://127.0.0.1:8080/#optimize=true&runs=300&evmVersion=istanbul&version=soljson-v0.7.4+commit.3f05b770.js') + .url('http://127.0.0.1:8080/#optimize=true&runs=300&autoCompile=true&evmVersion=istanbul&version=soljson-v0.7.4+commit.3f05b770.js') .refresh() .pause(5000) .clickLaunchIcon('solidity') .assert.containsText('#versionSelector option[data-id="selected"]', '0.7.4+commit.3f05b770') .assert.containsText('#evmVersionSelector option[data-id="selected"]', 'istanbul') .verify.elementPresent('#optimize:checked') + .verify.elementPresent('#autoCompile:checked') .verify.attributeEquals('#runs', 'value', '300') }, diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 2479d3d1fe..c2f52d9ade 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -495,8 +495,13 @@ Please make a backup of your contracts and start using http://remix.ethereum.org console.log(e) } - // If plugins are loaded from the URL params, we focus on the last one. - if (pluginLoader.current === 'queryParams' && workspace.length > 0) menuicons.select(workspace[workspace.length - 1]) + if (params.code) { + // if code is given in url we focus on solidity plugin + menuicons.select('solidity') + } else { + // If plugins are loaded from the URL params, we focus on the last one. + if (pluginLoader.current === 'queryParams' && workspace.length > 0) menuicons.select(workspace[workspace.length - 1]) + } if (params.call) { const callDetails = params.call.split('//') @@ -516,5 +521,6 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const framingService = new FramingService(sidePanel, menuicons, mainview, this._components.resizeFeature) if (params.embed) framingService.embed() + if (params.code) framingService.code() framingService.start(params) } diff --git a/apps/remix-ide/src/framingService.js b/apps/remix-ide/src/framingService.js index 92b99ecc81..75c217f18a 100644 --- a/apps/remix-ide/src/framingService.js +++ b/apps/remix-ide/src/framingService.js @@ -1,7 +1,7 @@ export class FramingService { - constructor (sidePanel, verticalIcon, mainView, resizeFeature) { + constructor (sidePanel, verticalIcons, mainView, resizeFeature) { this.sidePanel = sidePanel - this.verticalIcon = verticalIcon + this.verticalIcons = verticalIcons this.mainPanel = mainView.getAppPanel() this.mainView = mainView this.resizeFeature = resizeFeature @@ -18,16 +18,16 @@ export class FramingService { this.resizeFeature.showPanel() }) - this.verticalIcon.select('filePanel') + this.verticalIcons.select('filePanel') document.addEventListener('keypress', (e) => { if (e.shiftKey && e.ctrlKey) { if (e.code === 'KeyF') { // Ctrl+Shift+F - this.verticalIcon.select('filePanel') + this.verticalIcons.select('filePanel') } else if (e.code === 'KeyA') { // Ctrl+Shift+A - this.verticalIcon.select('pluginManager') + this.verticalIcons.select('pluginManager') } else if (e.code === 'KeyS') { // Ctrl+Shift+S - this.verticalIcon.select('settings') + this.verticalIcons.select('settings') } e.preventDefault() } diff --git a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx index dcf0adfc61..9469121adf 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx @@ -69,13 +69,14 @@ export const CompilerContainer = (props: CompilerContainerProps) => { const optimize = params.optimize === 'false' ? false : params.optimize === 'true' ? true : null const runs = params.runs const evmVersion = params.evmVersion + const autoCompile = params.autoCompile === 'false' ? false : params.autoCompile === 'true' ? true : null return { ...prevState, hideWarnings: api.getConfiguration('hideWarnings') || false, - autoCompile: api.getConfiguration('autoCompile') || false, + autoCompile: typeof autoCompile === 'boolean' ? autoCompile : api.getConfiguration('autoCompile') || false, includeNightlies: api.getConfiguration('includeNightlies') || false, - optimise: (optimize !== null) && (optimize !== undefined) ? optimize : api.getConfiguration('optimise') || false, + optimise: typeof optimize === 'boolean' ? optimize : api.getConfiguration('optimise') || false, runs: (runs !== null) && (runs !== 'null') && (runs !== undefined) && (runs !== 'undefined') ? runs : 200, evmVersion: (evmVersion !== null) && (evmVersion !== 'null') && (evmVersion !== undefined) && (evmVersion !== 'undefined') ? evmVersion : 'default' } @@ -407,6 +408,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => { const checked = e.target.checked api.setConfiguration('autoCompile', checked) + checked && compile() setState(prevState => { return { ...prevState, autoCompile: checked } })