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()
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()
def run(self, edit): view = self.view window = view.window() if not view.settings().get('syntax').endswith('robot.tmLanguage'): return # don't run for non-robot files sel = view.sel()[0] line = view.substr(view.line(sel)) row, col = view.rowcol(sel.begin()) file_path = view.file_name() if file_path is None: 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) window.open_file(resource_path) return keyword = get_keyword_at_pos(line, col) if keyword is None: return # populate a TestCaseFile from the lines in the buffer regions = view.split_by_newlines(sublime.Region(0, view.size())) lines = [view.substr(region).encode('ascii', 'replace') + '\n' for region in regions] test_case_file = TestCaseFile(source=file_path) FromStringPopulator(test_case_file, lines).populate(test_case_file.source) keywords.clear() parse_file(test_case_file) for bdd_prefix in ['given ', 'and ', 'when ', 'then ']: if keyword.lower().startswith(bdd_prefix): substr = keyword[len(bdd_prefix):] if substr in keywords: openKeywordFile(window, keywords[substr]) break else: if keyword in keywords: openKeywordFile(window, keywords[keyword])