98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/textbringer/modes/ruby_mode.rb', line 98
def forward_definition(n = number_prefix_arg || 1)
tokens = Ripper.lex(@buffer.to_s)
@buffer.forward_line
n.times do |i|
tokens = tokens.drop_while { |(l, _), e, t|
l < @buffer.current_line ||
e != :on_kw || /\A(?:class|module|def)\z/ !~ t
}
(line,), = tokens.first
if line.nil?
@buffer.end_of_buffer
break
end
@buffer.goto_line(line)
tokens = tokens.drop(1)
end
while /\s/ =~ @buffer.char_after
@buffer.forward_char
end
end
|