ae59041

Pinchord · pinchord.git · Tickets · Changelog

Branches > build-process > ae59041 > files

Update Plover plugin to v28.0 for testing

Grahp, 2026-06-08

Commit: ae59041ced4510c1a7dbfc2cd247e8a1aaeb008b
Parent: c466e55

8 changed files:

chords.edn modified (view file)

@@ -1,4 +1,4 @@-{:version "v27.0"+{:version "v28.0"  :banks {:prefixes "#+"          :initials "TSPWHR&"          :vowels "AOIU^"@@ -20,6 +20,7 @@             "TWH" "thw"             "PWHR" "bl"             "SPWHR" "cl"+            "SPWHR&" "chl"             "TS" "st"             "TSH" "sth"             "TS&" "ts"@@ -28,6 +29,7 @@             "HR" "l"             "HR&" "ll"             "WH" "wh"+            "WH&" "hw" ; The two hwat?             "TW" "tw"             "S" "s"             "SR" "v"@@ -61,6 +63,7 @@             "TH" "th"             "WR" "wr"             "SPWR" "cr"+            "SPWR&" "chr"             "SPH" "sm"             "TSW" "k"             "SPHR" "spl"@@ -73,7 +76,9 @@             "TSPW" "g"             "W" "w"             "SP" "sp"+            "SP&" "sph"             "TSPH" "sn"+            "TSPHR" "scl"             "TPH" "n"             "TPH&" "mn"             "TPW" "d"@@ -126,6 +131,7 @@           "LP" "lp"           "LP*" "pl"           "LRP" "mp"+          "LRP*" "mpl"           "RP" "rp"           "PK" "b"           "LPK" "lb"@@ -147,13 +153,14 @@           "F" "f"           "F*" "ff"           "LF" "lf"+          "LF8" "fl"           "LRF" "nf"           "LRF*" "fn" ;; :garfsmie:           "RF" "rf"           "PFT" "y"           "PFT*" "yy"           "LPFT" "ly"-          "RPFT*" "nly"+          "RPFT*" "rry" ; TODO this was wrong update it spooglypop           "LRPFT*" "nny"           "LPFT*" "lly"           "RPFT" "ry"@@ -183,8 +190,10 @@           "LKST" "lxt"           "LRKST" "nxt"           "KF" "ch"+          "KF&" "q"           "LKF" "lch"           "LRKF" "nch"+          "LRKF&" "nsion"           "RKF" "rch"           "K" "k"           "K*" "ck"@@ -201,8 +210,10 @@           "PS" "m"           "LPS" "lm"           "LRPS" "mn"+          "LRPS&" "gm"           "RPS" "rm"           "PFS" "z"+          "PFS*" "zz"           "LPFS" "lz"           "LRPFS" "nz"           "RPFS" "rz"@@ -221,21 +232,32 @@           "LRPT" "npt"           "RPT" "rpt" -          "KT" "kt"-          "KT*" "h"+          "KT*" "kt"+          "KT" "h"           "PKT*" "ph"           "PKT" "hp" ; :p-          "LKT" "lkt"-          "LRKT" "nkt"-          "RKT" "rkt"+          "LKT" "hl"

Show all 150 lines

generate-dictionary.clj modified (view file)

@@ -20,6 +20,7 @@ (defn mask [s1 s2]   (apply str (remove (set s1) s2))) +; TODO make this make all chords that aren't in chords.edn map to themself :D (let [chords (-> (edn/read-string (slurp "chords.edn"))                  (update :finals finalize)                  (update :suffix finalize))

plover_pinchord/dictionaries/pinchord-v27.0.1.py deleted (view file)

@@ -1,353 +0,0 @@-## Pinchord Plover python dictionary-import re--## Longest valid outline, Pinchord only needs one stroke outlines :)-LONGEST_KEY = 1--## TODO move this into the dict, or just wait until chords.edn is the dictionary format?-BANKS = ["prefixes", "initials", "vowels", "finals", "suffixes"]--## Specified by 'chords.edn' (https://grahp.dev/pinchord.git/chords.edn)-## Unlike Shrimple, Pinchord enumerates all bank chords!-DICT = {-    "prefixes": {-        "+": "{^}",-        "#": "{-|}",-        "#+": "{^}{-|}",-        "": "{}",-    },--    "initials": {-        "T": "t",-        "TSP&": "sk",-        "TP": "f",-        "TP&": "ph",-        "TSWR": "kr",-        "THR": "thr",-        "TPR": "fr",-        "PWR": "br",-        "SH&": "sch",-        "TSPR": "scr",-        "TSPR&": "skr",-        "TSWH": "kn",-        "TWH": "thw",-        "PWHR": "bl",-        "SPWHR": "cl",-        "TS": "st",-        "TS&": "ts",-        "TSH": "sth",-        "SPR": "spr",-        "SHR&": "shr",-        "HR": "l",-        "HR&": "ll",-        "WH": "wh",-        "TW": "tw",-        "S": "s",-        "SR": "v",-        "SR&": "vr",-        "TPWR": "dr",-        "TPWH": "x",-        "H": "h",-        "PR": "pr",-        "TSPWR": "gr",-        "SHR": "sl",-        "SW": "sw",-        "SW&": "sv",-        "SWR": "y",-        "TSPWH": "gh",-        "R": "r",-        "R&": "rh",-        "SWHR": "squ",-        "TSR": "str",-        "TSR&": "tz",-        "TWHR": "j",-        "SH": "sh",-        "PH": "m",-        "TSP": "sc",-        "TR": "tr",-        "P": "p",-        "WHR": "qu",-        "WHR&": "q",-        "TPHR": "fl",-        "TPHR&": "phl",-        "TPR&": "phr",-        "TH": "th",-        "WR": "wr",-        "SPWR": "cr",-        "SPH": "sm",-        "TSW": "k",-        "SPHR": "spl",-        "TSPWHR": "gl",-        "TSWHR": "kl",-        "SPW": "c",-        "SWH": "z",-        "PHR": "pl",-        "SPWH": "ch",-        "TSPW": "g",-        "W": "w",-        "SP": "sp",-        "TSPH": "sn",-        "TPH": "n",-        "TPH&": "mn",-        "TPW": "d",-        "PW": "b",-    },--   "vowels": {-       "OU": "ou",-       "AU": "au",-       "AOI": "ei",-       "AO": "oa",-       "AO^": "ao",-       "AU^": "ua",-       "AI^": "ia",-       "IU^": "ee",-       "IU": "e",-       "AIU": "ea",-       "OI^": "io",-       "AIU^": "ae",-       "AOU": "ui",-       "AOI^": "ie",-       "U": "u",-       "O": "o",-       "O^": "oo",-       "A": "a",-       "A^": "aa",-       "I": "i",-       "I^": "eu",-       "^": "y",-       "OIU": "eo",-       "OIU^": "oe",-       "AOU^": "iu",-       "OI": "oi",-       "U^": "ue",-       "AI": "ai",-       "-": "{^}",-    },--    "finals": {-        "FS": "v",-        "FS*": "vv",-        "LFS": "lv",-        "LRFS": "nv",-        "RFS": "rv",-        "KFS": "sh",-        "LKFS": "lsh",-        "LRKFS": "nsh",-        "RKFS": "rsh",-        "L": "l",-        "LR": "rl",-        "LR*": "rly",-        "R": "r",-        "P": "p",-        "LP": "lp",-        "LP*": "pl",-        "LRP": "mp",-        "RP": "rp",-        "PK": "b",-        "LPK": "lb",-        "LRPK": "mb",-        "RPK": "rb",-        "PF": "n",-        "LPF": "ln",-        "LRPF": "nn",-        "RPF": "rn",-        "PKFS": "g",-        "LPKFS": "lg",-        "LPKFS*": "gl",-        "LRPKFS": "ng",-        "LRPKFS*": "gn",-        "RPKFS": "rg",-        "RPKFS*": "dg",-        "KFS*": "gh",-        "KFST*": "ght",-        "F": "f",-        "F*": "ff",-        "LF": "lf",-        "LRF": "nf",-        "LRF*": "fn",-        "RF": "rf",-        "PFT": "y",-        "PFT*": "yy",-        "LPFT": "ly",-        "RPFT*": "nly",-        "LRPFT*": "nny",-        "LPFT*": "lly",-        "RPFT": "ry",-        "LRPFT": "ny",--        "PKST": "ct",-        "LPKST": "lct",-        "LRPKST": "nct",-        "RPKST": "rct",--        "PKF": "d",-        "LPKF": "ld",-        "LRPKF": "nd",-        "RPKF": "rd",--        "PKF*": "dd",-        "LPKF*": "ndl",-        "LRPKF*": "ddl",-        "RPKF*": "rld",--        "KS": "x",-        "RKS": "rx",-        "LKS": "lx",-        "LRKS": "nx",-        "KST": "xt",-        "RKST": "rxt",-        "LKST": "lxt",-        "LRKST": "nxt",-        "KF": "ch",-        "LKF": "lch",-        "LRKF": "nch",-        "RKF": "rch",-        "K": "k",-        "K*": "ck",-        "LK*": "lck",-        "LRK*": "nck",-        "RK*": "rck",-        "LK": "lk",-        "LRK": "nk",-        "RK": "rk",-        "S": "s",-        "LS": "ls",-        "LRS": "ns",-        "RS": "rs",-        "PS": "m",-        "LPS": "lm",-        "LRPS": "mn",-        "RPS": "rm",-        "PFS": "z",-        "LPFS": "lz",-        "LRPFS": "nz",-        "RPFS": "rz",-        "T": "t",-        "LT": "lt",-        "LRT": "nt",-        "RT": "rt",-        "RT*": "rty",-        "ST": "st",-        "ST*": "ts",-        "LST": "lst",-        "LRST": "nst",-        "RST": "rst",-        "PT": "pt",-        "LPT": "lpt",-        "LRPT": "npt",-        "RPT": "rpt",--        "KT": "kt",-        "KT*": "h",-        "PKT*": "ph",-        "PKT": "hp",-        "LKT": "lkt",-        "LRKT": "nkt",-        "RKT": "rkt",-        "FT": "ft",-        "LFT": "lft",-        "LRFT": "nft",-        "RFT": "rft",-        "KFT": "tch",-        "LKFT": "ltch",-        "LRKFT": "ntch",-        "RKFT": "rtch",-        "PKFT": "ky",-        "LPKFT": "lky",-        "LRPKFT": "nky",-        "RPKFT": "rky",-        "PKFT*": "cky",-        "LPKFT*": "lcky",-        "LRPKFT*": "ncky",-        "RPKFT*": "rcky",-        "L*": "ll",-        "R*": "rr",-        "P*": "pp",-        "PF*": "w",-        "LPF*": "wl",-        "LRPF*": "wn",-        "RPF*": "rw",-        "LPK*": "bl",-        "LRPK*": "bbl",-        "PKFS*": "gg",-        "KS*": "sk",-        "RKS*": "rsk",-        "LKS*": "lsk",-        "LRKS*": "nsk",--        "PKS*": "sc",-        "LPKS*": "lsc",-        "LRPKS*": "nsc",-        "RPKS*": "rsc",--        "KST*": "j",-        "RKST*": "rj",-        "LKST*": "lj",-        "LRKST*": "nj",--        "PKS": "c",-        "LPKS": "lc",-        "LRPKS": "nc",-        "RPKS": "rc",-        "S*": "ss",-        "PS*": "sp",-        "PFS*": "zz",-        "T*": "tt",-        "LT*": "ttl",--        "FST": "th",-        "LFST": "lth",-        "LFST*": "lfth",-        "LRFST": "nth",-        "RFST": "rth",-        "RFST*": "rmth",--        "PKFST": "cy",-        "PKFST*": "sy",-        "LPKFST": "lcy",-        "LRPKFST": "ncy",-        "RPKFST": "rcy",-    },--    "suffixes": {-        "e": "e",-        "s": "s",-        "es": "es",-    }-}--BANK_SPLITTING_REGEX = r"(#?\+?)(T?S?P?W?H?R?&?)(A?O?I?U?\^?\-?)(L?R?P?K?F?S?T?\*?)(e?s?)"--EMTPY_TRANSLATION = ""--def banks(stroke):-    match = re.match(BANK_SPLITTING_REGEX, stroke)-    if match:-        ## Due to javelin limitations I think making these banks extensible would be tricky, actually-        ## The regex definitely should be though.-        prefix, initials, vowels, finals, suffixes = match.groups()-        return {"prefixes": prefix, "initials": initials, "vowels": vowels, "finals": finals, "suffixes": suffixes}-    else:-        return None--def build_translation(stroke_banks):-    translation = ""-    for bank in BANKS:-        keys = stroke_banks.get(bank) or ""-        translation += DICT[bank].get(keys, "")-    return translation--def lookup_stroke(stroke):-    stroke_banks = banks(stroke)-    if stroke_banks:-        return build_translation(stroke_banks)-    else:-        return EMTPY_TRANSLATION--def lookup(outline):-    if len(outline) > LONGEST_KEY:-        return EMTPY_TRANSLATION-    else:-        stroke = outline[0]-        return lookup_stroke(stroke)

plover_pinchord/dictionaries/pinchord-v28.0.json renamed from plover_pinchord/dictionaries/pinchord-v27.0.1.json (view file)

File renamed without changes.

plover_pinchord/dictionaries/pinchord-v28.0.py added (view file)

@@ -0,0 +1,350 @@+## Pinchord Plover python dictionary+import re++## Longest valid outline, Pinchord only needs one stroke outlines :)+LONGEST_KEY = 1++## TODO move this into the dict, or just wait until chords.edn is the dictionary format?+BANKS = ["prefixes", "initials", "vowels", "finals", "suffixes"]++## Specified by and generated from 'chords.edn' (https://grahp.dev/pinchord.git/chords.edn)+## Unlike Shrimple, Pinchord enumerates all bank chords!+DICT = {"initials": {"": "{^}",+                     "WH&": "hw",+                     "T": "t",+                     "TSP&": "sk",+                     "TS&": "ts",+                     "TSPHR": "scl",+                     "TP": "f",+                     "TSWR": "kr",+                     "THR": "thr",+                     "TPR": "fr",+                     "HR&": "ll",+                     "PWR": "br",+                     "TSPR": "scr",+                     "TSWH": "kn",+                     "TWH": "thw",+                     "SHR&": "shr",+                     "TP&": "ph",+                     "PWHR": "bl",+                     "TPH&": "mn",+                     "TPR&": "phr",+                     "SPWHR&": "chl",+                     "SPWHR": "cl",+                     "TS": "st",+                     "SW&": "sv",+                     "SPR": "spr",+                     "SWHR": "squ",+                     "HR": "l",+                     "WH": "wh",+                     "TW": "tw",+                     "S": "s",+                     "SR": "v",+                     "TPWR": "dr",+                     "TSH": "sth",+                     "H": "h",+                     "PR": "pr",+                     "TSPWR": "gr",+                     "SHR": "sl",+                     "TSR&": "tz",+                     "SW": "sw",+                     "SWH": "z",+                     "TSPWH": "gh",+                     "TSPR&": "skr",+                     "R": "r",+                     "TPWH": "x",+                     "TSR": "str",+                     "TWHR": "j",+                     "SH": "sh",+                     "SPWR&": "chr",+                     "PH": "m",+                     "TSP": "sc",+                     "TR": "tr",+                     "P": "p",+                     "SH&": "sch",+                     "TPHR": "fl",+                     "TPHR&": "phl",+                     "TH": "th",+                     "WR": "wr",+                     "SP&": "sph",+                     "SPWR": "cr",+                     "SPH": "sm",+                     "TSW": "k",+                     "SR&": "vr",+                     "SPHR": "spl",+                     "TSPWHR": "gl",+                     "SWR": "y",+                     "TSWHR": "kl",+                     "SPW": "c",+                     "WHR&": "q",+                     "PHR": "pl",+                     "SPWH": "ch",+                     "TSPW": "g",+                     "W": "w",+                     "R&": "rh",+                     "SP": "sp",+                     "TSPH": "sn",+                     "TPH": "n",+                     "TPW": "d",+                     "WHR": "qu",+                     "PW": "b"},+        "vowels": {"OU": "ou",+                   "AU": "au",+                   "AOI": "ei",+                   "AU^": "ua",+                   "IU": "e",+                   "AOU^": "iu",+                   "IU^": "ee",+                   "AIU": "ea",+                   "AO^": "ao",

Show all 351 lines

plover_pinchord/system.py modified (view file)

@@ -17,7 +17,7 @@ UNDO_STROKE_STENO = "-LR"  DICTIONARIES_ROOT = "asset:plover_pinchord:dictionaries"-DEFAULT_DICTIONARIES = ("user.json", "pinchord-v27.0.1.json", "pinchord-v27.0.1.py")+DEFAULT_DICTIONARIES = ("user.json", "pinchord-v28.0.json", "pinchord-v28.0.py")  KEYMAPS = {   "Keyboard": {

pythonify.clj added (view file)

@@ -0,0 +1,30 @@+(defn stringifyify [x]+  (str \" (name x) \"))++(defn pythonify [x]+  (cond+    (map? x) (str "{"+                  (str/join ",\n"+                            (map (fn [[k v]]+                                   (str (stringifyify k) ": " (pythonify v)))+                                 x))+                  "}")+    (string? x) (stringifyify x)+    :else (str x)))++    ; "prefixes": {+    ;     "+": "{^}",+    ;     "#": "{-|}",+    ;     "#+": "{^}{-|}",+    ;     "": "{}",+    ; },++(def plover-prefixes {"+" "{^}"+                      "#" "{-|}"+                      "#+" "{^}{-|}"+                      "" "{}"})++(comment+  (spit "pythontest.py" (pythonify (assoc (select-keys (edn/read-string (slurp "chords.edn"))+                                                [:initials :vowels :finals :suffixes])+                                          :prefixes plover-prefixes))))

setup.cfg modified (view file)

@@ -1,6 +1,6 @@ [metadata] name = Pinchord-version = v27.0+version = v28.0 description = Chorded Typing System long_description = file:plover-description.md long_description_content_type = text/markdown