Exemplo n.º 1
0
    def run(self, edit):
        view = self.view

        if not is_robot_format(view):
            return

        sel = view.sel()[0]
        line = re.compile('\r|\n').split(view.substr(view.line(sel)))[0]
        row, col = view.rowcol(sel.begin())

        file_path = view.file_name()
        if not file_path:
            sublime.error_message('Please save the buffer to a file first.')
            return
        path, file_name = os.path.split(file_path)

        if line.strip().startswith('Resource'):
            resource = line[line.find('Resource') + 8:].strip().replace('${CURDIR}', path)
            resource_path = os.path.join(path, resource)
            view.window().open_file(resource_path)
            return

        keyword = get_keyword_at_pos(line, col)
        if not keyword:
            return

        view_file = populate_testcase_file(self.view)
        # must be run on main thread
        folders = view.window().folders()
        GoToKeywordThread(view, view_file, keyword, folders).start()
Exemplo n.º 2
0
    def run(self, edit):
        view = self.view

        if not is_robot_format(view):
            return

        sel = view.sel()[0]
        line = re.compile('\r|\n').split(view.substr(view.line(sel)))[0]
        row, col = view.rowcol(sel.begin())

        file_path = view.file_name()
        if not file_path:
            sublime.error_message('Please save the buffer to a file first.')
            return
        path, file_name = os.path.split(file_path)

        if line.strip().startswith('Resource'):
            resource = line[line.find('Resource') + 8:].strip().replace(
                '${CURDIR}', path)
            resource_path = os.path.join(path, resource)
            view.window().open_file(resource_path)
            return

        keyword = get_keyword_at_pos(line, col)
        if not keyword:
            return

        view_file = populate_testcase_file(self.view)
        # must be run on main thread
        folders = view.window().folders()
        GoToKeywordThread(view, view_file, keyword, folders).start()
Exemplo n.º 3
0
 def on_query_completions(self, view, prefix, locations):
     if is_robot_format(view):
         view_file = populate_testcase_file(view)
         keywords = Scanner(view).scan_file(view_file)
         lower_prefix = prefix.lower()
         user_keywords = [(kw[0].keyword.name, kw[0].keyword.name) for kw in keywords.itervalues()
                             if kw[0].keyword.name.lower().startswith(lower_prefix)]
         return user_keywords
Exemplo n.º 4
0
    def on_query_completions(self, view, prefix, locations):
        if not is_robot_format(view):
            return

        sel = view.sel()[0]
        line = re.compile('\r|\n').split(view.substr(view.line(sel)))[0].replace('\t', '    ')
        lower_prefix = view.substr(view.line(sel))[:view.rowcol(sel.begin())[1]].split('  ')[-1]
        view_file = populate_testcase_file(view)
        folders = view.window().folders()
        scanner = Scanner(view)
        keywords = scanner.scan_file(view_file)

        for folder in folders:
            for root, dirs, files in os.walk(folder):
                for f in files:
                    if f.endswith('.txt') and f != '__init__.txt':
                        path = os.path.join(root, f)
                        scanner.scan_without_resources(path, keywords)

        keywords.update(stdlib_keywords.keywords)

        user_keywords = user_kw(keywords, lower_prefix, prefix)

        return user_keywords