Skip to content

Commit 315dc09

Browse files
committed
Fix for alias root
1 parent 6443bbd commit 315dc09

3 files changed

Lines changed: 50 additions & 54 deletions

File tree

advanced_new_file/commands/command_base.py

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -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

advanced_new_file/platform/nix_platform.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def parse_nix_path(self, root, path):
1212
return "/", 1
1313

1414
def get_alias_absolute_path(self, root, path):
15-
if re.search(NIX_ROOT_REGEX, path):
15+
if re.search(NIX_ROOT_REGEX, path) is None:
1616
return os.path.join(root, path)
1717
return None
1818

advanced_new_file/platform/windows_platform.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def parse_nix_path(self, root, path):
2929
return root, path_offset
3030

3131
def get_alias_absolute_path(self, root, path):
32-
if re.search(WIN_ROOT_REGEX, path):
32+
if re.search(WIN_ROOT_REGEX, path) is None:
3333
return os.path.join(root, path)
3434
return None
3535

0 commit comments

Comments
 (0)