add custom lexer
add ~ to gitignore