-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathModHighlight.py
58 lines (49 loc) · 1.35 KB
/
ModHighlight.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import TermUI as tui
import TermIntr as ti
from Befunge import befunge2d as bf
#todo: ignore quotes?
flashingQuestionMark=None
def highlightMod(rendered,character,*args):
instr=bf.get(ord(rendered.char))
if character in bf:
rendered.fcolor=scheme[instr.theme]
elif not 32<=character<=126: #ascii normal character
if flashingQuestionMark:
rendered.char="?"
rendered.flags|={'f'}
rendered.bcolor=str(character%255+1)
rendered.flags|={'i'}
enabled=None
def disable(quiet=False):
global enabled
modules.fungescreen.display.modifiers.remove(highlightMod)
modules.ui.root.frames.schedule(0,tui.sched.framesLater)
quiet or modules.statustext.queueText("Highlighting disabled")
enabled=False
def enable(quiet=False):
global enabled
modules.fungescreen.display.modifiers.append(highlightMod)
modules.ui.root.frames.schedule(0,tui.sched.framesLater)
quiet or modules.statustext.queueText("Highlighting enabled")
enabled=True
toggle=ti.Listener()
@toggle.handle
def key(key):
global enabled
if key=="ctrl h":
if enabled:
disable()
else:
enable()
scheme=None
def modInit(m,config,lock):
global scheme,modules,enabled,flashingQuestionMark
modules=m
enabled=config["DefaultEnable"]
scheme=config["Scheme"]
flashingQuestionMark=config["FlashingQuestionMark"]
m.ui.addIntr(toggle)
if enabled:
enable(quiet=True)
else:
disable(quiet=True)