Skip to content

Commit

Permalink
Add options to save syntax and color scheme
Browse files Browse the repository at this point in the history
  • Loading branch information
titoBouzout committed Mar 7, 2012
1 parent 399658f commit 8879501
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 8 deletions.
52 changes: 45 additions & 7 deletions BufferScroll.py
@@ -1,10 +1,20 @@
import sublime
import sublime_plugin
import os
import hashlib
import sublime, sublime_plugin, os, hashlib

settings = sublime.load_settings('BufferScroll.sublime-settings')
# user settings

user_settings = sublime.load_settings('BufferScrollUser.sublime-settings')
class Pref:
def load(self):
Pref.remember_color_scheme = user_settings.get('remember_color_scheme', False)
Pref.remember_syntax = user_settings.get('remember_syntax', False)

Pref().load()
user_settings.add_on_change('remember_color_scheme', lambda:Pref().load())
user_settings.add_on_change('remember_syntax', lambda:Pref().load())

# package "database"

settings = sublime.load_settings('BufferScroll.sublime-settings')
version = 5
version_current = settings.get('version', version)
if version_current < version:
Expand All @@ -13,10 +23,10 @@
settings.set('queue', [])
sublime.save_settings('BufferScroll.sublime-settings')
settings = sublime.load_settings('BufferScroll.sublime-settings')

buffers = settings.get('buffers', {})
queue = settings.get('queue', [])


class BufferScroll(sublime_plugin.EventListener):

# restore on load for new opened tabs or previews.
Expand Down Expand Up @@ -94,6 +104,14 @@ def save(self, view):
buffer['f'].append([view.text_point(line_s, col_s), view.text_point(line_e, col_e)])
view.fold(folds)

# color_scheme http://www.sublimetext.com/forum/viewtopic.php?p=25624#p25624
if Pref.remember_color_scheme:
buffer['c'] = view.settings().get('color_scheme')

# syntax
if Pref.remember_syntax:
buffer['x'] = view.settings().get('syntax')

hash_filename = hashlib.sha1(os.path.normpath(view.file_name().encode('utf-8'))).hexdigest()[:7]
hash_position = hash_filename+self.view_index(view)

Expand Down Expand Up @@ -161,6 +179,20 @@ def restore(self, view):
if len(rs):
view.add_regions("bookmarks", rs, "bookmarks", "bookmark", sublime.HIDDEN | sublime.PERSISTENT)

# color scheme
try:
if Pref.remember_color_scheme and buffer['c'] and view.settings().get('color_scheme') != buffer['c']:
view.settings().set('color_scheme', buffer['c'])
except:
pass

# syntax
try:
if Pref.remember_syntax and buffer['x'] and view.settings().get('syntax') != buffer['x']:
view.settings().set('syntax', buffer['x'])
except:
pass

# scroll
if int(sublime.version()) >= 2151 and buffer['l']:
view.set_viewport_position(tuple(buffer['l']), False)
Expand Down Expand Up @@ -194,4 +226,10 @@ def view_index(self, view):
return '';

def _view_index(self, view):
return str(view.window().get_view_index(view) if view.window() else '')
return str(view.window().get_view_index(view) if view.window() else '')


class buffer_scroll_forget(sublime_plugin.ApplicationCommand):
def run(self, what):
if what == 'color_scheme':
sublime.active_window().active_view().settings().erase('color_scheme')
5 changes: 5 additions & 0 deletions BufferScrollUser.sublime-settings
@@ -0,0 +1,5 @@

{
"remember_color_scheme" : false,
"remember_syntax" : true
}
40 changes: 40 additions & 0 deletions Main.sublime-menu
@@ -0,0 +1,40 @@
[
{
"caption": "Preferences",
"mnemonic": "n",
"id": "preferences",
"children":
[
{
"command": "buffer_scroll_forget",
"args": {"what": "color_scheme"},
"caption": "Color Scheme Forget"
},
{"caption":"-"},
{
"caption": "Package Settings",
"mnemonic": "P",
"id": "package-settings",
"children":
[
{
"caption": "BufferScroll",
"children":
[
{
"command": "open_file",
"args": {"file": "${packages}/BufferScroll/BufferScrollUser.sublime-settings"},
"caption": "Settings – Default"
},
{
"command": "open_file",
"args": {"file": "${packages}/User/BufferScrollUser.sublime-settings"},
"caption": "Settings – User"
}
]
}
]
}
]
}
]
2 changes: 1 addition & 1 deletion readme.md
@@ -1,7 +1,7 @@
Description
------------------

Buffer Scroll is a simple [Sublime Text](http://www.sublimetext.com/ ) plug-in which remembers and restores the scroll and cursor positions, also the selections, marks, bookmarks and foldings states
Buffer Scroll is a simple [Sublime Text](http://www.sublimetext.com/ ) plug-in which remembers and restores the scroll and cursor positions, also the selections, marks, bookmarks, foldings states, selected syntax and color scheme


Installation
Expand Down

0 comments on commit 8879501

Please sign in to comment.