@@ -40,6 +40,8 @@ class RustSyntaxCheckThread(rust_thread.RustThread, rust_proc.ProcListener):
40
40
name = 'Syntax Check'
41
41
# The Sublime view that triggered the check.
42
42
view = None
43
+ # The Sublime window that triggered the check.
44
+ window = None
43
45
# Absolute path to the view that triggered the check.
44
46
triggered_file_name = None
45
47
# Directory where cargo will be run.
@@ -54,9 +56,11 @@ class RustSyntaxCheckThread(rust_thread.RustThread, rust_proc.ProcListener):
54
56
# The path to the top-level Cargo target filename (like main.rs or
55
57
# lib.rs).
56
58
current_target_src = None
59
+ done = False
57
60
58
61
def __init__ (self , view ):
59
62
self .view = view
63
+ self .window = view .window ()
60
64
super (RustSyntaxCheckThread , self ).__init__ (view .window ())
61
65
62
66
def run (self ):
@@ -69,7 +73,7 @@ def run(self):
69
73
print ('A Cargo.toml manifest is required.' )
70
74
return
71
75
72
- self .view . set_status ( 'rust-check' , 'Rust syntax check running...' )
76
+ self .update_status ( )
73
77
self .this_view_found = False
74
78
try :
75
79
messages .clear_messages (self .window )
@@ -79,7 +83,19 @@ def run(self):
79
83
return
80
84
messages .messages_finished (self .window )
81
85
finally :
82
- self .view .erase_status ('rust-check' )
86
+ self .done = True
87
+ self .window .status_message ('' )
88
+
89
+ def update_status (self , count = 0 ):
90
+ if self .done :
91
+ return
92
+ num = count % 4
93
+ if num == 3 :
94
+ num = 1
95
+ num += 1
96
+ msg = 'Rust check running' + '.' * num
97
+ self .window .status_message (msg )
98
+ sublime .set_timeout (lambda : self .update_status (count + 1 ), 200 )
83
99
84
100
def get_rustc_messages (self ):
85
101
"""Top-level entry point for generating messages for the given
0 commit comments