Example #1
0
 def __init__(self, name, description, lexer, file_patterns, comment_token="",
              keywords="", indent_width=4, tab_width=8, use_tabs=False):
     self.name = name
     self.description = description
     self.lexer = lexer
     self.file_patterns = file_patterns
     self.comment_token = comment_token
     self.indent_width = indent_width
     self.tab_width = tab_width
     self.use_tabs = use_tabs
     self.keywords = keywords
     file_patterns_list = file_patterns.split(";")
     file_patterns = ";".join(file_patterns_list + [ext + ".in" for ext in file_patterns_list])
     self.file_regex = compile_file_patterns(file_patterns)
Example #2
0
    def find(self, details):
        self.stop()

        matcher = make_matcher(details.find,
            case_sensitive=details.case, is_regexp=details.regexp)

        if details.hidden:
            def dir_filter(info):
                return True
        else:
            def dir_filter(info):
                return bool(not info.hidden
                    and not re_hidden_dirs.match(info.filename))

        if details.file_patterns.strip():
            file_pattern_re = compile_file_patterns(details.file_patterns)
            if details.hidden:
                def file_filter(info):
                    return bool(file_pattern_re.match(info.filename))
            else:
                def file_filter(info):
                    return bool(not info.hidden
                        and not re_hidden_files.match(info.filename)
                        and file_pattern_re.match(info.filename))
        else:
            if details.hidden:
                def file_filter(info):
                    return True
            else:
                def file_filter(info):
                    return bool(not info.hidden
                        and not re_hidden_files.match(info.filename))

        self.start_time = time.time()
        self.details = details
        self.finder = Search(details.path, matcher, output=self, file_filter=file_filter, dir_filter=dir_filter)
        async_call(self.finder.search)
        self.Clear()
        self.output.start()
Example #3
0
import re
from util import compile_file_patterns

hidden_files = ".*;*~;*.swp;*.pyc;*.pyo;*.o;*.a;*.obj;*.lib;*.class"
hidden_dirs = ".*;CVS;__pycache__"

re_hidden_files = compile_file_patterns(hidden_files)
re_hidden_dirs = compile_file_patterns(hidden_dirs)

class DirTreeFilter(object):
    def __init__(self, show_hidden=False, show_files=True, show_dirs=True,
                 hidden_files=hidden_files, hidden_dirs=hidden_dirs):
        self.show_hidden = show_hidden
        self.show_files = show_files
        self.show_dirs = show_dirs
        self.re_hidden_file = re_hidden_files
        self.re_hidden_dirs = re_hidden_dirs

    def __call__(self, info):
        if info.hidden and not self.show_hidden:
            return False
        if info.is_file and not self.show_files:
            return False
        if info.is_dir:
            if not self.show_dirs:
                return False
            if self.re_hidden_dirs.match(info.filename):
                return False
        else:
            if self.re_hidden_file.match(info.filename):
                return False