markdown_exec 3.2.0 → 3.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +5 -4
- data/bats/block-type-ux-echo-hash-transform.bats +1 -1
- data/bats/block-type-ux-exec-hash-transform.bats +8 -0
- data/bats/block-type-ux-exec-hash.bats +15 -0
- data/bats/block-type-ux-force.bats +9 -0
- data/bats/block-type-ux-formats.bats +8 -0
- data/bats/block-type-ux-no-name.bats +8 -0
- data/bats/block-type-ux-readonly.bats +1 -1
- data/bats/block-type-ux-row-format.bats +1 -1
- data/bats/command-substitution-options.bats +2 -2
- data/bats/import-directive-line-continuation.bats +9 -0
- data/bats/import-directive-parameter-symbols.bats +9 -0
- data/bats/import-duplicates.bats +4 -2
- data/bats/import-parameter-symbols.bats +8 -0
- data/bats/markup.bats +1 -1
- data/bats/option-expansion.bats +1 -1
- data/bats/options.bats +1 -1
- data/bats/table-column-truncate.bats +1 -1
- data/bats/table.bats +1 -1
- data/bats/test_helper.bash +4 -3
- data/bin/tab_completion.sh +5 -1
- data/docs/dev/block-type-ux-echo-hash-transform.md +14 -12
- data/docs/dev/block-type-ux-exec-hash-transform.md +37 -0
- data/docs/dev/block-type-ux-exec-hash.md +93 -0
- data/docs/dev/block-type-ux-force.md +20 -0
- data/docs/dev/block-type-ux-formats.md +58 -0
- data/docs/dev/block-type-ux-no-name.md +17 -0
- data/docs/dev/block-type-ux-row-format.md +1 -1
- data/docs/dev/hexdump_format.md +267 -0
- data/docs/dev/import/parameter-symbols.md +6 -0
- data/docs/dev/import-directive-line-continuation.md +6 -0
- data/docs/dev/import-directive-parameter-symbols.md +9 -0
- data/docs/dev/import-parameter-symbols-template.md +24 -0
- data/docs/dev/import-parameter-symbols.md +6 -0
- data/docs/dev/load-vars-state-demo.md +35 -0
- data/docs/dev/table-column-truncate.md +1 -1
- data/docs/ux-blocks-examples.md +2 -3
- data/examples/import_with_substitution_demo.md +130 -26
- data/examples/imports/organism_template.md +86 -29
- data/lib/cached_nested_file_reader.rb +279 -29
- data/lib/constants.rb +8 -1
- data/lib/env_interface.rb +13 -7
- data/lib/evaluate_shell_expressions.rb +1 -0
- data/lib/fcb.rb +133 -33
- data/lib/format_table.rb +77 -29
- data/lib/fout.rb +5 -0
- data/lib/hash_delegator.rb +1159 -348
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +2 -0
- data/lib/mdoc.rb +13 -11
- data/lib/menu.src.yml +166 -62
- data/lib/menu.yml +143 -59
- data/lib/string_util.rb +80 -0
- data/lib/table_extractor.rb +170 -64
- data/lib/ww.rb +810 -36
- metadata +22 -2
data/lib/menu.yml
CHANGED
@@ -94,6 +94,13 @@
|
|
94
94
|
:env_var: MDE_BLOCK_TYPE_PORT_SET_FORMAT
|
95
95
|
:default: ": ${%{key}:=%{value}}"
|
96
96
|
:procname: val_as_str
|
97
|
+
- :opt_name: blocks
|
98
|
+
:arg_name: MESSAGE
|
99
|
+
:default:
|
100
|
+
:description: List the blocks displayed
|
101
|
+
:env_var: MDE_BLOCKS_LIST_MESSAGE
|
102
|
+
:long_name: blocks
|
103
|
+
:procname: val_as_str
|
97
104
|
- :opt_name: clear_screen_for_select_block
|
98
105
|
:env_var: MDE_CLEAR_SCREEN_FOR_SELECT_BLOCK
|
99
106
|
:description: clear_screen_for_select_block
|
@@ -121,12 +128,6 @@
|
|
121
128
|
:arg_name: BOOL
|
122
129
|
:default: true
|
123
130
|
:procname: val_as_bool
|
124
|
-
- :opt_name: tables_into_columns
|
125
|
-
:env_var: MDE_TABLES_INTO_COLUMNS
|
126
|
-
:description: Format tables as columns
|
127
|
-
:arg_name: BOOL
|
128
|
-
:default: true
|
129
|
-
:procname: val_as_bool
|
130
131
|
- :long_name: debug
|
131
132
|
:short_name: d
|
132
133
|
:env_var: MDE_DEBUG
|
@@ -208,15 +209,9 @@
|
|
208
209
|
:arg_name: GLOB
|
209
210
|
:default: document_configurations/%{document_filename}_*.sh
|
210
211
|
:procname: val_as_str
|
211
|
-
- :opt_name:
|
212
|
-
:env_var:
|
213
|
-
:description:
|
214
|
-
:arg_name: BOOL
|
215
|
-
:default: true
|
216
|
-
:procname: val_as_bool
|
217
|
-
- :opt_name: menu_for_history
|
218
|
-
:env_var: MDE_MENU_FOR_HISTORY
|
219
|
-
:description: Add menu options for history
|
212
|
+
- :opt_name: document_save_make_directory
|
213
|
+
:env_var: MDE_DOCUMENT_SAVE_MAKE_DIRECTORY
|
214
|
+
:description: Make the directory if it does not exist when saving
|
220
215
|
:arg_name: BOOL
|
221
216
|
:default: true
|
222
217
|
:procname: val_as_bool
|
@@ -279,7 +274,7 @@
|
|
279
274
|
- :opt_name: exception_color_detail
|
280
275
|
:env_var: MDE_EXCEPTION_COLOR_DETAIL
|
281
276
|
:description: Color of exception detail
|
282
|
-
:default:
|
277
|
+
:default: fg_rgbh_ff_99_cc
|
283
278
|
:procname: val_as_str
|
284
279
|
- :opt_name: exception_format_detail
|
285
280
|
:env_var: MDE_EXCEPTION_FORMAT_DETAIL
|
@@ -289,7 +284,7 @@
|
|
289
284
|
- :opt_name: exception_color_name
|
290
285
|
:env_var: MDE_EXCEPTION_COLOR_NAME
|
291
286
|
:description: Color of exception name
|
292
|
-
:default:
|
287
|
+
:default: fg_rgbh_ff_6b_6b
|
293
288
|
:procname: val_as_str
|
294
289
|
- :opt_name: exception_format_name
|
295
290
|
:env_var: MDE_EXCEPTION_FORMAT_NAME
|
@@ -358,7 +353,7 @@
|
|
358
353
|
- :opt_name: execution_report_preview_frame_color
|
359
354
|
:env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
|
360
355
|
:description: execution_report_preview_frame_color
|
361
|
-
:default:
|
356
|
+
:default: fg_rgbh_90_e0_90
|
362
357
|
:procname: val_as_str
|
363
358
|
- :opt_name: execution_report_preview_head
|
364
359
|
:env_var: MDE_EXECUTION_REPORT_PREVIEW_HEAD
|
@@ -488,10 +483,38 @@
|
|
488
483
|
:env_var: MDE_IMPORT_PATHS
|
489
484
|
:default:
|
490
485
|
:procname: val_as_str
|
491
|
-
- :opt_name:
|
486
|
+
- :opt_name: import_directive_line_pattern
|
492
487
|
:env_var: MDE_IMPORT_PATTERN
|
493
|
-
:default: '^(?<indention> *)@import +(?<name>\S+)(?<params>(?: +
|
494
|
-
|
488
|
+
:default: '^(?<indention> *)@import +(?<name>\S+)(?<params>(?: +\w+(?::c=|:e=|:q=|:v=|=)(?:"[^"]*"|''[^'']*''|\S+))*)
|
489
|
+
*\\?$'
|
490
|
+
:procname: val_as_str
|
491
|
+
- :opt_name: import_directive_parameter_scan
|
492
|
+
:env_var: MDE_IMPORT_PATTERN_SCAN
|
493
|
+
:default: (\w+)(:c=|:e=|:q=|:v=|=)(?:"([^"]*)"|'([^']*)'|(\S+))
|
494
|
+
:procname: val_as_str
|
495
|
+
- :opt_name: import_parameter_variable_assignment
|
496
|
+
:env_var: MDE_IMPORT_PARAMETER_VARIABLE_ASSIGNMENT
|
497
|
+
:default: "%{key}=%{value}"
|
498
|
+
:procname: val_as_str
|
499
|
+
- :opt_name: import_symbol_command_substitution
|
500
|
+
:env_var: MDE_IMPORT_SYMBOL_COMMAND_SUBSTITUTION
|
501
|
+
:default: ":c="
|
502
|
+
:procname: val_as_str
|
503
|
+
- :opt_name: import_symbol_evaluated_expression
|
504
|
+
:env_var: MDE_IMPORT_SYMBOL_EVALUATED_EXPRESSION
|
505
|
+
:default: ":e="
|
506
|
+
:procname: val_as_str
|
507
|
+
- :opt_name: import_symbol_raw_literal
|
508
|
+
:env_var: MDE_IMPORT_SYMBOL_RAW_LITERAL
|
509
|
+
:default: "="
|
510
|
+
:procname: val_as_str
|
511
|
+
- :opt_name: import_symbol_force_quoted_literal
|
512
|
+
:env_var: MDE_IMPORT_SYMBOL_FORCE_QUOTED_LITERAL
|
513
|
+
:default: ":q="
|
514
|
+
:procname: val_as_str
|
515
|
+
- :opt_name: import_symbol_variable_reference
|
516
|
+
:env_var: MDE_IMPORT_SYMBOL_VARIABLE_REFERENCE
|
517
|
+
:default: ":v="
|
495
518
|
:procname: val_as_str
|
496
519
|
- :opt_name: line_decor_main
|
497
520
|
:env_var: MDE_LINE_DECOR_MAIN
|
@@ -585,7 +608,7 @@
|
|
585
608
|
- :opt_name: local_name_pattern
|
586
609
|
:env_var: MDE_LOCAL_NAME_PATTERN
|
587
610
|
:description: Pattern for variables not exported in a series of evaluations
|
588
|
-
:default: "
|
611
|
+
:default: "^_\\S{0,12}$"
|
589
612
|
:procname: val_as_str
|
590
613
|
- :opt_name: logged_stdout_filename_prefix
|
591
614
|
:env_var: MDE_LOGGED_STDOUT_FILENAME_PREFIX
|
@@ -615,7 +638,7 @@
|
|
615
638
|
- :opt_name: menu_bash_color
|
616
639
|
:env_var: MDE_MENU_BASH_COLOR
|
617
640
|
:description: Color of menu bash
|
618
|
-
:default:
|
641
|
+
:default: fg_rgbh_87_ce_eb
|
619
642
|
:procname: val_as_str
|
620
643
|
- :opt_name: menu_blocks_with_docname
|
621
644
|
:env_var: MDE_MENU_BLOCKS_WITH_DOCNAME
|
@@ -633,7 +656,7 @@
|
|
633
656
|
- :opt_name: menu_chrome_color
|
634
657
|
:env_var: MDE_MENU_CHROME_COLOR
|
635
658
|
:description: Color of menu chrome
|
636
|
-
:default:
|
659
|
+
:default: fg_rgbh_b0_b0_b0
|
637
660
|
:procname: val_as_str
|
638
661
|
- :opt_name: menu_chrome_format
|
639
662
|
:env_var: MDE_MENU_CHROME_FORMAT
|
@@ -653,7 +676,7 @@
|
|
653
676
|
- :opt_name: menu_divider_color
|
654
677
|
:env_var: MDE_MENU_DIVIDER_COLOR
|
655
678
|
:description: Color of menu divider
|
656
|
-
:default:
|
679
|
+
:default: fg_rgbh_d0_d0_d0
|
657
680
|
:procname: val_as_str
|
658
681
|
- :opt_name: menu_divider_format
|
659
682
|
:env_var: MDE_MENU_DIVIDER_FORMAT
|
@@ -668,7 +691,7 @@
|
|
668
691
|
- :opt_name: menu_edit_color
|
669
692
|
:env_var: MDE_MENU_EDIT_COLOR
|
670
693
|
:description: Color of Edit link
|
671
|
-
:default:
|
694
|
+
:default: fg_rgbh_ff_b3_66
|
672
695
|
:procname: val_as_str
|
673
696
|
- :opt_name: menu_exit_at_top
|
674
697
|
:env_var: MDE_MENU_EXIT_AT_TOP
|
@@ -681,10 +704,22 @@
|
|
681
704
|
:description: closing demarcations for menu
|
682
705
|
:default:
|
683
706
|
:line: "~~~"
|
707
|
+
- :opt_name: menu_for_history
|
708
|
+
:env_var: MDE_MENU_FOR_HISTORY
|
709
|
+
:description: Add menu options for history
|
710
|
+
:arg_name: BOOL
|
711
|
+
:default: true
|
712
|
+
:procname: val_as_bool
|
713
|
+
- :opt_name: menu_for_saved_lines
|
714
|
+
:env_var: MDE_MENU_FOR_SAVED_LINES
|
715
|
+
:description: Add menu options for saved lines
|
716
|
+
:arg_name: BOOL
|
717
|
+
:default: true
|
718
|
+
:procname: val_as_bool
|
684
719
|
- :opt_name: menu_heading1_color
|
685
720
|
:env_var: MDE_MENU_HEADING1_COLOR
|
686
721
|
:description: Color for heading 1 in menu
|
687
|
-
:default:
|
722
|
+
:default: fg_bg_rgbh_70_70_b0_f8_f8_fa
|
688
723
|
:procname: val_as_str
|
689
724
|
- :opt_name: menu_heading1_format
|
690
725
|
:env_var: MDE_MENU_HEADING1_FORMAT
|
@@ -694,7 +729,7 @@
|
|
694
729
|
- :opt_name: menu_heading2_color
|
695
730
|
:env_var: MDE_MENU_HEADING2_COLOR
|
696
731
|
:description: Color for heading 2 in menu
|
697
|
-
:default:
|
732
|
+
:default: fg_bg_rgbh_60_60_a0_f5_f5_f8
|
698
733
|
:procname: val_as_str
|
699
734
|
- :opt_name: menu_heading2_format
|
700
735
|
:env_var: MDE_MENU_HEADING2_FORMAT
|
@@ -704,7 +739,7 @@
|
|
704
739
|
- :opt_name: menu_heading3_color
|
705
740
|
:env_var: MDE_MENU_HEADING3_COLOR
|
706
741
|
:description: Color for heading 3 in menu
|
707
|
-
:default:
|
742
|
+
:default: fg_bg_rgbh_50_50_90_f2_f2_f5
|
708
743
|
:procname: val_as_str
|
709
744
|
- :opt_name: menu_heading3_format
|
710
745
|
:env_var: MDE_MENU_HEADING3_FORMAT
|
@@ -714,7 +749,7 @@
|
|
714
749
|
- :opt_name: menu_history_color
|
715
750
|
:env_var: MDE_MENU_HISTORY_COLOR
|
716
751
|
:description: Color of History link
|
717
|
-
:default:
|
752
|
+
:default: fg_rgbh_87_ce_eb
|
718
753
|
:procname: val_as_str
|
719
754
|
- :opt_name: menu_import_level_match
|
720
755
|
:env_var: MDE_MENU_IMPORT_LEVEL_MATCH
|
@@ -731,7 +766,7 @@
|
|
731
766
|
:env_var: MDE_MENU_INCLUDE_IMPORTED_NOTES
|
732
767
|
:description: Whether imported blocks should be included in the menu
|
733
768
|
:arg_name: BOOL
|
734
|
-
:default:
|
769
|
+
:default: true
|
735
770
|
:procname: val_as_bool
|
736
771
|
- :opt_name: menu_inherited_lines_at_top
|
737
772
|
:env_var: MDE_MENU_INHERITED_LINES_AT_TOP
|
@@ -742,7 +777,7 @@
|
|
742
777
|
- :opt_name: menu_inherited_lines_color
|
743
778
|
:env_var: MDE_MENU_INHERITED_LINES_COLOR
|
744
779
|
:description: Color of inherited lines in menu
|
745
|
-
:default:
|
780
|
+
:default: fg_rgbh_b3_9a_d8
|
746
781
|
:procname: val_as_str
|
747
782
|
- :opt_name: menu_inherited_lines_edit_always
|
748
783
|
:env_var: MDE_INHERITED_LINES_EDIT_ALWAYS
|
@@ -763,7 +798,7 @@
|
|
763
798
|
- :opt_name: menu_link_color
|
764
799
|
:env_var: MDE_MENU_LINK_COLOR
|
765
800
|
:description: Color of menu link
|
766
|
-
:default:
|
801
|
+
:default: fg_rgbh_90_e0_90
|
767
802
|
:procname: val_as_str
|
768
803
|
- :opt_name: menu_link_format
|
769
804
|
:env_var: MDE_MENU_LINK_FORMAT
|
@@ -779,7 +814,7 @@
|
|
779
814
|
- :opt_name: menu_load_color
|
780
815
|
:env_var: MDE_MENU_LOAD_COLOR
|
781
816
|
:description: Color of Load link
|
782
|
-
:default:
|
817
|
+
:default: fg_rgbh_87_ce_eb
|
783
818
|
:procname: val_as_str
|
784
819
|
- :opt_name: menu_note_color
|
785
820
|
:env_var: MDE_MENU_NOTE_COLOR
|
@@ -839,12 +874,12 @@
|
|
839
874
|
- :opt_name: menu_opts_color
|
840
875
|
:env_var: MDE_MENU_OPTS_COLOR
|
841
876
|
:description: Color of menu opts
|
842
|
-
:default:
|
877
|
+
:default: fg_rgbh_d8_b3_ff
|
843
878
|
:procname: val_as_str
|
844
879
|
- :opt_name: menu_opts_set_color
|
845
880
|
:env_var: MDE_MENU_OPTS_SET_COLOR
|
846
881
|
:description: Color of menu opts
|
847
|
-
:default:
|
882
|
+
:default: fg_rgbh_c0_9a_ff
|
848
883
|
:procname: val_as_str
|
849
884
|
- :opt_name: menu_opts_set_format
|
850
885
|
:env_var: MDE_MENU_OPTS_SET_FORMAT
|
@@ -865,17 +900,12 @@
|
|
865
900
|
- :opt_name: menu_save_color
|
866
901
|
:env_var: MDE_MENU_SAVE_COLOR
|
867
902
|
:description: Color of Save link
|
868
|
-
:default:
|
869
|
-
:procname: val_as_str
|
870
|
-
- :opt_name: menu_table_rows_match
|
871
|
-
:env_var: MDE_MENU_TABLE_ROWS_MATCH
|
872
|
-
:description: Pattern for table rows
|
873
|
-
:default: "^(?<indent>[ \\t]*)(?<line>(?<text>\\|.*?)(?<trailing>[ \\t]*))$"
|
903
|
+
:default: fg_rgbh_90_e0_90
|
874
904
|
:procname: val_as_str
|
875
905
|
- :opt_name: menu_task_color
|
876
906
|
:env_var: MDE_MENU_TASK_COLOR
|
877
907
|
:description: Color of menu task
|
878
|
-
:default:
|
908
|
+
:default: fg_rgbh_40_40_40
|
879
909
|
:procname: val_as_str
|
880
910
|
- :opt_name: menu_task_format
|
881
911
|
:env_var: MDE_MENU_TASK_FORMAT
|
@@ -894,9 +924,34 @@
|
|
894
924
|
:procname: val_as_str
|
895
925
|
- :opt_name: menu_ux_color
|
896
926
|
:env_var: MDE_MENU_UX_COLOR
|
897
|
-
:description:
|
927
|
+
:description: Default color of menu ux
|
898
928
|
:default: fg_rgbh_df_c0_df
|
899
929
|
:procname: val_as_str
|
930
|
+
- :opt_name: menu_ux_color_allow
|
931
|
+
:env_var: MDE_MENU_UX_COLOR_ALLOW
|
932
|
+
:description: Color of menu ux when it is allow
|
933
|
+
:default: fg_rgbh_90_e0_90
|
934
|
+
:procname: val_as_str
|
935
|
+
- :opt_name: menu_ux_color_echo
|
936
|
+
:env_var: MDE_MENU_UX_COLOR_ECHO
|
937
|
+
:description: Color of menu ux when it is echo
|
938
|
+
:default: fg_rgbh_87_ce_eb
|
939
|
+
:procname: val_as_str
|
940
|
+
- :opt_name: menu_ux_color_edit
|
941
|
+
:env_var: MDE_MENU_UX_COLOR_EDIT
|
942
|
+
:description: Color of menu ux when it is edit
|
943
|
+
:default: fg_rgbh_ff_b3_66
|
944
|
+
:procname: val_as_str
|
945
|
+
- :opt_name: menu_ux_color_exec
|
946
|
+
:env_var: MDE_MENU_UX_COLOR_EXEC
|
947
|
+
:description: Color of menu ux when it is exec
|
948
|
+
:default: fg_rgbh_ff_6b_6b
|
949
|
+
:procname: val_as_str
|
950
|
+
- :opt_name: menu_ux_color_readonly
|
951
|
+
:env_var: MDE_MENU_UX_COLOR_READONLY
|
952
|
+
:description: Color of menu ux when it is read-only
|
953
|
+
:default: fg_rgbh_c0_c0_c0
|
954
|
+
:procname: val_as_str
|
900
955
|
- :opt_name: menu_ux_row_format
|
901
956
|
:env_var: MDE_MENU_UX_ROW_FORMAT
|
902
957
|
:description: Format for UX row
|
@@ -905,12 +960,12 @@
|
|
905
960
|
- :opt_name: menu_vars_color
|
906
961
|
:env_var: MDE_MENU_VARS_COLOR
|
907
962
|
:description: Color of menu vars
|
908
|
-
:default:
|
963
|
+
:default: fg_rgbh_d8_b3_ff
|
909
964
|
:procname: val_as_str
|
910
965
|
- :opt_name: menu_vars_set_color
|
911
966
|
:env_var: MDE_MENU_VARS_SET_COLOR
|
912
967
|
:description: Color of menu vars
|
913
|
-
:default:
|
968
|
+
:default: fg_rgbh_a0_e6_e6
|
914
969
|
:procname: val_as_str
|
915
970
|
- :opt_name: menu_vars_set_format
|
916
971
|
:env_var: MDE_MENU_VARS_SET_FORMAT
|
@@ -1000,12 +1055,12 @@
|
|
1000
1055
|
- :opt_name: output_execution_label_name_color
|
1001
1056
|
:env_var: MDE_OUTPUT_EXECUTION_LABEL_NAME_COLOR
|
1002
1057
|
:description: Color of output_execution_label_name
|
1003
|
-
:default:
|
1058
|
+
:default: fg_rgbh_70_c0_70
|
1004
1059
|
:procname: val_as_str
|
1005
1060
|
- :opt_name: output_execution_label_value_color
|
1006
1061
|
:env_var: MDE_OUTPUT_EXECUTION_LABEL_VALUE_COLOR
|
1007
1062
|
:description: Color of output_execution_label_value
|
1008
|
-
:default:
|
1063
|
+
:default: fg_rgbh_90_e0_90
|
1009
1064
|
:procname: val_as_str
|
1010
1065
|
- :opt_name: output_execution_report
|
1011
1066
|
:env_var: MDE_OUTPUT_EXECUTION_REPORT
|
@@ -1082,7 +1137,7 @@
|
|
1082
1137
|
- :opt_name: prompt_color_after_script_execution
|
1083
1138
|
:env_var: MDE_PROMPT_COLOR_AFTER_SCRIPT_EXECUTION
|
1084
1139
|
:description: Color of prompt after script execution
|
1085
|
-
:default:
|
1140
|
+
:default: fg_rgbh_70_c0_70
|
1086
1141
|
:procname: val_as_str
|
1087
1142
|
- :opt_name: prompt_debounce
|
1088
1143
|
:env_var: MDE_PROMPT_DEBOUNCE
|
@@ -1164,13 +1219,6 @@
|
|
1164
1219
|
|
1165
1220
|
Choose a file:
|
1166
1221
|
:procname: val_as_str
|
1167
|
-
- :opt_name: prompt_select_output
|
1168
|
-
:env_var: MDE_PROMPT_SELECT_OUTPUT
|
1169
|
-
:default: |2-
|
1170
|
-
|
1171
|
-
Choose a file:
|
1172
|
-
:description: Prompt to select a saved file
|
1173
|
-
:procname: val_as_str
|
1174
1222
|
- :opt_name: prompt_ux_enter_a_value
|
1175
1223
|
:env_var: MDE_PROMPT_UX_ENTER_A_VALUE
|
1176
1224
|
:description: Prompt to enter a value for UX blocks
|
@@ -1223,6 +1271,11 @@
|
|
1223
1271
|
- :opt_name: pwd
|
1224
1272
|
:long_name: pwd
|
1225
1273
|
:description: Print the gem's home directory
|
1274
|
+
- :opt_name: required_lines_with_source_comments
|
1275
|
+
:env_var: MDE_REQUIRED_LINES_WITH_SOURCE_COMMENTS
|
1276
|
+
:description: Add comments about source to blocks of required lines
|
1277
|
+
:default: false
|
1278
|
+
:procname: val_as_bool
|
1226
1279
|
- :opt_name: run_last_script
|
1227
1280
|
:long_name: run-last-script
|
1228
1281
|
:description: Run most recently saved script
|
@@ -1311,10 +1364,15 @@
|
|
1311
1364
|
:description: Screen width for document and interface. 0 to use the actual dimension.
|
1312
1365
|
:default: 0
|
1313
1366
|
:procname: val_as_int
|
1367
|
+
- :opt_name: script_comment_block_name_format
|
1368
|
+
:env_var: MDE_SCRIPT_COMMENT_BLOCK_NAME_FORMAT
|
1369
|
+
:description: format for block name in script comments
|
1370
|
+
:default: "%{block} %{time}"
|
1371
|
+
:procname: val_as_str
|
1314
1372
|
- :opt_name: script_execution_frame_color
|
1315
1373
|
:env_var: MDE_SCRIPT_EXECUTION_FRAME_COLOR
|
1316
1374
|
:description: script_execution_frame_color
|
1317
|
-
:default:
|
1375
|
+
:default: fg_rgbh_80_d0_a0
|
1318
1376
|
:procname: val_as_str
|
1319
1377
|
- :opt_name: script_execution_head
|
1320
1378
|
:env_var: MDE_SCRIPT_EXECUTION_HEAD
|
@@ -1331,7 +1389,7 @@
|
|
1331
1389
|
- :opt_name: script_preview_frame_color
|
1332
1390
|
:env_var: MDE_OUTPUT_DIVIDER_COLOR
|
1333
1391
|
:description: Color of output divider
|
1334
|
-
:default:
|
1392
|
+
:default: fg_rgbh_a0_d0_80
|
1335
1393
|
:procname: val_as_str
|
1336
1394
|
- :opt_name: script_preview_head
|
1337
1395
|
:env_var: MDE_SCRIPT_PREVIEW_HEAD
|
@@ -1440,10 +1498,36 @@
|
|
1440
1498
|
:default:
|
1441
1499
|
- fg_bg_rgbh_cf_cf_cf_14_18_1c
|
1442
1500
|
- fg_bg_rgbh_df_df_df_24_24_24
|
1501
|
+
- :opt_name: table_row_multi_line_delimiter
|
1502
|
+
:env_var: MDE_TABLE_ROW_MULTI_LINE_DELIMITER
|
1503
|
+
:description: Multi-line-table delimiter
|
1504
|
+
:default: "|"
|
1505
|
+
:procname: val_as_str
|
1506
|
+
- :opt_name: table_row_multi_line_match
|
1507
|
+
:env_var: MDE_TABLE_ROW_MULTI_LINE_MATCH
|
1508
|
+
:description: Pattern for multi-line-table rows
|
1509
|
+
:default: "^(?<indent>[ \\t]*)(?<line>(?<text>\\|.*?)(?<trailing>[ \\t]*))$"
|
1510
|
+
:procname: val_as_str
|
1511
|
+
- :opt_name: table_row_single_line_delimiter
|
1512
|
+
:env_var: MDE_TABLE_ROW_SINGLE_LINE_DELIMITER
|
1513
|
+
:description: Single-line-table delimiter
|
1514
|
+
:default: "!"
|
1515
|
+
:procname: val_as_str
|
1516
|
+
- :opt_name: table_row_single_line_match
|
1517
|
+
:env_var: MDE_TABLE_ROW_SINGLE_LINE_MATCH
|
1518
|
+
:description: Pattern for single-line-table rows
|
1519
|
+
:default: "^(?<indent>[ \\t]*)(?<line>(?<text>!.*?)(?<trailing>[ \\t]*))$"
|
1520
|
+
:procname: val_as_str
|
1443
1521
|
- :opt_name: table_separator_line_color
|
1444
1522
|
:env_var: MDE_TABLE_SEPARATOR_LINE_COLOR
|
1445
1523
|
:description: Color for table separator line
|
1446
1524
|
:default: fg_bg_rgbh_df_df_00_14_18_1c
|
1525
|
+
- :opt_name: tables_into_columns
|
1526
|
+
:env_var: MDE_TABLES_INTO_COLUMNS
|
1527
|
+
:description: Format tables as columns
|
1528
|
+
:arg_name: BOOL
|
1529
|
+
:default: true
|
1530
|
+
:procname: val_as_bool
|
1447
1531
|
- :opt_name: user_must_approve
|
1448
1532
|
:long_name: user-must-approve
|
1449
1533
|
:short_name: q
|
@@ -1486,7 +1570,7 @@
|
|
1486
1570
|
- :opt_name: warning_color
|
1487
1571
|
:env_var: MDE_WARNING_COLOR
|
1488
1572
|
:description: Color of warning message
|
1489
|
-
:default:
|
1573
|
+
:default: fg_rgbh_ff_b3_66
|
1490
1574
|
:procname: val_as_str
|
1491
1575
|
- :opt_name: warning_format
|
1492
1576
|
:env_var: MDE_WARNING_FORMAT
|
data/lib/string_util.rb
CHANGED
@@ -29,3 +29,83 @@ class String
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
# String.delete_even_chars / String.delete_even_chars!
|
34
|
+
#
|
35
|
+
# Class methods that remove the 2nd, 4th, 6th, ... characters from a string.
|
36
|
+
#
|
37
|
+
# Behavior
|
38
|
+
# - Operates on Unicode grapheme clusters via /\X/ to avoid splitting emoji
|
39
|
+
# and combining sequences—“user-visible characters” are treated as units.
|
40
|
+
# - .delete_even_chars(str) returns a new string consisting of the 1st, 3rd,
|
41
|
+
# 5th, ... clusters from +str+.
|
42
|
+
# - .delete_even_chars!(str) modifies +str+ in place using #replace and
|
43
|
+
# returns it (raises FrozenError if +str+ is frozen).
|
44
|
+
#
|
45
|
+
# Examples
|
46
|
+
# String.delete_even_chars("abcdef") # => "ace"
|
47
|
+
# String.delete_even_chars("áb̂c̆") # keeps 1st, 3rd, ... clusters intact
|
48
|
+
# s = "👨👩👧👦🙂x"; String.delete_even_chars!(s) # modifies s
|
49
|
+
#
|
50
|
+
class String
|
51
|
+
def delete_even_chars
|
52
|
+
clusters = scan(/\X/)
|
53
|
+
return dup if clusters.length <= 1
|
54
|
+
|
55
|
+
clusters.each_with_index
|
56
|
+
.select { |_, i| i.even? } # keep 1st, 3rd, 5th... (0-based even)
|
57
|
+
.map(&:first)
|
58
|
+
.join
|
59
|
+
end
|
60
|
+
|
61
|
+
def delete_even_chars!
|
62
|
+
replace(delete_even_chars)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# String#sort_chars / String#sort_chars!
|
67
|
+
#
|
68
|
+
# Adds methods to order a string's user-visible characters (Unicode grapheme
|
69
|
+
# clusters) and return the joined result.
|
70
|
+
#
|
71
|
+
# Behavior
|
72
|
+
# - Sorts by Ruby’s default ordering of the grapheme cluster strings.
|
73
|
+
# - Preserves emoji and combining sequences by splitting on /\X/.
|
74
|
+
# - Optional case-insensitive key and reverse ordering.
|
75
|
+
# - Optional custom comparator block; if given, it takes precedence.
|
76
|
+
#
|
77
|
+
# API
|
78
|
+
# String#sort_chars(reverse: false, casefold: false) { |a, b| ... } -> String
|
79
|
+
# String#sort_chars!(reverse: false, casefold: false) { |a, b| ... } -> self
|
80
|
+
#
|
81
|
+
# Examples
|
82
|
+
# "cba".sort_chars #=> "abc"
|
83
|
+
# "Baß".sort_chars(casefold: true) #=> "aBß"
|
84
|
+
# "👩💻🚀a".sort_chars #=> "a👩💻🚀" (clusters kept intact)
|
85
|
+
# "bca".sort_chars { |a,b| b <=> a } #=> "cba" (custom comparator)
|
86
|
+
#
|
87
|
+
# Notes
|
88
|
+
# - For locale-aware collation, integrate a collator and use the block form.
|
89
|
+
#
|
90
|
+
class String
|
91
|
+
def sort_chars(reverse: false, casefold: false, &block)
|
92
|
+
clusters = scan(/\X/)
|
93
|
+
return self if clusters.length <= 1
|
94
|
+
|
95
|
+
sorted =
|
96
|
+
if block
|
97
|
+
clusters.sort(&block)
|
98
|
+
elsif casefold
|
99
|
+
clusters.sort_by(&:downcase)
|
100
|
+
else
|
101
|
+
clusters.sort
|
102
|
+
end
|
103
|
+
|
104
|
+
sorted.reverse! if reverse
|
105
|
+
sorted.join
|
106
|
+
end
|
107
|
+
|
108
|
+
def sort_chars!(reverse: false, casefold: false, &block)
|
109
|
+
replace(sort_chars(reverse: reverse, casefold: casefold, &block))
|
110
|
+
end
|
111
|
+
end
|