Justin M. Keyes
ad27075c8d
feat(pos): pos:to_offset(), pos.offset() ( #39639 )
...
Problem:
For a given position, it is not easy to compare which of several other positions is closest to it.
Solution:
Add support for converting `vim.Pos` to a buffer byte offset.
This allows for sorting, e.g:
```lua
table.sort(positions, function(pos1, pos2)
return pos1:to_offset() < pos2:to_offset()
end
```
Or a binary search, e.g:
```lua
vim.list.bisect(positions, pos, { key = function(pos) return pos:to_offset() end })
```
Co-authored-by: Yi Ming <ofseed@foxmail.com >
2026-05-07 05:16:53 -04:00
..
2026-03-29 06:59:34 -04:00
2026-04-30 02:08:19 +02:00
2026-04-19 12:36:19 +00:00
2026-03-31 20:40:33 -04:00
2026-04-17 00:58:50 +00:00
2026-04-17 02:10:01 +00:00
2025-11-28 10:10:31 +08:00
2026-04-13 18:38:44 -04:00
2026-04-25 13:51:22 -04:00
2026-02-12 13:46:45 +01:00
2026-04-15 19:47:10 +02:00
2024-05-15 23:19:26 +02:00
2026-04-15 19:47:10 +02:00
2026-04-30 02:08:19 +02:00
2026-04-25 13:51:22 -04:00
2026-05-06 16:42:02 +00:00
2026-04-17 00:58:50 +00:00
2025-11-10 11:13:56 +08:00
2026-04-21 16:22:05 +00:00
2026-03-16 07:46:34 -04:00
2026-04-19 12:36:19 +00:00
2025-11-10 11:13:56 +08:00
2025-12-06 20:33:02 -05:00
2025-05-03 10:08:53 -07:00
2025-05-03 10:08:53 -07:00
2023-06-25 17:14:28 +02:00
2026-01-27 07:20:41 +08:00
2025-09-07 20:45:22 -07:00
2026-04-30 02:08:19 +02:00
2025-04-27 10:32:25 -07:00
2026-04-19 12:36:19 +00:00
2026-03-15 19:02:49 -04:00
2025-11-10 11:13:56 +08:00
2026-03-19 11:10:54 +08:00
2026-01-27 17:14:57 -05:00
2025-11-10 11:13:56 +08:00
2026-03-22 01:57:28 +01:00
2026-04-19 12:36:19 +00:00
2026-01-09 16:38:26 +08:00
2026-04-17 00:58:50 +00:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-01-26 07:05:42 +08:00
2026-01-26 07:05:42 +08:00
2026-04-30 22:05:37 +00:00
2026-03-23 17:41:48 -04:00
2026-03-23 08:00:53 -04:00
2026-03-21 12:00:06 -04:00
2026-05-07 05:16:53 -04:00
2025-12-15 13:55:15 -05:00
2026-03-16 10:29:58 +01:00
2026-02-12 13:46:45 +01:00
2026-04-17 02:10:01 +00:00
2026-04-17 00:58:50 +00:00
2025-11-10 11:13:56 +08:00
2026-02-10 06:44:30 +08:00
2025-09-28 20:57:59 -07:00
2025-10-04 21:09:13 -07:00
2026-02-09 12:13:24 -05:00
2026-05-07 05:16:53 -04:00
2026-03-24 00:14:55 +01:00
2026-05-06 00:54:27 +00:00
2026-04-26 22:02:34 +02:00
2026-04-17 02:10:01 +00:00
2025-11-10 11:13:56 +08:00
2025-12-15 13:55:15 -05:00
2025-11-10 11:13:56 +08:00
2023-01-01 15:05:13 +01:00
2025-08-11 00:04:30 +00:00
2025-05-20 00:21:30 +00:00
2026-04-06 02:39:21 +00:00
2026-04-26 22:02:34 +02:00
2026-02-04 13:53:08 -05:00
2026-04-22 08:17:13 -04:00
2026-03-11 18:24:57 +01:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-03-22 01:57:28 +01:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-04-17 00:58:50 +00:00
2026-04-22 18:58:47 +00:00
2026-04-22 23:01:00 +00:00
2026-03-24 00:01:43 +00:00
2025-11-10 11:13:56 +08:00
2026-02-09 12:13:24 -05:00
2026-03-18 20:40:20 +01:00
2025-11-10 11:13:56 +08:00
2026-04-30 13:09:55 +00:00
2025-12-15 02:07:51 -05:00
2026-01-07 08:11:42 +08:00
2026-03-24 00:14:55 +01:00
2026-04-17 02:10:01 +00:00
2025-11-10 11:13:56 +08:00
2026-02-13 16:39:18 +08:00
2025-12-06 20:33:02 -05:00
2025-11-10 11:13:56 +08:00
2026-04-12 15:56:12 +02:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-27 07:49:44 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-04-12 15:56:12 +02:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-02-13 16:39:18 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-03-11 12:39:49 +01:00
2025-11-10 11:13:56 +08:00
2025-12-15 13:55:15 -05:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-29 00:22:24 +00:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-02-16 21:17:02 +08:00
2025-11-10 11:13:56 +08:00
2026-02-13 16:39:18 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2025-11-10 11:13:56 +08:00
2026-04-17 00:58:50 +00:00
2025-11-10 11:13:56 +08:00
2026-04-21 16:22:05 +00:00
2026-04-17 02:10:01 +00:00
2026-04-25 13:51:22 -04:00
2025-11-10 11:13:56 +08:00
2026-04-30 02:08:19 +02:00
2026-02-14 07:59:51 +08:00