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.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/main.js

125 lines
3.7 KiB

// Add rulers to codecells
define([
'base/js/namespace',
'base/js/events',
'services/config',
'notebook/js/codecell',
'codemirror/lib/codemirror',
'codemirror/addon/display/rulers'
], function (Jupyter, events, configmod, codecell, codemirror) {
"use strict";
var log_prefix = '[ruler]';
// define default config parameter values
var params = {
ruler_column: [78],
ruler_color: ["#ff0000"],
ruler_linestyle: ["dashed"],
ruler_do_css_patch: false
};
var rulers = [];
var isNumber = function (n) {
return !isNaN(parseFloat(n)) && isFinite(n);
};
// updates default params with any specified in the provided config data
var update_params = function (config_data) {
for (var key in params) {
if (config_data.hasOwnProperty(key)) {
params[key] = config_data[key];
}
}
};
var on_config_loaded = function () {
if (Jupyter.notebook !== undefined) {
var i, config = Jupyter.notebook.config;
} else {
var i, config = Jupyter.editor.config;
}
if (config.data.hasOwnProperty('ruler_color') && config.data.ruler_color.length > 0) {
params.ruler_color = config.data.ruler_color;
}
if (config.data.hasOwnProperty('ruler_column')) {
var new_columns = [];
for (i in config.data.ruler_column) {
if (isNumber(config.data.ruler_column[i])) {
new_columns.push(config.data.ruler_column[i]);
}
}
if (new_columns.length > 0) {
params.ruler_column = new_columns;
}
}
if (config.data.hasOwnProperty('ruler_linestyle') && config.data.ruler_linestyle.length > 0) {
params.ruler_linestyle = config.data.ruler_linestyle;
}
for (i in params.ruler_column) {
rulers.push({
color: params.ruler_color[i % params.ruler_color.length],
column: params.ruler_column[i],
lineStyle: params.ruler_linestyle[i % params.ruler_linestyle.length]
});
}
console.debug(log_prefix, 'ruler specs:', rulers);
if (Jupyter.notebook !== undefined) {
var i, config = Jupyter.notebook.config;
// Change default for new cells
codecell.CodeCell.options_default.cm_config.rulers = rulers;
// Apply to any already-existing cells
var cells = Jupyter.notebook.get_cells().forEach(function (cell) {
if (cell instanceof codecell.CodeCell) {
cell.code_mirror.setOption('rulers', rulers);
}
});
}
else {
Jupyter.editor.codemirror.setOption('rulers', rulers);
}
};
var load_extension = function () {
// first, check which view we're in, in order to decide whether to load
var conf_sect;
if (Jupyter.notebook) {
// we're in notebook view
conf_sect = Jupyter.notebook.config;
}
else if (Jupyter.editor) {
// we're in file-editor view
conf_sect = Jupyter.editor.config;
}
else {
// we're some other view like dashboard, terminal, etc, so bail now
return;
}
conf_sect.loaded
.then(function () {
update_params(conf_sect.data);
})
.then(on_config_loaded)
.catch(function on_error(reason) {
console.warn(log_prefix, 'error:', reason);
});
};
var extension = {
load_ipython_extension: load_extension
};
return extension;
});