Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
b84d17f
Fix loot Ctrl+Click dressing room and tooltip bleed
wowaddonmaker Apr 7, 2026
420681d
Add appearance set search with click-to-dress and filter sync
wowaddonmaker Apr 9, 2026
4e58969
Fix appearance set class filter sync from default wardrobe UI
wowaddonmaker Apr 9, 2026
c283eb0
Glow native map pins and default UI search to fast mode
wowaddonmaker Apr 9, 2026
f050c8a
Fix Reset All Settings missing UI search and loot fields
wowaddonmaker Apr 9, 2026
e8e457f
Stop filter button click from stealing keyboard focus
wowaddonmaker Apr 9, 2026
f8fe1b3
Refresh StaticLocations from harvest, drop duplicates
wowaddonmaker Apr 9, 2026
e3f6f11
Add lorewalker POI category and fix catalyst icon
wowaddonmaker Apr 12, 2026
cf8f022
Fix appearance set navigation in Sets tab
wowaddonmaker Apr 12, 2026
fe134f6
Add interactive demo system with mode toggle support
wowaddonmaker Apr 12, 2026
37a8fe1
Fix map search hover preview dismissing while mouse is on row
wowaddonmaker Apr 13, 2026
edce6ad
Make fullscreen map search opt-in by default
wowaddonmaker Apr 14, 2026
7978b3f
Rework tutorial boxes with chamfered glow border textures
wowaddonmaker Apr 15, 2026
a290336
Add chevron tutorial pointer system and extract TutorialBox module
wowaddonmaker Apr 16, 2026
e082461
Expand map search demo with chevrons and scrolling narration
wowaddonmaker Apr 19, 2026
4419f19
Make Fast Mode default; move Guide to right-click menu
wowaddonmaker Apr 20, 2026
fd2b7c4
Add MapTab scaffold: 3rd side tab with search panel shell
wowaddonmaker Apr 20, 2026
948668f
Wire MapTab search engine: result rows, pin menu, hover preview
wowaddonmaker Apr 20, 2026
85e3ba1
Retire floating map search bars; MapTab is the new entry point
wowaddonmaker Apr 20, 2026
83fae9b
MapTab: fullscreen-hide tab, keybind focus entry point
wowaddonmaker Apr 20, 2026
2b2b0f0
Fix MapTab visuals + tab-switching glitches
wowaddonmaker Apr 20, 2026
18a87be
MapTab visual polish: tab gap, gold icon, header search, clean scroll
wowaddonmaker Apr 20, 2026
a9d1256
Fix MapTab overlay bleed-through from other tabs
wowaddonmaker Apr 20, 2026
bfc113f
Fix MapTab: anchor to QuestsFrame, alpha-hide Blizzard panels
wowaddonmaker Apr 20, 2026
18294d5
MapTab: inline autocomplete, group headers, one-click row activation
wowaddonmaker Apr 29, 2026
df303a2
Search infra: CouldMatch prefilter, shared key-repeat, deferred UI
wowaddonmaker Apr 29, 2026
8a4f15e
MapTab integration: keybinds, options, MapSearch hooks, db migration
wowaddonmaker Apr 29, 2026
11ecdef
MapTab nav: fix arrow keys with active autocomplete suggestion
wowaddonmaker May 1, 2026
2404f44
MapTab/MapSearch: zone hover, version groups, breadcrumb, polish
wowaddonmaker May 1, 2026
b38ccdd
First-time setup: keybind section header + button placement
wowaddonmaker May 1, 2026
7eda4a2
MapTab nav: Enter-activate clears focus + nav state like a click
wowaddonmaker May 1, 2026
2e5ff0a
MapTab: hold-to-step, dup zones, UI search bar integration
wowaddonmaker May 1, 2026
fc3bb86
Search bar textures: rounded corners replace chamfers
wowaddonmaker May 1, 2026
883c52b
Search bar: true pill (semicircle endcaps) instead of rounded rect
wowaddonmaker May 1, 2026
f82c4e0
Merge branch 'maptab' into viz-overhaul
wowaddonmaker May 2, 2026
ae991eb
Add macros/abilities/bags, aliases, settings search, autocomplete polish
wowaddonmaker May 3, 2026
2979681
Wizard, settings search, fonts, scaling polish
wowaddonmaker May 5, 2026
2cca137
Memory: bound caches, pool tree nodes, kill per-entry ssub allocs
wowaddonmaker May 5, 2026
755098e
Refactor: extract DatabaseDynamic + UIPins; drop minimap nav + Demo
wowaddonmaker May 6, 2026
24528c1
Refactor: extract MapUtils + consolidate helpers; trim modules
wowaddonmaker May 6, 2026
6294652
Fix ability navigation when same spell appears in multiple sections
wowaddonmaker May 6, 2026
fe0292c
Lazy-load dynamic providers; macro/settings clicks; search fixes
wowaddonmaker May 7, 2026
a04d50d
ESC: route all paths through HandleEscape; close every popup
wowaddonmaker May 7, 2026
a7e3cf3
Settings: invalidate render-skip cache on RefreshResults
wowaddonmaker May 7, 2026
0233aed
Settings: inline dropdown widget on result rows
wowaddonmaker May 7, 2026
01d372d
Search: pre-warm prefix index after dynamic load
wowaddonmaker May 7, 2026
b30b11c
Minimap button: don't let autoHide eat the toggle click
wowaddonmaker May 7, 2026
0d6405d
Highlight: clear when target hides or ScrollBox repurposes it
wowaddonmaker May 7, 2026
c1bed54
Talents: searchable + click to highlight node in talents tree
wowaddonmaker May 7, 2026
97e53d7
Talents: proper icon, convention layout, tooltip, instant nav
wowaddonmaker May 7, 2026
6db9182
Map: surface dungeons/raids/delves in UI search
wowaddonmaker May 7, 2026
ae2a74a
Result rows: standardize right-side icon size; unusable toy nav
wowaddonmaker May 7, 2026
37455bb
Talents: SearchIcon spyglass; broader nodeID lookup
wowaddonmaker May 7, 2026
ce67971
Lint: allowlist achievement and token globals
wowaddonmaker May 8, 2026
00533e7
MapTab: restore Blizzard displayMode on hide
wowaddonmaker May 8, 2026
0dfa1df
MapSearch: include global instances in local mode
wowaddonmaker May 8, 2026
5f7af93
Talents: match by name; dismiss highlight on hover
wowaddonmaker May 8, 2026
2ef7582
Settings: skip phantom variables when registry resolved
wowaddonmaker May 8, 2026
d1bfa7c
Database: warband currency fill, name-weighted scoring, toggles
wowaddonmaker May 8, 2026
adf970b
Core: pre-warm search; tooltip and currency-filter defaults
wowaddonmaker May 8, 2026
077a988
Utils: Raycast scrollbar, pooled cursor menus, autocomplete
wowaddonmaker May 8, 2026
ca31520
UI: tooltip placement, right-click menus, achievement search
wowaddonmaker May 8, 2026
06728d7
Filters: drive Blizzard's TokenFrame, ReputationFrame, SpellBook
wowaddonmaker May 8, 2026
3fda43b
Filters: drive Blizzard via dropdown click + checkbox walk
wowaddonmaker May 8, 2026
ffe8636
Highlight: gate hover-dismiss; cancel guide instead of hiding
wowaddonmaker May 9, 2026
eb26f56
Search: pre-load bosses 5s post-login
wowaddonmaker May 9, 2026
cd249dc
Filters: drive Blizzard via real APIs; bidirectional sync; UX polish
wowaddonmaker May 9, 2026
7cbfdc0
Settings: live scroll/highlight, slider formatter, per-row Apply
wowaddonmaker May 9, 2026
1c344c2
UI: settings row click routing, inline Apply ext, slider polish
wowaddonmaker May 9, 2026
a495702
Settings: timed-confirmation popup for Revertable settings
wowaddonmaker May 9, 2026
26674e9
Settings: combined cb+slider rows, broader walk, unapplied popup
wowaddonmaker May 9, 2026
c2ef71a
Settings: surface graphics-quality orphans with inline dropdowns
wowaddonmaker May 9, 2026
66a7dde
Guide: breadcrumb live achievements; intermediate hover protection
wowaddonmaker May 9, 2026
f53bc64
Pins: float matches to top; ESC restores pins; map fields persist
wowaddonmaker May 9, 2026
e92718d
Settings: Game Menu via /click instead of /run ShowUIPanel
wowaddonmaker May 9, 2026
f0181ab
WIP: taint debugging (untested)
wowaddonmaker May 9, 2026
ba0060d
Settings: drop StaticPopupDialogs global write to avoid taint
wowaddonmaker May 9, 2026
e2aff0d
Stats: API-driven categories, separate filter, inline values
wowaddonmaker May 9, 2026
fc2dc2a
Stats: stop duplicate stat rows in achievement search
wowaddonmaker May 9, 2026
1ac75d2
Settings: unapplied-changes popup wiring + Apply path fixes
wowaddonmaker May 9, 2026
08e9a89
Stats: remove hardcoded Duel Statistics entry
wowaddonmaker May 9, 2026
245d67e
Talents: use SpecTalents micro-button atlas for row + filter icon
wowaddonmaker May 9, 2026
2d96c43
Fix achievement and statistics navigation
wowaddonmaker May 10, 2026
ffed9f0
Improve UI search result actions
wowaddonmaker May 10, 2026
7e355ff
Fix bag item actions and highlights
wowaddonmaker May 10, 2026
120a20c
Clear spellbook ability glow on hover
wowaddonmaker May 10, 2026
49d7b29
Revamp EasyFind options and calculator copy
wowaddonmaker May 10, 2026
12da2d8
Fix calculator keyboard copy focus
wowaddonmaker May 11, 2026
3912b2e
Polish search UI and map tab restore
wowaddonmaker May 12, 2026
ff4e82c
Refine EasyFind 2.0 search and map UX
wowaddonmaker May 12, 2026
1ff1bdc
Fix map alias handoff to map tab
wowaddonmaker May 12, 2026
0f2287b
Reset EasyFind settings for 2.0 migration
wowaddonmaker May 12, 2026
750444c
Simplify 2.0 settings reset migration
wowaddonmaker May 12, 2026
15385b5
Clean up luacheck warnings across the branch
wowaddonmaker May 12, 2026
6578582
Replace em dashes with project punctuation across the branch
wowaddonmaker May 12, 2026
1021a6a
Strip narration and banner comments across the branch
wowaddonmaker May 12, 2026
2b295d2
Drop dead Utils fallbacks and forwarding wrappers
wowaddonmaker May 12, 2026
ba724e3
Route protected calls and timers through Utils safety helpers
wowaddonmaker May 12, 2026
3959548
Centralize rounded-rect fill and border painters in Utils
wowaddonmaker May 12, 2026
f1dcbfd
Tighten new rounded-rect helpers
wowaddonmaker May 12, 2026
5cbcabe
Wizard: tutorial illustration carousels and image assets
wowaddonmaker May 13, 2026
5327c4d
Polish: calc copy focus guard, drop MapTab hover crumb tip
wowaddonmaker May 13, 2026
55916cc
Release v2.0.0
wowaddonmaker May 13, 2026
e00ffff
Add v2.0.0 changelog stub
wowaddonmaker May 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# Release artifacts
*.zip

# Archived / retired assets (kept on disk for reference, not shipped)
archive/

# Editor files
*.swp
*.swo
*~

# Dev workspace artifacts
target/
.claude/

# OS files
Thumbs.db
.DS_Store
82 changes: 65 additions & 17 deletions .luacheckrc
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,40 @@ globals = {
"SlashCmdList",
"StaticPopupDialogs",
"SLASH_EASYFIND1",
"BINDING_NAME_EASYFIND_TOGGLE",
"BINDING_NAME_EASYFIND_FOCUS",
"BINDING_NAME_EASYFIND_TOGGLE_FOCUS",
"BINDING_NAME_EASYFIND_CLEAR",
"BINDING_NAME_EASYFIND_MAP_FOCUS",
"EncounterJournal",
"TransmogFrame",
"SettingsPanel",
"TokenFrame",
}

-- WoW API globals (read-only)
read_globals = {
-- WoW Lua extensions
"debugstack", "strsplit", "strtrim", "wipe", "hooksecurefunc",
"bit",
"debugstack", "debugprofilestart", "debugprofilestop", "strsplit", "strtrim", "wipe", "hooksecurefunc",
"format", "time", "date",

-- Menus
"MenuUtil",

-- Core API
"CreateFrame", "CreateFont", "CreateVector2D",
"GetTime", "GetLocale", "GetCVar", "GetCursorPosition", "GetRealmName",
"CreateFrame", "CreateFont", "CreateVector2D", "CreateColor",
"GetTime", "GetLocale", "GetCVar", "SetCVar", "GetCursorPosition", "GetRealmName",
"GetAddOnMetadata", "GetAtlasInfo", "GetMinimapShape",
"GetBindingKey", "GetCurrentBindingSet", "SaveBindings", "SetBinding",
"GetBindingKey", "GetBindingAction", "GetCurrentBindingSet", "SaveBindings", "SetBinding",
"GetNumBindings", "GetBinding",
"GetCategoryInfo", "GetPlayerFacing",
"SetPortraitTexture", "ShowUIPanel", "ToggleWorldMap", "ToggleDropDownMenu",
"SetPortraitTexture", "ShowUIPanel", "HideUIPanel", "ToggleWorldMap", "ToggleDropDownMenu",
"InterfaceOptions_AddCategory", "InCombatLockdown",
"IsShiftKeyDown", "IsMouseButtonDown", "IsAltKeyDown", "IsControlKeyDown",
"IsInGroup", "IsInInstance", "IsIndoors", "UnitIsGroupLeader",
"UnitFactionGroup", "UnitPosition",
"StaticPopup_Show", "GameTooltip_Hide", "PlaySound", "ReloadUI",
"GetSpellInfo", "GetItemInfo", "UseToyByItemID",
"GetMacroSpell", "GetMacroItem",
"PanelTemplates_GetSelectedTab",

-- Frames and UI objects
Expand All @@ -50,40 +57,67 @@ read_globals = {
"CharacterStatsPane", "PaperDollTitlesPane", "PaperDollEquipmentManagerPane",
"CurrencyFrame",
"SpellBookFrame", "PlayerSpellsFrame", "CollectionsJournal",
"PVEFrame", "ReputationFrame", "TokenFrame",
"PVEFrame", "ReputationFrame", "TokenFramePopup",
"GroupFinderFrame", "LFGListFrame", "HelpFrame", "ClassTalentFrame",
"GameMenuFrame", "MacroFrame",
"GuildMicroButton", "StoreMicroButton", "PlayerFrame", "StoreFrame",
"LFDParentFrame", "RaidFinderFrame",
"LFGListPVEStub", "LFGListPVPStub",
"HonorFrame", "ConquestFrame", "TrainingGroundsFrame",
"PVPQueueFrame",
"AchievementFrameCategories_ExpandToCategory",
"AchievementFrameCategories_UpdateDataProvider",
"AchievementFrame_LoadUI", "AchievementFrame_SelectAchievement",
"OpenAchievementFrameToAchievement",
"AchievementFrame", "GetCategoryList", "GetCategoryNumAchievements",
"GetStatisticsCategoryList", "GetStatistic",
"GetAchievementInfo",
"SetAchievementSearchString", "GetNumFilteredAchievements",
"GetFilteredAchievementID",
"AddTrackedAchievement", "RemoveTrackedAchievement",
"IsTrackedAchievement", "AchievementFrame_ToggleTracking",
"C_ContentTracking",
"Transmog_LoadUI",
"EncounterJournal_LoadUI", "PanelTemplates_SetTab",
"EncounterJournal_LoadUI", "EncounterJournal_DisplayInstance",
"EncounterJournal_DisplayEncounter", "PanelTemplates_SetTab",
"Menu", "ScrollBoxConstants",

-- C_* namespaces
"C_AddOns", "C_AchievementInfo", "C_AreaPoiInfo", "C_CurrencyInfo", "C_Item",
"C_EncounterJournal", "C_GossipInfo", "C_MajorFactions", "C_Map",
"C_AddOns", "C_AchievementInfo", "C_AreaPoiInfo", "C_ClassTalents",
"C_CurrencyInfo", "C_EquipmentSet", "C_Item",
"C_EncounterJournal", "C_GossipInfo", "C_Heirloom", "C_MajorFactions", "C_Map",
"C_Minimap", "C_MountJournal", "C_Navigation", "C_PetJournal",
"C_Reputation", "C_SuperTrack", "C_TaxiMap", "C_Texture", "C_Timer",
"C_ToyBox", "C_TransmogOutfitInfo", "C_VignetteInfo",
"C_ToyBox", "C_Traits", "C_TransmogCollection", "C_TransmogOutfitInfo",
"C_TransmogSets", "C_VignetteInfo",

-- UI utility functions
"UIFrameFadeIn", "UIFrameFadeOut", "UIFrameFadeRemoveFrame",
"AchievementFrameCategories_SelectElementData",
"UnitPopup_ShowMenu", "BattlePetToolTip_ShowLink",
"UnitPopup_ShowMenu", "BattlePetToolTip_ShowLink", "BattlePetTooltip",
"GetUnitSpeed", "GetItemCooldown", "EJ_GetInstanceInfo", "UnitName",
"GetItemInfoInstant", "GetItemStats", "GetSpecialization", "GetSpecializationInfo",
"UnitClass", "GetLootSpecialization", "DressUpItemLink",
"GetNumTitles", "GetTitleName", "IsTitleKnown", "GetCurrentTitle", "SetCurrentTitle",
"UnitClass", "GetLootSpecialization", "DressUpItemLink", "DressUpTransmogSet",
"GetNumClasses", "GetClassInfo", "GetNumSpecializationsForClassID",
"GetSpecializationInfoForClassID", "RAID_CLASS_COLORS",
"EJ_GetCurrentTier", "EJ_SelectTier", "EJ_GetInstanceByIndex",
"EJ_SelectInstance", "EJ_GetEncounterInfoByIndex", "EJ_SelectEncounter",
"EJ_SetDifficulty", "EJ_SetLootFilter", "EJ_SetSlotFilter",
"EJ_GetNumLoot", "EJ_GetLootInfoByIndex",
"HasAction", "PlaceAction", "PickupAction", "ClearCursor", "GetActionCooldown",
"PickupSpell", "PickupItem", "PickupMacro", "C_Spell",
"GetCursorInfo", "GetMouseFoci", "GetMouseFocus",
"SetCursor", "ResetCursor",
"ACCEPT", "CANCEL", "StaticPopup_Show",
"C_SpellBook", "C_Container", "GetNumSpellTabs", "GetSpellTabInfo",
"GetSpellBookItemInfo", "GetSpellBookItemName", "GetSpellBookItemTexture",
"GetFlyoutInfo", "GetFlyoutSlotInfo",
"GetContainerNumSlots", "GetContainerItemInfo", "PickupContainerItem",
"NUM_BAG_SLOTS", "GetNumMacros", "GetMacroInfo", "MAX_ACCOUNT_MACROS",
"ShowMacroFrame", "MacroFrame", "MacroFrame_SelectMacro", "MacroFrame_Update",
"MacroFrame_OnTabChanged", "PanelTemplates_SetTab", "C_AddOns", "LoadAddOn",
"CreateMacro",
"SetOverrideBindingClick", "ClearOverrideBindings",

-- Data types
Expand All @@ -93,7 +127,7 @@ read_globals = {
"EasyFindDevDB",

-- Blizzard settings frames
"SettingsPanel", "InterfaceOptionsFrame",
"InterfaceOptionsFrame",

-- Constants, Enums, Mixins
"Enum", "Settings", "BackdropTemplateMixin",
Expand All @@ -103,8 +137,22 @@ read_globals = {

-- Font objects
"Game15Font_Shadow", "GameFontNormal", "GameFontNormalSmall",
"GameFontHighlight", "GameFontHighlightSmall", "GameFontDisable",
"GameFontDisableSmall", "GameFontNormalLarge",
"GameFontHighlight", "GameFontHighlightSmall", "GameFontHighlightLarge",
"GameFontDisable", "GameFontDisableSmall", "GameFontNormalLarge",

-- Misc WoW API
"securecallfunction", "GetCVarBool", "GetCurrentKeyBoardFocus",
"IsKeyDown", "OpenBackpack", "OpenBag", "GetItemSpell",
"StaticPopup_Visible", "IsGraphicsSettingValueSupported",
"QuestScrollFrame", "LibStub",

-- Localization / faction strings
"FACTION_ALLIANCE", "FACTION_HORDE",
"SETTINGS_CONFIRM_DISCARD", "SETTINGS_UNAPPLIED_EXIT",
"SETTINGS_UNAPPLIED_APPLY_AND_EXIT", "SETTINGS_UNAPPLIED_CANCEL",

-- Currency filter enums
"CURRENCY_FILTER_TYPE_TRANSFERABLE", "CURRENCY_FILTER_TYPE_CHARACTER",
}

-- WoW callbacks have fixed signatures; unused args are normal
Expand Down
148 changes: 148 additions & 0 deletions Aliases.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
local _, ns = ...
local Aliases = {}
ns.Aliases = Aliases

local Utils = ns.Utils
local sfind, slower, strtrim = Utils.sfind, Utils.slower, strtrim
local tinsert = Utils.tinsert

local function IsMapAliasTarget(data)
return data and (data.mapSearchResult or data.isZone or data.isDungeonEntrance
or data.zoneMapID or data.entranceMapID
or (data.category and (data.x or data.entranceX or data.mapID or data.coordMapID)))
end

local function MapAliasKey(data)
local name = slower(data.name or "")
if name == "" then return nil end
local mapID = data.mapID or data.coordMapID or data.zoneMapID
or data.entranceMapID or data.parentMapID
or (WorldMapFrame and WorldMapFrame.GetMapID and WorldMapFrame:GetMapID())
or 0
local x = data.x or data.entranceX or 0
local y = data.y or data.entranceY or 0
return "map:" .. (data.category or "location") .. ":" .. tostring(mapID)
.. ":" .. name .. ":" .. tostring(math.floor(x * 10000 + 0.5))
.. ":" .. tostring(math.floor(y * 10000 + 0.5))
end

function Aliases:GetEntryKey(data)
if not data then return nil end
if data.mountID then return "mount:" .. data.mountID end
if data.toyItemID then return "toy:" .. data.toyItemID end
if data.petID then return "pet:" .. data.petID end
if data.outfitID then return "outfit:" .. data.outfitID end
if data.transmogSetID then return "appearanceSet:" .. data.transmogSetID end
if data.macroIndex then return "macro:" .. data.macroIndex end
if data.factionID then return "reputation:" .. data.factionID end
if data.itemID and data.category == "Loot" then return "loot:" .. data.itemID end
if data.category == "Currency" and data.steps then
for i = 1, #data.steps do
local cid = data.steps[i].currencyID
if cid then return "currency:" .. cid end
end
end
if IsMapAliasTarget(data) then
return MapAliasKey(data)
end
if data.path and #data.path > 0 then
return "ui:" .. table.concat(data.path, ">") .. ">" .. (data.name or "")
end
if data.name then return "ui:" .. data.name end
return nil
end

function Aliases:FindEntryByKey(key)
if not key or not ns.Database or not ns.Database.uiSearchData then return nil end
local data = ns.Database.uiSearchData
for i = 1, #data do
local entry = data[i]
if Aliases:GetEntryKey(entry) == key then return entry end
end
if EasyFind and EasyFind.db and EasyFind.db.aliases then
for _, info in pairs(EasyFind.db.aliases) do
if info.key == key and info.snapshot then
return info.snapshot
end
end
end
return nil
end

function Aliases:Add(aliasText, data)
if not EasyFind or not EasyFind.db then return false end
aliasText = strtrim(aliasText or "")
if aliasText == "" then return false end
local key = Aliases:GetEntryKey(data)
if not key then return false end
if type(EasyFind.db.aliases) ~= "table" then
EasyFind.db.aliases = {}
end
local snapshot
if IsMapAliasTarget(data) then
local currentMapID = WorldMapFrame and WorldMapFrame.GetMapID and WorldMapFrame:GetMapID()
snapshot = {
name = data.name,
nameLower = data.nameLower,
category = data.category,
icon = data.icon,
mapSearchResult = true,
mapID = data.mapID or data.coordMapID or data.entranceMapID or data.zoneMapID or currentMapID,
zoneName = data.zoneName,
pathPrefix = data.pathPrefix,
x = data.x, y = data.y,
keywords = data.keywords,
isZone = data.isZone,
zoneMapID = data.zoneMapID,
zoneParentMapID = data.zoneParentMapID,
parentMapID = data.parentMapID,
coordMapID = data.coordMapID,
entranceMapID = data.entranceMapID,
entranceX = data.entranceX,
entranceY = data.entranceY,
entranceIcon = data.entranceIcon,
entranceCategory = data.entranceCategory,
isDungeonEntrance = data.isDungeonEntrance,
}
end
EasyFind.db.aliases[slower(aliasText)] = {
text = aliasText,
key = key,
name = data.name or aliasText,
snapshot = snapshot,
}
return true
end

function Aliases:Remove(aliasText)
if not EasyFind or not EasyFind.db or not EasyFind.db.aliases then return end
EasyFind.db.aliases[slower(strtrim(aliasText or ""))] = nil
end

function Aliases:ClearAll()
if not EasyFind or not EasyFind.db then return end
EasyFind.db.aliases = {}
end

function Aliases:ForEach(cb)
if not EasyFind or not EasyFind.db or not EasyFind.db.aliases then return end
for _, info in pairs(EasyFind.db.aliases) do
cb(info.text, info)
end
end

function Aliases:GetMatches(queryLower)
if not queryLower or queryLower == "" then return nil end
if not EasyFind or not EasyFind.db or not EasyFind.db.aliases then return nil end
local out
for storedKey, info in pairs(EasyFind.db.aliases) do
if sfind(storedKey, queryLower, 1, true) then
local entry = Aliases:FindEntryByKey(info.key)
if entry then
out = out or {}
tinsert(out, { data = entry, alias = info })
end
end
end
return out
end
9 changes: 3 additions & 6 deletions Bindings.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
<Bindings>
<Binding name="EASYFIND_TOGGLE" category="EasyFind">
EasyFind:ToggleSearchUI()
</Binding>
<Binding name="EASYFIND_FOCUS" category="EasyFind">
EasyFind:FocusSearchUI()
</Binding>
<Binding name="EASYFIND_TOGGLE_FOCUS" category="EasyFind">
EasyFind:ToggleFocusSearchUI()
</Binding>
<Binding name="EASYFIND_CLEAR" category="EasyFind">
EasyFind:ClearAll()
</Binding>
<Binding name="EASYFIND_MAP_FOCUS" category="EasyFind">
EasyFind:FocusMapSearch()
</Binding>
</Bindings>
Loading
Loading