ae59041
Pinchord · pinchord.git · Tickets · Changelog
Branches > main > ae59041 > files
Update Plover plugin to v28.0 for testing
Commit: ae59041ced4510c1a7dbfc2cd247e8a1aaeb008b
Parent: c466e55
8 changed files:
chords.edn 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"generate-dictionary.clj 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 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 plover_pinchord/dictionaries/pinchord-v27.0.1.json view file
plover_pinchord/dictionaries/pinchord-v28.0.py 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",plover_pinchord/system.py 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 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 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