|
2 | 2 | import sublime_plugin |
3 | 3 | import json |
4 | 4 | from os.path import dirname, realpath, join, basename, splitext |
| 5 | +from os import path |
5 | 6 |
|
6 | 7 | try: |
7 | 8 | # Python 2 |
|
14 | 15 | sublime.Region.__iter__ = lambda self: self.totuple().__iter__() |
15 | 16 |
|
16 | 17 | BIN_PATH = join(sublime.packages_path(), dirname(realpath(__file__)), 'sorting.js') |
| 18 | +CONFIG_NAMES = ['.postcss-sorting.json', 'postcss-sorting.json'] |
17 | 19 |
|
18 | | -def get_setting(view, key): |
| 20 | +def local_postcss_settings(): |
| 21 | + for folder in sublime.active_window().project_data()['folders']: |
| 22 | + for config_name in CONFIG_NAMES: |
| 23 | + config_file = join(folder['path'], config_name) |
| 24 | + if path.isfile(config_file): |
| 25 | + with open(config_file) as data_file: |
| 26 | + return json.load(data_file) |
| 27 | + |
| 28 | + return {} |
| 29 | + |
| 30 | +def sublime_project_settings(view): |
19 | 31 | settings = view.settings().get('PostCSSSorting') |
20 | 32 |
|
21 | 33 | if settings is None: |
22 | | - settings = sublime.load_settings('PostCSSSorting.sublime-settings') |
| 34 | + settings = {} |
| 35 | + |
| 36 | + return settings |
| 37 | + |
| 38 | +def get_setting(view, key): |
| 39 | + setting = local_postcss_settings().get(key) |
| 40 | + |
| 41 | + if setting is None: |
| 42 | + setting = sublime_project_settings(view).get(key) |
| 43 | + |
| 44 | + if setting is None: |
| 45 | + setting = sublime.load_settings('PostCSSSorting.sublime-settings').get(key) |
23 | 46 |
|
24 | | - return settings.get(key) |
| 47 | + return setting |
25 | 48 |
|
26 | 49 | def is_supported_syntax(view): |
27 | 50 | syntax = splitext(basename(view.settings().get('syntax')))[0] |
|
0 commit comments