Skip to content

Commit 0d04b15

Browse files
committed
support projectwise settings
1 parent 6650bb4 commit 0d04b15

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,20 @@ The `prog` argument determines which program to use
146146
### User settings
147147

148148
A couple of settings can be found `Preferences: SendCode Settings`
149+
Project-wise settings could be also specified in `sublime-project`, for example
150+
151+
```js
152+
{
153+
"settings": {
154+
"SendCode": {
155+
"prog": "terminus",
156+
"r" : {
157+
"bracketed_paste_mode": true
158+
}
159+
}
160+
}
161+
}
162+
```
149163

150164

151165
### Block expansion

settings.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,26 @@ def syntax(self):
3232
def get(self, key, default=None):
3333
syntax = self.syntax()
3434

35-
# check syntax settings
36-
if syntax:
37-
syntax_settings = self.s.get(syntax, {})
38-
if key in syntax_settings:
39-
return syntax_settings[key]
35+
settings_list = [self.s]
36+
37+
window = sublime.active_window()
38+
if window:
39+
view = window.active_view()
40+
if view:
41+
project_settings = view.settings().get("SendCode", {})
42+
if project_settings:
43+
settings_list.insert(0, project_settings)
44+
45+
for settings in settings_list:
46+
# check syntax settings
47+
if syntax:
48+
syntax_settings = settings.get(syntax, {})
49+
if key in syntax_settings:
50+
return syntax_settings[key]
4051

41-
# check global settings
42-
if self.s.has(key) and self.s.get(key) is not None:
43-
return self.s.get(key)
52+
# check global settings
53+
if settings.get(key, None) is not None:
54+
return settings.get(key)
4455

4556
# fallback
4657
return default

0 commit comments

Comments
 (0)