Skip to content

Commit 0310c51

Browse files
committed
Drop Prefs class
Directly read settings from sublime.Settings() object.
1 parent 6213d3d commit 0310c51

File tree

2 files changed

+19
-53
lines changed

2 files changed

+19
-53
lines changed

php-getter-setter.py

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,9 @@ def msg(msg):
2222
if DEBUG:
2323
print("[PHP Getters and Setters] %s" % msg)
2424

25-
class Prefs:
26-
"""
27-
Plugin preferences
28-
"""
29-
def __init__(self):
30-
self.loaded = False
31-
self.data = {}
32-
33-
def get(self, name):
34-
if not self.loaded:
35-
self.load()
36-
37-
return self.data[name]
38-
39-
def load(self):
40-
if self.loaded:
41-
return
25+
def prefs():
26+
return sublime.load_settings('php-getters-setters.sublime-settings')
4227

43-
settings = sublime.load_settings('php-getters-setters.sublime-settings')
44-
45-
self.data['typeHintIgnore'] = settings.get('type_hint_ignore')
46-
msg("ignored type hinting var types %s" % self.data['typeHintIgnore'])
47-
48-
self.data['template'] = settings.get('template')
49-
msg("template is '%s'" % self.data['template'])
50-
51-
self.data['registerTemplates'] = settings.get('registerTemplates', [])
52-
msg("register extra user templates %s" % self.data['registerTemplates'])
53-
54-
self.data['ignoreVisibility'] = settings.get('ignore_visibility', [])
55-
msg("ignoring visibility to getters and setters")
56-
57-
self.setterBeforeGetter = settings.get('setter_before_getter', False)
58-
msg("setterBeforeGetter is %s" % str(self.setterBeforeGetter))
59-
60-
self.loaded = True
6128

6229
class TemplateManager:
6330
templates = {}
@@ -71,14 +38,14 @@ def get(self, name):
7138

7239
class Variable:
7340
def __init__(self, name, visibility, typeName=None, description=None):
41+
settings = prefs()
7442
self.name = name
7543
self.type = typeName
7644
self.description = description
77-
self.prefs = prefs
78-
if self.prefs.get('ignoreVisibility'):
79-
visibility = 'public'
45+
if settings.get("ignore_visibility", False):
46+
visibility = "public"
8047
self.visibility = visibility
81-
self.template = templateManager.get(self.prefs.get('template'))
48+
self.template = templateManager.get(settings.get("template"))
8249
self.style = self.template.style
8350

8451
def getName(self):
@@ -171,7 +138,7 @@ def getType(self):
171138
return self.type
172139

173140
def getTypeHint(self):
174-
if self.type in self.prefs.get('typeHintIgnore'):
141+
if self.type in prefs().get('type_hint_ignore', []):
175142
return ''
176143

177144
if self.type.find(" ") > -1 or self.type.find(r"|") > -1:
@@ -340,7 +307,6 @@ def __init__(self, arg):
340307
sublime_plugin.TextCommand.__init__(self, arg)
341308
self.variables = None
342309
self.parser = None
343-
self.prefs = prefs
344310
self.onlyForVar = None
345311

346312
def onlyForVar(self, varName):
@@ -399,7 +365,7 @@ def generateGetterFunction(self, parser, variable):
399365
msg("function %s already present, skipping" % variable.getGetterFunctionName())
400366
return ''
401367

402-
template = templateManager.get(prefs.get('template'))
368+
template = templateManager.get(prefs().get('template', "PSR2"))
403369
code = self.generateFunctionCode(template.getter, variable)
404370

405371
return code
@@ -410,7 +376,7 @@ def generateSetterFunction(self, parser, variable):
410376
msg("function %s already present, skipping" % variable.getSetterFunctionName())
411377
return ''
412378

413-
template = templateManager.get(prefs.get('template'))
379+
template = templateManager.get(prefs().get('template', "PSR2"))
414380
code = self.generateFunctionCode(template.setter, variable)
415381
# if type hinting is not to be show we get "( " instead of (
416382
code = code.replace('( ', '(')
@@ -510,13 +476,15 @@ def run(self, edit, **args):
510476
if not 'name' in args:
511477
args['name'] = None
512478

479+
settings = prefs()
480+
513481
parser = self.getParser(self.getContent())
514482
code = ''
515483
for variable in parser.getClassVariables():
516484
if args['name'] is not None and variable.getName() != args['name']:
517485
continue
518486

519-
if self.prefs.setterBeforeGetter:
487+
if settings.get("setter_before_getter", False):
520488
code += self.generateSetterFunction(parser, variable)
521489
code += self.generateGetterFunction(parser, variable)
522490
else:
@@ -666,8 +634,6 @@ class snakeCaseFluent(snakeCase):
666634
}
667635
"""
668636

669-
prefs = Prefs()
670-
671637
templateManager = TemplateManager()
672638

673639
def plugin_loaded():
@@ -677,5 +643,5 @@ def plugin_loaded():
677643
templateManager.register(snakeCase())
678644
templateManager.register(snakeCaseFluent())
679645

680-
for template in prefs.get('registerTemplates'):
646+
for template in prefs().get('user_templates', []):
681647
templateManager.register(eval(template+'()'))

php-getters-setters.sublime-settings

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
// user defined templates to load
3-
"registerTemplates": [],
2+
// user defined templates to load
3+
"user_templates": [],
44

5-
// the template used to generate code
6-
"template": "PSR2",
5+
// the template used to generate code
6+
"template": "PSR2",
77

8-
// if docblock says variable id any of the following do not add type hinting to functions
9-
"type_hint_ignore": ["mixed", "int", "integer", "double", "float", "number", "string", "boolean", "bool", "numeric", "unknown"],
8+
// if docblock says variable id any of the following do not add type hinting to functions
9+
"type_hint_ignore": ["mixed", "int", "integer", "double", "float", "number", "string", "boolean", "bool", "numeric", "unknown"],
1010
}

0 commit comments

Comments
 (0)