Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import sublime
- import sublime_plugin
- _KEY = 'marking_changed'
- _MARK_STYLE = sublime.DRAW_NO_FILL | sublime.DRAW_NO_OUTLINE | sublime.HIDDEN
- _SCOPE = 'markup.deleted'
- _SCOPE_SAVED = 'markup.inserted'
- _KEY_SAVED = 'changed_saved'
- settings2 = sublime.load_settings("MarkChanges.sublime-settings")
- _ICON = "dot"
- class MarkingChangedRowsCommand(sublime_plugin.EventListener):
- def __init__(self):
- self.changed_lines = []
- self.saved_lines = []
- def on_modified(self, view):
- if not view.file_name():
- return
- if view.is_dirty():
- for sel in view.sel():
- for r in view.lines(sel):
- ln, _ = view.rowcol(r.begin())
- if ln in self.saved_lines:
- self.saved_lines.remove(ln)
- if not ln in self.changed_lines:
- self.changed_lines.append(ln)
- self.display_saved_regions(view)
- self.display_changed_regions(view)
- else:
- view.erase_regions(_KEY);
- def on_post_save(self, view):
- view.erase_regions(_KEY)
- for ln in self.changed_lines:
- self.saved_lines.append(ln)
- self.changed_lines = []
- self.display_saved_regions(view)
- def on_load(self, view):
- view.erase_regions(_KEY)
- def display_saved_regions(self, view):
- view.erase_regions(_KEY_SAVED)
- rgns = []
- for ln in self.saved_lines:
- a = view.text_point(ln, 0)
- r = sublime.Region(a, a)
- rgns.append(r)
- view.add_regions(_KEY_SAVED, rgns, _SCOPE_SAVED, _ICON, _MARK_STYLE)
- def display_changed_regions(self, view):
- view.erase_regions(_KEY);
- rgns = []
- for ln in self.changed_lines:
- a = view.text_point(ln, 0)
- r = sublime.Region(a, a)
- rgns.append(r)
- view.add_regions(_KEY, rgns, _SCOPE, _ICON, _MARK_STYLE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement