Skip to content

Commit 5c8a14f

Browse files
committed
v1.1.0 Forward compatible with Sublime Text 3 (3012 and above)
1 parent 9e75cb8 commit 5c8a14f

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

JavaPropertiesEditor.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
import sublime, sublime_plugin
44
import os
55
import re
6+
import sys
67

7-
NONE_COMMAND = (None, None, 0)
8+
if sys.version_info < (3, 0):
9+
NONE_COMMAND = (None, None, 0)
10+
MAP = map(unichr, range(0x7f))
11+
else:
12+
NONE_COMMAND = ('', None, 0)
13+
MAP = list(map(chr, list(range(0x7f))))
814

915
class UpperTable(dict):
1016
def __missing__(self, key):
@@ -14,34 +20,37 @@ class LowerTable(dict):
1420
def __missing__(self, key):
1521
return u'\\u%04x' % key
1622

17-
MAP = map(unichr, range(0x7f))
1823
UPPER_TABLE = UpperTable(enumerate(MAP))
1924
LOWER_TABLE = LowerTable(enumerate(MAP))
20-
IS_UPPER = re.compile('\\u([A-F][A-Z0-9]{3,3}|[0-9][A-F][A-F0-9]{2,2}|[0-9]{2,2}[A-F][A-F0-9]|[0-9]{3,3}[A-F])')
25+
IS_UPPER = re.compile('\\\\u([A-F][A-Z0-9]{3,3}|[0-9][A-F][A-F0-9]{2,2}|[0-9]{2,2}[A-F][A-F0-9]|[0-9]{3,3}[A-F])')
2126

22-
class JavaPropertiesEditorListener(sublime_plugin.EventListener):
23-
def check_properties(self, view):
24-
file_name = view.file_name()
25-
result = file_name and file_name.endswith('.properties')
26-
if result:
27-
view.settings().set('is_properties', True)
28-
return result
29-
30-
def replace_content(self, view, regions, contents):
27+
class JavaPropertiesConvertCommand(sublime_plugin.TextCommand):
28+
def run(self, edit, contents):
29+
view = self.view
3130
sel = view.sel()
3231
rs = [x for x in sel]
3332
vp = view.viewport_position()
3433
view.set_viewport_position(tuple([0, 0]))
35-
edit = view.begin_edit()
34+
regions = sublime.Region(0, view.size())
3635
view.replace(edit, regions, contents)
37-
view.end_edit(edit)
3836
sel.clear()
3937
for x in rs:
4038
sel.add(sublime.Region(x.a, x.b))
4139
view.set_viewport_position(vp)
4240
view.set_scratch(True)
4341
view.settings().set('set_scratch', True)
4442

43+
class JavaPropertiesEditorListener(sublime_plugin.EventListener):
44+
def check_properties(self, view):
45+
file_name = view.file_name()
46+
result = file_name and file_name.endswith('.properties')
47+
if result:
48+
view.settings().set('is_properties', True)
49+
return result
50+
51+
def replace_content(self, view, contents):
52+
view.run_command('java_properties_convert', {'contents': contents})
53+
4554
def on_load(self, view):
4655
if not self.check_properties(view):
4756
return
@@ -52,7 +61,7 @@ def on_load(self, view):
5261
return
5362
if IS_UPPER.search(orignal_contents) == None:
5463
view.settings().set('use_lower', True)
55-
self.replace_content(view, regions, contents)
64+
self.replace_content(view, contents)
5665

5766
def on_modified(self, view):
5867
if not view.settings().get('is_properties'):
@@ -82,7 +91,7 @@ def on_pre_save(self, view):
8291
if contents == orignal_contents:
8392
return
8493
self.contents = contents
85-
self.replace_content(view, regions, orignal_contents)
94+
self.replace_content(view, orignal_contents)
8695

8796
def on_post_save(self, view):
8897
if not view.settings().get('is_properties'):
@@ -91,5 +100,4 @@ def on_post_save(self, view):
91100
return
92101
contents = self.contents
93102
del self.contents
94-
regions = sublime.Region(0, view.size())
95-
self.replace_content(view, regions, contents)
103+
self.replace_content(view, contents)

messages.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2+
"1.1.0": "messages/1.1.0.txt",
23
"install": "messages/install.txt"
34
}

messages/1.1.0.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
JavaPropertiesEditor 1.1.0 Changelog
2+
3+
New Features
4+
- Forward compatible with Sublime Text 3 (3012 and above)

0 commit comments

Comments
 (0)