lite/data/core/syntax.lua

36 lines
607 B
Lua
Raw Normal View History

2019-12-28 12:16:32 +01:00
local syntax = {}
syntax.items = {}
local plain_text_syntax = { patterns = {}, symbols = {} }
local function matches_pattern(text, pattern)
if type(pattern) == "string" then
return text:find(pattern)
end
for _, p in ipairs(pattern) do
if matches_pattern(text, p) then return true end
end
return false
end
function syntax.add(t)
table.insert(syntax.items, t)
end
function syntax.get(filename)
for i = #syntax.items, 1, -1 do
local t = syntax.items[i]
if matches_pattern(filename, t.files) then
return t
end
end
return plain_text_syntax
end
return syntax