@@ -26,26 +26,46 @@ def on_modified(self, view):
2626 nbview .on_modified ()
2727
2828 def on_close (self , view ):
29- manager .on_close (view )
29+ manager .on_close (view )
3030
3131
3232def get_last_used_address ():
33- settings = sublime .load_settings ("SublimeIPythonNotebook.sublime-settings" )
34- return settings .get ("default_address" , "http://127.0.0.1:8888" )
33+ settings = sublime .load_settings ("SublimeIPythonNotebook.sublime-settings" )
34+ lst = settings .get ("default_address" , [])
35+ return lst if type (lst )== list else [lst ]
3536
3637
3738def set_last_used_address (value ):
38- settings = sublime .load_settings ("SublimeIPythonNotebook.sublime-settings" )
39- settings .set ("default_address" , value )
40- sublime .save_settings ("SublimeIPythonNotebook.sublime-settings" )
39+ settings = sublime .load_settings ("SublimeIPythonNotebook.sublime-settings" )
40+ addresses = get_last_used_address ()
41+ if value in addresses :
42+ addresses .pop (addresses .index (value ))
43+ settings .set ("default_address" , [value ]+ addresses )
44+ sublime .save_settings ("SublimeIPythonNotebook.sublime-settings" )
4145
4246class InbPromptListNotebooksCommand (sublime_plugin .WindowCommand ):
4347 def run (self ):
44- self .window .show_input_panel ("Notebook host:port : " , get_last_used_address (),
48+ self .previous_addresses = get_last_used_address ()
49+ if len (self .previous_addresses )== 0 :
50+ self .new_server ()
51+ return
52+ self .previous_addresses += ["New Server" ]
53+ self .window .show_quick_panel (self .previous_addresses , self .on_done )
54+
55+ def new_server (self ):
56+ self .window .show_input_panel ("Notebook host:port : " , "http://127.0.0.1:8888" ,
4557 self .on_done , None , None )
4658
4759 def on_done (self , line ):
48- self .window .run_command ("inb_list_notebooks" , {"baseurl" : line , "psswd" : None })
60+ if line == - 1 :
61+ return
62+ if type (line )== int :
63+ if line == len (self .previous_addresses )- 1 :
64+ self .new_server ()
65+ else :
66+ self .window .run_command ("inb_list_notebooks" , {"baseurl" : self .previous_addresses [line ], "psswd" : None })
67+ else :
68+ self .window .run_command ("inb_list_notebooks" , {"baseurl" : line , "psswd" : None })
4969
5070class InbPromptPasswordCommand (sublime_plugin .WindowCommand ):
5171 def run (self , baseurl ):
@@ -59,6 +79,8 @@ def on_done(self, line):
5979
6080class InbListNotebooksCommand (sublime_plugin .WindowCommand ):
6181 def run (self , baseurl , psswd ):
82+ ipy_connection .install_proxy_opener ()
83+
6284 self .baseurl = baseurl
6385 nbs = ipy_connection .get_notebooks (baseurl , psswd )
6486 if nbs == 'psswd' :
@@ -73,7 +95,7 @@ def run(self, baseurl, psswd):
7395 for i , nb in enumerate (nbs ):
7496 lst .append (str (i + 1 ) + ": " + nb ["name" ] + "\n " )
7597
76- self .window .show_quick_panel (lst , self .on_done )
98+ sublime . set_timeout ( lambda : self .window .show_quick_panel (lst , self .on_done ), 1 )
7799
78100 def on_done (self , picked ):
79101 if picked == - 1 :
0 commit comments