aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2019-06-16 16:16:05 +0200
committerTeddy Wing2019-06-16 16:16:05 +0200
commit7faa8cb130485a8cd716b1d1869a3cc7235e0482 (patch)
treef57f11a780380e65a8cf49da0d15a275ffe82ace
parent5ebc74fb9cf62118345e646d7b04e7a173890a38 (diff)
downloadWindowMode.spoon-7faa8cb130485a8cd716b1d1869a3cc7235e0482.tar.bz2
Add documentation
Used the following Spoons as a format reference: - https://github.com/Hammerspoon/Spoons/blob/master/Source/Tunnelblick.spoon/init.lua - https://github.com/Hammerspoon/Spoons/blob/master/Source/Token.spoon/init.lua The Spoons documentation describes how to generate a required `docs.json` file: https://github.com/Hammerspoon/hammerspoon/blob/master/SPOONS.md Thanks to Adam Matan (https://stackoverflow.com/users/51197/adam-matan) on Stack Overflow for the tip on Make's `CURDIR` variable. Didn't know that existed. https://stackoverflow.com/questions/52437728/bash-what-is-the-difference-between-pwd-and-curdir/52447088#52447088
-rw-r--r--Makefile8
-rw-r--r--docs.json83
-rw-r--r--init.lua36
3 files changed, 127 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c03d62a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,8 @@
+HS ?= /Applications/Hammerspoon.app/Contents/Resources/extensions/hs/ipc/bin/hs
+
+.PHONY: doc
+doc: docs.json
+
+docs.json: *.lua
+ $(HS) -c "hs.doc.builder.genJSON(\"$(CURDIR)\")" \
+ | grep -v "^--" > $@
diff --git a/docs.json b/docs.json
new file mode 100644
index 0000000..269959e
--- /dev/null
+++ b/docs.json
@@ -0,0 +1,83 @@
+[
+ {
+ "Constant" : [
+
+ ],
+ "submodules" : [
+
+ ],
+ "Function" : [
+
+ ],
+ "Variable" : [
+
+ ],
+ "stripped_doc" : [
+
+ ],
+ "desc" : "Adds a hotkey mode for manipulating windows.",
+ "type" : "Module",
+ "Deprecated" : [
+
+ ],
+ "Constructor" : [
+
+ ],
+ "doc" : "Adds a hotkey mode for manipulating windows.\n\nUpon activating the mode, the following shortcuts are available:\n\nh: Move window left 20 units\nj: Move window down 20 units\nk: Move window up 20 units\nl: Move window right 20 units\n\nShift-h: Move window left 5 units\nShift-j: Move window down 5 units\nShift-k: Move window up 5 units\nShift-l: Move window right 5 units\n\n[: Move window left one screen\n]: Move window right one screen\n\ne: Reduce window height 20 units\ns: Reduce window width 20 units\nd: Increase window height 20 units\nf: Increase window width 20 units\n\nShift-e: Reduce window height 5 units\nShift-s: Reduce window width 5 units\nShift-d: Increase window height 5 units\nShift-f: Increase window width 5 units",
+ "Field" : [
+
+ ],
+ "Command" : [
+
+ ],
+ "items" : [
+ {
+ "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode",
+ "desc" : "Bind keys for WindowMode",
+ "stripped_doc" : [
+ "Bind keys for WindowMode",
+ ""
+ ],
+ "parameters" : [
+ " * mapping – A table containing hotkey modifier\/key details for the following items:",
+ " * mode – Activate and deactivate window mode"
+ ],
+ "notes" : [
+
+ ],
+ "signature" : "WindowMode:bindModal(mapping)",
+ "type" : "Method",
+ "returns" : [
+
+ ],
+ "def" : "WindowMode:bindModal(mapping)",
+ "name" : "bindModal"
+ }
+ ],
+ "Method" : [
+ {
+ "doc" : "Bind keys for WindowMode\n\nParameters:\n * mapping – A table containing hotkey modifier\/key details for the following items:\n * mode – Activate and deactivate window mode",
+ "desc" : "Bind keys for WindowMode",
+ "stripped_doc" : [
+ "Bind keys for WindowMode",
+ ""
+ ],
+ "parameters" : [
+ " * mapping – A table containing hotkey modifier\/key details for the following items:",
+ " * mode – Activate and deactivate window mode"
+ ],
+ "notes" : [
+
+ ],
+ "signature" : "WindowMode:bindModal(mapping)",
+ "type" : "Method",
+ "returns" : [
+
+ ],
+ "def" : "WindowMode:bindModal(mapping)",
+ "name" : "bindModal"
+ }
+ ],
+ "name" : "WindowMode"
+ }
+]
diff --git a/init.lua b/init.lua
index b6654de..6f6f837 100644
--- a/init.lua
+++ b/init.lua
@@ -1,3 +1,32 @@
+--- === WindowMode ===
+---
+--- Adds a hotkey mode for manipulating windows.
+---
+--- Upon activating the mode, the following shortcuts are available:
+---
+--- h: Move window left 20 units
+--- j: Move window down 20 units
+--- k: Move window up 20 units
+--- l: Move window right 20 units
+---
+--- Shift-h: Move window left 5 units
+--- Shift-j: Move window down 5 units
+--- Shift-k: Move window up 5 units
+--- Shift-l: Move window right 5 units
+---
+--- [: Move window left one screen
+--- ]: Move window right one screen
+---
+--- e: Reduce window height 20 units
+--- s: Reduce window width 20 units
+--- d: Increase window height 20 units
+--- f: Increase window width 20 units
+---
+--- Shift-e: Reduce window height 5 units
+--- Shift-s: Reduce window width 5 units
+--- Shift-d: Increase window height 5 units
+--- Shift-f: Increase window width 5 units
+
-- Copyright (c) 2019 Teddy Wing
--
-- This program is free software: you can redistribute it and/or modify
@@ -31,6 +60,13 @@ obj.spoonPath = script_path()
local window = dofile(obj.spoonPath .. '/window.lua')
+--- WindowMode:bindModal(mapping)
+--- Method
+--- Bind keys for WindowMode
+---
+--- Parameters:
+--- * mapping – A table containing hotkey modifier/key details for the following items:
+--- * mode – Activate and deactivate window mode
function obj:bindHotkeys(keys)
local mode = keys['mode']
window:bindModal(mode[1], mode[2])