in lib/embed.dart [522:584]
void _init() {
deps[GistLoader] = GistLoader.defaultFilters();
deps[Analytics] = Analytics();
final channel = queryParams.channel;
if (Channel.urlMapping.keys.contains(channel)) {
dartServices.rootUrl = Channel.urlMapping[channel]!;
}
context = EmbedContext(
userCodeEditor, testEditor, solutionEditor, htmlEditor, cssEditor);
editorFactory.registerCompleter(
'dart', DartCompleter(dartServices, userCodeEditor.document));
context.onDartDirty.listen((_) => busyLight.on());
context.onDartReconcile.listen((_) => performAnalysis());
initKeyBindings();
var horizontal = true;
final webOutput = querySelector('#web-output')!;
List<Element> splitterElements;
if (options.mode == EmbedMode.flutter || options.mode == EmbedMode.html) {
final editorAndConsoleContainer =
querySelector('#editor-and-console-container')!;
splitterElements = [editorAndConsoleContainer, webOutput];
} else if (options.mode == EmbedMode.inline) {
final editorContainer = querySelector('#editor-container')!;
final consoleView = querySelector('#console-view')!;
consoleView.removeAttribute('hidden');
splitterElements = [editorContainer, consoleView];
horizontal = false;
} else {
final editorContainer = querySelector('#editor-container')!;
final consoleView = querySelector('#console-view')!;
consoleView.removeAttribute('hidden');
splitterElements = [editorContainer, consoleView];
}
splitter = flexSplit(
splitterElements,
horizontal: horizontal,
gutterSize: defaultSplitterWidth,
// set initial sizes (in percentages)
sizes: [initialSplitPercent, (100 - initialSplitPercent)],
// set the minimum sizes (in pixels)
minSize: [100, 100],
);
listenForResize(splitterElements[0]);
if (gistId!.isNotEmpty || sampleId.isNotEmpty || githubParamsPresent) {
_loadAndShowGist(analyze: false);
}
if (gistId!.isEmpty) {
openInDartPadButton.toggleAttr('hidden', true);
}
// set enabled/disabled state of various buttons
editorIsBusy = false;
}