Version 0.6.0
- honour capital/mixed cases for ignore case - consolidate consecutive matches - database upgrade capability - case sensitivity option reversed - removed obsolete WIM handling - skip empty mapping - Deletion of mapping
This commit is contained in:
@@ -2,50 +2,52 @@
|
||||
local _G = _G
|
||||
local Grichelde = _G.Grichelde
|
||||
|
||||
local pairs, ipairs, tInsert, tSort, unpack, join, toString
|
||||
= Grichelde.functions.pairs, Grichelde.functions.ipairs, Grichelde.functions.tInsert, Grichelde.functions.tSort, Grichelde.functions.unpack, Grichelde.functions.join, Grichelde.functions.toString
|
||||
local spairs, unpack, join, toString
|
||||
= Grichelde.functions.spairs, Grichelde.functions.unpack, Grichelde.functions.join, Grichelde.functions.toString
|
||||
|
||||
local defaultConfig = {
|
||||
global = {},
|
||||
profile = {
|
||||
enabled = true,
|
||||
channels = {
|
||||
["*"] = false,
|
||||
say = true,
|
||||
emote = false,
|
||||
yell = true,
|
||||
party = true,
|
||||
guild = true,
|
||||
officer = true,
|
||||
},
|
||||
replacements = {
|
||||
["**"] = {
|
||||
order = 9999,
|
||||
searchText = "",
|
||||
replaceText = "",
|
||||
caseSensitive = false,
|
||||
consolidate = true,
|
||||
function Grichelde:GetDefaultConfig()
|
||||
return {
|
||||
global = {},
|
||||
profile = {
|
||||
enabled = true,
|
||||
channels = {
|
||||
["*"] = false,
|
||||
say = true,
|
||||
emote = false,
|
||||
yell = true,
|
||||
party = true,
|
||||
guild = true,
|
||||
officer = true,
|
||||
},
|
||||
replacement_0 = {
|
||||
order = 5,
|
||||
searchText = "s",
|
||||
replaceText = "ch",
|
||||
caseSensitive = false,
|
||||
consolidate = true,
|
||||
},
|
||||
replacement_1 = {
|
||||
order = 9,
|
||||
searchText = "t",
|
||||
replaceText = "ck",
|
||||
caseSensitive = false,
|
||||
consolidate = true,
|
||||
replacements = {
|
||||
["**"] = {
|
||||
order = 9999,
|
||||
searchText = "",
|
||||
replaceText = "",
|
||||
ignoreCase = true,
|
||||
consolidate = true,
|
||||
},
|
||||
replacement_0 = {
|
||||
order = 5,
|
||||
searchText = "s",
|
||||
replaceText = "ch",
|
||||
ignoreCase = true,
|
||||
consolidate = true,
|
||||
},
|
||||
replacement_1 = {
|
||||
order = 9,
|
||||
searchText = "t",
|
||||
replaceText = "ck",
|
||||
ignoreCase = true,
|
||||
consolidate = true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
function Grichelde:LoadDatabase()
|
||||
local db = LibStub("AceDB-3.0"):New(self.name .."DB", defaultConfig, true)
|
||||
local db = LibStub("AceDB-3.0"):New(self.name .."DB", self:GetDefaultConfig(), true)
|
||||
|
||||
db.RegisterCallback(self, "OnNewProfile", "RefreshOptions")
|
||||
db.RegisterCallback(self, "OnProfileChanged", "RefreshOptions")
|
||||
@@ -76,7 +78,7 @@ function Grichelde:ReadFromDatabase(info)
|
||||
path = path + 1
|
||||
end
|
||||
local optionPath = join(".", unpack(info, 1, #info))
|
||||
self:DebugPrint("read option \"%s\": %s", optionPath, toString(option))
|
||||
self:TracePrint("read option \"%s\": %s", optionPath, toString(option))
|
||||
return option
|
||||
end
|
||||
|
||||
@@ -86,37 +88,19 @@ end
|
||||
-- @return table
|
||||
function Grichelde:ReorderReplacements(replacementsTable)
|
||||
local replacements = replacementsTable or {}
|
||||
local sortedByOrder = {}
|
||||
for replName, _ in pairs(replacements) do
|
||||
tInsert(sortedByOrder, replName)
|
||||
end
|
||||
|
||||
tSort(sortedByOrder) -- lexicographical order will do for non-nil values
|
||||
--[[tSort(sortedByOrder, function(a, b)
|
||||
self:DebugPrint("ReorderReplacements : sort ", a, b)
|
||||
if a then
|
||||
if b then
|
||||
return a < b
|
||||
else
|
||||
return a
|
||||
end
|
||||
else
|
||||
return b
|
||||
end
|
||||
end)]]
|
||||
|
||||
self:DebugPrint("ReorderReplacements : sortedByOrder")
|
||||
self:DebugPrint(sortedByOrder)
|
||||
self:TracePrint("ReorderReplacements : unsorted table")
|
||||
self:TracePrint(replacementsTable)
|
||||
|
||||
local sortedReplacements = {}
|
||||
|
||||
local index = 0
|
||||
for _, replName in ipairs(sortedByOrder) do
|
||||
sortedReplacements["replacement_"..index] = replacements[replName]
|
||||
sortedReplacements["replacement_"..index].order = index
|
||||
for _, replTable in spairs(replacements) do
|
||||
sortedReplacements["replacement_" .. index] = replTable
|
||||
sortedReplacements["replacement_" .. index].order = index
|
||||
index = index + 1
|
||||
end
|
||||
|
||||
--self:DebugPrint("ReorderReplacements : sorted table")
|
||||
--self:DebugPrint(sortedReplacements)
|
||||
self:TracePrint("ReorderReplacements : sorted table")
|
||||
self:TracePrint(sortedReplacements)
|
||||
return sortedReplacements
|
||||
end
|
||||
Reference in New Issue
Block a user