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
 |