diffing 0.10.5 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +77 -32
  2. package/dist/{cli-agent-BJiATn11.mjs → cli-agent-DkwGxuy2.mjs} +40 -11
  3. package/dist/{cli-gh-_bkDCxhh.mjs → cli-gh-D0NfKpOp.mjs} +4 -4
  4. package/dist/cli.mjs +150 -221
  5. package/dist/client/assets/{angular-html-CBcwKYDC.js → angular-html-Dl53kkiy.js} +1 -1
  6. package/dist/client/assets/{angular-ts-DRBYUaJA.js → angular-ts-wNJFFkey.js} +1 -1
  7. package/dist/client/assets/{apl-BM0X8jeL.js → apl-BxtQST-h.js} +1 -1
  8. package/dist/client/assets/{arc-DTkmmKl3.js → arc-CBmZuzPB.js} +1 -1
  9. package/dist/client/assets/{architectureDiagram-3BPJPVTR-Cw75ay7q.js → architectureDiagram-3BPJPVTR-CEci_K9f.js} +1 -1
  10. package/dist/client/assets/{astro-DKTNkoRZ.js → astro-BpADD5rh.js} +1 -1
  11. package/dist/client/assets/{blade-DaM7a9Zp.js → blade-B4I5SQmP.js} +1 -1
  12. package/dist/client/assets/{blockDiagram-GPEHLZMM-DAzINMr_.js → blockDiagram-GPEHLZMM-DcKhDtnE.js} +1 -1
  13. package/dist/client/assets/{c-B3C0Or4o.js → c-C3VtOgg8.js} +1 -1
  14. package/dist/client/assets/{c4Diagram-AAUBKEIU-C7SsS28g.js → c4Diagram-AAUBKEIU-CaHozoxF.js} +1 -1
  15. package/dist/client/assets/channel-Ct4-oSQN.js +1 -0
  16. package/dist/client/assets/{chunk-2J33WTMH-DHOUGWx8.js → chunk-2J33WTMH-tvuzKhdK.js} +1 -1
  17. package/dist/client/assets/{chunk-3OPIFGDE-D8d2scLX.js → chunk-3OPIFGDE-D_nBoD9w.js} +1 -1
  18. package/dist/client/assets/{chunk-4BX2VUAB-BSC-E5yg.js → chunk-4BX2VUAB-yHPdy1G8.js} +1 -1
  19. package/dist/client/assets/{chunk-55IACEB6-27pC5pKn.js → chunk-55IACEB6-yXpL8wjV.js} +1 -1
  20. package/dist/client/assets/{chunk-5ZQYHXKU-BM60x82y.js → chunk-5ZQYHXKU-DZ5cvCDV.js} +1 -1
  21. package/dist/client/assets/{chunk-727SXJPM-CHCF96vE.js → chunk-727SXJPM-CJjgOWmY.js} +1 -1
  22. package/dist/client/assets/{chunk-AQP2D5EJ-BoVsvmTa.js → chunk-AQP2D5EJ-CQYQKXSE.js} +1 -1
  23. package/dist/client/assets/{chunk-BSJP7CBP-Iip4uSio.js → chunk-BSJP7CBP-CP_f908b.js} +1 -1
  24. package/dist/client/assets/{chunk-CSCIHK7Q-DuIWPyay.js → chunk-CSCIHK7Q-tcgA8jR0.js} +1 -1
  25. package/dist/client/assets/{chunk-FMBD7UC4-Du6rtd2k.js → chunk-FMBD7UC4-DlpmhBYg.js} +1 -1
  26. package/dist/client/assets/{chunk-KSCS5N6A-BBq105vI.js → chunk-KSCS5N6A-BkfieXpV.js} +1 -1
  27. package/dist/client/assets/{chunk-L5ZTLDWV-0DmB5Qp8.js → chunk-L5ZTLDWV-BjVXSZnt.js} +1 -1
  28. package/dist/client/assets/{chunk-LZXEDZCA-CoRsjUfr.js → chunk-LZXEDZCA-CaAWmy4Q.js} +2 -2
  29. package/dist/client/assets/{chunk-ND2GUHAM-tX8cKEls.js → chunk-ND2GUHAM-kWh41zUn.js} +1 -1
  30. package/dist/client/assets/{chunk-NZK2D7GU-BoJGgPic.js → chunk-NZK2D7GU-CDrIi44_.js} +1 -1
  31. package/dist/client/assets/{chunk-O5CBEL6O-mlwCWs97.js → chunk-O5CBEL6O-CbNGK3Te.js} +1 -1
  32. package/dist/client/assets/chunk-QZHKN3VN-BXhKFVX7.js +1 -0
  33. package/dist/client/assets/chunk-WU5MYG2G-_EwuC51_.js +1 -0
  34. package/dist/client/assets/{chunk-XPW4576I-B5efww8M.js → chunk-XPW4576I-Cca0fTtG.js} +1 -1
  35. package/dist/client/assets/classDiagram-4FO5ZUOK-C8bdx9R4.js +1 -0
  36. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B26wrQuH.js +1 -0
  37. package/dist/client/assets/{cobol-De9QR_Td.js → cobol-j-6eG2UQ.js} +1 -1
  38. package/dist/client/assets/{coffee-Ct_GvuHP.js → coffee-CZLH0dtt.js} +1 -1
  39. package/dist/client/assets/{cose-bilkent-S5V4N54A-ATaJZGF7.js → cose-bilkent-S5V4N54A-DlxESVex.js} +1 -1
  40. package/dist/client/assets/{cpp-Dw52w9cj.js → cpp-j6Bp24RI.js} +1 -1
  41. package/dist/client/assets/{crystal-Dx8ADdsd.js → crystal-DW7wcFUs.js} +1 -1
  42. package/dist/client/assets/{css-CZ13XvDU.js → css-C43BDU2i.js} +1 -1
  43. package/dist/client/assets/{dagre-BM42HDAG-aDltuYut.js → dagre-BM42HDAG-BaemEJFh.js} +1 -1
  44. package/dist/client/assets/{diagram-2AECGRRQ-DGWnHVMJ.js → diagram-2AECGRRQ-BaM-bkJ3.js} +1 -1
  45. package/dist/client/assets/{diagram-5GNKFQAL-Dd7eZBKe.js → diagram-5GNKFQAL-BOH04DJO.js} +1 -1
  46. package/dist/client/assets/{diagram-KO2AKTUF-DWThXREf.js → diagram-KO2AKTUF-BP5MyqDZ.js} +1 -1
  47. package/dist/client/assets/{diagram-LMA3HP47-CXR4Bjtc.js → diagram-LMA3HP47-Dt4gKMYF.js} +1 -1
  48. package/dist/client/assets/{diagram-OG6HWLK6-D4Cbf0nW.js → diagram-OG6HWLK6-DoT1VshN.js} +1 -1
  49. package/dist/client/assets/{dist-CUDhrHNw.js → dist-DEAxvC4F.js} +1 -1
  50. package/dist/client/assets/{edge-CQCjdJKj.js → edge-D9ySFlnD.js} +1 -1
  51. package/dist/client/assets/{elixir-bkjwPazA.js → elixir-CoJz_LQ5.js} +1 -1
  52. package/dist/client/assets/{elm-CCweX5Cq.js → elm-CvedWh_e.js} +1 -1
  53. package/dist/client/assets/{erDiagram-TEJ5UH35-BmAyt7SU.js → erDiagram-TEJ5UH35-CMP78FsQ.js} +1 -1
  54. package/dist/client/assets/{erb-D-Z-KBLp.js → erb-lD_yYZsm.js} +1 -1
  55. package/dist/client/assets/{flowDiagram-I6XJVG4X-C6nIFUVc.js → flowDiagram-I6XJVG4X-Dp0s5BFj.js} +1 -1
  56. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DMlxThBf.js → ganttDiagram-6RSMTGT7-GmSG31U-.js} +1 -1
  57. package/dist/client/assets/{git-rebase-BdoFdenB.js → git-rebase-DwZABzof.js} +1 -1
  58. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-JaIFkAIT.js → gitGraphDiagram-PVQCEYII-C1SXShag.js} +1 -1
  59. package/dist/client/assets/{glimmer-js-CZQrBJKq.js → glimmer-js-CWcs3w1Z.js} +1 -1
  60. package/dist/client/assets/{glimmer-ts-CBYW46D4.js → glimmer-ts-CrzGN4lJ.js} +1 -1
  61. package/dist/client/assets/{glsl-wxixKkY_.js → glsl-DRCtwX7h.js} +1 -1
  62. package/dist/client/assets/{graphql-CqZ0Lo5a.js → graphql-rpmrismS.js} +1 -1
  63. package/dist/client/assets/{hack-rqWymQRV.js → hack-Ba02RnuQ.js} +1 -1
  64. package/dist/client/assets/{haml-DFw_IoGM.js → haml-BHBACStm.js} +1 -1
  65. package/dist/client/assets/{handlebars-3VmTVMYt.js → handlebars-BtlQ1SCa.js} +1 -1
  66. package/dist/client/assets/{html-C0Li76jB.js → html-BkVU3Dge.js} +1 -1
  67. package/dist/client/assets/{html-derivative-CO-RQW8y.js → html-derivative-DoK92vwi.js} +1 -1
  68. package/dist/client/assets/{http-sPrZOeBY.js → http-CJAwKSPH.js} +1 -1
  69. package/dist/client/assets/{hurl-DUoPe4Lc.js → hurl-kaX5jwuN.js} +1 -1
  70. package/dist/client/assets/{index-BN_-di_r.js → index-BHeNiC07.js} +261 -199
  71. package/dist/client/assets/index-D8hOoJCg.css +1 -0
  72. package/dist/client/assets/{infoDiagram-5YYISTIA-B6AZ5SCV.js → infoDiagram-5YYISTIA-B0i3BlNR.js} +1 -1
  73. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CytMrpo8.js → ishikawaDiagram-YF4QCWOH-BN8sEei4.js} +1 -1
  74. package/dist/client/assets/{java-Cj0G6QRg.js → java-BvrigIoq.js} +1 -1
  75. package/dist/client/assets/{javascript-d5SUuyWD.js → javascript-DZkPTYAi.js} +1 -1
  76. package/dist/client/assets/{jinja-BTw9k0vO.js → jinja-Ceg7ui1S.js} +1 -1
  77. package/dist/client/assets/{jison-9xSVvR1q.js → jison-iE1GaOyN.js} +1 -1
  78. package/dist/client/assets/{journeyDiagram-JHISSGLW-Bd4jZUYI.js → journeyDiagram-JHISSGLW-CE6O3NhU.js} +1 -1
  79. package/dist/client/assets/{json-DjAt53ka.js → json-C0j8rEcg.js} +1 -1
  80. package/dist/client/assets/{jsx-BX5KmQ7d.js → jsx-B7eXljgz.js} +1 -1
  81. package/dist/client/assets/{julia-CLLx1dHC.js → julia-DMDw0aMP.js} +1 -1
  82. package/dist/client/assets/{just-C0v80bKe.js → just-BryMKRJ_.js} +1 -1
  83. package/dist/client/assets/{kanban-definition-UN3LZRKU-Ds4pXHJa.js → kanban-definition-UN3LZRKU-j-aU6Yzp.js} +1 -1
  84. package/dist/client/assets/{latex-DY-oQfwO.js → latex-BNC9-sjr.js} +1 -1
  85. package/dist/client/assets/{line-BbSLfOl6.js → line-CyEqpEDp.js} +1 -1
  86. package/dist/client/assets/{linear-BMIZJAAR.js → linear-CXeaA9km.js} +1 -1
  87. package/dist/client/assets/{liquid-DDHDgbZx.js → liquid-D-fQw-oJ.js} +1 -1
  88. package/dist/client/assets/{lua-CXymerKS.js → lua-CD2aJ_rS.js} +1 -1
  89. package/dist/client/assets/{marko-DoPFsptl.js → marko-BQ37hu6z.js} +1 -1
  90. package/dist/client/assets/{mdc-BxSmTphd.js → mdc-B5NUi3zZ.js} +1 -1
  91. package/dist/client/assets/{mermaid-parser.core-CcYSvN4q.js → mermaid-parser.core-BxHF_XbX.js} +1 -1
  92. package/dist/client/assets/{mermaid.core-COTNtqgQ.js → mermaid.core-BUtaf4P1.js} +3 -3
  93. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BTxraRzn.js → mindmap-definition-RKZ34NQL-D13tPu2o.js} +1 -1
  94. package/dist/client/assets/{nginx-Bma0jNOT.js → nginx-1W1E03Rg.js} +1 -1
  95. package/dist/client/assets/{nim-DMBpjygU.js → nim-C5A88bFP.js} +1 -1
  96. package/dist/client/assets/{perl-CrnrV-AJ.js → perl-BYoP0wNt.js} +1 -1
  97. package/dist/client/assets/{php-CDYxzX6t.js → php-CFxna09e.js} +1 -1
  98. package/dist/client/assets/{pieDiagram-4H26LBE5-DglRmzer.js → pieDiagram-4H26LBE5-CHL7Ml5w.js} +1 -1
  99. package/dist/client/assets/{pug-DNewy3GU.js → pug-BR4JgWAk.js} +1 -1
  100. package/dist/client/assets/{qml-COjcnZ-W.js → qml-D1U1EFEe.js} +1 -1
  101. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BjSmyES7.js → quadrantDiagram-W4KKPZXB-BnYtv-HY.js} +1 -1
  102. package/dist/client/assets/{r-CrCaMxLS.js → r-ChE6X060.js} +1 -1
  103. package/dist/client/assets/{razor-jeuOZIar.js → razor-B5iVfQMe.js} +1 -1
  104. package/dist/client/assets/{regexp-DSHVUX08.js → regexp-Dz2drUIf.js} +1 -1
  105. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B4f430jS.js → requirementDiagram-4Y6WPE33-D8QEGLKB.js} +1 -1
  106. package/dist/client/assets/{review-export-Cen1WEcX.js → review-export-CvFFbCAB.js} +1 -1
  107. package/dist/client/assets/{rst-CIDgytzc.js → rst-DZM3RGRs.js} +1 -1
  108. package/dist/client/assets/{ruby-DtuseoNq.js → ruby-DkXnm-J8.js} +1 -1
  109. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-TQPPlxc6.js → sankeyDiagram-5OEKKPKP-wVaks6lB.js} +1 -1
  110. package/dist/client/assets/{sas-C72Theia.js → sas-DMbpc71c.js} +1 -1
  111. package/dist/client/assets/{scss-ClECtwRk.js → scss-IwVMMp22.js} +1 -1
  112. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-D1tx07Wg.js → sequenceDiagram-3UESZ5HK-Cg31TB-R.js} +1 -1
  113. package/dist/client/assets/{shellscript-BCwBsi2k.js → shellscript-CIStAKx3.js} +1 -1
  114. package/dist/client/assets/{shellsession-BrOddEl5.js → shellsession-uLtzHhlo.js} +1 -1
  115. package/dist/client/assets/{soy-Dcs0GWFW.js → soy-BkxBYigm.js} +1 -1
  116. package/dist/client/assets/{sql-BAjA7Gv7.js → sql-Ba9y9EvJ.js} +1 -1
  117. package/dist/client/assets/{src-CYYhkqTK.js → src-9MKexpFu.js} +1 -1
  118. package/dist/client/assets/{stata-19ngQtzR.js → stata-CrPCbiIZ.js} +1 -1
  119. package/dist/client/assets/{stateDiagram-AJRCARHV-BZRCEzb5.js → stateDiagram-AJRCARHV-BbvNjVF6.js} +1 -1
  120. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-B5BbZkU5.js +1 -0
  121. package/dist/client/assets/{surrealql-Ce2TBRjE.js → surrealql-Dvip5u_o.js} +1 -1
  122. package/dist/client/assets/{svelte-DQ_1eGZz.js → svelte-xBLD60Zd.js} +1 -1
  123. package/dist/client/assets/{templ-Cw2DDxWF.js → templ-CWv68xbP.js} +1 -1
  124. package/dist/client/assets/{tex-myDSO2eP.js → tex-CHqz-fYs.js} +1 -1
  125. package/dist/client/assets/{timeline-definition-PNZ67QCA-CP0OZhBT.js → timeline-definition-PNZ67QCA-CWKkJ3QZ.js} +1 -1
  126. package/dist/client/assets/{ts-tags-rh39ZwVs.js → ts-tags-DS82EDuE.js} +1 -1
  127. package/dist/client/assets/{tsx-B0-26jrU.js → tsx-B2GBjp2F.js} +1 -1
  128. package/dist/client/assets/{twig-CgasHzPb.js → twig-CC8x9pG0.js} +1 -1
  129. package/dist/client/assets/{typescript-Dq3T0c-m.js → typescript-g7i13lnC.js} +1 -1
  130. package/dist/client/assets/{vennDiagram-CIIHVFJN-DHaKHj0j.js → vennDiagram-CIIHVFJN-OLItKWeg.js} +1 -1
  131. package/dist/client/assets/{vue-html-Bv2uFkTH.js → vue-html-D9GQtYub.js} +1 -1
  132. package/dist/client/assets/{vue-CzFVh92-.js → vue-rFbe7luB.js} +1 -1
  133. package/dist/client/assets/{vue-vine-DzieBk9Y.js → vue-vine-mrNtQtY5.js} +1 -1
  134. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dky7jxlZ.js → wardleyDiagram-YWT4CUSO-Dy1yfeb4.js} +1 -1
  135. package/dist/client/assets/{xml-wcdHRHN8.js → xml-CHfMjyAM.js} +1 -1
  136. package/dist/client/assets/{xsl-CXrwsLG9.js → xsl-BFkNSogJ.js} +1 -1
  137. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BQ2hG60h.js → xychartDiagram-2RQKCTM6-DfSnfjVL.js} +1 -1
  138. package/dist/client/assets/{yaml-lO6lK6Xe.js → yaml-BfSgHc04.js} +1 -1
  139. package/dist/client/index.html +2 -2
  140. package/dist/{completions-3UF8uzhx.mjs → completions-BO2DUM-8.mjs} +21 -1
  141. package/dist/{doctor-BGYZNIYP.mjs → doctor-D0Y3kOY7.mjs} +5 -4
  142. package/dist/{find-tui-binary-CRpbYXLC.mjs → find-tui-binary-B71xiwWu.mjs} +33 -15
  143. package/dist/{github-DKT0lJXv.mjs → github-CErBub2y.mjs} +1 -1
  144. package/dist/{github-CEjtGd41.mjs → github-DBsZ0h_l.mjs} +3 -3
  145. package/dist/{github-attachments-Cf17YWp4.mjs → github-attachments-plDeB0iE.mjs} +1 -1
  146. package/dist/{mcp-Dq7J5QOP.mjs → mcp-DtVrMR2S.mjs} +13 -7
  147. package/dist/native/tui-darwin-arm64/diffing-tui +0 -0
  148. package/dist/native/tui-darwin-x64/diffing-tui +0 -0
  149. package/dist/native/tui-linux-arm64-gnu/diffing-tui +0 -0
  150. package/dist/native/tui-linux-arm64-musl/diffing-tui +0 -0
  151. package/dist/native/tui-linux-x64-gnu/diffing-tui +0 -0
  152. package/dist/native/tui-linux-x64-musl/diffing-tui +0 -0
  153. package/dist/native/tui-win32-x64-msvc/diffing-tui.exe +0 -0
  154. package/dist/{review-export-BBDWvftT.mjs → review-export-B63eRAVa.mjs} +1 -1
  155. package/dist/{settings-bwe7yQ8U.mjs → search-BMPY_ZW8.mjs} +117 -97
  156. package/dist/search-BO9Im7eu.mjs +2 -0
  157. package/dist/{server-C9i4V36o.mjs → server-j0PnTVX1.mjs} +146 -75
  158. package/dist/server-lock-CY0_1mcS.mjs +275 -0
  159. package/dist/session-conflict-C6V9ZKo7.mjs +96 -0
  160. package/dist/session-manager-CYNchhVA.mjs +159 -0
  161. package/dist/settings-yK0GYpbn.mjs +60 -0
  162. package/dist/tui-search-bridge-Bfb2ktdA.mjs +133 -0
  163. package/package.json +6 -4
  164. package/dist/client/assets/channel-lsVHTuYR.js +0 -1
  165. package/dist/client/assets/chunk-QZHKN3VN-AHUiTM0z.js +0 -1
  166. package/dist/client/assets/chunk-WU5MYG2G-D41j4yxb.js +0 -1
  167. package/dist/client/assets/classDiagram-4FO5ZUOK-D1Eo3kly.js +0 -1
  168. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-bAMsbsfB.js +0 -1
  169. package/dist/client/assets/index-B42c0TyV.css +0 -1
  170. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Da-mGMA2.js +0 -1
  171. package/dist/server-lock-Dd_ss_Il.mjs +0 -153
  172. /package/dist/{apply-suggestion-DNNsC5gx.mjs → apply-suggestion-CHYnw68I.mjs} +0 -0
  173. /package/dist/{comment-format-B5AcGcR-.mjs → comment-format-B85NHZnG.mjs} +0 -0
  174. /package/dist/{diff-fingerprint-C8YO3TTE.mjs → diff-fingerprint-BgR0tu1o.mjs} +0 -0
  175. /package/dist/{handoff-DPoIyeWn.mjs → handoff-LAFtmnHf.mjs} +0 -0
  176. /package/dist/{plan-format-BQyx--mp.mjs → plan-format-BwJh5JSE.mjs} +0 -0
  177. /package/dist/{update-check-DUuHmPeZ.mjs → update-check-Copcz9eb.mjs} +0 -0
@@ -1,16 +1,15 @@
1
1
  import { d as getProjectStorageDir, p as getRepoRoot } from "./git-Czo96ymM.mjs";
2
2
  import { join } from "node:path";
3
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
- import { homedir } from "node:os";
3
+ import { mkdirSync } from "node:fs";
5
4
  //#region src/lib/symbols.ts
6
5
  const SYMBOL_PATTERNS = [
7
6
  {
8
- pattern: /^\s*(?:export\s+)?(?:async\s+)?function\s+(\w[\w$]*)\s*[<(]/i,
7
+ pattern: /^\s*(?:(?:export|declare)\s+)*(?:default\s+)?(?:async\s+)?function\s+(\w[\w$]*)\s*[<(]/i,
9
8
  kind: "function",
10
9
  nameGroup: 1
11
10
  },
12
11
  {
13
- pattern: /^\s*(?:export\s+)?(?:const|let|var)\s+(\w[\w$]*)\s*=\s*(?:async\s*)?\(/i,
12
+ pattern: /^\s*(?:export\s+)?(?:const|let|var)\s+(\w[\w$]*)\s*=\s*(?:async\s*)?(?:\([^)]*\)|\w[\w$]*)\s*=>/i,
14
13
  kind: "function",
15
14
  nameGroup: 1
16
15
  },
@@ -20,58 +19,93 @@ const SYMBOL_PATTERNS = [
20
19
  nameGroup: 1
21
20
  },
22
21
  {
23
- pattern: /^\s*(?:export\s+)?class\s+(\w[\w$]*)/i,
22
+ pattern: /^\s*(?:(?:export|declare)\s+)*(?:default\s+)?(?:abstract\s+)?class\s+(\w[\w$]*)/i,
24
23
  kind: "class",
25
24
  nameGroup: 1
26
25
  },
27
26
  {
28
- pattern: /^\s*(?:export\s+)?interface\s+(\w[\w$]*)/i,
27
+ pattern: /^\s*(?:(?:export|declare)\s+)*interface\s+(\w[\w$]*)/i,
29
28
  kind: "interface",
30
29
  nameGroup: 1
31
30
  },
32
31
  {
33
- pattern: /^\s*(?:export\s+)?type\s+(\w[\w$]*)\s*=/i,
32
+ pattern: /^\s*(?:(?:export|declare)\s+)*type\s+(\w[\w$]*)\s*=/i,
34
33
  kind: "type",
35
34
  nameGroup: 1
36
35
  },
37
36
  {
38
- pattern: /^\s*(?:export\s+)?enum\s+(\w[\w$]*)/i,
37
+ pattern: /^\s*(?:(?:export|declare)\s+)*(?:const\s+)?enum\s+(\w[\w$]*)/i,
39
38
  kind: "enum",
40
39
  nameGroup: 1
41
40
  },
41
+ {
42
+ pattern: /^\s*(?:(?:export|declare)\s+)*namespace\s+(\w[\w$]*)/i,
43
+ kind: "namespace",
44
+ nameGroup: 1
45
+ },
42
46
  {
43
47
  pattern: /^\s*(?:export\s+)?(?:const|let|var)\s+(\w[\w$]*)\s*=/i,
44
48
  kind: "variable",
45
49
  nameGroup: 1
46
50
  },
47
51
  {
48
- pattern: /^\s*def\s+(\w[\w$]*)\s*\(/i,
52
+ pattern: /^\s*(?!(?:if|for|while|switch|catch)\b)(?:(?:public|private|protected|static|async|abstract|readonly|override|get|set)\s+)*(\w[\w$]*)\s*(?:<[^>]+>)?\s*\([^)]*\)\s*(?:\{|:[^={]+[;{])/i,
53
+ kind: "method",
54
+ nameGroup: 1
55
+ },
56
+ {
57
+ pattern: /^\s*(?:async\s+)?def\s+(\w[\w$]*)\s*\(/i,
49
58
  kind: "function",
50
59
  nameGroup: 1
51
60
  },
52
61
  {
53
- pattern: /^\s*(?:pub(?:\s*\(\w+\))?\s+)?fn\s+(\w[\w$]*)\s*[<(]/i,
62
+ pattern: /^\s*class\s+(\w[\w$]*)\s*(?:\(|:)/i,
63
+ kind: "class",
64
+ nameGroup: 1
65
+ },
66
+ {
67
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?(?:(?:async|const|unsafe)\s+|extern(?:\s+"[^"]+")?\s+)*fn\s+(\w[\w$]*)\s*[<(]/i,
54
68
  kind: "function",
55
69
  nameGroup: 1
56
70
  },
57
71
  {
58
- pattern: /^\s*(?:pub(?:\s*\(\w+\))?\s+)?struct\s+(\w[\w$]*)/i,
72
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?struct\s+(\w[\w$]*)/i,
59
73
  kind: "struct",
60
74
  nameGroup: 1
61
75
  },
62
76
  {
63
- pattern: /^\s*(?:pub(?:\s*\(\w+\))?\s+)?enum\s+(\w[\w$]*)/i,
77
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?enum\s+(\w[\w$]*)/i,
64
78
  kind: "enum",
65
79
  nameGroup: 1
66
80
  },
67
81
  {
68
- pattern: /^\s*(?:pub(?:\s*\(\w+\))?\s+)?impl\s+(\w[\w$]*)/i,
82
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?trait\s+(\w[\w$]*)/i,
83
+ kind: "trait",
84
+ nameGroup: 1
85
+ },
86
+ {
87
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?(?:type|mod)\s+(\w[\w$]*)/i,
88
+ kind: "type",
89
+ nameGroup: 1
90
+ },
91
+ {
92
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?impl(?:<[^>]+>)?\s+[^\s]+\s+for\s+(\w[\w$]*)/i,
69
93
  kind: "impl",
70
94
  nameGroup: 1
71
95
  },
72
96
  {
73
- pattern: /^\s*(?:pub(?:\s*\(\w+\))?\s+)?trait\s+(\w[\w$]*)/i,
74
- kind: "trait",
97
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?impl(?:<[^>]+>)?\s+(\w[\w$]*)/i,
98
+ kind: "impl",
99
+ nameGroup: 1
100
+ },
101
+ {
102
+ pattern: /^\s*(?:pub(?:\s*\([^)]*\))?\s+)?(?:const|static)\s+(\w[\w$]*)\s*[:=]/i,
103
+ kind: "variable",
104
+ nameGroup: 1
105
+ },
106
+ {
107
+ pattern: /^\s*func\s+\([^)]*\)\s+(\w[\w$]*)\s*\(/i,
108
+ kind: "method",
75
109
  nameGroup: 1
76
110
  },
77
111
  {
@@ -80,9 +114,14 @@ const SYMBOL_PATTERNS = [
80
114
  nameGroup: 1
81
115
  },
82
116
  {
83
- pattern: /^\s*(?:func\s+)?\((\w[\w$]*)\s+\*?\w+\)\s+(\w[\w$]*)\s*\(/i,
84
- kind: "method",
85
- nameGroup: 2
117
+ pattern: /^\s*type\s+(\w[\w$]*)\s+(?:struct|interface|=)/i,
118
+ kind: "type",
119
+ nameGroup: 1
120
+ },
121
+ {
122
+ pattern: /^\s*(?:var|const)\s+(\w[\w$]*)\b/i,
123
+ kind: "variable",
124
+ nameGroup: 1
86
125
  }
87
126
  ];
88
127
  /**
@@ -206,10 +245,13 @@ async function searchFiles(query, opts = {}) {
206
245
  error: res.error
207
246
  };
208
247
  const items = [];
248
+ let filteredTotal = 0;
209
249
  const { items: raw, scores } = res.value;
210
- for (let i = 0; i < raw.length && items.length < limit; i++) {
250
+ for (let i = 0; i < raw.length; i++) {
211
251
  const it = raw[i];
212
252
  if (pathSet && !pathSet.has(it.relativePath)) continue;
253
+ filteredTotal++;
254
+ if (items.length >= limit) continue;
213
255
  const score = scores[i];
214
256
  items.push({
215
257
  path: it.relativePath,
@@ -222,7 +264,7 @@ async function searchFiles(query, opts = {}) {
222
264
  return {
223
265
  scope: "files",
224
266
  items,
225
- total: res.value.totalMatched,
267
+ total: pathSet ? filteredTotal : res.value.totalMatched,
226
268
  indexing: isIndexing(f)
227
269
  };
228
270
  }
@@ -259,15 +301,17 @@ async function searchContent(query, opts = {}) {
259
301
  error: res.error
260
302
  };
261
303
  const items = [];
304
+ let filteredTotal = 0;
262
305
  for (const m of res.value.items) {
263
- if (items.length >= limit) break;
264
306
  if (pathSet && !pathSet.has(m.relativePath)) continue;
307
+ filteredTotal++;
308
+ if (items.length >= limit) continue;
265
309
  items.push(toContentHit(m));
266
310
  }
267
311
  return {
268
312
  scope: "text",
269
313
  items,
270
- total: res.value.totalMatched,
314
+ total: pathSet ? filteredTotal : res.value.totalMatched,
271
315
  indexing: isIndexing(f),
272
316
  regexError: res.value.regexFallbackError || void 0
273
317
  };
@@ -318,8 +362,8 @@ async function searchSymbols(query, opts = {}) {
318
362
  const items = [];
319
363
  const ql = query.toLowerCase();
320
364
  const seen = /* @__PURE__ */ new Set();
365
+ let total = 0;
321
366
  for (const m of res.value.items) {
322
- if (items.length >= limit) break;
323
367
  if (pathSet && !pathSet.has(m.relativePath)) continue;
324
368
  const sym = classifySymbolLine(m.lineContent);
325
369
  if (!sym) continue;
@@ -327,6 +371,8 @@ async function searchSymbols(query, opts = {}) {
327
371
  const key = `${m.relativePath}:${m.lineNumber}:${sym.name}`;
328
372
  if (seen.has(key)) continue;
329
373
  seen.add(key);
374
+ total++;
375
+ if (items.length >= limit) continue;
330
376
  const nameIdx = m.lineContent.indexOf(sym.name);
331
377
  const matchRanges = nameIdx >= 0 ? [[nameIdx, nameIdx + sym.name.length]] : m.matchRanges ?? [];
332
378
  items.push({
@@ -343,7 +389,7 @@ async function searchSymbols(query, opts = {}) {
343
389
  return {
344
390
  scope: "symbols",
345
391
  items,
346
- total: items.length,
392
+ total,
347
393
  indexing: isIndexing(f)
348
394
  };
349
395
  }
@@ -363,30 +409,57 @@ async function searchAll(query, opts = {}) {
363
409
  limit
364
410
  })
365
411
  ]);
366
- const items = [];
367
- for (const hit of filesRes.items) items.push({
412
+ return mergeSearchResponses(filesRes, contentRes, symbolsRes, limit);
413
+ }
414
+ /** Merge the three engines into the All scope without duplicating definition
415
+ * lines as both Symbol and Text rows. Exported to keep the result contract
416
+ * independently testable without loading the native fff addon. */
417
+ function mergeSearchResponses(filesRes, contentRes, symbolsRes, limit = DEFAULT_LIMIT) {
418
+ const boundedLimit = clampLimit(limit);
419
+ const fileItems = filesRes.items.map((hit) => ({
368
420
  kind: "file",
369
421
  hit
422
+ }));
423
+ const symbolLocations = /* @__PURE__ */ new Set();
424
+ const symbolItems = symbolsRes.items.map((hit) => {
425
+ symbolLocations.add(`${hit.path}:${hit.line}`);
426
+ return {
427
+ kind: "symbol",
428
+ hit
429
+ };
370
430
  });
371
- for (const hit of symbolsRes.items) items.push({
372
- kind: "symbol",
373
- hit
374
- });
375
- for (const hit of contentRes.items) items.push({
376
- kind: "text",
377
- hit
378
- });
379
- const total = (filesRes.total || 0) + (contentRes.total || 0) + (symbolsRes.total || 0);
380
- const indexing = filesRes.indexing || contentRes.indexing || symbolsRes.indexing;
381
- const error = filesRes.error || contentRes.error || symbolsRes.error;
382
- const regexError = contentRes.regexError;
431
+ const textItems = [];
432
+ for (const hit of contentRes.items) {
433
+ if (symbolLocations.has(`${hit.path}:${hit.line}`)) continue;
434
+ textItems.push({
435
+ kind: "text",
436
+ hit
437
+ });
438
+ }
439
+ const items = [];
440
+ const groups = [
441
+ fileItems,
442
+ symbolItems,
443
+ textItems
444
+ ];
445
+ for (let row = 0; items.length < boundedLimit; row++) {
446
+ let appended = false;
447
+ for (const group of groups) {
448
+ const item = group[row];
449
+ if (!item) continue;
450
+ items.push(item);
451
+ appended = true;
452
+ if (items.length === boundedLimit) break;
453
+ }
454
+ if (!appended) break;
455
+ }
383
456
  return {
384
457
  scope: "all",
385
- items: items.slice(0, limit),
386
- total,
387
- indexing,
388
- error,
389
- regexError
458
+ items,
459
+ total: (filesRes.total || 0) + (contentRes.total || 0),
460
+ indexing: filesRes.indexing || contentRes.indexing || symbolsRes.indexing,
461
+ error: filesRes.error || contentRes.error || symbolsRes.error,
462
+ regexError: contentRes.regexError
390
463
  };
391
464
  }
392
465
  async function getSearchStatus() {
@@ -422,57 +495,4 @@ async function trackSelection(query, path) {
422
495
  } catch {}
423
496
  }
424
497
  //#endregion
425
- //#region src/lib/settings.ts
426
- const CONFIG_DIR = join(homedir(), ".config", "diffing");
427
- const SETTINGS_FILE = join(CONFIG_DIR, "settings.json");
428
- const DEFAULTS = {
429
- staged: true,
430
- untracked: true,
431
- diffStyle: "split",
432
- defaultTabSize: 4,
433
- theme: "rose-pine",
434
- editorIDE: "default",
435
- lineDiffType: "word",
436
- lineWrap: false,
437
- diffIndicators: "classic",
438
- showLineNumbers: true,
439
- hunkSeparators: "line-info",
440
- lineHoverHighlight: "both",
441
- fontSize: 13,
442
- expandContextByDefault: false,
443
- collapsedContextThreshold: 10,
444
- expansionLineCount: 20,
445
- haptics: true,
446
- sounds: true,
447
- uiFont: null,
448
- monoFont: null,
449
- density: "comfortable",
450
- autoCollapseLineThreshold: 400,
451
- requireViewAllBeforeSend: false,
452
- showStatusBar: true,
453
- savedReplies: [],
454
- ignoreSpaceChange: false,
455
- ignoreAllSpace: false
456
- };
457
- function loadSettings() {
458
- try {
459
- const data = readFileSync(SETTINGS_FILE, "utf-8");
460
- return {
461
- ...DEFAULTS,
462
- ...JSON.parse(data)
463
- };
464
- } catch {
465
- return { ...DEFAULTS };
466
- }
467
- }
468
- function saveSettings(settings) {
469
- const merged = {
470
- ...loadSettings(),
471
- ...settings
472
- };
473
- mkdirSync(CONFIG_DIR, { recursive: true });
474
- writeFileSync(SETTINGS_FILE, JSON.stringify(merged, null, 2));
475
- return merged;
476
- }
477
- //#endregion
478
- export { searchContent as a, trackSelection as c, searchAll as i, saveSettings as n, searchFiles as o, getSearchStatus as r, searchSymbols as s, loadSettings as t };
498
+ export { searchFiles as a, searchContent as i, mergeSearchResponses as n, searchSymbols as o, searchAll as r, trackSelection as s, getSearchStatus as t };
@@ -0,0 +1,2 @@
1
+ import { a as searchFiles, i as searchContent, o as searchSymbols, r as searchAll, s as trackSelection } from "./search-BMPY_ZW8.mjs";
2
+ export { searchAll, searchContent, searchFiles, searchSymbols, trackSelection };