logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

git-rebase.lua (798B)


  1. -- Copyright 2017-2024 Marc André Tanner. See LICENSE.
  2. -- git-rebase(1) LPeg lexer.
  3. local lexer = lexer
  4. local P, R = lpeg.P, lpeg.R
  5. local lex = lexer.new(..., {lex_by_line = true})
  6. -- Comments.
  7. lex:add_rule('comment', lex:tag(lexer.COMMENT, lexer.to_eol(lexer.starts_line('#'))))
  8. -- Keywords.
  9. lex:add_rule('keyword', lex:tag(lexer.KEYWORD, lexer.starts_line(lex:word_match(lexer.KEYWORD))))
  10. -- Commit SHA1.
  11. local function patn(pat, min, max)
  12. return -pat^(max + 1) * pat^min
  13. end
  14. lex:add_rule('commit', lex:tag(lexer.NUMBER, patn(R('09', 'af'), 7, 40)))
  15. lex:add_rule('message', lex:tag('message', lexer.to_eol()))
  16. -- Word lists.
  17. lex:set_word_list(lexer.KEYWORD, [[
  18. p pick
  19. r reword
  20. e edit
  21. s squash
  22. f fixup
  23. x exec
  24. d drop
  25. b break
  26. l label
  27. t reset
  28. m merge
  29. ]])
  30. return lex