Class: SyntaxTreeViewer

Inherits:
Object
  • Object
show all
Defined in:
lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_parser) ⇒ SyntaxTreeViewer

Returns a new instance of SyntaxTreeViewer.



61
62
63
64
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 61

def initialize(_parser)
  @parser = _parser
  run_parser!
end

Class Method Details

.ask_for_grammarObject



48
49
50
51
52
53
54
55
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 48

def self.ask_for_grammar
  files = TextMate::UI.request_file("title" => "Select a Grammar File")
  if files.nil? || files.empty?
    nil
  else
    files[0]
  end
end

.new_with_unknown_grammarObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 33

def self.new_with_unknown_grammar
  parser = if ENV['TM_SCOPE'] =~ /source\.ruby/ && ENV['TM_SELECTED_TEXT']
    eval(ENV['TM_SELECTED_TEXT'])
  else
    parser_file = if ENV['TM_SCOPE'] =~ /source\.treetop/
      ENV['TM_FILEPATH']
    else
      ask_for_grammar
    end
    return unless parser_file
    Treetop.load(parser_file)
  end
  new(parser.new)
end

.nib_pathObject



29
30
31
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 29

def self.nib_path
  File.dirname(__FILE__) + "/SyntaxTreeViewer.nib"
end

Instance Method Details

#dialogObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 66

def dialog
  TextMate::UI.dialog(
    :nib => self.class.nib_path, 
    :parameters => parameters
  ) do |d|
    d.wait_for_input do |params|
      if params["returnArgument"]
        self.input = params["returnArgument"]
        run_parser!
        d.parameters = parameters
        true
      else
        false
      end
    end
  end
end

#inputObject



84
85
86
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 84

def input
  ENV['TM_TREETOP_SYNTAX_VIEWER_INPUT'] ||= ""
end

#input=(new_input) ⇒ Object



88
89
90
# File 'lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Support/syntax_tree_viewer.rb', line 88

def input=(new_input)
  ENV['TM_TREETOP_SYNTAX_VIEWER_INPUT'] = new_input
end