Merge branch 'master' into react-plugin-manager

pull/1344/head
Joe Izang 3 years ago committed by GitHub
commit ed326fdf36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      apps/remix-ide/src/app.js
  2. 10
      apps/remix-ide/src/app/tabs/compile-tab.js
  3. 33
      apps/remix-ide/src/app/tabs/test-tab.js
  4. 23
      apps/remix-ide/src/remixAppManager.js

@ -357,8 +357,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
landingPage,
hiddenPanel,
sidePanel,
pluginManagerComponent,
filePanel,
pluginManagerComponent,
settings
])
@ -482,8 +482,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
await appManager.activatePlugin(['sidePanel']) // activating host plugin separately
await appManager.activatePlugin(['home'])
await appManager.activatePlugin(['settings'])
await appManager.activatePlugin(['hiddenPanel', 'pluginManager', 'filePanel', 'contextualListener', 'terminal', 'blockchain', 'fetchAndCompile', 'contentImport'])
await appManager.activatePlugin(['hiddenPanel', 'filePanel', 'pluginManager', 'contextualListener', 'terminal', 'fetchAndCompile', 'contentImport'])
await appManager.registerContextMenuItems()
// Set workspace after initial activation
if (Array.isArray(workspace)) {
appManager.activatePlugin(workspace).then(async () => {

@ -340,10 +340,16 @@ class CompileTab extends ViewPlugin {
})
}
compileFile (event) {
// Returns if the compilation was successfull
async compileFile (event) {
if (event.path.length > 0) {
this.compileTabLogic.compileFile(event.path[0])
try {
return await this.compileTabLogic.compileFile(event.path[0])
} catch (error) {
return false
}
}
return false
}
onDeactivation () {

@ -14,7 +14,7 @@ const TestTabLogic = require('./testTab/testTab')
const profile = {
name: 'solidityUnitTesting',
displayName: 'Solidity unit testing',
methods: ['testFromPath', 'testFromSource'],
methods: ['testFromPath', 'testFromSource', 'setTestFolderPath'],
events: [],
icon: 'assets/img/unitTesting.webp',
description: 'Fast tool to generate unit tests for your contracts',
@ -51,6 +51,21 @@ module.exports = class TestTab extends ViewPlugin {
onActivationInternal () {
this.testTabLogic = new TestTabLogic(this.fileManager)
this.listenToEvents()
this.call('filePanel', 'registerContextMenuItem', {
id: 'solidityUnitTesting',
name: 'setTestFolderPath',
label: 'Set path for Unit Testing',
type: ['folder'],
extension: [],
path: [],
pattern: []
})
}
async setTestFolderPath (event) {
if (event.path.length > 0) {
await this.setCurrentPath(event.path[0])
}
}
onDeactivation () {
@ -77,10 +92,7 @@ module.exports = class TestTab extends ViewPlugin {
})
this.on('filePanel', 'setWorkspace', async () => {
this.testTabLogic.setCurrentPath(this.defaultPath)
this.inputPath.value = this.defaultPath
this.updateDirList(this.defaultPath)
await this.updateForNewCurrent()
this.setCurrentPath(this.defaultPath)
})
this.fileManager.events.on('noFileSelected', () => {
@ -405,6 +417,17 @@ module.exports = class TestTab extends ViewPlugin {
return this.testFromSource(fileContent, path)
}
/**
* Changes the current path of Unit Testing Plugin
* @param path - the path from where UT plugin takes _test.sol files to run
*/
async setCurrentPath (path) {
this.testTabLogic.setCurrentPath(path)
this.inputPath.value = path
this.updateDirList(path)
await this.updateForNewCurrent()
}
/*
Test is not associated with the UI
*/

@ -133,6 +133,29 @@ export class RemixAppManager extends PluginManager {
return new IframePlugin(plugin)
})
}
async registerContextMenuItems () {
await this.call('filePanel', 'registerContextMenuItem', {
id: 'flattener',
name: 'flattenFileCustomAction',
label: 'Flatten',
type: [],
extension: ['.sol'],
path: [],
pattern: [],
sticky: true
})
await this.call('filePanel', 'registerContextMenuItem', {
id: 'optimism-compiler',
name: 'compileCustomAction',
label: 'Compile with Optimism',
type: [],
extension: ['.sol'],
path: [],
pattern: [],
sticky: true
})
}
}
/** @class Reference loaders.

Loading…
Cancel
Save