##// END OF EJS Templates
setting an option to null sets the default in CodeMirror...
setting an option to null sets the default in CodeMirror matching the unset behavior in config

File last commit:

r19310:80d681a0
r19311:9c060bc5
Show More
menubar.js
121 lines | 4.2 KiB | application/javascript | JavascriptLexer
Thomas Kluyver
Saving files works
r19012 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
define([
'base/js/namespace',
'jquery',
'base/js/utils',
Min RK
add File/New in editor
r19308 'base/js/dialog',
Thomas Kluyver
Saving files works
r19012 'bootstrap',
Min RK
add File/New in editor
r19308 ], function(IPython, $, utils, dialog, bootstrap) {
Thomas Kluyver
Saving files works
r19012 "use strict";
var MenuBar = function (selector, options) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Constructor
*
* A MenuBar Class to generate the menubar of IPython notebook
*
* Parameters:
* selector: string
* options: dictionary
* Dictionary of keyword arguments.
* codemirror: CodeMirror instance
* contents: ContentManager instance
* events: $(Events) instance
* base_url : string
* file_path : string
*/
Thomas Kluyver
Saving files works
r19012 options = options || {};
this.base_url = options.base_url || utils.get_body_data("baseUrl");
this.selector = selector;
Thomas Kluyver
Refactor editor into Editor class
r19013 this.editor = options.editor;
Min RK
editor progress...
r19303 this.events = options.events;
Thomas Kluyver
Saving files works
r19012
if (this.selector !== undefined) {
this.element = $(selector);
this.bind_events();
}
};
MenuBar.prototype.bind_events = function () {
var that = this;
Min RK
editor progress...
r19303 var editor = that.editor;
Min RK
add File/New in editor
r19308
// File
this.element.find('#new-file').click(function () {
var w = window.open();
// Create a new file in the current directory
var parent = utils.url_path_split(editor.file_path)[0];
editor.contents.new_untitled(parent, {type: "file"}).then(
function (data) {
w.location = utils.url_join_encode(
that.base_url, 'edit', data.path
);
},
function(error) {
w.close();
dialog.modal({
title : 'Creating New File Failed',
body : "The error was: " + error.message,
buttons : {'OK' : {'class' : 'btn-primary'}}
});
}
);
});
Min RK
editor progress...
r19303 this.element.find('#save-file').click(function () {
editor.save();
});
// Edit
this.element.find('#menu-find').click(function () {
editor.codemirror.execCommand("find");
});
this.element.find('#menu-replace').click(function () {
editor.codemirror.execCommand("replace");
});
Min RK
allow selecting codemirror keymap in menu
r19306 this.element.find('#menu-keymap-default').click(function () {
editor.update_codemirror_options({
vimMode: false,
Min RK
fixup keyMap
r19310 keyMap: 'default'
Min RK
allow selecting codemirror keymap in menu
r19306 });
});
this.element.find('#menu-keymap-sublime').click(function () {
editor.update_codemirror_options({
vimMode: false,
keyMap: 'sublime'
});
});
this.element.find('#menu-keymap-emacs').click(function () {
editor.update_codemirror_options({
vimMode: false,
keyMap: 'emacs'
});
});
this.element.find('#menu-keymap-vim').click(function () {
editor.update_codemirror_options({
vimMode: true,
keyMap: 'vim'
});
});
Min RK
editor progress...
r19303
// View
this.element.find('#menu-line-numbers').click(function () {
var current = editor.codemirror.getOption('lineNumbers');
var value = Boolean(1-current);
editor.update_codemirror_options({lineNumbers: value});
});
this.events.on("config_changed.Editor", function () {
var lineNumbers = editor.codemirror.getOption('lineNumbers');
var text = lineNumbers ? "Hide" : "Show";
text = text + " Line Numbers";
that.element.find('#menu-line-numbers').find("a").text(text);
Min RK
allow selecting codemirror keymap in menu
r19306 var keyMap = editor.codemirror.getOption('keyMap') || "default";
that.element.find(".selected-keymap").removeClass("selected-keymap");
that.element.find("#menu-keymap-" + keyMap).addClass("selected-keymap");
Thomas Kluyver
Saving files works
r19012 });
};
return {'MenuBar': MenuBar};
});