New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@jupyterlab/codemirror-extension

Package Overview
Dependencies
Maintainers
5
Versions
391
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jupyterlab/codemirror-extension - npm Package Compare versions

Comparing version 0.6.0 to 0.7.0

204

lib/index.js
"use strict";
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -9,2 +17,3 @@ var widgets_1 = require("@phosphor/widgets");

var codemirror_1 = require("@jupyterlab/codemirror");
var coreutils_1 = require("@jupyterlab/coreutils");
var fileeditor_1 = require("@jupyterlab/fileeditor");

@@ -17,4 +26,6 @@ /**

CommandIDs.matchBrackets = 'codemirror:match-brackets';
CommandIDs.changeKeyMap = 'codemirror:change-keyMap';
CommandIDs.changeKeyMap = 'codemirror:change-keymap';
CommandIDs.changeTheme = 'codemirror:change-theme';
CommandIDs.changeMode = 'codemirror:change-mode';
CommandIDs.changeTabs = 'codemirror:change-tabs';
})(CommandIDs || (CommandIDs = {}));

@@ -35,3 +46,3 @@ ;

id: 'jupyter.services.codemirror-commands',
requires: [fileeditor_1.IEditorTracker, apputils_1.IMainMenu, apputils_1.ICommandPalette, apputils_1.IStateDB],
requires: [fileeditor_1.IEditorTracker, apputils_1.IMainMenu, apputils_1.ICommandPalette, coreutils_1.IStateDB, coreutils_1.ISettingRegistry],
activate: activateEditorCommands,

@@ -48,32 +59,50 @@ autoStart: true

*/
function activateEditorCommands(app, tracker, mainMenu, palette, state) {
var commands = app.commands;
function activateEditorCommands(app, tracker, mainMenu, palette, state, settingRegistry) {
var commands = app.commands, restored = app.restored;
var id = exports.commandsPlugin.id;
var theme = codemirror_1.CodeMirrorEditor.DEFAULT_THEME;
var keyMap = 'default';
var matchBrackets = false;
var id = 'codemirror:settings';
// Fetch the initial state of the settings.
state.fetch(id).then(function (settings) {
if (!settings) {
return;
}
if (typeof settings['theme'] === 'string') {
commands.execute(CommandIDs.changeTheme, settings);
}
if (typeof settings['keyMap'] === 'string') {
commands.execute(CommandIDs.changeKeyMap, settings);
}
if (typeof settings['matchBrackets'] === 'boolean') {
if (settings['matchBrackets'] !== matchBrackets) {
commands.execute(CommandIDs.matchBrackets);
}
}
// Annotate the plugin settings.
settingRegistry.annotate(id, '', {
iconClass: 'jp-ImageTextEditor',
iconLabel: 'CodeMirror',
label: 'CodeMirror'
});
settingRegistry.annotate(id, 'keyMap', { label: 'Key Map' });
settingRegistry.annotate(id, 'matchBrackets', { label: 'Match Brackets' });
settingRegistry.annotate(id, 'theme', { label: 'Theme' });
/**
* Save the codemirror settings state.
* Update the setting values.
*/
function saveState() {
return state.save(id, { theme: theme, keyMap: keyMap, matchBrackets: matchBrackets });
function updateSettings(settings) {
var cached = settings.get('matchBrackets');
matchBrackets = cached === null ? false : !!cached;
keyMap = settings.get('keyMap') || keyMap;
theme = settings.get('theme') || theme;
}
/**
* Update the settings of the current tracker instances.
*/
function updateTracker() {
tracker.forEach(function (widget) {
if (widget.editor instanceof codemirror_1.CodeMirrorEditor) {
var cm = widget.editor.editor;
cm.setOption('keyMap', keyMap);
cm.setOption('theme', theme);
cm.setOption('matchBrackets', matchBrackets);
}
});
}
// Fetch the initial state of the settings.
Promise.all([settingRegistry.load(id), restored]).then(function (_a) {
var settings = _a[0];
updateSettings(settings);
updateTracker();
settings.changed.connect(function () {
updateSettings(settings);
updateTracker();
});
});
/**
* Handle the settings of new widgets.

@@ -102,16 +131,2 @@ */

/**
* Toggle editor matching brackets
*/
function toggleMatchBrackets() {
matchBrackets = !matchBrackets;
tracker.forEach(function (widget) {
var editor = widget.editor;
if (editor instanceof codemirror_1.CodeMirrorEditor) {
var cm = editor.editor;
cm.setOption('matchBrackets', matchBrackets);
}
});
return saveState();
}
/**
* Create a menu for the editor.

@@ -123,5 +138,9 @@ */

var keyMapMenu = new widgets_1.Menu({ commands: commands });
var modeMenu = new widgets_1.Menu({ commands: commands });
var tabMenu = new widgets_1.Menu({ commands: commands });
menu.title.label = 'Editor';
themeMenu.title.label = 'Theme';
keyMapMenu.title.label = 'Key Map';
modeMenu.title.label = 'Language';
tabMenu.title.label = 'Tabs';
commands.addCommand(CommandIDs.changeTheme, {

@@ -137,3 +156,3 @@ label: function (args) { return args['theme']; },

});
return saveState();
return settingRegistry.set(id, 'theme', theme);
},

@@ -156,3 +175,3 @@ isEnabled: hasWidget,

});
return saveState();
return settingRegistry.set(id, 'keyMap', keyMap);
},

@@ -162,2 +181,77 @@ isEnabled: hasWidget,

});
commands.addCommand(CommandIDs.changeMode, {
label: function (args) { return args['name']; },
execute: function (args) {
var mode = args['mode'];
if (mode) {
var widget = tracker.currentWidget;
var spec = codemirror_1.Mode.findByName(mode);
if (spec) {
widget.model.mimeType = spec.mime;
}
}
},
isEnabled: hasWidget,
isToggled: function (args) {
var widget = tracker.currentWidget;
if (!widget) {
return false;
}
var mime = widget.model.mimeType;
var spec = codemirror_1.Mode.findByMIME(mime);
var mode = spec && spec.mode;
return args['mode'] === mode;
}
});
commands.addCommand(CommandIDs.changeTabs, {
label: function (args) { return args['name']; },
execute: function (args) {
var widget = tracker.currentWidget;
if (!widget) {
return;
}
var editor = widget.editor;
var size = args['size'] || 4;
var tabs = !!args['tabs'];
editor.editor.setOption('indentWithTabs', tabs);
editor.editor.setOption('indentUnit', size);
},
isEnabled: hasWidget,
isToggled: function (args) {
var widget = tracker.currentWidget;
if (!widget) {
return false;
}
var tabs = !!args['tabs'];
var size = args['size'] || 4;
var editor = widget.editor;
if (editor.editor.getOption('indentWithTabs') !== tabs) {
return false;
}
return editor.editor.getOption('indentUnit') === size;
}
});
var args = { tabs: true, size: 4, name: 'Indent with Tab' };
tabMenu.addItem({ command: CommandIDs.changeTabs, args: args });
palette.addItem({
command: CommandIDs.changeTabs, args: args, category: 'Editor'
});
for (var _i = 0, _a = [1, 2, 4, 8]; _i < _a.length; _i++) {
var size = _a[_i];
var args_1 = {
tabs: false, size: size, name: "Spaces: " + size + " "
};
tabMenu.addItem({ command: CommandIDs.changeTabs, args: args_1 });
palette.addItem({
command: CommandIDs.changeTabs, args: args_1, category: 'Editor'
});
}
codemirror_1.Mode.getModeInfo().sort(function (a, b) {
return a.name.localeCompare(b.name);
}).forEach(function (spec) {
modeMenu.addItem({
command: CommandIDs.changeMode,
args: __assign({}, spec)
});
});
[

@@ -171,12 +265,14 @@ 'jupyter', 'default', 'abcdef', 'base16-dark', 'base16-light',

}); });
[
'default', 'sublime', 'vim', 'emacs'
].forEach(function (name) { return keyMapMenu.addItem({
command: CommandIDs.changeKeyMap,
args: { keyMap: name }
}); });
['default', 'sublime', 'vim', 'emacs'].forEach(function (name) {
keyMapMenu.addItem({
command: CommandIDs.changeKeyMap,
args: { keyMap: name }
});
});
menu.addItem({ type: 'submenu', submenu: modeMenu });
menu.addItem({ type: 'submenu', submenu: tabMenu });
menu.addItem({ type: 'separator' });
menu.addItem({ command: 'editor:line-numbers' });
menu.addItem({ command: 'editor:word-wrap' });
menu.addItem({ command: CommandIDs.matchBrackets });
menu.addItem({ type: 'separator' });
menu.addItem({ type: 'submenu', submenu: keyMapMenu });

@@ -188,6 +284,16 @@ menu.addItem({ type: 'submenu', submenu: themeMenu });

commands.addCommand(CommandIDs.matchBrackets, {
execute: toggleMatchBrackets,
execute: function () {
matchBrackets = !matchBrackets;
tracker.forEach(function (widget) {
var editor = widget.editor;
if (editor instanceof codemirror_1.CodeMirrorEditor) {
var cm = editor.editor;
cm.setOption('matchBrackets', matchBrackets);
}
});
return settingRegistry.set(id, 'matchBrackets', matchBrackets);
},
label: 'Match Brackets',
isEnabled: hasWidget,
isToggled: function () { return !matchBrackets; }
isToggled: function () { return matchBrackets; }
});

@@ -194,0 +300,0 @@ [

{
"name": "@jupyterlab/codemirror-extension",
"version": "0.6.0",
"version": "0.7.0",
"description": "JupyterLab - CodeMirror Provider Extension",

@@ -15,8 +15,9 @@ "main": "lib/index.js",

"dependencies": {
"@jupyterlab/application": "^0.6.0",
"@jupyterlab/apputils": "^0.6.0",
"@jupyterlab/codeeditor": "^0.6.0",
"@jupyterlab/codemirror": "^0.6.0",
"@jupyterlab/fileeditor": "^0.6.0",
"@phosphor/widgets": "^1.2.0"
"@jupyterlab/application": "^0.7.0",
"@jupyterlab/apputils": "^0.7.0",
"@jupyterlab/coreutils": "^0.7.0",
"@jupyterlab/codeeditor": "^0.7.0",
"@jupyterlab/codemirror": "^0.7.0",
"@jupyterlab/fileeditor": "^0.7.0",
"@phosphor/widgets": "^1.3.0"
},

@@ -23,0 +24,0 @@ "devDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc