##// END OF EJS Templates
Shut down kernels in parallel...
Shut down kernels in parallel When stopping the notebook server, it currently sends a shutdown request to each kernel and then waits for the process to finish. This can be slow if you have several kernels running. This makes it issues all the shutdown requests before waiting on the processes, so shutdown happens in parallel. KernelManager (and MultiKernelManager) gain three new public API methods to allow this: * request_shutdown (promoted from a private method) * wait_shutdown (refactored out of shutdown_kernel) * cleanup (refactored out of shutdown_kernel)

File last commit:

r11033:fa36e98f
r16510:633371e5
Show More
contexthint.js
94 lines | 2.9 KiB | application/javascript | JavascriptLexer
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 // highly adapted for codemiror jshint
Matthias BUSSONNIER
space after function keyword in context-hint
r7195 (function () {
Matthias BUSSONNIER
fix and retab javascript
r7133 "use strict";
Matthias BUSSONNIER
beautify context-hint.js
r7194
Matthias BUSSONNIER
fix and retab javascript
r7133 function forEach(arr, f) {
for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 }
Matthias BUSSONNIER
beautify context-hint.js
r7194
Matthias BUSSONNIER
fix and retab javascript
r7133 function arrayContains(arr, item) {
if (!Array.prototype.indexOf) {
var i = arr.length;
while (i--) {
Matthias BUSSONNIER
beautify context-hint.js
r7194 if (arr[i] === item) {
return true;
}
Matthias BUSSONNIER
fix and retab javascript
r7133 }
return false;
}
return arr.indexOf(item) != -1;
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 }
Matthias BUSSONNIER
beautify context-hint.js
r7194
Matthias BUSSONNIER
space after function keyword in context-hint
r7195 CodeMirror.contextHint = function (editor) {
Matthias BUSSONNIER
fix and retab javascript
r7133 // Find the token at the cursor
Matthias BUSSONNIER
beautify context-hint.js
r7194 var cur = editor.getCursor(),
token = editor.getTokenAt(cur),
tprop = token;
Matthias BUSSONNIER
fix and retab javascript
r7133 // If it's not a 'word-style' token, ignore the token.
// If it is a property, find out what it is a property of.
var list = new Array();
Matthias BUSSONNIER
beautify context-hint.js
r7194 var clist = getCompletions(token, editor);
for (var i = 0; i < clist.length; i++) {
list.push({
str: clist[i],
type: "context",
from: {
line: cur.line,
ch: token.start
},
to: {
line: cur.line,
ch: token.end
}
})
Matthias BUSSONNIER
fix and retab javascript
r7133 }
return list;
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 }
Matthias BUSSONNIER
fix and retab javascript
r7133 // find all 'words' of current cell
Matthias BUSSONNIER
space after function keyword in context-hint
r7195 var getAllTokens = function (editor) {
Matthias BUSSONNIER
beautify context-hint.js
r7194 var found = [];
// add to found if not already in it
Matthias BUSSONNIER
be smarter for context completion...
r7140
Matthias BUSSONNIER
beautify context-hint.js
r7194 function maybeAdd(str) {
if (!arrayContains(found, str)) found.push(str);
}
// loop through all token on all lines
var lineCount = editor.lineCount();
// loop on line
for (var l = 0; l < lineCount; l++) {
var line = editor.getLine(l);
//loop on char
for (var c = 1; c < line.length; c++) {
var tk = editor.getTokenAt({
line: l,
ch: c
});
// if token has a class, it has geat chances of beeing
// of interest. Add it to the list of possible completions.
// we could skip token of ClassName 'comment'
// or 'number' and 'operator'
if (tk.className != null) {
maybeAdd(tk.string);
}
// jump to char after end of current token
c = tk.end;
Matthias BUSSONNIER
be smarter for context completion...
r7140 }
}
Matthias BUSSONNIER
beautify context-hint.js
r7194 return found;
Matthias BUSSONNIER
fix and retab javascript
r7133 }
Matthias BUSSONNIER
implement the completer in a separate class...
r7131
Matthias BUSSONNIER
be smarter for context completion...
r7140
Matthias BUSSONNIER
beautify context-hint.js
r7194 function getCompletions(token, editor) {
Matthias BUSSONNIER
fix and retab javascript
r7133 var candidates = getAllTokens(editor);
// filter all token that have a common start (but nox exactly) the lenght of the current token
Matthias BUSSONNIER
space after function keyword in context-hint
r7195 var lambda = function (x) {
Matthias BUSSONNIER
beautify context-hint.js
r7194 return (x.indexOf(token.string) == 0 && x != token.string)
Matthias BUSSONNIER
fix and retab javascript
r7133 };
var filterd = candidates.filter(lambda);
return filterd;
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 }
})();