@@ -59,8 +59,8 @@ def watch
5959 compile_all
6060 @stats [ :total_time ] += Time . now - start_time
6161
62- # Start watching
63- listener = Listen . to ( *watch_directories , only : /\. trb$/ ) do |modified , added , removed |
62+ # Start watching (.trb and .rb files)
63+ listener = Listen . to ( *watch_directories , only : /\. ( trb|rb) $/ ) do |modified , added , removed |
6464 handle_changes ( modified , added , removed )
6565 end
6666
@@ -91,7 +91,7 @@ def watch_directories
9191 end
9292
9393 def handle_changes ( modified , added , removed )
94- changed_files = ( modified + added ) . select { |f | f . end_with? ( ".trb" ) }
94+ changed_files = ( modified + added ) . select { |f | f . end_with? ( ".trb" ) || f . end_with? ( ".rb" ) }
9595 return if changed_files . empty? && removed . empty?
9696
9797 puts
@@ -120,25 +120,33 @@ def compile_all
120120 errors = [ ]
121121
122122 trb_files = find_trb_files
123- @file_count = trb_files . size
123+ rb_files = find_rb_files
124+ all_files = trb_files + rb_files
125+ @file_count = all_files . size
124126
125127 if @incremental && @cross_file_check
126128 # Use enhanced incremental compiler with cross-file checking
127129 result = @incremental_compiler . compile_all_with_checking ( trb_files )
128130 errors = result [ :errors ] . map { |e | format_error ( e [ :file ] , e [ :error ] || e [ :message ] ) }
129131 @error_count = errors . size
130132 @stats [ :total_compilations ] += trb_files . size
131- elsif @parallel && trb_files . size > 1
133+
134+ # Also compile .rb files
135+ rb_files . each do |file |
136+ result = compile_file ( file )
137+ errors . concat ( result [ :errors ] ) if result [ :errors ] . any?
138+ end
139+ elsif @parallel && all_files . size > 1
132140 # Parallel compilation
133- results = @parallel_processor . process_files ( trb_files ) do |file |
141+ results = @parallel_processor . process_files ( all_files ) do |file |
134142 compile_file ( file )
135143 end
136144 results . each do |result |
137145 errors . concat ( result [ :errors ] ) if result [ :errors ] &.any?
138146 end
139147 else
140148 # Sequential compilation
141- trb_files . each do |file |
149+ all_files . each do |file |
142150 result = compile_file ( file )
143151 errors . concat ( result [ :errors ] ) if result [ :errors ] . any?
144152 end
@@ -234,6 +242,18 @@ def find_trb_files
234242 files . uniq
235243 end
236244
245+ def find_rb_files
246+ files = [ ]
247+ @paths . each do |path |
248+ if File . directory? ( path )
249+ files . concat ( Dir . glob ( File . join ( path , "**" , "*.rb" ) ) )
250+ elsif File . file? ( path ) && path . end_with? ( ".rb" )
251+ files << path
252+ end
253+ end
254+ files . uniq
255+ end
256+
237257 def format_error ( file , message )
238258 # Parse error message for line/column info if available
239259 # Format: file:line:col - error TRB0001: message
0 commit comments