compute between bytes and chars to get correct clipboard copy
This commit is contained in:
@@ -26,15 +26,23 @@ class HighlightSelection(Highlight):
|
||||
|
||||
if line.intersects(begin, end):
|
||||
if line.includes_byte(begin):
|
||||
start = begin - line.byte_offset()
|
||||
start_byte_in_line = begin - line.byte_offset()
|
||||
else:
|
||||
start = 0
|
||||
start_byte_in_line = 0
|
||||
|
||||
if line.includes_byte(end):
|
||||
length = end - line.byte_offset() - start
|
||||
length_in_bytes = end - line.byte_offset() - start_byte_in_line
|
||||
else:
|
||||
length = Settings.max_line_length() - start
|
||||
# renders the highlighting to the end of the line
|
||||
# this is how selections usually behave
|
||||
length_in_bytes = Settings.max_line_length() - start_byte_in_line
|
||||
|
||||
return [HighlightedRange(start, length, brush=QBrush(QColor(156, 215, 255)), pen=Qt.PenStyle.NoPen)]
|
||||
start_char = line.byte_index_to_char_index(start_byte_in_line)
|
||||
end_char = line.byte_index_to_char_index(start_byte_in_line+length_in_bytes)
|
||||
length_in_chars = end_char - start_char
|
||||
|
||||
#print("selected: %s" % (line.substr(start_char, length_in_chars)))
|
||||
|
||||
return [HighlightedRange(start_char, length_in_chars, brush=QBrush(QColor(156, 215, 255)), pen=Qt.PenStyle.NoPen)]
|
||||
else:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user