diff options
author | Hans Hagen <pragma@wxs.nl> | 2012-06-25 14:10:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2012-06-25 14:10:00 +0200 |
commit | c087b683dc65ab8ac92819a1de681023331fe1ab (patch) | |
tree | 5a4f65c32d4e90454d3c99672e989ce0fa2e2aa5 /context/data/scite/lexers/scite-context-lexer.lua | |
parent | 614f10aaaf6ed9b12ab2415915341f505fcb0667 (diff) | |
download | context-c087b683dc65ab8ac92819a1de681023331fe1ab.tar.gz |
beta 2012.06.25 14:10
Diffstat (limited to 'context/data/scite/lexers/scite-context-lexer.lua')
-rw-r--r-- | context/data/scite/lexers/scite-context-lexer.lua | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/context/data/scite/lexers/scite-context-lexer.lua b/context/data/scite/lexers/scite-context-lexer.lua index 2db37e26b..1c9f2cec0 100644 --- a/context/data/scite/lexers/scite-context-lexer.lua +++ b/context/data/scite/lexers/scite-context-lexer.lua @@ -210,8 +210,11 @@ function context.exact_match(words,word_chars,case_insensitive) end -- spell checking (we can only load lua files) - +-- -- return { +-- min = 3, +-- max = 40, +-- n = 12345, -- words = { -- ["someword"] = "someword", -- ["anotherword"] = "Anotherword", @@ -220,42 +223,30 @@ end local lists = { } -local splitter = (Cf(Ct("") * (Cg(C((1-S(" \t\n\r"))^1 * Cc(true))) + P(1))^1,rawset) )^0 -local splitter = (Cf(Ct("") * (Cg(C(R("az","AZ","\127\255")^1) * Cc(true)) + P(1))^1,rawset) )^0 - -local function splitwords(words) - return lpegmatch(splitter,words) -end - function context.setwordlist(tag,limit) -- returns hash (lowercase keys and original values) if not tag or tag == "" then - return false - elseif lists[tag] ~= nil then - return lists[tag] - else - local list = context.loaddefinitions("spell-" .. tag) + return false, 3 + end + local list = lists[tag] + if not list then + list = context.loaddefinitions("spell-" .. tag) if not list or type(list) ~= "table" then - lists[tag] = false - return false - elseif type(list.words) == "string" then - list = splitwords(list.words) or false - lists[tag] = list - return list + list = { words = false, min = 3 } else - list = list.words or false - lists[tag] = list - return list + list.words = list.words or false + list.min = list.min or 3 end + lists[tag] = list end + return list.words, list.min end patterns.wordtoken = R("az","AZ","\127\255") patterns.wordpattern = patterns.wordtoken^3 -- todo: if limit and #s < limit then -function context.checkedword(validwords,s,i) -- ,limit - if not validwords then - return true, { "text", i } --- return true, { "default", i } +function context.checkedword(validwords,validminimum,s,i) -- ,limit + if not validwords then -- or #s < validminimum then + return true, { "text", i } -- { "default", i } else -- keys are lower local word = validwords[s] @@ -278,8 +269,8 @@ function context.checkedword(validwords,s,i) -- ,limit end end -function context.styleofword(validwords,s) -- ,limit - if not validwords then +function context.styleofword(validwords,validminimum,s) -- ,limit + if not validwords or #s < validminimum then return "text" else -- keys are lower |