fix highlight

This commit is contained in:
2021-10-26 11:09:45 +02:00
parent 3b330b2fca
commit b592bada90

View File

@@ -29,19 +29,21 @@ class HighlightSelection(Highlight):
start_byte_in_line = begin - line.byte_offset() start_byte_in_line = begin - line.byte_offset()
else: else:
start_byte_in_line = 0 start_byte_in_line = 0
start_char = line.byte_index_to_char_index(start_byte_in_line)
if line.includes_byte(end): if line.includes_byte(end):
length_in_bytes = end - line.byte_offset() - start_byte_in_line length_in_bytes = end - line.byte_offset() - start_byte_in_line
end_char = line.byte_index_to_char_index(start_byte_in_line + length_in_bytes)
else: else:
# renders the highlighting to the end of the line # renders the highlighting to the end of the line
# this is how selections usually behave # this is how selections usually behave
length_in_bytes = Settings.max_line_length() - start_byte_in_line length_in_bytes = Settings.max_line_length() - start_byte_in_line
start_char = line.byte_index_to_char_index(start_byte_in_line) # note: this mixes chars and bytes, but that should not matter, because
end_char = line.byte_index_to_char_index(start_byte_in_line+length_in_bytes) # it just means that we render the highlight into the invisible range on the right
length_in_chars = end_char - start_char end_char = start_char + length_in_bytes
#print("selected: %s" % (line.substr(start_char, length_in_chars))) length_in_chars = end_char - start_char
return [HighlightedRange(start_char, length_in_chars, brush=QBrush(QColor(156, 215, 255)), pen=Qt.PenStyle.NoPen)] return [HighlightedRange(start_char, length_in_chars, brush=QBrush(QColor(156, 215, 255)), pen=Qt.PenStyle.NoPen)]
else: else: