Show More
@@ -8,6 +8,13 b' var IPython = (function (IPython) {' | |||||
8 | // easyier key mapping |
|
8 | // easyier key mapping | |
9 | var key = IPython.utils.keycodes; |
|
9 | var key = IPython.utils.keycodes; | |
10 |
|
10 | |||
|
11 | function prepend_n_prc(str,n) | |||
|
12 | { | |||
|
13 | for( var i =0; i< n;i++) | |||
|
14 | { str = '%'+str } | |||
|
15 | return str; | |||
|
16 | } | |||
|
17 | ||||
11 | function _existing_completion(item, completion_array){ |
|
18 | function _existing_completion(item, completion_array){ | |
12 | for( var c in completion_array ) { |
|
19 | for( var c in completion_array ) { | |
13 | if(completion_array[c].substr(-item.length) == item) |
|
20 | if(completion_array[c].substr(-item.length) == item) | |
@@ -17,14 +24,26 b' var IPython = (function (IPython) {' | |||||
17 | } |
|
24 | } | |
18 |
|
25 | |||
19 | // what is the common start of all completions |
|
26 | // what is the common start of all completions | |
20 | function shared_start(B) { |
|
27 | function shared_start(B,drop_prct) { | |
21 | if (B.length == 1) { |
|
28 | if (B.length == 1) { | |
22 | return B[0]; |
|
29 | return B[0]; | |
23 | } |
|
30 | } | |
24 | var A = new Array(); |
|
31 | var A = new Array(); | |
|
32 | var common; | |||
|
33 | var min_lead_prct = 10; | |||
25 | for (var i = 0; i < B.length; i++) { |
|
34 | for (var i = 0; i < B.length; i++) { | |
26 |
|
|
35 | var str = B[i].str | |
|
36 | var localmin = 0 | |||
|
37 | if(drop_prct == true){ | |||
|
38 | while ( str.substr(0,1) == '%') { | |||
|
39 | localmin = localmin+1; | |||
|
40 | str = str.substring(1); | |||
|
41 | } | |||
|
42 | } | |||
|
43 | min_lead_prct = Math.min(min_lead_prct,localmin); | |||
|
44 | A.push(str); | |||
27 | } |
|
45 | } | |
|
46 | ||||
28 | if (A.length > 1) { |
|
47 | if (A.length > 1) { | |
29 | var tem1, tem2, s; |
|
48 | var tem1, tem2, s; | |
30 | A = A.slice(0).sort(); |
|
49 | A = A.slice(0).sort(); | |
@@ -35,10 +54,10 b' var IPython = (function (IPython) {' | |||||
35 | tem1 = tem1.substring(0, --s); |
|
54 | tem1 = tem1.substring(0, --s); | |
36 | } |
|
55 | } | |
37 | if (tem1 == "" || tem2.indexOf(tem1) != 0) { |
|
56 | if (tem1 == "" || tem2.indexOf(tem1) != 0) { | |
38 |
return |
|
57 | return prepend_n_prc('',min_lead_prct); | |
39 | } |
|
58 | } | |
40 | return { |
|
59 | return { | |
41 | str: tem1, |
|
60 | str: prepend_n_prc(tem1,min_lead_prct), | |
42 | type: "computed", |
|
61 | type: "computed", | |
43 | from: B[0].from, |
|
62 | from: B[0].from, | |
44 | to: B[0].to |
|
63 | to: B[0].to | |
@@ -257,7 +276,7 b' var IPython = (function (IPython) {' | |||||
257 | //Check that shared start is not null which can append with prefixed completion |
|
276 | //Check that shared start is not null which can append with prefixed completion | |
258 | // like %pylab , pylab have no shred start, and ff will result in py<tab><tab> |
|
277 | // like %pylab , pylab have no shred start, and ff will result in py<tab><tab> | |
259 | // to erase py |
|
278 | // to erase py | |
260 | var sh = shared_start(this.raw_result); |
|
279 | var sh = shared_start(this.raw_result,true); | |
261 | if (sh) { |
|
280 | if (sh) { | |
262 | this.insert(sh); |
|
281 | this.insert(sh); | |
263 | } |
|
282 | } |
General Comments 0
You need to be logged in to leave comments.
Login now