diff --git a/.gitignore b/.gitignore index eeb8a6e..61f2dc9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -**/__pycache__ +**/__pycache__/ diff --git a/src/__pycache__/cmdline_parser.cpython-39.pyc b/src/__pycache__/cmdline_parser.cpython-39.pyc deleted file mode 100644 index 3fc1fbf..0000000 Binary files a/src/__pycache__/cmdline_parser.cpython-39.pyc and /dev/null differ diff --git a/src/__pycache__/colors.cpython-39.pyc b/src/__pycache__/colors.cpython-39.pyc deleted file mode 100644 index 4a560e3..0000000 Binary files a/src/__pycache__/colors.cpython-39.pyc and /dev/null differ diff --git a/src/__pycache__/pretty_print.cpython-39.pyc b/src/__pycache__/pretty_print.cpython-39.pyc deleted file mode 100644 index 8d1da4a..0000000 Binary files a/src/__pycache__/pretty_print.cpython-39.pyc and /dev/null differ diff --git a/src/__pycache__/tree.cpython-39.pyc b/src/__pycache__/tree.cpython-39.pyc deleted file mode 100644 index daa7c39..0000000 Binary files a/src/__pycache__/tree.cpython-39.pyc and /dev/null differ diff --git a/src/__pycache__/tree_find.cpython-39.pyc b/src/__pycache__/tree_find.cpython-39.pyc deleted file mode 100644 index 6ac9c4f..0000000 Binary files a/src/__pycache__/tree_find.cpython-39.pyc and /dev/null differ diff --git a/src/__pycache__/tree_repr.cpython-39.pyc b/src/__pycache__/tree_repr.cpython-39.pyc deleted file mode 100644 index 233b09c..0000000 Binary files a/src/__pycache__/tree_repr.cpython-39.pyc and /dev/null differ diff --git a/src/tree_find.py b/src/tree_find.py index 988457a..cbcdda5 100644 --- a/src/tree_find.py +++ b/src/tree_find.py @@ -1,3 +1,5 @@ +import re + from src.colors import RED, YELLOW, GREEN, CYAN , BLUE, PURPLE from src.tree import NerdTree @@ -10,6 +12,7 @@ class NerdTreeFind(NerdTree): def __init__(self, startpath, opts={}, find_opts={}): self.item_name = '' + self.re_item_name = None self.results = [] ## computed tree for find self.json_tree_find = {} @@ -17,7 +20,8 @@ class NerdTreeFind(NerdTree): NerdTree.__init__(self, startpath, opts=opts) def find_node_recursively(self, node): - if node['name'] == self.item_name: + # if node['name'] == self.item_name: + if self.re_item_name.match(node['name']): node_copy = node.copy() node_copy.update({'color_formatter' : YELLOW, 'found' : 1}) self.results.append(node_copy) @@ -28,7 +32,8 @@ class NerdTreeFind(NerdTree): if item_child['type'] == 'd': self.find_node_recursively(item_child) else: - if item_child['name'] == self.item_name: + # if item_child['name'] == self.item_name: + if self.re_item_name.match(item_child['name']): item_child_copy = item_child.copy() item_child_copy.update({'color_formatter' : YELLOW, 'found' : 1}) self.results.append(item_child_copy) @@ -115,6 +120,11 @@ class NerdTreeFind(NerdTree): self.find_opts = new_opts self.results = [] self.item_name = new_item_name + print('Regexp: %s' % (new_item_name,)) + try: + self.re_item_name = re.compile(r'^%s$' % (new_item_name,)) + except re.error: + raise Exception('Can\'t compile regexp %s, exit' % (new_item_name,)) self.json_tree_find = {} def print(self, item_name='', opts={}):