compute between bytes and chars to get correct clipboard copy
This commit is contained in:
16
line.py
16
line.py
@@ -4,18 +4,26 @@ class Line:
|
||||
self._byte_end = byte_end
|
||||
self._line = line
|
||||
|
||||
def byte_offset(self):
|
||||
def byte_offset(self) -> int:
|
||||
return self._byte_offset
|
||||
|
||||
def byte_end(self):
|
||||
def byte_end(self) -> int:
|
||||
return self._byte_end
|
||||
|
||||
def line(self):
|
||||
def line(self) -> str:
|
||||
return self._line
|
||||
|
||||
def length(self):
|
||||
def length(self) -> int:
|
||||
return len(self._line)
|
||||
|
||||
def char_index_to_byte(self, char_in_line: int) -> int:
|
||||
return len(self.prefix(char_in_line).encode("utf8"))
|
||||
|
||||
def byte_index_to_char_index(self, byte_index: int) -> int:
|
||||
prefix_bytes = self._line.encode("utf8")[:byte_index]
|
||||
prefix_chars = prefix_bytes.decode("utf8", errors="ignore")
|
||||
return len(prefix_chars)
|
||||
|
||||
def includes_byte(self, byte: int) -> bool:
|
||||
return self._byte_offset <= byte <= self._byte_end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user