41 lines
707 B
Ruby
Executable file
41 lines
707 B
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
class KeymapConverter
|
|
|
|
def initialize(filename)
|
|
@filename = filename
|
|
@mode = :search
|
|
end
|
|
|
|
def read_keymaps
|
|
lines = IO.readlines(@filename)
|
|
lines.each { |line| parse_line line[0..-2] }
|
|
end
|
|
|
|
def parse_line(line)
|
|
case @mode
|
|
when :search
|
|
if line =~ /KC_KEYMAP/
|
|
puts "### #{line}"
|
|
puts "```"
|
|
@mode = :parse
|
|
end
|
|
when :parse
|
|
if line =~ /\)/
|
|
@mode = :search
|
|
puts "```\n\n"
|
|
else
|
|
line = line[4..-1]
|
|
line.sub!(/(,)^-/m, "|")
|
|
line.sub!(/( {4})/, " |")
|
|
|
|
puts line
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
converter = KeymapConverter.new('keymap.c')
|
|
converter.read_keymaps
|