added flatten to menu (WIP)

pull/5370/head
lianahus 3 years ago
parent 72e9c09b6c
commit e5273e4ecf
  1. 4
      apps/remix-ide/src/app.js
  2. 37
      apps/remix-ide/src/app/components/plugin-manager-component.js
  3. 10
      apps/remix-ide/src/app/tabs/compile-tab.js

@ -356,8 +356,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
landingPage,
hiddenPanel,
sidePanel,
pluginManagerComponent,
filePanel,
pluginManagerComponent,
settings
])
@ -481,7 +481,7 @@ 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', 'fetchAndCompile', 'contentImport'])
await appManager.activatePlugin(['hiddenPanel', 'filePanel', 'pluginManager', 'contextualListener', 'terminal', 'fetchAndCompile', 'contentImport'])
// Set workspace after initial activation
if (Array.isArray(workspace)) {

@ -71,7 +71,7 @@ const css = csjs`
const profile = {
name: 'pluginManager',
displayName: 'Plugin manager',
methods: [],
methods: ['registerFlattener'],
events: [],
icon: 'assets/img/pluginManager.webp',
description: 'Start/stop services, modules and plugins',
@ -102,6 +102,41 @@ class PluginManagerComponent extends ViewPlugin {
return this.appManager.actives.includes(name)
}
async registerFlattener (event) {
if (!this.appManager.isActive('solidity')) { await this.appManager.activatePlugin('solidity') }
const compiledSuccessfully = await this.call('solidity', 'compileFile', event)
const reporCompileIssue = () => {
this.call('fileManager', 'open', event.path[0])
addToolTip('Cannot flatten the file. Please make sure it is compiling successfully.')
this.call('menuicons', 'select', 'solidity')
}
setTimeout(async () => {
if (compiledSuccessfully) {
const res = await this.call('solidity', 'getCompilationResult')
if (!res) {
reporCompileIssue()
} else {
this.call('menuicons', 'select', 'flattener1')
await this.call('flattener1', 'flatten', res)
}
} else {
reporCompileIssue()
}
}, 1000)
}
onActivation () {
this.call('filePanel', 'registerContextMenuItem', {
id: 'pluginManager',
name: 'registerFlattener',
label: 'Flatten',
type: [],
extension: ['.sol'],
path: [],
pattern: []
})
}
activateP(name) {
this.appManager.activatePlugin(name)
_paq.push(['trackEvent', 'manager', 'activate', name])

@ -292,11 +292,17 @@ 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 () {
this.editor.event.unregister('contentChanged')

Loading…
Cancel
Save