Чтобы получить меньшую детализацию в позициях закладок, вам необходимо заменить внутреннюю команду toggle_bookmark
на команду, которая всегда заставляет положение с закладкой быть началом любой строки, на которой находится курсор, а не ее точное местоположение.
Для простоты это выглядело бы примерно так:
import sublime
import sublime_plugin
class ToggleBookmarkCommand(sublime_plugin.TextCommand):
def run(self, edit):
view = self.view
old = view.get_regions("bookmarks")
new = [sublime.Region(view.line(sel.b).begin()) for sel in view.sel()]
for sel in new:
if sel not in old:
old.append(sel)
else:
del old[old.index(sel)]
view.add_regions("bookmarks", old, "bookmarks", "bookmark", sublime.PERSISTENT)
Помещение этого в плагин в вашем пакете User
заменит внутреннюю команду toggle_bookmark
этой версией, которая выполнит соответствующее переключение, но всегда вместо этого ограничит позицию закладки началом строки.
Область bookmarks
- это область, используемая внутренними командами, работающими с закладками, поэтому эта команда будет работать вместе с любыми другими командами, работающими с собственными закладками. Это включает команды, которые уже существуют для навигации между командами, а также команды, добавленные другими плагинами для расширенной функциональности, такой как выбор между текущей позицией курсора и следующей закладкой (хотя в этом случае возможность этого может быть несколько меньше из-за участвует позиционирование).