Merge branch 'master' into react-plugin-manager

pull/5370/head
Joe Izang 3 years ago committed by GitHub
commit 5120de3b50
  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, landingPage,
hiddenPanel, hiddenPanel,
sidePanel, sidePanel,
pluginManagerComponent,
filePanel, filePanel,
pluginManagerComponent,
settings 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(['sidePanel']) // activating host plugin separately
await appManager.activatePlugin(['home']) await appManager.activatePlugin(['home'])
await appManager.activatePlugin(['settings']) 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 // Set workspace after initial activation
if (Array.isArray(workspace)) { if (Array.isArray(workspace)) {
appManager.activatePlugin(workspace).then(async () => { 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) { 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 () { onDeactivation () {

@ -14,7 +14,7 @@ const TestTabLogic = require('./testTab/testTab')
const profile = { const profile = {
name: 'solidityUnitTesting', name: 'solidityUnitTesting',
displayName: 'Solidity unit testing', displayName: 'Solidity unit testing',
methods: ['testFromPath', 'testFromSource'], methods: ['testFromPath', 'testFromSource', 'setTestFolderPath'],
events: [], events: [],
icon: 'assets/img/unitTesting.webp', icon: 'assets/img/unitTesting.webp',
description: 'Fast tool to generate unit tests for your contracts', description: 'Fast tool to generate unit tests for your contracts',
@ -51,6 +51,21 @@ module.exports = class TestTab extends ViewPlugin {
onActivationInternal () { onActivationInternal () {
this.testTabLogic = new TestTabLogic(this.fileManager) this.testTabLogic = new TestTabLogic(this.fileManager)
this.listenToEvents() 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 () { onDeactivation () {
@ -77,10 +92,7 @@ module.exports = class TestTab extends ViewPlugin {
}) })
this.on('filePanel', 'setWorkspace', async () => { this.on('filePanel', 'setWorkspace', async () => {
this.testTabLogic.setCurrentPath(this.defaultPath) this.setCurrentPath(this.defaultPath)
this.inputPath.value = this.defaultPath
this.updateDirList(this.defaultPath)
await this.updateForNewCurrent()
}) })
this.fileManager.events.on('noFileSelected', () => { this.fileManager.events.on('noFileSelected', () => {
@ -405,6 +417,17 @@ module.exports = class TestTab extends ViewPlugin {
return this.testFromSource(fileContent, path) 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 Test is not associated with the UI
*/ */

@ -133,6 +133,29 @@ export class RemixAppManager extends PluginManager {
return new IframePlugin(plugin) 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. /** @class Reference loaders.

Loading…
Cancel
Save