fix copy/jump when there is a match capture group
This commit is contained in:
parent
cda4b68f8c
commit
f079539a65
|
@ -107,10 +107,15 @@ module Fingers
|
||||||
text = match[0]
|
text = match[0]
|
||||||
|
|
||||||
captured_text = match["match"]? || text
|
captured_text = match["match"]? || text
|
||||||
capture_offset = capture_offset_for_match(match, captured_text)
|
relative_capture_offset = relative_capture_offset_for_match(match, captured_text)
|
||||||
|
|
||||||
|
absolute_offset = {
|
||||||
|
line_index,
|
||||||
|
match.begin(0) + (relative_capture_offset ? relative_capture_offset[0] : 0)
|
||||||
|
}
|
||||||
|
|
||||||
hint = hint_for_text(text)
|
hint = hint_for_text(text)
|
||||||
build_target(text, hint, {line_index, match.begin(0)})
|
build_target(captured_text, hint, absolute_offset)
|
||||||
|
|
||||||
if !state.input.empty? && !hint.starts_with?(state.input)
|
if !state.input.empty? && !hint.starts_with?(state.input)
|
||||||
return text
|
return text
|
||||||
|
@ -120,7 +125,7 @@ module Fingers
|
||||||
hint: hint,
|
hint: hint,
|
||||||
highlight: text,
|
highlight: text,
|
||||||
selected: state.selected_hints.includes?(hint),
|
selected: state.selected_hints.includes?(hint),
|
||||||
offset: capture_offset
|
offset: relative_capture_offset
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -146,7 +151,7 @@ module Fingers
|
||||||
hint
|
hint
|
||||||
end
|
end
|
||||||
|
|
||||||
def capture_offset_for_match(match, captured_text)
|
def relative_capture_offset_for_match(match, captured_text)
|
||||||
return nil unless match["match"]?
|
return nil unless match["match"]?
|
||||||
|
|
||||||
match_start, match_end = {match.begin(0), match.end(0)}
|
match_start, match_end = {match.begin(0), match.end(0)}
|
||||||
|
|
Loading…
Reference in New Issue