vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

pico8.lua

(971B)


      1 -- Copyright 2016-2025 Alejandro Baez (https://keybase.io/baez). See LICENSE.
      2 -- PICO-8 lexer.
      3 -- http://www.lexaloffle.com/pico-8.php
      4 
      5 local lexer = lexer
      6 local word_match = lexer.word_match
      7 local P, S = lpeg.P, lpeg.S
      8 
      9 local lex = lexer.new(...)
     10 
     11 -- Keywords
     12 lex:add_rule('keyword',
     13 	lex:tag(lexer.KEYWORD, lexer.word_match('__gff__ __map__ __sfx__ __music__')))
     14 
     15 -- Identifiers
     16 lex:add_rule('identifier', lex:tag(lexer.IDENTIFIER, lexer.word))
     17 
     18 -- Comments
     19 lex:add_rule('comment', lex:tag(lexer.COMMENT, lexer.to_eol('//', true)))
     20 
     21 -- Numbers
     22 lex:add_rule('number', lex:tag(lexer.NUMBER, lexer.integer))
     23 
     24 -- Operators
     25 lex:add_rule('operator', lex:tag(lexer.OPERATOR, '_'))
     26 
     27 -- Embed Lua into PICO-8.
     28 local lua = lexer.load('lua')
     29 local lua_start_rule = lex:tag(lexer.KEYWORD, word_match('__lua__'))
     30 local lua_end_rule = lex:tag(lexer.KEYWORD, word_match('__gfx__'))
     31 lex:embed(lua, lua_start_rule, lua_end_rule)
     32 
     33 lexer.property['scintillua.comment'] = '//'
     34 
     35 return lex