class SublimeDSL::SublimeText::MouseMap::DSLReader
Public Class Methods
new(file = nil)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 121 def initialize(file = nil) @mousemaps = [] @current_map = nil @mouse = Mouse.sublime instance_eval File.read(file, encoding: 'utf-8'), file if file end
Public Instance Methods
_mousemaps()
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 128 def _mousemaps @mousemaps end
click(spec, options={})
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 162 def click(spec, options={}) @current_map or raise Error, "'click' is invalid outside of a 'mousemap' block" click = @mouse.ensure_click(spec) count = options.delete(:count) press_cmd = options.delete(:down) press_cmd && press_cmd.error and raise Error, "click '#{spec}':#{press_cmd.error}" cmd = options.delete(:up) cmd && cmd.error and raise Error, "click '#{spec}':#{cmd.error}" press_cmd || cmd or raise Error, "click '#{spec}': no 'up' nor 'down' command" @current_map.bindings << MouseBinding.new(click, count, press_cmd, cmd) end
click1(spec, options={})
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 150 def click1(spec, options={}) click spec, options.merge({ count: 1 }) end
click2(spec, options={})
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 154 def click2(spec, options={}) click spec, options.merge({ count: 2 }) end
click3(spec, options={})
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 158 def click3(spec, options={}) click spec, options.merge({ count: 3 }) end
method_missing(sym, *args, &block)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 175 def method_missing(sym, *args, &block) @current_map or raise Error, "'#{sym}' is invalid outside of a 'mousemap' block" Command.from_method_missing(sym, args) end
mousemap(name, &block)
click to toggle source
# File lib/sublime_dsl/sublime_text/mousemap.rb, line 132 def mousemap(name, &block) @current_map and raise Error, "'mousemap' blocks cannot be nested" @current_map = MouseMap.new(name) instance_eval(&block) @mousemaps << @current_map @current_map = nil end