You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					40 lines
				
				913 B
			
		
		
			
		
	
	
					40 lines
				
				913 B
			| 
								 
											9 years ago
										 
									 | 
							
								#!/usr/bin/env python
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import re
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class KeymapConverter:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def __init__(self, filename):
							 | 
						||
| 
								 | 
							
								    self.filename = filename
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def read_keymaps(self):
							 | 
						||
| 
								 | 
							
								    with open(self.filename) as f:
							 | 
						||
| 
								 | 
							
								      lines = f.readlines()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    mode = 0
							 | 
						||
| 
								 | 
							
								    for line in lines:
							 | 
						||
| 
								 | 
							
								      line = line[:-1]
							 | 
						||
| 
								 | 
							
								      if mode == 0:
							 | 
						||
| 
								 | 
							
								        if "KC_KEYMAP" in line:
							 | 
						||
| 
								 | 
							
								          matches = re.match(r'.*\[(.*)\] = .*', line)
							 | 
						||
| 
								 | 
							
								          if matches:
							 | 
						||
| 
								 | 
							
								            layer_name = matches.group(1)
							 | 
						||
| 
								 | 
							
								            layer_name = layer_name[1:].capitalize()
							 | 
						||
| 
								 | 
							
								            print '###', layer_name
							 | 
						||
| 
								 | 
							
								            print '```'
							 | 
						||
| 
								 | 
							
								          mode = 1
							 | 
						||
| 
								 | 
							
								      elif mode == 1:
							 | 
						||
| 
								 | 
							
								        if "//" in line:
							 | 
						||
| 
								 | 
							
								          print line[4:]
							 | 
						||
| 
								 | 
							
								        elif ")" in line:
							 | 
						||
| 
								 | 
							
								          mode = 0
							 | 
						||
| 
								 | 
							
								          print '```'
							 | 
						||
| 
								 | 
							
								          print
							 | 
						||
| 
								 | 
							
								        elif line[-1] == ',':
							 | 
						||
| 
								 | 
							
								          print "|" + line[5:-1] + "|"
							 | 
						||
| 
								 | 
							
								        else:
							 | 
						||
| 
								 | 
							
								          print "|" + line[5:] + "|"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								converter = KeymapConverter('keymap.c')
							 | 
						||
| 
								 | 
							
								converter.read_keymaps()
							 |