@@ 38,12 38,12 @@
load-theme
( size )
#02a8 .Screen/width DEO2
- #0180 .Screen/height DEO2
+ #01a0 .Screen/height DEO2
( cache position )
.Screen/height DEI2
DUP2 #0020 SUB2 #04 SFT2 .textarea/lines STZ2
- #0018 SUB2 .scrollbar/height STZ2
- .Screen/height DEI2 #06 SFT2 NIP INC ;draw-textarea/height STA
+ DUP2 #0018 SUB2 .scrollbar/height STZ2
+ #06 SFT2 NIP INC ;draw-textarea/height STA
.Screen/width DEI2 #0088 SUB2 #03 SFT2 NIP ;draw-textarea/width STA
( defaults )
#0001 .scroll/ratio STZ2
@@ 65,7 65,7 @@ BRK
( name ) "Left 0a
( details ) "A 20 "Text 20 "Editor 0a
( author ) "By 20 "Hundred 20 "Rabbits 0a
- ( date ) "Jan 20 "8, 20 "2023 00
+ ( date ) "Jan 20 "20, 20 "2023 00
02
( icon ) 83 =appicon
( mask ) 41 1705
@@ 131,18 131,18 @@ BRK
;filepath sclr
&no-start
.Console/read DEI .filepath skey
- ?&open
+ ?&on-open
BRK
-&open ( -> )
+&on-open ( -> )
#00 ,&listen STR file-open
- ;on-inject .Console/vector DEO2
+ ;&on-inject .Console/vector DEO2
BRK
-@on-inject ( -> )
+&on-inject ( -> )
( once a file has been opened, console injects characters )
.Console/read DEI insert
@@ 804,17 804,17 @@ JMP2r
( fast clear )
#71 .Screen/auto DEO
#0020 .Screen/y DEO2
- [ LIT &height $1 ] #00
+ #00 [ LIT &height $1 ] SUB
&h
#0088 .Screen/x DEO2
- [ LIT &width $1 ] #00
+ #00 [ LIT &width $1 ] SUB
&w
#00 .Screen/sprite DEO
- INC GTHk ?&w
- POP2
+ INC DUP ?&w
+ POP
.Screen/y DEI2k #0040 ADD2 ROT DEO2
- INC GTHk ?&h
- POP2
+ INC DUP ?&h
+ POP
( setup )
.selection/from LDZ2 get-current-marker
get-marker ;walk-color/scope STA2
@@ 827,7 827,6 @@ JMP2r
&l
draw-token
.Screen/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ?&end
- LDAk #00 EQU ?&end
GTH2k ?&l
&end
POP2 POP2
@@ 837,29 836,34 @@ JMP2r
@draw-token ( str* -- str* )
- walk-color STH
- ( detect underline )
- DUP2 is-rune ;draw-ufx/ul STA
- ( draw rune )
- ;walk-color/c LDA ?&w
- .textarea/highlight LDZ ?&w
- draw-rune
+ LDAk #21 LTH ?&whitespace
+ ( color ) walk-color ,&color STR
+ ( underline ) DUP2 is-rune ;draw-ufx/ul STA
+ ( rune ) draw-rune
&w
is-selected STH
- LDAk STH2kr #0d ROT ROT [ JMP SWP POP ] draw-ufx POPr
+ LDAk [ LIT2 0d &color 00 ] STHr [ JMP SWP POP ] draw-ufx
+ LDAk #1f LTH ?&end
INC2 LDAk #20 GTH ?&w
- ( reset ul ) #00 ;draw-ufx/ul STA
- ( reset color ) POPr
- &w2
- is-selected STH
- LDAk #0d01 STHr [ JMP SWP POP ] draw-ufx
- INC2 LDAk #01 SUB #20 LTH ?&w2
+ &end
+
+JMP2r
+
+&whitespace ( str* -- str* )
+
+ ( remove underline ) #00 ;draw-ufx/ul STA
+ is-selected #0c MUL INC ,&ws-color STR
+ LDAk [ LIT &ws-color $1 ] draw-ufx
+ INC2
JMP2r
@draw-rune ( addr* -- addr* )
+ ;walk-color/c LDA ?&skip
+ .textarea/highlight LDZ ?&skip
+
LDAk ;runes cndx INC2k ORA ?&continue
POP2 JMP2r
&continue
@@ 872,6 876,7 @@ JMP2r
#50 SFT2 ;rune-icns ADD2 #08 ROT ROT
draw-ufx/seg
INC2
+ &skip
JMP2r
@@ 1102,18 1107,21 @@ JMP2r
@draw-dec ( short* -- )
#00 ,&z STR
- #2710 ,&parse JSR
- #03e8 ,&parse JSR
- #0064 ,&parse JSR
- #000a ,&parse JSR
+ #2710 draw-dec/parse
+ #03e8 draw-dec/parse
+ #0064 draw-dec/parse
+ #000a draw-dec/parse
NIP #30 ADD !draw-chr
( .. )
- &parse
- DIV2k DUPk [ LIT &z $1 ] EQU ?&skip
- DUP #30 ADD draw-chr #ff ,&z STR
- &skip POP MUL2 SUB2
- JMP2r
+
+&parse
+
+ DIV2k DUPk [ LIT &z $1 ] EQU ?&skip
+ DUP #30 ADD draw-chr #ff ,&z STR
+ &skip POP MUL2 SUB2
+
+JMP2r
(
@|document )