diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..55695a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +wow-api-type-definitions diff --git a/.luarc.json b/.luarc.json new file mode 100644 index 0000000..362cb0e --- /dev/null +++ b/.luarc.json @@ -0,0 +1,25 @@ +{ + "diagnostics.globals": [ + "arg", + "arg1", + "arg2", + "arg3", + "arg4", + "arg5", + "arg6", + "arg7", + "arg8", + "arg9", + "event", + "SetBinding", + "SetCVar", + "MultiActionBar_Update", + "SetActionBarToggles", + "SaveBindings", + "SlashCmdList", + "GetAddOnMetadata" + ], + "runtime.version": "Lua 5.1", + "type.inferParamType": true, + "workspace.library": ["wow-api-type-definitions"] +} diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..139e939 --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 160 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferSingle" +call_parentheses = "None" diff --git a/ImbusBinds.lua b/ImbusBinds.lua old mode 100755 new mode 100644 index 52b74b3..3e04252 --- a/ImbusBinds.lua +++ b/ImbusBinds.lua @@ -1,205 +1,167 @@ --- local _, u = ... - --- Hex formatted as "AARRGGBB" -local COLOR = { - blue = "FF" .. "0000FF", - green = "FF" .. "00FF00", - red = "FF" .. "FF0000", - legendary = "FF" .. "A335EE", - heirloom = "FF" .. "E6CC80", - warning = "FF" .. "EED202", -} - --- Wrap the text in a color code -local function colorWrap(text, colorCode) - return "|c" .. colorCode .. text .. "|r" -end - --- Special case of the color function -local function prefix() - return colorWrap("ImbusBinds> ", COLOR.legendary) -end - --- Special print -local function bprint(msg) - print(prefix() .. msg) -end - --- Prints some separators -function guards() - local accum = "" - for _ = 1, 30 do - accum = accum .. "=" - end - print(colorWrap(accum, COLOR.legendary)) -end - -function info(msg) - bprint(colorWrap(msg, COLOR.heirloom)) -end - -function warn(msg) - bprint(colorWrap(msg, COLOR.warning)) -end - -function error(msg) - bprint(colorWrap(msg, COLOR.red)) -end - -function success(msg) - bprint(colorWrap(msg, COLOR.green)) -end +local _, u = ... +u.version = GetAddOnMetadata("ImbusBinds", "Version") -- https://wowpedia.fandom.com/wiki/BindingID local myBinds = { - -- Movement - ["A"] = "STRAFELEFT", - ["D"] = "STRAFERIGHT", + -- Movement + ['A'] = 'STRAFELEFT', + ['D'] = 'STRAFERIGHT', - -- Character and bag toggles, since c and b are used for strafing - ["F1"] = "OPENALLBAGS", - ["F2"] = "TOGGLECHARACTER0", + -- Character and bag toggles, since c and b are used for strafing + ['F1'] = 'OPENALLBAGS', + ['F2'] = 'TOGGLECHARACTER0', - -- Action Bar 1 - ["1"] = "ACTIONBUTTON1", - ["2"] = "ACTIONBUTTON2", - ["3"] = "ACTIONBUTTON3", - ["4"] = "ACTIONBUTTON4", - ["5"] = "ACTIONBUTTON5", - ["6"] = "ACTIONBUTTON6", - ["SHIFT-1"] = "ACTIONBUTTON7", - ["SHIFT-2"] = "ACTIONBUTTON8", - ["SHIFT-3"] = "ACTIONBUTTON9", - ["SHIFT-4"] = "ACTIONBUTTON10", - ["SHIFT-5"] = "ACTIONBUTTON11", - ["SHIFT-6"] = "ACTIONBUTTON12", + -- Action Bar 1 + ['BUTTON5'] = 'ACTIONBUTTON1', + ['BUTTON4'] = 'ACTIONBUTTON2', + ['SHIFT-BUTTON5'] = 'ACTIONBUTTON3', + ['SHIFT-BUTTON4'] = 'ACTIONBUTTON4', + ['CTRL-BUTTON5'] = 'ACTIONBUTTON5', + ['CTRL-BUTTON4'] = 'ACTIONBUTTON6', + ['BUTTON3'] = 'ACTIONBUTTON7', + ['SHIFT-BUTTON3'] = 'ACTIONBUTTON8', + ['CTRL-BUTTON3'] = 'ACTIONBUTTON9', + ['§'] = 'ACTIONBUTTON10', + ['SHIFT-§'] = 'ACTIONBUTTON11', + ['CTRL-§'] = 'ACTIONBUTTON12', - -- Action Bar 2 - ["BUTTON5"] = "MULTIACTIONBAR1BUTTON1", - ["BUTTON4"] = "MULTIACTIONBAR1BUTTON2", - ["SHIFT-BUTTON5"] = "MULTIACTIONBAR1BUTTON3", - ["SHIFT-BUTTON4"] = "MULTIACTIONBAR1BUTTON4", - ["CTRL-BUTTON5"] = "MULTIACTIONBAR1BUTTON5", - ["CTRL-BUTTON4"] = "MULTIACTIONBAR1BUTTON6", - ["BUTTON3"] = "MULTIACTIONBAR1BUTTON7", - ["SHIFT-BUTTON3"] = "MULTIACTIONBAR1BUTTON8", - ["CTRL-BUTTON3"] = "MULTIACTIONBAR1BUTTON9", - ["§"] = "MULTIACTIONBAR1BUTTON10", - ["SHIFT-§"] = "MULTIACTIONBAR1BUTTON11", - ["CTRL-§"] = "MULTIACTIONBAR1BUTTON12", + -- Action Bar 2 + ['1'] = 'MULTIACTIONBAR1BUTTON1', + ['2'] = 'MULTIACTIONBAR1BUTTON2', + ['3'] = 'MULTIACTIONBAR1BUTTON3', + ['4'] = 'MULTIACTIONBAR1BUTTON4', + ['5'] = 'MULTIACTIONBAR1BUTTON5', + ['6'] = 'MULTIACTIONBAR1BUTTON6', + ['SHIFT-1'] = 'MULTIACTIONBAR1BUTTON7', + ['SHIFT-2'] = 'MULTIACTIONBAR1BUTTON8', + ['SHIFT-3'] = 'MULTIACTIONBAR1BUTTON9', + ['SHIFT-4'] = 'MULTIACTIONBAR1BUTTON10', + ['SHIFT-5'] = 'MULTIACTIONBAR1BUTTON11', + ['SHIFT-6'] = 'MULTIACTIONBAR1BUTTON12', - -- Action Bar 3 - ["Q"] = "MULTIACTIONBAR2BUTTON1", - ["E"] = "MULTIACTIONBAR2BUTTON2", - ["R"] = "MULTIACTIONBAR2BUTTON3", - ["T"] = "MULTIACTIONBAR2BUTTON4", - ["F"] = "MULTIACTIONBAR2BUTTON5", - ["G"] = "MULTIACTIONBAR2BUTTON6", - ["SHIFT-Q"] = "MULTIACTIONBAR2BUTTON7", - ["SHIFT-E"] = "MULTIACTIONBAR2BUTTON8", - ["SHIFT-R"] = "MULTIACTIONBAR2BUTTON9", - ["SHIFT-T"] = "MULTIACTIONBAR2BUTTON10", - ["SHIFT-F"] = "MULTIACTIONBAR2BUTTON11", - ["SHIFT-G"] = "MULTIACTIONBAR2BUTTON12", + -- Action Bar 3 + ['Q'] = 'MULTIACTIONBAR2BUTTON1', + ['E'] = 'MULTIACTIONBAR2BUTTON2', + ['R'] = 'MULTIACTIONBAR2BUTTON3', + ['T'] = 'MULTIACTIONBAR2BUTTON4', + ['F'] = 'MULTIACTIONBAR2BUTTON5', + ['G'] = 'MULTIACTIONBAR2BUTTON6', + ['SHIFT-Q'] = 'MULTIACTIONBAR2BUTTON7', + ['SHIFT-E'] = 'MULTIACTIONBAR2BUTTON8', + ['SHIFT-R'] = 'MULTIACTIONBAR2BUTTON9', + ['SHIFT-T'] = 'MULTIACTIONBAR2BUTTON10', + ['SHIFT-F'] = 'MULTIACTIONBAR2BUTTON11', + ['SHIFT-G'] = 'MULTIACTIONBAR2BUTTON12', - -- Action Bar 4 - ["S"] = "MULTIACTIONBAR3BUTTON1", - ["Z"] = "MULTIACTIONBAR3BUTTON2", - ["X"] = "MULTIACTIONBAR3BUTTON3", - ["C"] = "MULTIACTIONBAR3BUTTON4", - ["V"] = "MULTIACTIONBAR3BUTTON5", - ["B"] = "MULTIACTIONBAR3BUTTON6", - ["SHIFT-S"] = "MULTIACTIONBAR3BUTTON7", - ["SHIFT-Z"] = "MULTIACTIONBAR3BUTTON8", - ["SHIFT-X"] = "MULTIACTIONBAR3BUTTON9", - ["SHIFT-C"] = "MULTIACTIONBAR3BUTTON10", - ["SHIFT-V"] = "MULTIACTIONBAR3BUTTON11", - ["SHIFT-B"] = "MULTIACTIONBAR3BUTTON12", + -- Action Bar 4 + ['S'] = 'MULTIACTIONBAR3BUTTON1', + ['Z'] = 'MULTIACTIONBAR3BUTTON2', + ['X'] = 'MULTIACTIONBAR3BUTTON3', + ['C'] = 'MULTIACTIONBAR3BUTTON4', + ['V'] = 'MULTIACTIONBAR3BUTTON5', + ['B'] = 'MULTIACTIONBAR3BUTTON6', + ['SHIFT-S'] = 'MULTIACTIONBAR3BUTTON7', + ['SHIFT-Z'] = 'MULTIACTIONBAR3BUTTON8', + ['SHIFT-X'] = 'MULTIACTIONBAR3BUTTON9', + ['SHIFT-C'] = 'MULTIACTIONBAR3BUTTON10', + ['SHIFT-V'] = 'MULTIACTIONBAR3BUTTON11', + ['SHIFT-B'] = 'MULTIACTIONBAR3BUTTON12', - -- Action Bar 5 - ["CTRL-Q"] = "MULTIACTIONBAR4BUTTON1", - ["CTRL-E"] = "MULTIACTIONBAR4BUTTON2", - ["CTRL-R"] = "MULTIACTIONBAR4BUTTON3", - ["CTRL-T"] = "MULTIACTIONBAR4BUTTON4", - ["CTRL-F"] = "MULTIACTIONBAR4BUTTON5", - ["CTRL-G"] = "MULTIACTIONBAR4BUTTON6", - ["CTRL-1"] = "MULTIACTIONBAR4BUTTON7", - ["CTRL-2"] = "MULTIACTIONBAR4BUTTON8", - ["CTRL-3"] = "MULTIACTIONBAR4BUTTON9", - ["CTRL-4"] = "MULTIACTIONBAR4BUTTON10", - ["CTRL-5"] = "MULTIACTIONBAR4BUTTON11", - ["CTRL-6"] = "MULTIACTIONBAR4BUTTON12", + -- Action Bar 5 + ['CTRL-Q'] = 'MULTIACTIONBAR4BUTTON1', + ['CTRL-E'] = 'MULTIACTIONBAR4BUTTON2', + ['CTRL-R'] = 'MULTIACTIONBAR4BUTTON3', + ['CTRL-T'] = 'MULTIACTIONBAR4BUTTON4', + ['CTRL-F'] = 'MULTIACTIONBAR4BUTTON5', + ['CTRL-G'] = 'MULTIACTIONBAR4BUTTON6', + ['CTRL-1'] = 'MULTIACTIONBAR4BUTTON7', + ['CTRL-2'] = 'MULTIACTIONBAR4BUTTON8', + ['CTRL-3'] = 'MULTIACTIONBAR4BUTTON9', + ['CTRL-4'] = 'MULTIACTIONBAR4BUTTON10', + ['CTRL-5'] = 'MULTIACTIONBAR4BUTTON11', + ['CTRL-6'] = 'MULTIACTIONBAR4BUTTON12', } local cameraBinds = { - -- Remove zoom from mousewheel - ["-"] = "CAMERAZOOMOUT", - ["+"] = "CAMERAZOOMIN", + -- Remove zoom from mousewheel + ['-'] = 'CAMERAZOOMOUT', + ['+'] = 'CAMERAZOOMIN', - ["MOUSEWHEELUP"] = "STARTAUTORUN", - ["MOUSEWHEELDOWN"] = "FOLLOWTARGET", + ['MOUSEWHEELUP'] = 'STARTAUTORUN', + ['MOUSEWHEELDOWN'] = 'FOLLOWTARGET', } -- Unsets a binding, if it exists local function unsetBinding(action) - local key1, key2 = GetBindingKey(action); - if key1 then - SetBinding(key1, nil); - end - if key2 then - SetBinding(key2, nil); - end + local key1, key2 = GetBindingKey(action) + if key1 then + SetBinding(key1, nil) + end + if key2 then + SetBinding(key2, nil) + end end -- Same as SetBinding, but removes the old binding first local function setBindingRM(key, action) - unsetBinding(action); - if SetBinding(key, action) then - success(key .. " -> " .. action); - else - error("Failed to set binding " .. key .. " to " .. action); - end + unsetBinding(action) + if SetBinding(key, action) then + u.success(key .. ' -> ' .. action) + else + u.error('Failed to set binding ' .. key .. ' to ' .. action) + end end local function applyBindingSet(set) - for key, action in pairs(set) do - setBindingRM(key, action) - end - info("Bindings set!") - warn("Dont forget to reload your UI.") + for key, action in pairs(set) do + setBindingRM(key, action) + end + u.info 'Bindings set!' + u.warn 'Dont forget to reload your UI.' end local function enableBars() - SetActionBarToggles(1, 1, 1, 1); - SHOW_MULTI_ACTIONBAR_1 = 1 --Bottom Left Bar - SHOW_MULTI_ACTIONBAR_2 = 1 --Bottom Right Bar - SHOW_MULTI_ACTIONBAR_3 = 1 --Right Bar - SHOW_MULTI_ACTIONBAR_4 = 1 --Right Bar 2 - MultiActionBar_Update(); - SetCVar("alwaysShowActionBars", 1); - SetCVar("lockActionBars", 1); - SetCVar("countdownForCooldowns", 1); - SetCVar("cameraDistanceMaxZoomFactor", 2); - SetCVar("instantQuestText", 1); - SetCVar("nameplateShowAll", 1); - SetCVar("nameplateShowEnemies", 1); - SetCVar("nameplateMaxDistance", 35); - SetCVar("enableFloatingCombatText", 1); + SetActionBarToggles(1, 1, 1, 1) + SHOW_MULTI_ACTIONBAR_1 = 1 --Bottom Left Bar + SHOW_MULTI_ACTIONBAR_2 = 1 --Bottom Right Bar + SHOW_MULTI_ACTIONBAR_3 = 1 --Right Bar + SHOW_MULTI_ACTIONBAR_4 = 1 --Right Bar 2 + MultiActionBar_Update() + SetCVar('alwaysShowActionBars', 1) + SetCVar('lockActionBars', 1) + SetCVar('countdownForCooldowns', 1) + SetCVar('cameraDistanceMaxZoomFactor', 2) + SetCVar('instantQuestText', 1) + SetCVar('nameplateShowAll', 1) + SetCVar('nameplateShowEnemies', 1) + SetCVar('nameplateMaxDistance', 35) + SetCVar('enableFloatingCombatText', 1) end local function BindsHandler(msg, editbox) - guards() - if msg == "" then - applyBindingSet(myBinds) - enableBars() - end - if msg == "camera" then - applyBindingSet(cameraBinds) - end - SaveBindings(1) - guards() + u.guards() + if msg == '' then + u.info 'Welcome to the ImbusBinds keybinding script' + u.info('Version: ' .. u.version) + u.info 'Usage:' + u.info ' /binds set - To set general bindings' + u.info ' /binds camera - To set camera binds to +/-' + u.info ' /binds bars - Enable all action bars' + end + if msg == 'set' then + applyBindingSet(myBinds) + end + if msg == 'camera' then + applyBindingSet(cameraBinds) + end + if msg == 'bars' then + enableBars() + u.info 'Bars set!' + end + SaveBindings(1) + u.guards() end --- Register the /hello command -SLASH_BINDS1 = "/binds" -SlashCmdList["BINDS"] = BindsHandler +-- Register the /binds command +SLASH_BINDS1 = '/binds' +SlashCmdList['BINDS'] = BindsHandler diff --git a/ImbusBinds.toc b/ImbusBinds.toc index 37cef83..147694f 100644 --- a/ImbusBinds.toc +++ b/ImbusBinds.toc @@ -1,7 +1,7 @@ -## Interface: 11200 +## Interface: 30300 ## Title: ImbusBinds ## Author: Imbus -## Version: 0.1.2 +## Version: v0.1.5 ## Notes: Simple addon for a sane default keybind setup ## URL: https://git.silversoft.se/Imbus/ImbusBinds ## IconTexture: Interface\Icons\Inv_qiraj_jewelglyphed diff --git a/ImbusBinds_Mainline.toc b/ImbusBinds_Mainline.toc old mode 100755 new mode 100644 index 76636f0..39037e4 --- a/ImbusBinds_Mainline.toc +++ b/ImbusBinds_Mainline.toc @@ -1,7 +1,7 @@ ## Interface: 100107 ## Title: ImbusBinds ## Author: Imbus -## Version: 0.1.2 +## Version: v0.1.5 ## Notes: Simple addon for a sane default keybind setup ## URL: https://git.silversoft.se/Imbus/ImbusBinds ## IconTexture: Interface\Icons\Inv_qiraj_jewelglyphed diff --git a/ImbusBinds_Turtle.toc b/ImbusBinds_Turtle.toc new file mode 100644 index 0000000..301b869 --- /dev/null +++ b/ImbusBinds_Turtle.toc @@ -0,0 +1,10 @@ +## Interface: 11200 +## Title: ImbusBinds +## Author: Imbus +## Version: v0.1.5 +## Notes: Simple addon for a sane default keybind setup +## URL: https://git.silversoft.se/Imbus/ImbusBinds +## IconTexture: Interface\Icons\Inv_qiraj_jewelglyphed + +Util.lua +ImbusBinds.lua diff --git a/ImbusBinds_Warmane.toc b/ImbusBinds_Warmane.toc new file mode 100644 index 0000000..147694f --- /dev/null +++ b/ImbusBinds_Warmane.toc @@ -0,0 +1,10 @@ +## Interface: 30300 +## Title: ImbusBinds +## Author: Imbus +## Version: v0.1.5 +## Notes: Simple addon for a sane default keybind setup +## URL: https://git.silversoft.se/Imbus/ImbusBinds +## IconTexture: Interface\Icons\Inv_qiraj_jewelglyphed + +Util.lua +ImbusBinds.lua diff --git a/ImbusBinds_Wrath.toc b/ImbusBinds_Wrath.toc old mode 100755 new mode 100644 index 66186cb..11bfa00 --- a/ImbusBinds_Wrath.toc +++ b/ImbusBinds_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30403 ## Title: ImbusBinds ## Author: Imbus -## Version: 0.1.2 +## Version: v0.1.5 ## Notes: Simple addon for a sane default keybind setup ## URL: https://git.silversoft.se/Imbus/ImbusBinds ## IconTexture: Interface\Icons\Inv_qiraj_jewelglyphed diff --git a/README.md b/README.md new file mode 100644 index 0000000..206139a --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Default keybinds + +See [wow-api-type-definitions](https://github.com/SabineWren/wow-api-type-definitions) + +## For LSP symbols: + +Clone inside this repo: + +`git clone git@github.com:SabineWren/wow-api-type-definitions.git` diff --git a/Util.lua b/Util.lua new file mode 100644 index 0000000..80f06de --- /dev/null +++ b/Util.lua @@ -0,0 +1,51 @@ +local _, u = ... + +-- Hex formatted as "AARRGGBB" +local COLOR = { + blue = 'FF' .. '0000FF', + green = 'FF' .. '00FF00', + red = 'FF' .. 'FF0000', + legendary = 'FF' .. 'A335EE', + heirloom = 'FF' .. 'E6CC80', + warning = 'FF' .. 'EED202', +} + +-- Wrap the text in a color code +local function colorWrap(text, colorCode) + return '|c' .. colorCode .. text .. '|r' +end + +-- Special case of the color function +local function prefix() + return colorWrap('ImbusBinds> ', COLOR.legendary) +end + +-- Special print +local function bprint(msg) + print(prefix() .. msg) +end + +-- Prints some separators +function u.guards() + local accum = '' + for _ = 1, 30 do + accum = accum .. '=' + end + print(colorWrap(accum, COLOR.legendary)) +end + +function u.info(msg) + bprint(colorWrap(msg, COLOR.heirloom)) +end + +function u.warn(msg) + bprint(colorWrap(msg, COLOR.warning)) +end + +function u.error(msg) + bprint(colorWrap(msg, COLOR.red)) +end + +function u.success(msg) + bprint(colorWrap(msg, COLOR.green)) +end diff --git a/set_version.sh b/set_version.sh new file mode 100644 index 0000000..3ecb147 --- /dev/null +++ b/set_version.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 " + exit 1 +fi + +SEMVER="$1" + +# Update all *.toc files +sed -i -E "s/^(## Version: ).*/\1$SEMVER/" ./*.toc + +echo "Updated all .toc files with version $SEMVER"