Skip to content

Instantly share code, notes, and snippets.

@abusalimov
Created November 7, 2013 23:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abusalimov/7363673 to your computer and use it in GitHub Desktop.
Save abusalimov/7363673 to your computer and use it in GitHub Desktop.
GitGutter marks below Sublime bookmarks (quite dirty)
--- /home/eldar/.sublime/history/home/eldar/.config/sublime-text-3/Packages/GitGutter/2013-11-08_02.04.05.git_gutter.py
+++ /home/eldar/.config/sublime-text-3/Packages/GitGutter/git_gutter.py
@@ -31,6 +31,8 @@
# View is not ready yet, try again later.
sublime.set_timeout(self.run, 1)
return
+ # TODO get region_names from settings
+ self.protected_lines = self.lines_of_regions(['bookmarks', 'marks'])
self.clear_all()
if ViewCollection.untracked(self.view):
self.bind_files('untracked')
@@ -44,6 +46,13 @@
self.bind_icons('inserted', inserted)
self.bind_icons('changed', modified)
+ def lines_of_regions(self, region_names):
+ lines = set()
+ for region_name in region_names:
+ for region in self.view.get_regions(region_name):
+ lines.update(line.begin() for line in self.view.lines(region))
+ return lines
+
def clear_all(self):
for region_name in self.region_names:
self.view.erase_regions('git_gutter_%s' % region_name)
@@ -52,8 +61,9 @@
regions = []
for line in lines:
position = self.view.text_point(line - 1, 0)
- region = sublime.Region(position, position)
- regions.append(region)
+ if position not in self.protected_lines:
+ region = sublime.Region(position, position)
+ regions.append(region)
return regions
def lines_removed(self, lines):
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment