MCPcopy
hub / github.com/idank/explainshell / _merge_adjacent

Method _merge_adjacent

explainshell/matcher.py:938–958  ·  view source on GitHub ↗
(self, matches)

Source from the content-addressed store, hash-verified

936 return d
937
938 def _merge_adjacent(self, matches):
939 merged = []
940 result_index = self._result_index()
941 same_text = itertools.groupby(matches, lambda m: m.text)
942 for text, ll in same_text:
943 for l_group in util.group_continuous(ll, key=lambda m: result_index[m]):
944 l_group = list(l_group)
945
946 if len(l_group) == 1:
947 merged.append(l_group[0])
948 else:
949 start = l_group[0].start
950 end = l_group[-1].end
951 end_index = result_index[l_group[-1]]
952 for mr in l_group:
953 del result_index[mr]
954 merged.append(
955 MatchResult(start, end, text, None, l_group[0].debug_info)
956 )
957 result_index[merged[-1]] = end_index
958 return merged

Callers 1

matchMethod · 0.95

Calls 2

_result_indexMethod · 0.95
MatchResultClass · 0.85

Tested by

no test coverage detected