Move language info from kernelspec to kernel_info_reply

This commit is contained in:
Thomas Kluyver 2014-10-24 16:24:24 -07:00
parent a58b215421
commit 9c7d73a05e
2 changed files with 25 additions and 15 deletions

View File

@ -207,9 +207,18 @@ define([
});
this.events.on('spec_changed.Kernel', function(event, data) {
that.set_kernelspec_metadata(data);
that.metadata.kernelspec =
{name: data.name, display_name: data.display_name};
});
this.events.on('kernel_ready.Kernel', function(event, data) {
var kinfo = data.kernel.info_reply
var langinfo = kinfo.language_info || {};
if (!langinfo.name) langinfo.name = kinfo.language;
that.metadata.language_info = langinfo;
// Mode 'null' should be plain, unhighlighted text.
cm_mode = data.codemirror_mode || data.language || 'null'
var cm_mode = langinfo.codemirror_mode || langinfo.language || 'null'
that.set_codemirror_mode(cm_mode);
});
@ -329,21 +338,11 @@ define([
md: this.metadata,
callback: function (md) {
that.metadata = md;
},
},
name: 'Notebook',
notebook: this,
keyboard_manager: this.keyboard_manager});
};
Notebook.prototype.set_kernelspec_metadata = function(ks) {
var tostore = {};
$.map(ks, function(value, field) {
if (field !== 'argv' && field !== 'env') {
tostore[field] = value;
}
});
this.metadata.kernelspec = tostore;
}
// Cell indexing, retrieval, etc.
@ -1811,6 +1810,14 @@ define([
this.events.trigger('spec_changed.Kernel', this.metadata.kernelspec);
}
// Set the codemirror mode from language_info metadata
if (this.metadata.language_info !== undefined) {
var langinfo = this.metadata.language_info;
// Mode 'null' should be plain, unhighlighted text.
var cm_mode = langinfo.codemirror_mode || langinfo.language || 'null'
this.set_codemirror_mode(cm_mode);
}
// Only handle 1 worksheet for now.
var worksheet = content.worksheets[0];
if (worksheet !== undefined) {

View File

@ -46,6 +46,7 @@ define([
this.username = "username";
this.session_id = utils.uuid();
this._msg_callbacks = {};
this.info_reply = {}; // kernel_info_reply stored here after starting
if (typeof(WebSocket) !== 'undefined') {
this.WebSocket = WebSocket;
@ -398,7 +399,8 @@ define([
this.events.trigger('kernel_starting.Kernel', {kernel: this});
// get kernel info so we know what state the kernel is in
var that = this;
this.kernel_info(function () {
this.kernel_info(function (reply) {
that.info_reply = reply.content;
that.events.trigger('kernel_ready.Kernel', {kernel: that});
});
};
@ -925,7 +927,8 @@ define([
} else if (execution_state === 'starting') {
this.events.trigger('kernel_starting.Kernel', {kernel: this});
var that = this;
this.kernel_info(function () {
this.kernel_info(function (reply) {
that.info_reply = reply.content;
that.events.trigger('kernel_ready.Kernel', {kernel: that});
});