You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
64 lines
1.8 KiB
// add new configurable hotkey binding to toggle comments
|
|
|
|
define([
|
|
'base/js/namespace',
|
|
], function(
|
|
IPython
|
|
) {
|
|
"use strict";
|
|
|
|
// define default config parameter values
|
|
var params = {
|
|
comment_uncomment_keybinding : 'alt-c',
|
|
comment_uncomment_indent: false,
|
|
};
|
|
|
|
// updates default params with any specified in the server's config
|
|
var update_params = function() {
|
|
var config = IPython.notebook.config;
|
|
for (var key in params){
|
|
if (config.data.hasOwnProperty(key) ){
|
|
params[key] = config.data[key];
|
|
}
|
|
}
|
|
};
|
|
|
|
var initialize = function () {
|
|
// update defaults
|
|
update_params();
|
|
|
|
// register actions with ActionHandler instance
|
|
var prefix = 'auto';
|
|
var name = 'toggle-comment';
|
|
var action = {
|
|
icon: 'fa-comment-o',
|
|
help : 'Toggle comments',
|
|
help_index : 'eb',
|
|
id : 'read_only_codecell',
|
|
handler : toggle_comment
|
|
};
|
|
var action_full_name = IPython.keyboard_manager.actions.register(action, name, prefix);
|
|
|
|
// define keyboard shortcuts
|
|
var edit_mode_shortcuts = {};
|
|
edit_mode_shortcuts[params.comment_uncomment_keybinding] = action_full_name;
|
|
|
|
// register keyboard shortcuts with keyboard_manager
|
|
IPython.notebook.keyboard_manager.edit_shortcuts.add_shortcuts(edit_mode_shortcuts);
|
|
};
|
|
|
|
var toggle_comment = function() {
|
|
var cm = IPython.notebook.get_selected_cell().code_mirror;
|
|
cm.toggleComment({ indent: params.comment_uncomment_indent });
|
|
return false;
|
|
};
|
|
|
|
var load_ipython_extension = function () {
|
|
return IPython.notebook.config.loaded.then(initialize);
|
|
};
|
|
|
|
return {
|
|
load_ipython_extension : load_ipython_extension
|
|
};
|
|
});
|