diff --git a/README.md b/README.md index 789f2e1..0d8dbbb 100644 --- a/README.md +++ b/README.md @@ -82,32 +82,35 @@ We start with the probably indispensable media player controls keyboard layout. ◀️◀️ ▮▶ ▶▶ ``` - ### Debug Go in VisualStudio Code Debug Go programs and packages in VisualStudio Code with its Go extension. ```text -┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ -┊ 11 ┊ ┊ 8 ┊ ┊ 5 ┊ ┊ 2 ┊ -└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ - -╔════╗ ╔════╗ ┌╌╌╌╌┐ ╔════╗ -║ 10 ║ ║ 7 ║ ┊ 4 ┊ ║ 1 ║ -╚════╝ ╚════╝ └╌╌╌╌┘ ╚════╝ -⏹STOP ↺RELOAD ☑TSTPKG +┌╌╌╌╌┐ ╔════╗ ╔════╗ ╔════╗ +┊ 11 ┊ ║ 8 ║ ║ 5 ║ ║ 2 ║ +└╌╌╌╌┘ ╚════╝ ╚════╝ ╚════╝ + OUTPUT DEBUG CLOSE PANEL +╔════╗ ╔════╗ ╔════╗ ╔════╗ +║ 10 ║ ║ 7 ║ ║ 4 ║ ║ 1 ║ +╚════╝ ╚════╝ ╚════╝ ╚════╝ + ▶ ⏹STOP ↺RELOAD TSTPKG ╔════╗ ╔════╗ ╔════╗ ╔════╗ ║ 9 ║ ║ 6 ║ ║ 3 ║ ║ 0 ║ ╚════╝ ╚════╝ ╚════╝ ╚════╝ - ▮▶ ⭢STEP ⮧INTO ⮥OUT + ▮▶ ⮧INTO ⭢STEP ⮥OUT ``` -* ▮▶ starts, continues, or pauses the program to be debugged. -* ⮧INTO steps _into_ a function call. -* ⭢STEP steps _over_ a line/function call. -* ⏹STOP stops debugging -* ↺RELOAD reloads the program being debugged. -* ☑TSTPKG activates the command "go: test package". +- ▶ starts the program without debugging. +- ▮▶ starts, continues, or pauses the program to be debugged. +- ⮧INTO steps _into_ a function call. +- ⭢STEP steps _over_ a line/function call. +- ⏹STOP stops debugging +- ↺RELOAD reloads the program being debugged. +- ☑TSTPKG activates the command "go: test package". +- OUTPUT opens/shows output panel. +- DEBUG opens/shows debug panel. +- CLOSE PANEL ... closes the output/debug panel. ### Kdenlive Video Editor @@ -141,10 +144,10 @@ layouts that are SHIFT-aware. └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ ``` -* press ⇑SHIFT, release ⇑SHIFT: if a keyboard layout has a SHIFT layer, then +- press ⇑SHIFT, release ⇑SHIFT: if a keyboard layout has a SHIFT layer, then this activates and deactivates this ⇑SHIFT layer. -* press ⇑SHIFT, tap →LAYOUT, release ⇑SHIFT: switches to next keyboard layout. -* press ⇑SHIFT, tap 🔆BRIGHT, release 🔆BRIGHT: changes the keyboard LED +- press ⇑SHIFT, tap →LAYOUT, release ⇑SHIFT: switches to next keyboard layout. +- press ⇑SHIFT, tap 🔆BRIGHT, release 🔆BRIGHT: changes the keyboard LED brightness in three different brightness steps (70% → 100% → 40% → 70% → ...). diff --git a/sdcard/layouts/vsc-golang.lua b/sdcard/layouts/vsc-golang.lua index 9dac960..6e02770 100644 --- a/sdcard/layouts/vsc-golang.lua +++ b/sdcard/layouts/vsc-golang.lua @@ -32,14 +32,14 @@ The Keybow layout is as follows when in landscape orientation, with the USB cable going off "northwards": ┋┋ -┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ -┊ 11 ┊ ┊ 8 ┊ ┊ 5 ┊ ┊ 2 ┊ -└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ - -╔════╗ ╔════╗ ┌╌╌╌╌┐ ╔════╗ -║ 10 ║ ║ 7 ║ ┊ 4 ┊ ║ 1 ║ -╚════╝ ╚════╝ └╌╌╌╌┘ ╚════╝ -⏹STOP ↺RELOAD TSTPKG +┌╌╌╌╌┐ ╔════╗ ╔════╗ ╔════╗ +┊ 11 ┊ ║ 8 ║ ║ 5 ║ ║ 2 ║ +└╌╌╌╌┘ ╚════╝ ╚════╝ ╚════╝ + OUTPUT DEBUG CLOSE PANE +╔════╗ ╔════╗ ╔════╗ ╔════╗ +║ 10 ║ ║ 7 ║ ║ 4 ║ ║ 1 ║ +╚════╝ ╚════╝ ╚════╝ ╚════╝ + ▶ ⏹STOP ↺RELOAD TSTPKG ╔════╗ ╔════╗ ╔════╗ ╔════╗ ║ 9 ║ ║ 6 ║ ║ 3 ║ ║ 0 ║ ╚════╝ ╚════╝ ╚════╝ ╚════╝ @@ -48,22 +48,29 @@ cable going off "northwards": ]]-- -- Default hardware key to function assignments, can be overriden by users -vscgo.KEY_STOP = vscgo.KEY_STOP or 10 -vscgo.KEY_RELOAD = vscgo.KEY_RELOAD or 7 +vscgo.KEY_RUN = vscgo.KEY_RUN or 10 +vscgo.KEY_STOP = vscgo.KEY_STOP or 7 +vscgo.KEY_RELOAD = vscgo.KEY_RELOAD or 4 vscgo.KEY_TESTPKG = vscgo.KEY_TESTPKG or 1 vscgo.KEY_CONT = vscgo.KEY_CONT or 9 vscgo.KEY_STEPINTO = vscgo.KEY_STEPINTO or 6 vscgo.KEY_STEPOVER = vscgo.KEY_STEPOVER or 3 vscgo.KEY_STEPOUT = vscgo.KEY_STEPOUT or 0 +vscgo.KEY_VIEWOUTPUT = vscgo.KEY_VIEWOUTPUT or 8 +vscgo.KEY_VIEWDEBUG = vscgo.KEY_VIEWDEBUG or 5 +vscgo.KEY_CLOSEPANEL = vscgo.KEY_CLOSEPANEL or 2 + vscgo.RED = { r=1, g=0, b=0 } vscgo.YELLOW = { r=1, g=0.7, b=0 } vscgo.GREEN = { r=0, g=1, b=0 } +vscgo.GREENISH = { r=0.5, g=0.8, b=0.5} vscgo.BLUE = { r=0, g=0, b=1 } vscgo.BLUECYAN = { r=0, g=0.7, b=1 } vscgo.BLUEGRAY = { r=0.7, g=0.7, b=1 } vscgo.CYAN = { r=0, g=1, b=1 } +vscgo.COLOR_RUN = vscgo.COLOR_RUN or vscgo.GREENISH vscgo.COLOR_STOP = vscgo.COLOR_STOP or vscgo.RED vscgo.COLOR_RELOAD = vscgo.COLOR_RELOAD or vscgo.YELLOW vscgo.COLOR_TESTPKG = vscgo.COLOR_TESTPKG or vscgo.CYAN @@ -72,50 +79,39 @@ vscgo.COLOR_STEPINTO = vscgo.COLOR_STEPINTO or vscgo.BLUECYAN vscgo.COLOR_STEPOVER = vscgo.COLOR_STEPOVER or vscgo.BLUE vscgo.COLOR_STEPOUT = vscgo.COLOR_STEPOUT or vscgo.BLUEGRAY +vscgo.COLOR_VIEWOUTPUT = vscgo.COLOR_VIEWOUTPUT or vscgo.GREENISH +vscgo.COLOR_VIEWDEBUG = vscgo.COLOR_VIEWDEBUG or vscgo.GREEN +vscgo.COLOR_CLOSEPANEL = vscgo.COLOR_CLOSEPANEL or vscgo.RED -- AND NOW FOR SOMETHING DIFFERENT: THE REAL MEAT -- -function vscgo.debug_stop(_) - mb.tap(keybow.F5, keybow.LEFT_SHIFT) -end - -function vscgo.debug_restart(_) - mb.tap(keybow.F5, keybow.LEFT_SHIFT, keybow.LEFT_CTRL) -end - -function vscgo.debug_continue(_) - mb.tap(keybow.F5) -end - -function vscgo.debug_stepover(_) - mb.tap(keybow.F10) -end - -function vscgo.debug_stepinto(_) - mb.tap(keybow.F11) -end - -function vscgo.debug_stepout(_) - mb.tap(keybow.F11, keybow.LEFT_SHIFT) +function vscgo.command(cmd) + mb.tap("P", keybow.LEFT_SHIFT, keybow.LEFT_CTRL) + keybow.sleep(100) + keybow.text(cmd) + keybow.tap_enter() end function vscgo.go_test_package(_) - mb.tap("P", keybow.LEFT_SHIFT, keybow.LEFT_CTRL) - keybow.sleep(250) - keybow.text("go test package") - keybow.tap_enter() + vscgo.command("go test package") end +-- luacheck: ignore 631 vscgo.keymap = { - name="vsc-golang-debug", - [vscgo.KEY_STOP] = {c=vscgo.COLOR_STOP, press=vscgo.debug_stop}, - [vscgo.KEY_RELOAD] = {c=vscgo.COLOR_RELOAD, press=vscgo.debug_restart}, - [vscgo.KEY_TESTPKG] = {c=vscgo.COLOR_TESTPKG, press=vscgo.go_test_package}, - - [vscgo.KEY_CONT] = {c=vscgo.COLOR_CONT, press=vscgo.debug_continue}, - [vscgo.KEY_STEPINTO] = {c=vscgo.COLOR_STEPINTO, press=vscgo.debug_stepinto}, - [vscgo.KEY_STEPOVER] = {c=vscgo.COLOR_STEPOVER, press=vscgo.debug_stepover}, - [vscgo.KEY_STEPOUT] = {c=vscgo.COLOR_STEPOUT, press=vscgo.debug_stepout}, + name="vsc-golang-debug", + [vscgo.KEY_RUN] = {c=vscgo.COLOR_RUN, press=function(_) mb.tap(keybow.F5, keybow.LEFT_CTRL) end}, + [vscgo.KEY_STOP] = {c=vscgo.COLOR_STOP, press=function(_) mb.tap(keybow.F5, keybow.LEFT_SHIFT) end}, + [vscgo.KEY_RELOAD] = {c=vscgo.COLOR_RELOAD, press=function(_) mb.tap(keybow.F5, keybow.LEFT_SHIFT, keybow.LEFT_CTRL) end}, + [vscgo.KEY_TESTPKG] = {c=vscgo.COLOR_TESTPKG, press=vscgo.go_test_package}, + + [vscgo.KEY_CONT] = {c=vscgo.COLOR_CONT, press=function(_) mb.tap(keybow.F5) end}, + [vscgo.KEY_STEPINTO] = {c=vscgo.COLOR_STEPINTO, press=function(_) mb.tap(keybow.F11) end}, + [vscgo.KEY_STEPOVER] = {c=vscgo.COLOR_STEPOVER, press=function(_) mb.tap(keybow.F10) end}, + [vscgo.KEY_STEPOUT] = {c=vscgo.COLOR_STEPOUT, press=function(_) mb.tap(keybow.F11, keybow.LEFT_SHIFT) end}, + + [vscgo.KEY_VIEWOUTPUT] = {c=vscgo.COLOR_VIEWOUTPUT, press=function(_) vscgo.command("view toggle output") end}, + [vscgo.KEY_VIEWDEBUG] = {c=vscgo.COLOR_VIEWDEBUG, press=function(_) vscgo.command("view debug console") end}, + [vscgo.KEY_CLOSEPANEL] = {c=vscgo.COLOR_CLOSEPANEL, press=function(_) vscgo.command("view close panel") end}, } mb.register_keymap(vscgo.keymap) diff --git a/spec/integration_spec.lua b/spec/integration_spec.lua index c851d06..016feb2 100644 --- a/spec/integration_spec.lua +++ b/spec/integration_spec.lua @@ -54,7 +54,7 @@ describe("final Multibow integration", function() -- order of keymap imports. mb.activate_keymap(vscgolang.keymap.name) assert.is.equal(vscgolang.keymap.name, mb.current_keymap.name) - assert.is.equal(vscgolang.debug_continue, vscgolang.keymap[vscgolang.KEY_CONT].press) + assert.is.equal(vscgolang.go_test_package, vscgolang.keymap[vscgolang.KEY_TESTPKG].press) -- Checks that a press of the "Continue Debugging" key does in fact -- trigger the corresponding keymap handler.