Skip to content

Commit b7d46b8

Browse files
committed
Fixing dynamic requires
1 parent c11b519 commit b7d46b8

File tree

2 files changed

+60
-72
lines changed

2 files changed

+60
-72
lines changed

lib/runtime.js

Lines changed: 51 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ import { CompositeDisposable, Disposable } from 'atom';
55
import modules from './runtime/modules'
66
import * as environments from './runtime/environments'
77
import evaluation from './runtime/evaluation'
8-
import * as console from './runtime/console'
8+
import * as repl from './runtime/console' // console is a is a reserved keyword
99
import completions from './runtime/completions'
1010
import workspace from './runtime/workspace'
1111
import plots from './runtime/plots'
1212
import * as frontend from './runtime/frontend'
13-
import * as debug from './runtime/debugger'
13+
import * as debug from './runtime/debugger' // debugger is a is a reserved keyword
1414
import * as profiler from './runtime/profiler'
1515
import * as outline from './runtime/outline'
1616
import * as linter from './runtime/linter'
@@ -20,88 +20,87 @@ import * as formatter from './runtime/formatter'
2020
import goto from './runtime/goto'
2121
import handleURI from "./runtime/urihandler";
2222

23+
exports.modules = modules
24+
exports.environments = environments
25+
exports.evaluation = evaluation
26+
exports.repl = repl
27+
exports.completions = completions
28+
exports.workspace = workspace
29+
exports.plots = plots
30+
exports.frontend = frontend
31+
exports.debug = debug
32+
exports.profiler = profiler
33+
exports.outline = outline
34+
exports.linter = linter
35+
exports.packages = packages
36+
exports.debuginfo = debuginfo
37+
exports.formatter = formatter
38+
exports.goto = goto
39+
exports.handleURI = handleURI
2340

24-
export default {
25-
// TODO remove these from the export default and export them directly (prevents expensive copy)
26-
// TODO don't use this.message use message directly (prevents expensive copy)
27-
modules: modules,
28-
environments: environments,
29-
evaluation: evaluation,
30-
console: console,
31-
completions: completions,
32-
workspace: workspace,
33-
plots: plots,
34-
frontend: frontend,
35-
debugger: debug,
36-
profiler: profiler,
37-
outline: outline,
38-
linter: linter,
39-
packages: packages,
40-
debuginfo: debuginfo,
41-
formatter: formatter,
42-
goto: goto,
41+
let subs;
4342

44-
activate() {
45-
this.subs = new CompositeDisposable();
43+
export function activate() {
44+
subs = new CompositeDisposable();
4645

47-
this.modules.activate();
48-
this.completions.activate();
49-
this.subs.add(atom.config.observe('julia-client.juliaOptions.formatOnSave', val => {
46+
modules.activate();
47+
completions.activate();
48+
subs.add(atom.config.observe('julia-client.juliaOptions.formatOnSave', val => {
5049
if (val) {
51-
this.formatter.activate();
50+
formatter.activate();
5251
} else {
53-
this.formatter.deactivate();
52+
formatter.deactivate();
5453
}
5554
})
5655
);
5756

58-
this.subs.add(new Disposable(() => {
59-
[this.modules, this.completions, this.formatter].map((mod) => mod.deactivate());
57+
subs.add(new Disposable(() => {
58+
[modules, completions, formatter].map((mod) => mod.deactivate());
6059
})
6160
);
62-
},
61+
}
6362

64-
deactivate() {
65-
this.subs.dispose();
66-
},
63+
export function deactivate() {
64+
subs.dispose();
65+
}
6766

68-
consumeInk(ink) {
69-
this.evaluation.ink = ink;
70-
for (let mod of [this.console, this.debugger, this.profiler, this.linter, this.goto, this.outline, this.frontend]) {
67+
export function consumeInk(ink) {
68+
evaluation.ink = ink;
69+
for (let mod of [repl, debug, profiler, linter, goto, outline, frontend]) {
7170
mod.activate(ink);
7271
}
73-
for (let mod of [this.workspace, this.plots]) {
72+
for (let mod of [workspace, plots]) {
7473
mod.ink = ink;
7574
mod.activate();
7675
}
7776

78-
this.subs.add(
77+
subs.add(
7978
new Disposable(() => {
80-
for (let mod of [this.console, this.debugger, this.profiler, this.linter, this.goto, this.outline]) {
79+
for (let mod of [repl, debug, profiler, linter, goto, outline]) {
8180
mod.deactivate();
8281
}
8382
})
8483
);
8584

86-
this.environments.consumeInk(ink);
87-
},
85+
environments.consumeInk(ink);
86+
}
8887

89-
provideAutoComplete() { return this.completions; },
88+
export function provideAutoComplete() { return completions; }
9089

91-
provideHyperclick() { return this.goto.provideHyperclick(); },
90+
export function provideHyperclick() { return goto.provideHyperclick(); }
9291

93-
consumeStatusBar(bar) {
94-
const m = this.modules.consumeStatusBar(bar);
95-
const e = this.environments.consumeStatusBar(bar);
92+
export function consumeStatusBar(bar) {
93+
const m = modules.consumeStatusBar(bar);
94+
const e = environments.consumeStatusBar(bar);
9695
const d = new Disposable(() => {
9796
m.dispose();
9897
e.dispose();
9998
});
100-
this.subs.add(d);
99+
subs.add(d);
101100
return d;
102-
},
101+
}
103102

104-
consumeDatatip(datatipService) {
103+
export function consumeDatatip(datatipService) {
105104
const datatipProvider = require('./runtime/datatip');
106105
// @NOTE: Check if the service is passed by Atom-IDE-UI's datatip service:
107106
// currently atom-ide-datatip can't render code snippets correctly.
@@ -116,9 +115,7 @@ export default {
116115
);
117116
}
118117
const datatipDisposable = datatipService.addProvider(datatipProvider);
119-
this.subs.add(datatipDisposable);
118+
subs.add(datatipDisposable);
120119
return datatipDisposable;
121-
},
120+
}
122121

123-
handleURI: handleURI,
124-
};

lib/ui/layout.js

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,17 @@
11
'use babel'
22

3-
const repl = () => {
4-
return require('../runtime').console
5-
}
6-
const workspace = () => {
7-
return require('../runtime').workspace
8-
}
3+
import {
4+
repl,
5+
workspace,
6+
plots as plotPane,
7+
debug as debuggerPane,
8+
linter,
9+
outline
10+
} from '../runtime'
11+
912
const documentation = () => {
1013
return require('../ui').docpane
1114
}
12-
const plotPane = () => {
13-
return require('../runtime').plots
14-
}
15-
const debuggerPane = () => {
16-
return require('../runtime').debugger
17-
}
18-
const linter = () => {
19-
return require('../runtime').linter
20-
}
21-
const outline = () => {
22-
return require('../runtime').outline
23-
}
2415

2516
function specifiedPanes () {
2617
const panes = []

0 commit comments

Comments
 (0)