react to config changes

pull/2958/head
filip mertens 2 years ago
parent 4bd10c600c
commit 86c5e32141
  1. 3
      apps/remix-ide/src/app/plugins/config.ts
  2. 17
      apps/remix-ide/src/app/plugins/parser/code-parser.tsx
  3. 3
      apps/remix-ide/src/app/tabs/settings-tab.tsx
  4. 1
      apps/remix-ide/src/config.js

@ -6,7 +6,8 @@ const profile = {
name: 'config',
displayName: 'Config',
description: 'Config',
methods: ['getAppParameter', 'setAppParameter']
methods: ['getAppParameter', 'setAppParameter'],
events: ['configChanged']
}
export class ConfigPlugin extends Plugin {

@ -147,8 +147,25 @@ export class CodeParser extends Plugin {
this.compilerService.compiler.loadVersion(true, `${url}?t=${Date.now()}`)
})
this.on('config', 'configChanged', async (config) => {
await this.reload()
})
this.on('settings', 'configChanged', async (config) => {
await this.reload()
})
await this.compilerService.init()
this.on('solidity', 'compilerLoaded', async () => {
await this.reload()
})
}
async reload(){
await this.call('editor', 'discardLineTexts')
await this.call('fileDecorator', 'clearFileDecorators')
await this.call('editor', 'clearErrorMarkers', [this.currentFile])
await this.handleChangeEvents()
}
/**

@ -32,6 +32,9 @@ module.exports = class SettingsTab extends ViewPlugin {
constructor (config, editor) {
super(profile)
this.config = config
this.config.events.on('configChanged', (changedConfig) => {
this.emit('configChanged', changedConfig)
})
this.editor = editor
this._deps = {
themeModule: Registry.getInstance().get('themeModule').api

@ -30,6 +30,7 @@ function Config (storage) {
this.items[key] = content
try {
storage.set(CONFIG_FILE, JSON.stringify(this.items))
this.events.emit('configChanged', { key, content })
this.events.emit(key + '_changed', content)
} catch (exception) {
/* Do nothing. */

Loading…
Cancel
Save