def extract_prev_method_binding_for_cursor(): search_space = all.get_buffer_before_cursor() def extract_from_type_definition(): matches = re.findall(r'(?m)^type (\w+) ', search_space) if matches != []: type_name = matches[-1] object_name = re.findall(r'(\w[^A-Z]+)', type_name)[-1].lower() return (object_name, type_name) else: return None def extract_from_method_definition(): matches = re.findall(r'(?m)^func \(([^)]+)\s+\*?([^)]+)\) ', search_space) if matches != []: return matches[-1] else: return None result = extract_from_method_definition() if result is None: result = extract_from_type_definition() return result
def get_previous_slice_usage(): search_space = all.get_buffer_before_cursor() matches = re.findall(r'(\w+)\[', search_space) if matches: return matches[-1] return ""