mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-01 03:23:09 +03:00
fix drum cursor handling, refactor chat newline splitter
This commit is contained in:
parent
cd7d41f4df
commit
859bce32c9
@ -763,27 +763,29 @@
|
||||
++ sh-sane-chat :: sanitize chatter
|
||||
|= buf=(list ,@c)
|
||||
^- (list sole-edit)
|
||||
?~ buf ~
|
||||
=+ [inx=0 sap=0 con=0]
|
||||
|^ run
|
||||
++ fix |=(cha=@ [%mor [%del inx] [%ins inx `@c`cha] ~])
|
||||
++ run ^- (list sole-edit)
|
||||
?~ buf ~
|
||||
?: =(i.buf (turf '•'))
|
||||
?~ con [[%del inx] run(buf t.buf)]
|
||||
run(con 0, inx +(inx), buf t.buf)
|
||||
?: =(64 con)
|
||||
=+ dif=(sub inx sap)
|
||||
?: (lth dif 64)
|
||||
[(fix(inx sap) (turf '•')) run(con dif)]
|
||||
[[%ins inx (turf '•')] run(con 0, inx +(inx))]
|
||||
?: =(i.buf ' ')
|
||||
run(sap inx, inx +(inx), con +(con), buf t.buf)
|
||||
=+ lit=run(inx +(inx), con +(con), buf t.buf)
|
||||
?: |((lth i.buf 32) (gth i.buf 126))
|
||||
[(fix '?') lit]
|
||||
?: &((gte i.buf 'A') (lte i.buf 'Z'))
|
||||
[(fix (add 32 i.buf)) lit]
|
||||
lit
|
||||
|^ ^- (list sole-edit)
|
||||
?: =(i.buf (turf '•'))
|
||||
?. =(0 con) newline
|
||||
[[%del inx] ?~(t.buf ~ $(buf t.buf))]
|
||||
?: =(i.buf ' ')
|
||||
?. =(64 con) advance(sap inx)
|
||||
[(fix (turf '•')) newline]
|
||||
?: =(64 con)
|
||||
=+ dif=(sub inx sap)
|
||||
?: (lth dif 64)
|
||||
[(fix(inx sap) (turf '•')) $(con dif)]
|
||||
[[%ins inx (turf '•')] $(con 0, inx +(inx))]
|
||||
?: |((lth i.buf 32) (gth i.buf 126))
|
||||
[(fix '?') advance]
|
||||
?: &((gte i.buf 'A') (lte i.buf 'Z'))
|
||||
[(fix (add 32 i.buf)) advance]
|
||||
advance
|
||||
::
|
||||
++ advance ?~(t.buf ~ $(con +(con), inx +(inx), buf t.buf))
|
||||
++ newline ?~(t.buf ~ $(con 0, inx +(inx), buf t.buf))
|
||||
++ fix |=(cha=@ [%mor [%del inx] [%ins inx `@c`cha] ~])
|
||||
--
|
||||
::
|
||||
++ sh-sane :: sanitize input
|
||||
|
@ -495,7 +495,7 @@
|
||||
?. liv
|
||||
?: (~(has in (deft-fish our)) gyl)
|
||||
(se-blit qit/~)
|
||||
(se-nuke gyl)
|
||||
(se-nuke gyl)
|
||||
..ta(fug (~(put by fug) gyl ``target`+<+))
|
||||
::
|
||||
++ ta-poke |=(a=pear +>(..ta (se-poke gyl a))) :: poke gyl
|
||||
@ -556,7 +556,7 @@
|
||||
(ta-act %clr ~)
|
||||
:: .(+> (se-blit %bel ~))
|
||||
=+ pre=(dec pos.inp)
|
||||
(ta-hom(pos.inp pre) %del pre)
|
||||
(ta-hom %del pre)
|
||||
::
|
||||
++ ta-ctl :: hear control
|
||||
|= key=@ud
|
||||
@ -596,13 +596,12 @@
|
||||
==
|
||||
%u ?: =(0 pos.inp)
|
||||
ta-bel
|
||||
%- ta-hom(pos.inp 0, kil `(scag pos.inp buf.say.inp))
|
||||
%- ta-hom(kil `(scag pos.inp buf.say.inp))
|
||||
(ta-cut 0 pos.inp)
|
||||
%v ta-bel
|
||||
%x +>(+> se-anon)
|
||||
%y ?~ kil ta-bel
|
||||
%- ta-hom(pos.inp (add pos.inp (lent u.kil)))
|
||||
(ta-cat pos.inp u.kil)
|
||||
%y ?~ kil ta-bel
|
||||
(ta-hom (ta-cat pos.inp u.kil))
|
||||
==
|
||||
::
|
||||
++ ta-cru :: hear crud
|
||||
@ -653,7 +652,7 @@
|
||||
|- ^- @ud
|
||||
?- -.ted
|
||||
%del ?:((gth pos.inp p.ted) (dec pos.inp) pos.inp)
|
||||
%ins ?:((lte pos.inp p.ted) +(pos.inp) pos.inp)
|
||||
%ins ?:((gte pos.inp p.ted) +(pos.inp) pos.inp)
|
||||
%mor |- ^- @ud
|
||||
?~ p.ted pos.inp
|
||||
$(p.ted t.p.ted, pos.inp ^$(ted i.p.ted))
|
||||
@ -743,7 +742,7 @@
|
||||
^+ +>
|
||||
?^ ris
|
||||
(ta-ser txt)
|
||||
%- ta-hom(pos.inp (add (lent txt) pos.inp))
|
||||
%- ta-hom
|
||||
:- %mor
|
||||
|- ^- (list sole-edit)
|
||||
?~ txt ~
|
||||
|
Loading…
Reference in New Issue
Block a user