diff --git a/IPython/frontend/html/notebook/static/js/context-hint.js b/IPython/frontend/html/notebook/static/js/context-hint.js index 8cddb7f..8ff98d6 100644 --- a/IPython/frontend/html/notebook/static/js/context-hint.js +++ b/IPython/frontend/html/notebook/static/js/context-hint.js @@ -1,90 +1,72 @@ // highly adapted for codemiror jshint (function () { - "use strict"; - function forEach(arr, f) { - for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); - } - - function arrayContains(arr, item) { - if (!Array.prototype.indexOf) { - var i = arr.length; - while (i--) { - if (arr[i] === item) { - return true; - } - } - return false; + "use strict"; + function forEach(arr, f) { + for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); } - return arr.indexOf(item) != -1; - } - - CodeMirror.contextHint = function(editor) { - // Find the token at the cursor - var cur = editor.getCursor(), token = editor.getTokenAt(cur), tprop = token; - // 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(); - 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} - } - ) - + + function arrayContains(arr, item) { + if (!Array.prototype.indexOf) { + var i = arr.length; + while (i--) { + if (arr[i] === item) {return true;} + } + return false; + } + return arr.indexOf(item) != -1; } - return list; - } - - // find all 'words' of current cell - function getAllTokens(editor) - { - var found = []; - // get all text remove and split it before dot and at space - // keep the dot for completing token that also start with dot - var candidates = editor.getValue() - .replace(/[. ]/g,"\n") - .split('\n'); - // append to arry if not already (the function) - function maybeAdd(str) { - if (!arrayContains(found, str)) found.push(str); + + CodeMirror.contextHint = function(editor) { + // Find the token at the cursor + var cur = editor.getCursor(), token = editor.getTokenAt(cur), tprop = token; + // 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(); + 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} }) + } + return list; } - // append to arry if not already - // (here we do it ) - for( var c in candidates ) + // find all 'words' of current cell + function getAllTokens(editor) { - if(candidates[c].length >= 1){ - maybeAdd(candidates[c]);} + var found = []; + // get all text remove and split it before dot and at space + // keep the dot for completing token that also start with dot + var candidates = editor.getValue() + .replace(/[.]/g," .") + .replace(/[ ]/g,"\n") + .split('\n'); + // append to arry if not already (the function) + function maybeAdd(str) { + if (!arrayContains(found, str)) found.push(str); + } + // append to arry if not already + // (here we do it ) + for( var c in candidates ) + { + if(candidates[c].length >= 1){ + maybeAdd(candidates[c]);} + } + return found; } - return found; - } - - function getCompletions(token,editor) - { - var candidates = getAllTokens(editor); - // filter all token that have a common start (but nox exactly) the lenght of the current token - var prependchar =''; - if(token.string.indexOf('.') == 0) - { - prependchar = '.' - } - var lambda = function(x){ - x = prependchar+x; - return (x.indexOf(token.string)==0 && x != token.string)}; - var filterd = candidates.filter(lambda); - for( var i in filterd) + function getCompletions(token,editor) { - // take care of reappending '.' at the beginning - filterd[i] = prependchar+filterd[i]; + var candidates = getAllTokens(editor); + // filter all token that have a common start (but nox exactly) the lenght of the current token + var lambda = function(x){ + return (x.indexOf(token.string)==0 && x != token.string) + }; + var filterd = candidates.filter(lambda); + return filterd; } - return filterd; - } })();