Skip to content

Commit ecf2bb1

Browse files
committed
fixed broken settings menu and added config options
1 parent aeab9e2 commit ecf2bb1

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

Support/Zig.sublime-build renamed to Build Systems/Zig.sublime-build

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
22
"cmd": ["zig", "build"],
33
"selector": "source.zig",
4-
"file_regex": "^(.+.zig):(\\d+):(\\d+): error: (.+)$",
5-
"line_regex": "^.+.zig:(\\d+):(\\d+): error: (.+)$",
4+
"working_dir": "$folder",
5+
"file_regex": "^(\\S.*):(\\d*):(\\d*): (?:[^:]*): (.*)$",
6+
"line_regex": "^(?:\\S.*):(\\d*):(\\d*): (?:[^:]*): (.*)$",
67

78
"variants": [
89
{

Support/Main.sublime-menu renamed to Menus/Main.sublime-menu

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
"children":
1313
[
1414
{
15-
"command": "edit_settings", "args":
16-
{
17-
"base_file": "${packages}/User/Zig.sublime-settings",
18-
"default": "{\n\t$0\n}\n"
15+
"caption": "Settings",
16+
"command": "edit_settings",
17+
"args": {
18+
"base_file": "${packages}/Zig Language/Settings/Zig.sublime-settings",
19+
"default": "// Settings in here override those in \"Zig Language/Settings/Zig.sublime-settings\",\n\n{\n\t$0\n}\n"
1920
},
20-
"caption": "Settings"
2121
},
2222
]
2323
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
{
22
"zig.executable": "zig",
3+
"zig.build.on_save": false,
34
"zig.fmt.on_save": true,
5+
"zig.fmt.mode": "file",
46
}

Zig.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
import sublime
22
import sublime_plugin
33

4-
def fmt(fmt, dic):
5-
for k in dic:
6-
fmt = fmt.replace("{" + k + "}", str(dic[k]))
7-
return fmt
4+
settings = sublime.load_settings('Zig.sublime-settings')
5+
6+
7+
def get_setting(view, opt, default):
8+
return view.settings().get(opt, settings.get(opt, default))
9+
810

911
class Zig(sublime_plugin.EventListener):
1012
def on_post_save_async(self, view):
11-
global_settings = sublime.load_settings(fmt("{name}.sublime-settings", { "name": self.__class__.__name__ }))
12-
should_fmt = view.settings().get('fmt.on_save.enabled', global_settings.get('fmt.on_save.enabled'))
13-
if (should_fmt):
14-
view.window().run_command("build", {"variant": "Format File"})
13+
sel = view.sel()[0]
14+
region = view.word(sel)
15+
scope = view.scope_name(region.b)
16+
if scope.find('source.zig') != -1:
17+
should_fmt = get_setting(view, 'zig.fmt.on_save', True)
18+
should_build = get_setting(view, 'zig.build.on_save', False)
19+
20+
if (should_fmt and not should_build):
21+
mode = get_setting(view, 'zig.fmt.mode', 'File').title()
22+
view.window().run_command('build', {'variant': 'Format ' + mode})
23+
elif (should_build and not should_fmt):
24+
view.window().run_command('build')

0 commit comments

Comments
 (0)