Customized fork of github.com/rxi/lite

Added file-header pattern support to `syntax`

rxi ba6c1484 db471c05

+2 -1
data/core/doc/init.lua
··· 56 57 58 function Doc:reset_syntax() 59 - local syn = syntax.get(self.filename or "") 60 if self.syntax ~= syn then 61 self.syntax = syn 62 self.highlighter:reset()
··· 56 57 58 function Doc:reset_syntax() 59 + local header = self:get_text(1, 1, self:position_offset(1, 1, 128)) 60 + local syn = syntax.get(self.filename or "", header) 61 if self.syntax ~= syn then 62 self.syntax = syn 63 self.highlighter:reset()
+8 -3
data/core/syntax.lua
··· 11 end 12 13 14 - function syntax.get(filename) 15 for i = #syntax.items, 1, -1 do 16 local t = syntax.items[i] 17 - if common.match_pattern(filename, t.files) then 18 return t 19 end 20 end 21 - return plain_text_syntax 22 end 23 24
··· 11 end 12 13 14 + local function find(string, field) 15 for i = #syntax.items, 1, -1 do 16 local t = syntax.items[i] 17 + if common.match_pattern(string, t[field] or {}) then 18 return t 19 end 20 end 21 + end 22 + 23 + function syntax.get(filename, header) 24 + return find(filename, "files") 25 + or find(header, "headers") 26 + or plain_text_syntax 27 end 28 29
+1
data/plugins/language_lua.lua
··· 2 3 syntax.add { 4 files = "%.lua$", 5 comment = "--", 6 patterns = { 7 { pattern = { '"', '"', '\\' }, type = "string" },
··· 2 3 syntax.add { 4 files = "%.lua$", 5 + headers = "^#!.*[ /]lua", 6 comment = "--", 7 patterns = { 8 { pattern = { '"', '"', '\\' }, type = "string" },
+1
data/plugins/language_python.lua
··· 2 3 syntax.add { 4 files = "%.py$", 5 comment = "#", 6 patterns = { 7 { pattern = { "#", "\n" }, type = "comment" },
··· 2 3 syntax.add { 4 files = "%.py$", 5 + headers = "^#!.*[ /]python", 6 comment = "#", 7 patterns = { 8 { pattern = { "#", "\n" }, type = "comment" },
+1
data/plugins/language_xml.lua
··· 2 3 syntax.add { 4 files = { "%.xml$", "%.html?$" }, 5 patterns = { 6 { pattern = { "<!%-%-", "%-%->" }, type = "comment" }, 7 { pattern = { '%f[^>][^<]', '%f[<]' }, type = "normal" },
··· 2 3 syntax.add { 4 files = { "%.xml$", "%.html?$" }, 5 + headers = "<%?xml", 6 patterns = { 7 { pattern = { "<!%-%-", "%-%->" }, type = "comment" }, 8 { pattern = { '%f[^>][^<]', '%f[<]' }, type = "normal" },