@fresh-editor/fresh-editor 0.3.5 → 0.3.7

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 (39) hide show
  1. package/CHANGELOG.md +147 -0
  2. package/README.md +9 -2
  3. package/package.json +1 -1
  4. package/plugins/audit_mode.i18n.json +84 -0
  5. package/plugins/audit_mode.ts +139 -3
  6. package/plugins/config-schema.json +33 -3
  7. package/plugins/dashboard.ts +34 -111
  8. package/plugins/flash.ts +22 -4
  9. package/plugins/git_blame.ts +10 -6
  10. package/plugins/git_log.ts +705 -323
  11. package/plugins/git_statusbar.i18n.json +72 -0
  12. package/plugins/git_statusbar.ts +133 -0
  13. package/plugins/goto_with_selection.i18n.json +58 -0
  14. package/plugins/goto_with_selection.ts +17 -0
  15. package/plugins/lib/fresh.d.ts +911 -15
  16. package/plugins/lib/index.ts +34 -0
  17. package/plugins/lib/widgets.ts +903 -0
  18. package/plugins/live_diff.ts +442 -32
  19. package/plugins/merge_conflict.ts +89 -64
  20. package/plugins/orchestrator.ts +3425 -0
  21. package/plugins/pkg.ts +235 -54
  22. package/plugins/rust-lsp.ts +58 -40
  23. package/plugins/schemas/theme.schema.json +18 -0
  24. package/plugins/search_replace.i18n.json +140 -28
  25. package/plugins/search_replace.ts +1335 -515
  26. package/plugins/tab_actions.i18n.json +212 -0
  27. package/plugins/tab_actions.ts +76 -0
  28. package/plugins/theme_editor.i18n.json +112 -0
  29. package/plugins/theme_editor.ts +30 -5
  30. package/plugins/tsconfig.json +3 -0
  31. package/plugins/vi_mode.ts +49 -17
  32. package/themes/dark.json +1 -0
  33. package/themes/dracula.json +1 -0
  34. package/themes/high-contrast.json +1 -0
  35. package/themes/light.json +1 -0
  36. package/themes/nord.json +1 -0
  37. package/themes/nostalgia.json +1 -0
  38. package/themes/solarized-dark.json +1 -0
  39. package/themes/terminal.json +4 -0
@@ -131,10 +131,16 @@
131
131
  "field.ruler_bg_desc": "Barva svislé čáry pravítka",
132
132
  "field.diff_add_bg": "Diff Added pozadí",
133
133
  "field.diff_add_bg_desc": "Diff added řádek pozadí",
134
+ "field.diff_add_fg": "Diff Added popředí",
135
+ "field.diff_add_fg_desc": "Diff added řádek popředí",
134
136
  "field.diff_remove_bg": "Diff Removed pozadí",
135
137
  "field.diff_remove_bg_desc": "Diff removed řádek pozadí",
138
+ "field.diff_remove_fg": "Diff Removed popředí",
139
+ "field.diff_remove_fg_desc": "Diff removed řádek popředí",
136
140
  "field.diff_modify_bg": "Diff upraveno pozadí",
137
141
  "field.diff_modify_bg_desc": "Diff upraveno řádek pozadí",
142
+ "field.diff_modify_fg": "Diff upraveno popředí",
143
+ "field.diff_modify_fg_desc": "Diff upraveno řádek popředí",
138
144
  "field.tab_active_fg": "aktivní Tab popředí",
139
145
  "field.tab_active_fg_desc": "aktivní tab text barva",
140
146
  "field.tab_active_bg": "aktivní Tab pozadí",
@@ -209,6 +215,8 @@
209
215
  "field.popup_selection_bg_desc": "vyskakovací okno selected item pozadí",
210
216
  "field.popup_text_fg": "vyskakovací okno text popředí",
211
217
  "field.popup_text_fg_desc": "vyskakovací okno window text barva",
218
+ "field.text_input_selection_bg": "pozadí výběru textového pole",
219
+ "field.text_input_selection_bg_desc": "pozadí pro vybraný text uvnitř textového pole widgetu",
212
220
  "field.suggestion_bg": "Suggestion pozadí",
213
221
  "field.suggestion_bg_desc": "Autocomplete suggestion pozadí",
214
222
  "field.suggestion_selected_bg": "Suggestion Selected pozadí",
@@ -522,6 +530,8 @@
522
530
  "field.popup_selection_bg_desc": "Hintergrund des ausgewaehlten Popup-Elements",
523
531
  "field.popup_text_fg": "Popup Text Vordergrund",
524
532
  "field.popup_text_fg_desc": "Textfarbe des Popup-Fensters",
533
+ "field.text_input_selection_bg": "Texteingabe Auswahl Hintergrund",
534
+ "field.text_input_selection_bg_desc": "Hintergrund der Auswahl in einer Widget-Texteingabe",
525
535
  "field.suggestion_bg": "Vorschlag Hintergrund",
526
536
  "field.suggestion_bg_desc": "Hintergrund der Autovervollstaendigung",
527
537
  "field.suggestion_selected_bg": "Ausgewaehlter Vorschlag Hintergrund",
@@ -624,14 +634,20 @@
624
634
  "prompt.delete_no": "Cancel",
625
635
  "field.diff_add_bg": "Diff Added Background",
626
636
  "field.diff_add_bg_desc": "Diff added line background",
637
+ "field.diff_add_fg": "Diff Added Foreground",
638
+ "field.diff_add_fg_desc": "Diff added line foreground",
627
639
  "field.diff_remove_bg": "Diff Removed Background",
628
640
  "field.diff_remove_bg_desc": "Diff removed line background",
641
+ "field.diff_remove_fg": "Diff Removed Foreground",
642
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
629
643
  "field.diff_add_highlight_bg": "Diff Hinzugefügt Hervorhebung",
630
644
  "field.diff_add_highlight_bg_desc": "Wort-Hervorhebung für hinzugefügten Inhalt",
631
645
  "field.diff_remove_highlight_bg": "Diff Entfernt Hervorhebung",
632
646
  "field.diff_remove_highlight_bg_desc": "Wort-Hervorhebung für entfernten Inhalt",
633
647
  "field.diff_modify_bg": "Diff Modified Background",
634
648
  "field.diff_modify_bg_desc": "Diff modified line background",
649
+ "field.diff_modify_fg": "Diff Modified Foreground",
650
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
635
651
  "field.status_warning_indicator_bg": "Warning Indicator Background",
636
652
  "field.status_warning_indicator_bg_desc": "Warning indicator background in status bar",
637
653
  "field.status_warning_indicator_fg": "Warning Indicator Foreground",
@@ -817,14 +833,20 @@
817
833
  "field.ruler_bg_desc": "Vertical ruler line color",
818
834
  "field.diff_add_bg": "Diff Added Background",
819
835
  "field.diff_add_bg_desc": "Diff added line background",
836
+ "field.diff_add_fg": "Diff Added Foreground",
837
+ "field.diff_add_fg_desc": "Diff added line foreground",
820
838
  "field.diff_remove_bg": "Diff Removed Background",
821
839
  "field.diff_remove_bg_desc": "Diff removed line background",
840
+ "field.diff_remove_fg": "Diff Removed Foreground",
841
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
822
842
  "field.diff_add_highlight_bg": "Diff Added Highlight",
823
843
  "field.diff_add_highlight_bg_desc": "Word-level highlight for added content",
824
844
  "field.diff_remove_highlight_bg": "Diff Removed Highlight",
825
845
  "field.diff_remove_highlight_bg_desc": "Word-level highlight for removed content",
826
846
  "field.diff_modify_bg": "Diff Modified Background",
827
847
  "field.diff_modify_bg_desc": "Diff modified line background",
848
+ "field.diff_modify_fg": "Diff Modified Foreground",
849
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
828
850
  "field.tab_active_fg": "Active Tab Foreground",
829
851
  "field.tab_active_fg_desc": "Active tab text color",
830
852
  "field.tab_active_bg": "Active Tab Background",
@@ -899,6 +921,8 @@
899
921
  "field.popup_selection_bg_desc": "Popup selected item background",
900
922
  "field.popup_text_fg": "Popup Text Foreground",
901
923
  "field.popup_text_fg_desc": "Popup window text color",
924
+ "field.text_input_selection_bg": "Text Input Selection Background",
925
+ "field.text_input_selection_bg_desc": "Background for selected text inside a widget text input",
902
926
  "field.suggestion_bg": "Suggestion Background",
903
927
  "field.suggestion_bg_desc": "Autocomplete suggestion background",
904
928
  "field.suggestion_selected_bg": "Suggestion Selected Background",
@@ -1208,6 +1232,8 @@
1208
1232
  "field.popup_selection_bg_desc": "Fondo de elemento seleccionado en ventana emergente",
1209
1233
  "field.popup_text_fg": "Primer plano de texto de ventana emergente",
1210
1234
  "field.popup_text_fg_desc": "Color de texto de ventana emergente",
1235
+ "field.text_input_selection_bg": "Fondo de selección de campo de texto",
1236
+ "field.text_input_selection_bg_desc": "Color de fondo del texto seleccionado dentro de un campo de texto de widget",
1211
1237
  "field.suggestion_bg": "Fondo de sugerencia",
1212
1238
  "field.suggestion_bg_desc": "Fondo de sugerencia de autocompletado",
1213
1239
  "field.suggestion_selected_bg": "Fondo de sugerencia seleccionada",
@@ -1310,14 +1336,20 @@
1310
1336
  "prompt.delete_no": "Cancel",
1311
1337
  "field.diff_add_bg": "Diff Added Background",
1312
1338
  "field.diff_add_bg_desc": "Diff added line background",
1339
+ "field.diff_add_fg": "Diff Added Foreground",
1340
+ "field.diff_add_fg_desc": "Diff added line foreground",
1313
1341
  "field.diff_remove_bg": "Diff Removed Background",
1314
1342
  "field.diff_remove_bg_desc": "Diff removed line background",
1343
+ "field.diff_remove_fg": "Diff Removed Foreground",
1344
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
1315
1345
  "field.diff_add_highlight_bg": "Resaltado Diff Añadido",
1316
1346
  "field.diff_add_highlight_bg_desc": "Resaltado a nivel de palabra para contenido añadido",
1317
1347
  "field.diff_remove_highlight_bg": "Resaltado Diff Eliminado",
1318
1348
  "field.diff_remove_highlight_bg_desc": "Resaltado a nivel de palabra para contenido eliminado",
1319
1349
  "field.diff_modify_bg": "Diff Modified Background",
1320
1350
  "field.diff_modify_bg_desc": "Diff modified line background",
1351
+ "field.diff_modify_fg": "Diff Modified Foreground",
1352
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
1321
1353
  "field.status_warning_indicator_bg": "Warning Indicator Background",
1322
1354
  "field.status_warning_indicator_bg_desc": "Warning indicator background in status bar",
1323
1355
  "field.status_warning_indicator_fg": "Warning Indicator Foreground",
@@ -1551,6 +1583,8 @@
1551
1583
  "field.popup_selection_bg_desc": "Arriere-plan de l'element selectionne du popup",
1552
1584
  "field.popup_text_fg": "Premier plan texte popup",
1553
1585
  "field.popup_text_fg_desc": "Couleur du texte de la fenetre popup",
1586
+ "field.text_input_selection_bg": "Arriere-plan de selection du champ texte",
1587
+ "field.text_input_selection_bg_desc": "Couleur de fond du texte selectionne dans un champ de saisie de widget",
1554
1588
  "field.suggestion_bg": "Arriere-plan suggestion",
1555
1589
  "field.suggestion_bg_desc": "Arriere-plan de l'autocompletion",
1556
1590
  "field.suggestion_selected_bg": "Arriere-plan suggestion selectionnee",
@@ -1653,14 +1687,20 @@
1653
1687
  "prompt.delete_no": "Cancel",
1654
1688
  "field.diff_add_bg": "Diff Added Background",
1655
1689
  "field.diff_add_bg_desc": "Diff added line background",
1690
+ "field.diff_add_fg": "Diff Added Foreground",
1691
+ "field.diff_add_fg_desc": "Diff added line foreground",
1656
1692
  "field.diff_remove_bg": "Diff Removed Background",
1657
1693
  "field.diff_remove_bg_desc": "Diff removed line background",
1694
+ "field.diff_remove_fg": "Diff Removed Foreground",
1695
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
1658
1696
  "field.diff_add_highlight_bg": "Surlignage Diff Ajouté",
1659
1697
  "field.diff_add_highlight_bg_desc": "Surlignage au niveau des mots pour le contenu ajouté",
1660
1698
  "field.diff_remove_highlight_bg": "Surlignage Diff Supprimé",
1661
1699
  "field.diff_remove_highlight_bg_desc": "Surlignage au niveau des mots pour le contenu supprimé",
1662
1700
  "field.diff_modify_bg": "Diff Modified Background",
1663
1701
  "field.diff_modify_bg_desc": "Diff modified line background",
1702
+ "field.diff_modify_fg": "Diff Modified Foreground",
1703
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
1664
1704
  "field.status_warning_indicator_bg": "Warning Indicator Background",
1665
1705
  "field.status_warning_indicator_bg_desc": "Warning indicator background in status bar",
1666
1706
  "field.status_warning_indicator_fg": "Warning Indicator Foreground",
@@ -1894,6 +1934,8 @@
1894
1934
  "field.popup_selection_bg_desc": "ポップアップの選択項目の背景",
1895
1935
  "field.popup_text_fg": "ポップアップテキスト前景",
1896
1936
  "field.popup_text_fg_desc": "ポップアップウィンドウのテキスト色",
1937
+ "field.text_input_selection_bg": "テキスト入力選択背景",
1938
+ "field.text_input_selection_bg_desc": "ウィジェットのテキスト入力欄で選択されたテキストの背景色",
1897
1939
  "field.suggestion_bg": "候補背景",
1898
1940
  "field.suggestion_bg_desc": "オートコンプリート候補の背景",
1899
1941
  "field.suggestion_selected_bg": "選択候補背景",
@@ -1996,14 +2038,20 @@
1996
2038
  "prompt.delete_no": "Cancel",
1997
2039
  "field.diff_add_bg": "Diff Added Background",
1998
2040
  "field.diff_add_bg_desc": "Diff added line background",
2041
+ "field.diff_add_fg": "Diff Added Foreground",
2042
+ "field.diff_add_fg_desc": "Diff added line foreground",
1999
2043
  "field.diff_remove_bg": "Diff Removed Background",
2000
2044
  "field.diff_remove_bg_desc": "Diff removed line background",
2045
+ "field.diff_remove_fg": "Diff Removed Foreground",
2046
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
2001
2047
  "field.diff_add_highlight_bg": "Diff追加ハイライト",
2002
2048
  "field.diff_add_highlight_bg_desc": "追加コンテンツの単語レベルハイライト",
2003
2049
  "field.diff_remove_highlight_bg": "Diff削除ハイライト",
2004
2050
  "field.diff_remove_highlight_bg_desc": "削除コンテンツの単語レベルハイライト",
2005
2051
  "field.diff_modify_bg": "Diff Modified Background",
2006
2052
  "field.diff_modify_bg_desc": "Diff modified line background",
2053
+ "field.diff_modify_fg": "Diff Modified Foreground",
2054
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
2007
2055
  "field.status_warning_indicator_bg": "Warning Indicator Background",
2008
2056
  "field.status_warning_indicator_bg_desc": "Warning indicator background in status bar",
2009
2057
  "field.status_warning_indicator_fg": "Warning Indicator Foreground",
@@ -2189,10 +2237,16 @@
2189
2237
  "field.ruler_bg_desc": "수직 눈금자 선 색상",
2190
2238
  "field.diff_add_bg": "Diff Added 배경",
2191
2239
  "field.diff_add_bg_desc": "Diff added 줄 배경",
2240
+ "field.diff_add_fg": "Diff Added 전경",
2241
+ "field.diff_add_fg_desc": "Diff added 줄 전경",
2192
2242
  "field.diff_remove_bg": "Diff Removed 배경",
2193
2243
  "field.diff_remove_bg_desc": "Diff removed 줄 배경",
2244
+ "field.diff_remove_fg": "Diff Removed 전경",
2245
+ "field.diff_remove_fg_desc": "Diff removed 줄 전경",
2194
2246
  "field.diff_modify_bg": "Diff 수정됨 배경",
2195
2247
  "field.diff_modify_bg_desc": "Diff 수정됨 줄 배경",
2248
+ "field.diff_modify_fg": "Diff 수정됨 전경",
2249
+ "field.diff_modify_fg_desc": "Diff 수정됨 줄 전경",
2196
2250
  "field.tab_active_fg": "활성 Tab 전경",
2197
2251
  "field.tab_active_fg_desc": "활성 tab 텍스트 색상",
2198
2252
  "field.tab_active_bg": "활성 Tab 배경",
@@ -2267,6 +2321,8 @@
2267
2321
  "field.popup_selection_bg_desc": "팝업 selected item 배경",
2268
2322
  "field.popup_text_fg": "팝업 텍스트 전경",
2269
2323
  "field.popup_text_fg_desc": "팝업 window 텍스트 색상",
2324
+ "field.text_input_selection_bg": "텍스트 입력 선택 배경",
2325
+ "field.text_input_selection_bg_desc": "위젯 텍스트 입력란에서 선택된 텍스트의 배경색",
2270
2326
  "field.suggestion_bg": "Suggestion 배경",
2271
2327
  "field.suggestion_bg_desc": "Autocomplete suggestion 배경",
2272
2328
  "field.suggestion_selected_bg": "Suggestion Selected 배경",
@@ -2532,10 +2588,16 @@
2532
2588
  "field.ruler_bg_desc": "Cor da linha da regua vertical",
2533
2589
  "field.diff_add_bg": "Diff Added fundo",
2534
2590
  "field.diff_add_bg_desc": "Diff added linha fundo",
2591
+ "field.diff_add_fg": "Diff Added primeiro plano",
2592
+ "field.diff_add_fg_desc": "Diff added linha primeiro plano",
2535
2593
  "field.diff_remove_bg": "Diff Removed fundo",
2536
2594
  "field.diff_remove_bg_desc": "Diff removed linha fundo",
2595
+ "field.diff_remove_fg": "Diff Removed primeiro plano",
2596
+ "field.diff_remove_fg_desc": "Diff removed linha primeiro plano",
2537
2597
  "field.diff_modify_bg": "Diff modificado fundo",
2538
2598
  "field.diff_modify_bg_desc": "Diff modificado linha fundo",
2599
+ "field.diff_modify_fg": "Diff modificado primeiro plano",
2600
+ "field.diff_modify_fg_desc": "Diff modificado linha primeiro plano",
2539
2601
  "field.tab_active_fg": "ativo Tab primeiro plano",
2540
2602
  "field.tab_active_fg_desc": "ativo tab texto cor",
2541
2603
  "field.tab_active_bg": "ativo Tab fundo",
@@ -2610,6 +2672,8 @@
2610
2672
  "field.popup_selection_bg_desc": "popup selected item fundo",
2611
2673
  "field.popup_text_fg": "popup texto primeiro plano",
2612
2674
  "field.popup_text_fg_desc": "popup window texto cor",
2675
+ "field.text_input_selection_bg": "fundo de seleção de entrada de texto",
2676
+ "field.text_input_selection_bg_desc": "cor de fundo do texto selecionado dentro de um campo de entrada de widget",
2613
2677
  "field.suggestion_bg": "Suggestion fundo",
2614
2678
  "field.suggestion_bg_desc": "Autocomplete suggestion fundo",
2615
2679
  "field.suggestion_selected_bg": "Suggestion Selected fundo",
@@ -2875,10 +2939,16 @@
2875
2939
  "field.ruler_bg_desc": "Цвет вертикальной линии линейки",
2876
2940
  "field.diff_add_bg": "Diff Added фон",
2877
2941
  "field.diff_add_bg_desc": "Diff added строка фон",
2942
+ "field.diff_add_fg": "Diff Added передний план",
2943
+ "field.diff_add_fg_desc": "Diff added строка передний план",
2878
2944
  "field.diff_remove_bg": "Diff Removed фон",
2879
2945
  "field.diff_remove_bg_desc": "Diff removed строка фон",
2946
+ "field.diff_remove_fg": "Diff Removed передний план",
2947
+ "field.diff_remove_fg_desc": "Diff removed строка передний план",
2880
2948
  "field.diff_modify_bg": "Diff изменено фон",
2881
2949
  "field.diff_modify_bg_desc": "Diff изменено строка фон",
2950
+ "field.diff_modify_fg": "Diff изменено передний план",
2951
+ "field.diff_modify_fg_desc": "Diff изменено строка передний план",
2882
2952
  "field.tab_active_fg": "активный Tab передний план",
2883
2953
  "field.tab_active_fg_desc": "активный tab текст цвет",
2884
2954
  "field.tab_active_bg": "активный Tab фон",
@@ -2953,6 +3023,8 @@
2953
3023
  "field.popup_selection_bg_desc": "всплывающее окно selected item фон",
2954
3024
  "field.popup_text_fg": "всплывающее окно текст передний план",
2955
3025
  "field.popup_text_fg_desc": "всплывающее окно window текст цвет",
3026
+ "field.text_input_selection_bg": "фон выделения текстового поля",
3027
+ "field.text_input_selection_bg_desc": "цвет фона выделенного текста внутри текстового поля виджета",
2956
3028
  "field.suggestion_bg": "Suggestion фон",
2957
3029
  "field.suggestion_bg_desc": "Autocomplete suggestion фон",
2958
3030
  "field.suggestion_selected_bg": "Suggestion Selected фон",
@@ -3218,10 +3290,16 @@
3218
3290
  "field.ruler_bg_desc": "สีเส้นไม้บรรทัดแนวตั้ง",
3219
3291
  "field.diff_add_bg": "Diff Added พื้นหลัง",
3220
3292
  "field.diff_add_bg_desc": "Diff added บรรทัด พื้นหลัง",
3293
+ "field.diff_add_fg": "Diff Added พื้นหน้า",
3294
+ "field.diff_add_fg_desc": "Diff added บรรทัด พื้นหน้า",
3221
3295
  "field.diff_remove_bg": "Diff Removed พื้นหลัง",
3222
3296
  "field.diff_remove_bg_desc": "Diff removed บรรทัด พื้นหลัง",
3297
+ "field.diff_remove_fg": "Diff Removed พื้นหน้า",
3298
+ "field.diff_remove_fg_desc": "Diff removed บรรทัด พื้นหน้า",
3223
3299
  "field.diff_modify_bg": "Diff แก้ไขแล้ว พื้นหลัง",
3224
3300
  "field.diff_modify_bg_desc": "Diff แก้ไขแล้ว บรรทัด พื้นหลัง",
3301
+ "field.diff_modify_fg": "Diff แก้ไขแล้ว พื้นหน้า",
3302
+ "field.diff_modify_fg_desc": "Diff แก้ไขแล้ว บรรทัด พื้นหน้า",
3225
3303
  "field.tab_active_fg": "ใช้งาน Tab พื้นหน้า",
3226
3304
  "field.tab_active_fg_desc": "ใช้งาน tab ข้อความ สี",
3227
3305
  "field.tab_active_bg": "ใช้งาน Tab พื้นหลัง",
@@ -3296,6 +3374,8 @@
3296
3374
  "field.popup_selection_bg_desc": "ป๊อปอัป selected item พื้นหลัง",
3297
3375
  "field.popup_text_fg": "ป๊อปอัป ข้อความ พื้นหน้า",
3298
3376
  "field.popup_text_fg_desc": "ป๊อปอัป window ข้อความ สี",
3377
+ "field.text_input_selection_bg": "พื้นหลัง การเลือก ช่องป้อนข้อความ",
3378
+ "field.text_input_selection_bg_desc": "สีพื้นหลังของข้อความที่เลือกในช่องป้อนข้อความของวิดเจ็ต",
3299
3379
  "field.suggestion_bg": "Suggestion พื้นหลัง",
3300
3380
  "field.suggestion_bg_desc": "Autocomplete suggestion พื้นหลัง",
3301
3381
  "field.suggestion_selected_bg": "Suggestion Selected พื้นหลัง",
@@ -3561,10 +3641,16 @@
3561
3641
  "field.ruler_bg_desc": "Колір вертикальної лінії лінійки",
3562
3642
  "field.diff_add_bg": "Diff Added фон",
3563
3643
  "field.diff_add_bg_desc": "Diff added рядок фон",
3644
+ "field.diff_add_fg": "Diff Added передній план",
3645
+ "field.diff_add_fg_desc": "Diff added рядок передній план",
3564
3646
  "field.diff_remove_bg": "Diff Removed фон",
3565
3647
  "field.diff_remove_bg_desc": "Diff removed рядок фон",
3648
+ "field.diff_remove_fg": "Diff Removed передній план",
3649
+ "field.diff_remove_fg_desc": "Diff removed рядок передній план",
3566
3650
  "field.diff_modify_bg": "Diff змінено фон",
3567
3651
  "field.diff_modify_bg_desc": "Diff змінено рядок фон",
3652
+ "field.diff_modify_fg": "Diff змінено передній план",
3653
+ "field.diff_modify_fg_desc": "Diff змінено рядок передній план",
3568
3654
  "field.tab_active_fg": "активний Tab передній план",
3569
3655
  "field.tab_active_fg_desc": "активний tab текст колір",
3570
3656
  "field.tab_active_bg": "активний Tab фон",
@@ -3639,6 +3725,8 @@
3639
3725
  "field.popup_selection_bg_desc": "спливаюче вікно selected item фон",
3640
3726
  "field.popup_text_fg": "спливаюче вікно текст передній план",
3641
3727
  "field.popup_text_fg_desc": "спливаюче вікно window текст колір",
3728
+ "field.text_input_selection_bg": "фон виділення текстового поля",
3729
+ "field.text_input_selection_bg_desc": "колір фону виділеного тексту всередині текстового поля віджета",
3642
3730
  "field.suggestion_bg": "Suggestion фон",
3643
3731
  "field.suggestion_bg_desc": "Autocomplete suggestion фон",
3644
3732
  "field.suggestion_selected_bg": "Suggestion Selected фон",
@@ -3904,10 +3992,16 @@
3904
3992
  "field.ruler_bg_desc": "Màu đường thước kẻ dọc",
3905
3993
  "field.diff_add_bg": "Nền diff thêm",
3906
3994
  "field.diff_add_bg_desc": "Nền dòng diff được thêm",
3995
+ "field.diff_add_fg": "Tiền cảnh diff thêm",
3996
+ "field.diff_add_fg_desc": "Tiền cảnh dòng diff được thêm",
3907
3997
  "field.diff_remove_bg": "Nền diff xóa",
3908
3998
  "field.diff_remove_bg_desc": "Nền dòng diff bị xóa",
3999
+ "field.diff_remove_fg": "Tiền cảnh diff xóa",
4000
+ "field.diff_remove_fg_desc": "Tiền cảnh dòng diff bị xóa",
3909
4001
  "field.diff_modify_bg": "Nền diff sửa đổi",
3910
4002
  "field.diff_modify_bg_desc": "Nền dòng diff đã sửa đổi",
4003
+ "field.diff_modify_fg": "Tiền cảnh diff sửa đổi",
4004
+ "field.diff_modify_fg_desc": "Tiền cảnh dòng diff đã sửa đổi",
3911
4005
  "field.tab_active_fg": "Tiền cảnh tab hoạt động",
3912
4006
  "field.tab_active_fg_desc": "Màu văn bản tab hoạt động",
3913
4007
  "field.tab_active_bg": "Nền tab hoạt động",
@@ -3982,6 +4076,8 @@
3982
4076
  "field.popup_selection_bg_desc": "Nền mục đã chọn trong cửa sổ bật lên",
3983
4077
  "field.popup_text_fg": "Tiền cảnh văn bản cửa sổ bật lên",
3984
4078
  "field.popup_text_fg_desc": "Màu văn bản cửa sổ bật lên",
4079
+ "field.text_input_selection_bg": "Nền vùng chọn trong ô nhập văn bản",
4080
+ "field.text_input_selection_bg_desc": "Màu nền của văn bản đã chọn bên trong ô nhập văn bản của widget",
3985
4081
  "field.suggestion_bg": "Nền gợi ý",
3986
4082
  "field.suggestion_bg_desc": "Nền gợi ý tự động hoàn thành",
3987
4083
  "field.suggestion_selected_bg": "Nền gợi ý đã chọn",
@@ -4295,6 +4391,8 @@
4295
4391
  "field.popup_selection_bg_desc": "弹出窗口选中项背景",
4296
4392
  "field.popup_text_fg": "弹出窗口文本前景",
4297
4393
  "field.popup_text_fg_desc": "弹出窗口文本颜色",
4394
+ "field.text_input_selection_bg": "文本输入选区背景",
4395
+ "field.text_input_selection_bg_desc": "小部件文本输入框中所选文本的背景颜色",
4298
4396
  "field.suggestion_bg": "建议背景",
4299
4397
  "field.suggestion_bg_desc": "自动补全建议背景",
4300
4398
  "field.suggestion_selected_bg": "选中建议背景",
@@ -4397,14 +4495,20 @@
4397
4495
  "prompt.delete_no": "Cancel",
4398
4496
  "field.diff_add_bg": "Diff Added Background",
4399
4497
  "field.diff_add_bg_desc": "Diff added line background",
4498
+ "field.diff_add_fg": "Diff Added Foreground",
4499
+ "field.diff_add_fg_desc": "Diff added line foreground",
4400
4500
  "field.diff_remove_bg": "Diff Removed Background",
4401
4501
  "field.diff_remove_bg_desc": "Diff removed line background",
4502
+ "field.diff_remove_fg": "Diff Removed Foreground",
4503
+ "field.diff_remove_fg_desc": "Diff removed line foreground",
4402
4504
  "field.diff_add_highlight_bg": "Diff添加高亮",
4403
4505
  "field.diff_add_highlight_bg_desc": "添加内容的词级高亮",
4404
4506
  "field.diff_remove_highlight_bg": "Diff删除高亮",
4405
4507
  "field.diff_remove_highlight_bg_desc": "删除内容的词级高亮",
4406
4508
  "field.diff_modify_bg": "Diff Modified Background",
4407
4509
  "field.diff_modify_bg_desc": "Diff modified line background",
4510
+ "field.diff_modify_fg": "Diff Modified Foreground",
4511
+ "field.diff_modify_fg_desc": "Diff modified line foreground",
4408
4512
  "field.status_warning_indicator_bg": "Warning Indicator Background",
4409
4513
  "field.status_warning_indicator_bg_desc": "Warning indicator background in status bar",
4410
4514
  "field.status_warning_indicator_fg": "Warning Indicator Foreground",
@@ -4566,10 +4670,16 @@
4566
4670
  "field.ruler_bg_desc": "Colore della linea del righello verticale",
4567
4671
  "field.diff_add_bg": "Sfondo Diff Aggiunta",
4568
4672
  "field.diff_add_bg_desc": "Sfondo della riga aggiunta nel diff",
4673
+ "field.diff_add_fg": "Primo piano Diff Aggiunta",
4674
+ "field.diff_add_fg_desc": "Primo piano della riga aggiunta nel diff",
4569
4675
  "field.diff_remove_bg": "Sfondo Diff Rimozione",
4570
4676
  "field.diff_remove_bg_desc": "Sfondo della riga rimossa nel diff",
4677
+ "field.diff_remove_fg": "Primo piano Diff Rimozione",
4678
+ "field.diff_remove_fg_desc": "Primo piano della riga rimossa nel diff",
4571
4679
  "field.diff_modify_bg": "Sfondo Diff Modifica",
4572
4680
  "field.diff_modify_bg_desc": "Sfondo della riga modificata nel diff",
4681
+ "field.diff_modify_fg": "Primo piano Diff Modifica",
4682
+ "field.diff_modify_fg_desc": "Primo piano della riga modificata nel diff",
4573
4683
  "field.tab_active_fg": "Primo piano scheda attiva",
4574
4684
  "field.tab_active_fg_desc": "Colore del testo della scheda attiva",
4575
4685
  "field.tab_active_bg": "Sfondo scheda attiva",
@@ -4644,6 +4754,8 @@
4644
4754
  "field.popup_selection_bg_desc": "Sfondo dell elemento selezionato nel popup",
4645
4755
  "field.popup_text_fg": "Primo piano testo popup",
4646
4756
  "field.popup_text_fg_desc": "Colore del testo della finestra popup",
4757
+ "field.text_input_selection_bg": "Sfondo selezione campo di testo",
4758
+ "field.text_input_selection_bg_desc": "Colore di sfondo del testo selezionato all'interno di un campo di testo widget",
4647
4759
  "field.suggestion_bg": "Sfondo suggerimento",
4648
4760
  "field.suggestion_bg_desc": "Sfondo del suggerimento di completamento automatico",
4649
4761
  "field.suggestion_selected_bg": "Sfondo suggerimento selezionato",
@@ -1,4 +1,5 @@
1
1
  /// <reference path="./lib/fresh.d.ts" />
2
+ import { hintBar, parseHintString, WidgetPanel } from "./lib/index.ts";
2
3
  const editor = getEditor();
3
4
 
4
5
 
@@ -414,6 +415,12 @@ interface ThemeEditorState {
414
415
  viewportWidth: number;
415
416
  /** Buffer group ID (when using buffer groups) */
416
417
  groupId: number | null;
418
+ /** Widget panel rendering the footer hint bar. Created when the
419
+ * buffer-group view opens. The tree and picker panels still use
420
+ * `setPanelContent` because they own the focus model (header
421
+ * row, separator, optional filter line, then selectable section /
422
+ * field rows) which doesn't map cleanly to a single List today. */
423
+ footerPanel: WidgetPanel | null;
417
424
  /** Panel buffer IDs keyed by panel name */
418
425
  panelBuffers: Record<string, number>;
419
426
  }
@@ -478,6 +485,7 @@ const state: ThemeEditorState = {
478
485
  viewportHeight: 40,
479
486
  viewportWidth: 120,
480
487
  groupId: null,
488
+ footerPanel: null,
481
489
  panelBuffers: {},
482
490
  };
483
491
 
@@ -1437,9 +1445,16 @@ function buildPickerPanelEntries(): TextPropertyEntry[] {
1437
1445
  return entries;
1438
1446
  }
1439
1447
 
1440
- function buildFooterPanelEntries(): TextPropertyEntry[] {
1441
- const hintText = " ↑↓ Navigate Tab Switch Panel Enter Edit /Filter Ctrl+S Save Esc Close";
1442
- return [{ text: hintText + "\n", style: { fg: colors.header } }];
1448
+ /** Render the footer hints into the footer widget panel. The hint
1449
+ * string follows `parseHintString`'s convention (tokens separated
1450
+ * by two spaces; each token is `<keys>:<label>` or `<keys> <label>`)
1451
+ * so the host's HintBar styles the keys with `ui.help_key_fg`
1452
+ * consistently with every other plugin's footer. */
1453
+ function renderThemeEditorFooter(): void {
1454
+ if (state.footerPanel === null) return;
1455
+ const hintString =
1456
+ "↑↓:Navigate Tab:Switch Panel Enter:Edit /:Filter Ctrl+S:Save Esc:Close";
1457
+ state.footerPanel.set(hintBar(parseHintString(hintString)));
1443
1458
  }
1444
1459
 
1445
1460
  function updateDisplay(): void {
@@ -1456,7 +1471,7 @@ function updateDisplay(): void {
1456
1471
  if (state.groupId !== null) {
1457
1472
  editor.setPanelContent(state.groupId, "tree", buildTreePanelEntries());
1458
1473
  editor.setPanelContent(state.groupId, "picker", buildPickerPanelEntries());
1459
- editor.setPanelContent(state.groupId, "footer", buildFooterPanelEntries());
1474
+ renderThemeEditorFooter();
1460
1475
 
1461
1476
  // Keep the selected tree row in view. The plugin's `selectedIndex`
1462
1477
  // navigation doesn't move the buffer cursor, so without this the
@@ -2678,6 +2693,13 @@ async function doOpenThemeEditor(): Promise<void> {
2678
2693
  state.bufferId = groupResult.panels["tree"]; // representative buffer
2679
2694
  state.splitId = null;
2680
2695
 
2696
+ // Mount the footer as a widget panel (HintBar). Tree + picker
2697
+ // panels still use `setPanelContent` (see updateDisplay).
2698
+ const footerBufferId = groupResult.panels["footer"];
2699
+ if (typeof footerBufferId === "number") {
2700
+ state.footerPanel = new WidgetPanel(footerBufferId);
2701
+ }
2702
+
2681
2703
  if (state.bufferId !== null) {
2682
2704
  // Set initial content for all panels
2683
2705
  updateDisplay();
@@ -2714,7 +2736,10 @@ registerHandler("theme_editor_close", theme_editor_close);
2714
2736
  * Actually close the editor (called after confirmation or when no changes)
2715
2737
  */
2716
2738
  function doCloseEditor(): void {
2717
- // Close the buffer group (or fall back to single buffer close)
2739
+ // Close the buffer group (or fall back to single buffer close).
2740
+ // Closing the buffer group tears down the footer buffer too,
2741
+ // implicitly dropping the widget panel rendering into it.
2742
+ state.footerPanel = null;
2718
2743
  if (state.groupId !== null) {
2719
2744
  editor.closeBufferGroup(state.groupId);
2720
2745
  state.groupId = null;
@@ -21,6 +21,7 @@
21
21
  "lib/search-utils.ts",
22
22
  "lib/types.ts",
23
23
  "lib/virtual-buffer-factory.ts",
24
+ "lib/widgets.ts",
24
25
  "astro-lsp.ts",
25
26
  "audit_mode.ts",
26
27
  "bash-lsp.ts",
@@ -47,7 +48,9 @@
47
48
  "git_grep.ts",
48
49
  "git_gutter.ts",
49
50
  "git_log.ts",
51
+ "git_statusbar.ts",
50
52
  "gleam-lsp.ts",
53
+ "goto_with_selection.ts",
51
54
  "go-lsp.ts",
52
55
  "graphql-lsp.ts",
53
56
  "haskell-lsp.ts",
@@ -2889,24 +2889,25 @@ editor.on("prompt_confirmed", async (args) => {
2889
2889
 
2890
2890
  let viModeEnabled = false;
2891
2891
 
2892
- function vi_mode_toggle(): void {
2893
- editor.debug("[vi_mode_toggle] called, viModeEnabled was: " + viModeEnabled);
2894
- viModeEnabled = !viModeEnabled;
2895
- editor.debug("[vi_mode_toggle] viModeEnabled now: " + viModeEnabled);
2892
+ function enableVi(): void {
2893
+ if (viModeEnabled) return;
2894
+ viModeEnabled = true;
2895
+ switchMode("normal");
2896
+ editor.setStatus(editor.t("status.enabled"));
2897
+ }
2896
2898
 
2897
- if (viModeEnabled) {
2898
- editor.debug("[vi_mode_toggle] enabling vi mode, calling switchMode('normal')");
2899
- switchMode("normal");
2900
- editor.debug("[vi_mode_toggle] switchMode done, setting status");
2901
- editor.setStatus(editor.t("status.enabled"));
2902
- } else {
2903
- editor.debug("[vi_mode_toggle] disabling vi mode");
2904
- editor.setEditorMode(null);
2905
- state.mode = "normal";
2906
- state.pendingOperator = null;
2907
- editor.setStatus(editor.t("status.disabled"));
2908
- }
2909
- editor.debug("[vi_mode_toggle] done");
2899
+ function disableVi(): void {
2900
+ if (!viModeEnabled) return;
2901
+ viModeEnabled = false;
2902
+ editor.setEditorMode(null);
2903
+ state.mode = "normal";
2904
+ state.pendingOperator = null;
2905
+ editor.setStatus(editor.t("status.disabled"));
2906
+ }
2907
+
2908
+ function vi_mode_toggle(): void {
2909
+ if (viModeEnabled) disableVi();
2910
+ else enableVi();
2910
2911
  }
2911
2912
  registerHandler("vi_mode_toggle", vi_mode_toggle);
2912
2913
 
@@ -2917,9 +2918,40 @@ editor.registerCommand(
2917
2918
  null, // Always visible - needed to enable vi mode in the first place
2918
2919
  );
2919
2920
 
2921
+ export type ViModeApi = {
2922
+ toggle(): void;
2923
+ enable(): void;
2924
+ disable(): void;
2925
+ isEnabled(): boolean;
2926
+ };
2927
+
2928
+ declare global {
2929
+ interface FreshPluginRegistry {
2930
+ "vi-mode": ViModeApi;
2931
+ }
2932
+ }
2933
+
2934
+ editor.exportPluginApi("vi-mode", {
2935
+ toggle: vi_mode_toggle,
2936
+ enable: enableVi,
2937
+ disable: disableVi,
2938
+ isEnabled: () => viModeEnabled,
2939
+ } satisfies ViModeApi);
2940
+
2920
2941
  // ============================================================================
2921
2942
  // Initialization
2922
2943
  // ============================================================================
2923
2944
 
2945
+ // User-configurable opt-in: when enabled, vi mode kicks in for every
2946
+ // session without the user having to run the toggle command. Surfaces
2947
+ // in Settings UI under "Plugin: vi_mode".
2948
+ const autoStart = editor.defineConfigBoolean("autoStart", {
2949
+ default: false,
2950
+ description:
2951
+ "Automatically enable vi mode when the editor starts. Default off — users opt in.",
2952
+ });
2953
+ if (autoStart) {
2954
+ enableVi();
2955
+ }
2924
2956
 
2925
2957
  registerHandler("vi_to_brace", vi_to_brace);
package/themes/dark.json CHANGED
@@ -50,6 +50,7 @@
50
50
  "popup_bg": [30, 30, 30],
51
51
  "popup_selection_bg": [58, 79, 120],
52
52
  "popup_text_fg": "White",
53
+ "text_input_selection_bg": [58, 79, 120],
53
54
  "settings_selected_bg": [58, 79, 120],
54
55
  "settings_selected_fg": [255, 255, 255],
55
56
  "suggestion_bg": [30, 30, 30],
@@ -33,6 +33,7 @@
33
33
  "popup_bg": [40, 42, 54],
34
34
  "popup_selection_bg": [189, 147, 249],
35
35
  "popup_text_fg": [248, 248, 242],
36
+ "text_input_selection_bg": [189, 147, 249],
36
37
  "suggestion_bg": [40, 42, 54],
37
38
  "suggestion_selected_bg": [189, 147, 249],
38
39
  "menu_bg": [40, 42, 54],
@@ -50,6 +50,7 @@
50
50
  "popup_bg": [0, 0, 0],
51
51
  "popup_selection_bg": [0, 100, 200],
52
52
  "popup_text_fg": [255, 255, 255],
53
+ "text_input_selection_bg": [0, 100, 200],
53
54
  "settings_selected_bg": [0, 100, 200],
54
55
  "settings_selected_fg": [255, 255, 255],
55
56
  "suggestion_bg": [0, 0, 0],
package/themes/light.json CHANGED
@@ -50,6 +50,7 @@
50
50
  "popup_bg": [232, 238, 245],
51
51
  "popup_selection_bg": [209, 226, 243],
52
52
  "popup_text_fg": [30, 30, 30],
53
+ "text_input_selection_bg": [209, 226, 243],
53
54
  "settings_selected_bg": [173, 214, 255],
54
55
  "settings_selected_fg": [0, 0, 0],
55
56
  "suggestion_bg": [232, 238, 245],
package/themes/nord.json CHANGED
@@ -29,6 +29,7 @@
29
29
  "popup_selection_bg": [94, 129, 172],
30
30
  "popup_selection_fg": [236, 239, 244],
31
31
  "popup_text_fg": [216, 222, 233],
32
+ "text_input_selection_bg": [94, 129, 172],
32
33
  "menu_fg": [216, 222, 233],
33
34
  "menu_highlight_bg": [94, 129, 172],
34
35
  "menu_highlight_fg": [236, 239, 244],
@@ -48,6 +48,7 @@
48
48
  "popup_bg": [0, 0, 170],
49
49
  "popup_selection_bg": [0, 170, 0],
50
50
  "popup_text_fg": [255, 255, 85],
51
+ "text_input_selection_bg": [0, 170, 0],
51
52
  "settings_selected_bg": [170, 0, 170],
52
53
  "settings_selected_fg": [255, 255, 255],
53
54
  "suggestion_bg": [0, 0, 170],
@@ -29,6 +29,7 @@
29
29
  "popup_selection_bg": [38, 139, 210],
30
30
  "popup_selection_fg": [253, 246, 227],
31
31
  "popup_text_fg": [147, 161, 161],
32
+ "text_input_selection_bg": [38, 139, 210],
32
33
  "menu_fg": [147, 161, 161],
33
34
  "menu_highlight_bg": [38, 139, 210],
34
35
  "menu_highlight_fg": [253, 246, 227],