mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-22 15:37:45 +00:00
#3911 Support keybinding for different contexts with different commands
This commit is contained in:
parent
fbe296aaba
commit
4d2cb321d6
@ -202,7 +202,7 @@ class KeymapConfig:
|
||||
user_ctxs = v.get("ctx", ["global"])
|
||||
try:
|
||||
km._check_contexts(user_ctxs)
|
||||
km.remove(v["key"], Contexts)
|
||||
km.remove(v["key"], user_ctxs)
|
||||
km.add(
|
||||
key = v["key"],
|
||||
command = v["cmd"],
|
||||
|
@ -117,6 +117,21 @@ def test_load_path(tmpdir):
|
||||
kmc.load_path(km, dst)
|
||||
assert(km.get("chooser", "key1"))
|
||||
|
||||
with open(dst, 'w') as f:
|
||||
f.write(
|
||||
"""
|
||||
- key: key2
|
||||
ctx: [flowlist]
|
||||
cmd: foo
|
||||
- key: key2
|
||||
ctx: [flowview]
|
||||
cmd: bar
|
||||
"""
|
||||
)
|
||||
kmc.load_path(km, dst)
|
||||
assert(km.get("flowlist", "key2"))
|
||||
assert(km.get("flowview", "key2"))
|
||||
|
||||
km.add("key123", "str", ["flowlist", "flowview"])
|
||||
with open(dst, 'w') as f:
|
||||
f.write(
|
||||
@ -127,10 +142,9 @@ def test_load_path(tmpdir):
|
||||
"""
|
||||
)
|
||||
kmc.load_path(km, dst)
|
||||
for b in km.bindings:
|
||||
if b.key == "key123":
|
||||
assert b.contexts == ["options"]
|
||||
break
|
||||
assert(km.get("flowlist", "key123"))
|
||||
assert(km.get("flowview", "key123"))
|
||||
assert(km.get("options", "key123"))
|
||||
|
||||
|
||||
def test_parse():
|
||||
|
Loading…
Reference in New Issue
Block a user