@@ -23,33 +23,35 @@ def __init__(self, window):
2323 self .platform = NixPlatform ()
2424
2525 def __generate_default_root (self ):
26- default_root = self .__get_default_root (
27- self .settings .get (DEFAULT_ROOT_SETTING ))
28- if default_root == "path" :
29- self .root = os .path .expanduser (
30- self .settings .get (DEFAULT_PATH_SETTING ))
31- default_root = ""
32- return self .split_path (default_root )
26+ root_setting = self .settings .get (DEFAULT_ROOT_SETTING )
27+ path , folder_index = self .__parse_path_setting (
28+ root_setting , DEFAULT_FOLDER_INDEX_SETTING )
29+ if path is None and folder_index is None :
30+ return os .path .expanduser (self .settings .get (DEFAULT_PATH_SETTING ))
31+ elif path is None :
32+ return self .window .folders ()[folder_index ]
33+ return path
3334
3435 def __generate_alias_root (self ):
35- alias_root = self .__get_default_root (
36- self .settings .get (ALIAS_ROOT_SETTING ), True )
37- if alias_root == "path" :
38- self . alias_root = os .path .expanduser (
39- self . settings . get ( ALIAS_PATH_SETTING ))
40- alias_root = ""
41- return self . split_path ( alias_root , True )
36+ path , folder_index = self .__parse_path_setting (
37+ self .settings .get (ALIAS_ROOT_SETTING ), ALIAS_FOLDER_INDEX_SETTING )
38+ if path is None and folder_index is None :
39+ return os .path .expanduser (self . settings . get ( ALIAS_PATH_SETTING ))
40+ elif path is None :
41+ return self . window . folders ()[ folder_index ]
42+ return path
4243
4344 def generate_initial_path (self , initial_path = None ):
4445 # Search for initial string
4546 if initial_path is not None :
4647 path = initial_path
4748 else :
48- _ , path = self .__generate_default_root ()
4949 if self .settings .get (USE_CURSOR_TEXT_SETTING , False ):
5050 cursor_text = self .get_cursor_path ()
5151 if cursor_text != "" :
5252 path = cursor_text
53+ else :
54+ path = self .settings .get (DEFAULT_INITIAL_SETTING )
5355
5456 return path
5557
@@ -60,8 +62,8 @@ def run_setup(self):
6062 self .alias_root = None
6163 self .aliases = self .__get_aliases ()
6264
63- self .root , _ = self .__generate_default_root ()
64- self .alias_root , _ = self .__generate_alias_root ()
65+ self .root = self .__generate_default_root ()
66+ self .alias_root = self .__generate_alias_root ()
6567
6668 # Need to fix this
6769 debug = self .settings .get (DEBUG_SETTING ) or False
@@ -81,34 +83,31 @@ def __get_aliases(self):
8183
8284 return aliases
8385
84- def __get_default_root (self , string , is_alias = False ):
85- root = ""
86- self .alias_folder_index = self .settings .get (ALIAS_FOLDER_INDEX_SETTING )
87- self .default_folder_index = self .settings .get (
88- DEFAULT_FOLDER_INDEX_SETTING )
89- if string == "home" :
90- root = "~/"
91- elif string == "current" :
92- root = TOP_LEVEL_SPLIT_CHAR
93- elif string == "project_folder" :
94- num_folders = len (self .window .folders ())
95- if is_alias :
96- if num_folders <= self .alias_folder_index :
97- self .alias_folder_index = 0
98- elif num_folders <= self .default_folder_index :
99- self .default_folder_index = 0
100- elif string == "top_folder" :
101- if is_alias :
102- self .alias_folder_index = 0
86+ def __parse_path_setting (self , setting , index_setting ):
87+ root = None
88+ folder_index = None
89+ if setting == "home" :
90+ root = os .path .expanduser ("~/" )
91+ elif setting == "current" :
92+ filename = self .view .file_name ()
93+ if filename is not None :
94+ root = os .path .dirname (filename )
10395 else :
104- self .default_folder_index = 0
105- elif string == "path" :
106- root = "path"
96+ root = os .path .expanduser ("~/" )
97+ elif setting == "project_folder" :
98+ folder_index = self .settings .get (index_setting )
99+ num_folders = len (self .window .folders ())
100+ if num_folders < folder_index :
101+ folder_index = 0
102+ elif setting == "top_folder" :
103+ folder_index = 0
104+ elif setting == "path" :
105+ pass
107106 else :
108- print ("Invalid specifier for \" default_root \" " )
109- return root
107+ print ("Invalid root specifier " )
108+ return ( root , folder_index )
110109
111- def split_path (self , path = "" , is_alias = False ):
110+ def split_path (self , path = "" ):
112111 HOME_REGEX = r"^~[/\\]"
113112 root = None
114113 try :
@@ -141,13 +140,7 @@ def split_path(self, path="", is_alias=False):
141140
142141 # Default
143142 if root is None :
144- if is_alias :
145- root = self .alias_root
146- folder_index = self .alias_folder_index
147- else :
148- root = self .root
149- folder_index = self .default_folder_index
150- root = root or self .window .folders ()[folder_index ]
143+ root = self .root
151144 except IndexError :
152145 root = os .path .expanduser ("~" )
153146
@@ -190,8 +183,10 @@ def __translate_alias(self, path):
190183 join_index -= 1
191184
192185 if root is None :
186+ # Nothing found
193187 return None , path
194188 elif split_path is None :
189+ # Current directory as alias
195190 return os .path .abspath (root ), ""
196191 else :
197192 # Add to index so we re
@@ -319,8 +314,8 @@ def create_folder(self, path):
319314 if ex .errno != errno .EEXIST :
320315 raise
321316
322- file_permissions = self .settings .get ("file_permissions" , "" )
323- folder_permissions = self .settings .get ("folder_permissions" , "" )
317+ file_permissions = self .settings .get (FILE_PERMISSIONS_SETTING , "" )
318+ folder_permissions = self .settings .get (FOLDER_PERMISSIONS_SETTING , "" )
324319 for entry in init_list :
325320 if self .is_python :
326321 creation_path = os .path .join (entry , '__init__.py' )
@@ -341,7 +336,8 @@ def get_cursor_path(self):
341336 if region .begin () != region .end ():
342337 path = view .substr (region )
343338 break
344- if re .match (".*string.quoted.double" , syntax ) or re .match (".*string.quoted.single" , syntax ):
339+ if (re .match (".*string.quoted.double" , syntax ) or
340+ re .match (".*string.quoted.single" , syntax )):
345341 path = view .substr (view .extract_scope (region .begin ()))
346342 path = re .sub ('^"|\' ' , '' , re .sub ('"|\' $' , '' , path .strip ()))
347343 break
0 commit comments