From df20641af14f67efb3f2f7a3d529dda3b4d6dc45 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Fri, 23 Jan 2026 10:08:57 +0000 Subject: [PATCH] refactor functional core into its own .mlb file that can be shared across different shells --- fcore.mlb | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ shf-rgfw | Bin 390680 -> 390680 bytes shf-rgfw.mlb | 61 +------------------------------------------------ shf-tests.mlb | 61 +------------------------------------------------ shf.mlb | 61 +------------------------------------------------ 5 files changed, 65 insertions(+), 180 deletions(-) create mode 100644 fcore.mlb diff --git a/fcore.mlb b/fcore.mlb new file mode 100644 index 0000000..13ce9f7 --- /dev/null +++ b/fcore.mlb @@ -0,0 +1,62 @@ +$(SML_LIB)/basis/basis.mlb + +(* LIBRARIES (purely functional) *) +lib/brolib-sml/src/line_gap.sml +lib/brolib-sml/src/gap_set.sml +lib/cozette-sml/fonts-with-z-index/cozette-ascii.mlb + +(* FUNCTIONAL CORE *) +fcore/bin-search.sml + +ann + "allowVectorExps true" +in + fcore/persistent-vector.sml +end +fcore/search-list/dfa-gen.sml +fcore/search-list/search-list.sml + +message-types/input-msg.sml +message-types/draw-msg.sml +message-types/mailbox-type.sml + +fcore/app-type.sml +fcore/normal-mode/normal-mode-with.sml +fcore/normal-mode/normal-search-mode-with.sml +fcore/app-with.sml + +fcore/text-constants.sml +ann + "allowVectorExps true" +in + fcore/cursor-dfa/make-dfa-loop.sml + fcore/cursor-dfa/vi-word-dfa.sml + fcore/cursor-dfa/vi-caps-word-dfa.sml + fcore/cursor-dfa/vi-dlr-dfa.sml + fcore/cursor-dfa/vi-l-dfa.sml + fcore/cursor-dfa/vi-h-dfa.sml + fcore/rect.sml + fcore/pipe-cursor.sml +end +fcore/text-builder/text-builder-utils.sml +fcore/text-builder/text-builder-with-cursor.sml +fcore/text-builder/text-builder-with-highlight.sml +fcore/text-builder/normal-mode-text-builder.sml +fcore/text-builder/search-bar.sml + +fcore/cursor.sml +fcore/text-scroll.sml + +fcore/normal-mode/normal-finish.sml +fcore/normal-mode/normal-search-finish.sml +fcore/move.sml + +fcore/normal-mode/normal-move.sml +fcore/normal-mode/normal-yank.sml +fcore/normal-mode/make-normal-delete.sml +fcore/normal-mode/normal-delete.sml +fcore/normal-mode/normal-yank-delete.sml +fcore/normal-mode/normal-mode.sml +fcore/normal-mode/normal-search-mode.sml + +fcore/app-update.sml diff --git a/shf-rgfw b/shf-rgfw index 19dce6098a5357fde682d5c3caae2d3ca7004fd1..83eeb0194632b4ad7c52932a023477b7c068b250 100755 GIT binary patch delta 3287 zcmZ|Q4{Q_H836G6-uZ0DO&mLa?2tfWClO{;ib~4AwpQm*L{mx)i6H+;?7$eMQh<=A zRm8F|O@N}15T4eTp)SPGQ3!~Zp5U5RVo4@3R!teCX|#rQaR_QPL8-KJ>_c;_z2M@&yu6 z8(j23rJqcvC2j*%c$-SwtIFxp+AMk>t6oP!{MCNig5yqB`$^bA$EwTepQ^Ly`Wiop zEcWQC@zX+Viel5WgXY$j)5BF+^muJ4MChH`99P8MF%DKC9(D!dkc?$^AYPb3N!`;K zW)zPQ&np#%AOyYPpb+=clDa;y)2X^*;!UOYoi~ZsNhf!MvJX9Wt z57@B`2IBb{w7q_-y4?Cs5>2Kx4Y_2-McW$If`?vh$RVB-I@S;*9!bs(1=a15o5HwF z`EL1}#xx+FOquM)Z7eX!oA$a+LQh4izKyY)3H`H=DlP05_6ArehSb+JG&~$ z*Mj`_uID7RQ|>8B<^)+jBof`BJH1Se1*#`8jOUsDIP2ah6U5y^RJSCC!CVAyYtw07c<+Jh! z5}4%jpBTh>IpHi}6v}<yq88d5D^?eAKDIT}+A$u$q$2f! zxJT$1_u&1smD*;5B%DrbW*bRZl5fo7NexN##kodTD21Rm(h1IxoNvx<4UQ`orDujOZwPJQ31j%kYtM`G+b`A%LR^ej4g|+*j zh@4GVuAryjjw%bQA)AnBrjor5maCh^Hmrv>GVNAwtcSm;b1D5VK!rrsxs}HOIGvo> zzSjUBBhrSg&??~rQa;%ZxrxA26_~+H3Tvx`eI$~??p4ApX_SslRRR8pGF2sxKFcn2 ziGKEOmuO|HPlyhd)gxxJ<1xw3>bkM*>n?FAnAlfcqIa*kC<78Wl&+`{)ilOQl}xA3q=0Ud~aSBSv;|_RMOr?-)6Ub4X_p4XHiN`GU@?jC_dmeVxNbc5!~@krunx z$on`S(0RnjD>#3sbIizjoFD4!H5oE5)nd@3aF4g&tk^P*H>kMW?YHx79 zrSmEy`#4*_(_)8>+@QtQx!1^MEw;`hMt+s^ZJlFA_HcGQ(PDcohRkvyoKnt$hXX ztC_fNrEW}=`&mroA>M5L=VA)#XI8!PnAd@4# zb_DsA-*OJ{$+h|cUVoo^AFrR`^{DXQ)16_{INftvuERgbRhuUIgK4e*T3pi*Tjew? zwUjq&$-b|Iou;07X9TKrXHElbB MdzF7jq$S(`1Bq7=j{pDw delta 3299 zcmZ{le^3>8U*?aeWKJWW{zwi4#yEk~(J$Tpsevqtq@>hc$u8WnGr&c=3pZ|?zd;9M#|CH;= zjpuB>sjdp&d3j^$PC_l!}^$3u58bged%`uF&WHy-NW^g;=N}5F1Xxwk!}k?V_CxyVb=v93!4oTHBaQd>OQ(aU)I|ZOkE|R65aEMushN zZm3M%EV((1n>Oc=?=__X8BUSOe%#b~t6X}ZlaNS?{OQY=wf?bJQ*0QgCtKgZF#Yu9 zTshE|1?0LQ*Bx3Vs;Hx#qkQ>$hhNvw+eh|VNK-Oh{wY&OvY&mPsE%wt+OBHeK6+cr zJ#p+~fEIeJrL&-WBt)j_!@C~<%+pKzv;)#>upcg_Qb<+d}=ifOlm1rHG_^RPXu zwqFVKPv<7cErGK0TM{1#3jvJ&;1QiUpHGm97uv`jfgZlFip)CbTNgf5)yv+Uv64qt zdEE!?KxSR?Y58|nNR%rs6%p6GqiaeOgxEe?ASPO{EyAO6$R|H862D^@)0kajbC*y5 z|9RtcK)y+pJOB8U18nqz&khieNV9LOvu#S~n!1=lOK;?(blZ(uaD^;gQ)2|r6RTtF z4dL9lPZ$VEbnf%DWLTp1=>pJ~Ljmy!Jrd1U$~$w)-UzZ4!_QK$Su7>J|^ zv1qb9^koHX4`F#}DQg2-(E+Y3q(0*c09U6;swJdK;=IsCY+XWZY!0OxgxIWw7Tw$h zHo5cWbMU`~=+Kur^3qrDrg_l^ppQseAU1BpGR9&b$1>GCN-hs*G3x4`W|~av}k)5G;A6 z$__T*C!sVw1`pM0R%%mWC$T+^=Obq*XPj^qc!y!9UAdDE4y!(CITQXS>SOP%1blT+ zpg9j*BsYo~U7#Ai7=Qv-Mt zWu`{F@)VPL#U%FI9?{Qs^okC)UhUTRiFT0K)?P6y9(buwv?OA^3b2)`Fll)UB73wsCgt--z%F*bVEl^A+!41VM+$*}X zwxL7yN{%5XKDLYR2ny?T5N{#Ee&R z95nEx8T&bY)4*UeS$mb^YX&Yf<9v>#Z*}dk88_DR7d19zM8DvoCjJZi?TbL@%f+EFuZ<~U?vr)090&GE2- zOAy00WshX}aRQ98@l+f=%17bXRlBaG?$Fv%wt(1ql!v9i$1MOGUACmNCmoigtPIZ7 z?@U;|55xl*tlWW_KjFB>5znZ8w$X_%>Gwe=^yb09c6`1G^!UjxRY2c{;r*WRPIp1Y5Pg ngzqcm3D%wcwqWp;s*26ZDQ2y=+YTSzvFqSY