~rabbits/left

99b8879371be536015578d3960a88361a39fa7fc — Devine Lu Linvega 2 months ago 062d0a0
Faster marker navigation and lookup
1 files changed, 26 insertions(+), 29 deletions(-)

M src/left.tal
M src/left.tal => src/left.tal +26 -29
@@ 185,7 185,7 @@ BRK
	.search ;skey JSR2
		;update-nav JSR2
	#00 EQU ,&no-jump JCN
		#00 ;get-marker JSR2 ;select-start JSR2 BRK
		#00 ;select-marker JSR2 BRK
		&no-jump
	;draw-textarea JSR2



@@ 194,6 194,9 @@ BRK
@on-button-arrow ( key button -> )

	NIP
	[ #12 ] NEQk NIP ,&no-au JCN ;select-prev-marker JSR2 POP BRK &no-au
	[ #22 ] NEQk NIP ,&no-ad JCN ;select-next-marker JSR2 POP BRK &no-ad

	DUP #04 AND ,&shift JCN
		.selection/from LDZ2 ROT ,arrow-to-addr JSR ;select-start JSR2
		POP


@@ 216,14 219,10 @@ BRK
	[ #08 ] NEQk NIP ,&no-r JCN ROT ROT INC2 JMP2r &no-r
	&ctrl
	#04 SFT
	[ #01 ] NEQk NIP ,&no-cu JCN ROT ROT ;find-prev-marker JMP2 &no-cu
	[ #02 ] NEQk NIP ,&no-cd JCN ROT ROT ;find-next-marker JMP2 &no-cd
	[ #04 ] NEQk NIP ,&no-cl JCN ROT ROT ;find-line-start JMP2 &no-cl
	[ #08 ] NEQk NIP ,&no-cr JCN ROT ROT ;find-line-end JMP2 &no-cr
	&alt
	#04 SFT
	[ #01 ] NEQk NIP ,&no-au JCN ROT ROT ;find-prev-marker JMP2 &no-au
	[ #02 ] NEQk NIP ,&no-ad JCN ROT ROT ;find-next-marker JMP2 &no-ad
	[ #04 ] NEQk NIP ,&no-al JCN ROT ROT ;find-prev-spacer JMP2 &no-al
	[ #08 ] NEQk NIP ,&no-ar JCN ROT ROT ;find-next-spacer JMP2 &no-ar
	ROT ROT


@@ 244,9 243,7 @@ JMP2r
	( on-navbar )
	.Mouse/state DEI #00 NEQ [ JMP BRK ]
	.Mouse/y DEI2 #04 SFT2 NIP #02 SUB
		;get-marker JSR2
		DUP2 ;search ;slen JSR2 ADD2
			;select-range JSR2
		;select-marker JSR2
	( release )
	#00 .Mouse/state DEO



@@ 484,25 481,37 @@ JMP

@select-start ( addr* -- )

	INC2k ,set-selection JSR JMP JMP2r
	INC2k ,select-range JMP

@select-end ( addr* -- )

	.selection/from LDZ2 SWP2

@select-range ( from* to* -- )

	,set-selection JSR [ JMP JMP2r ]
		;update-selection JSR2
		;update-nav ( .. )

JMP2

@select-end ( addr* -- )
@select-prev-marker ( -- )

	.selection/from LDZ2 SWP2 ,set-selection JSR [ JMP JMP2r ]
		;update-selection ( .. )
	.selection/from LDZ2 ;get-current-marker JSR2 #01 SUB

JMP2
,select-marker JMP

@select-range ( from* to* -- )
@select-next-marker ( -- )

	,set-selection JSR [ JMP JMP2r ]
		;update-selection ( .. )
	.selection/from LDZ2 ;get-current-marker JSR2 INC

JMP2
@select-marker ( id -- )

	;get-marker JSR2
		DUP2 ;search ;slen JSR2 ADD2
		;select-range JSR2

JMP2r

@reset-selection ( -- )



@@ 640,18 649,6 @@ JMP2r

JMP2r

@find-prev-marker ( addr* -- addr* )

	;get-current-marker JSR2 #01 SUB ;get-marker ( .. )

JMP2

@find-next-marker ( addr* -- addr* )

	;get-current-marker JSR2 INC ;get-marker ( .. )

JMP2

( toggles )

@toggle-highlight ( -- )