markdown_exec 1.8.6 → 1.8.8
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/.pryrc +0 -1
- data/.rubocop.yml +3 -2
- data/CHANGELOG.md +45 -3
- data/Gemfile +1 -0
- data/Gemfile.lock +7 -1
- data/Rakefile +1 -0
- data/bin/bmde +1 -1
- data/bin/tab_completion.sh +4 -4
- data/examples/colors.md +2 -1
- data/examples/indent.md +66 -0
- data/examples/linked.md +20 -1
- data/examples/load1.sh +5 -0
- data/examples/load2.sh +5 -0
- data/examples/nickname.md +26 -0
- data/examples/opts.md +2 -0
- data/lib/ansi_formatter.rb +1 -5
- data/lib/array.rb +4 -0
- data/lib/cached_nested_file_reader.rb +47 -43
- data/lib/ce_get_cost_and_usage.rb +22 -0
- data/lib/constants.rb +7 -0
- data/lib/exceptions.rb +6 -4
- data/lib/fcb.rb +5 -2
- data/lib/filter.rb +21 -11
- data/lib/find_files.rb +99 -0
- data/lib/hash_delegator.rb +1358 -1179
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/mdoc.rb +59 -39
- data/lib/menu.src.yml +201 -21
- data/lib/menu.yml +155 -11
- data/lib/saved_assets.rb +10 -8
- metadata +10 -8
- data/lib/method_sorter.rb +0 -78
- data/lib/pty1.rb +0 -26
- data/lib/regexp_replacer.rb +0 -58
- data/lib/sort_yaml_gpt4.rb +0 -32
data/lib/mdoc.rb
CHANGED
@@ -23,6 +23,7 @@ module MarkdownExec
|
|
23
23
|
#
|
24
24
|
def initialize(table = [])
|
25
25
|
@table = table
|
26
|
+
# &bc '@table.count:',@table.count
|
26
27
|
end
|
27
28
|
|
28
29
|
def collect_block_code_cann(fcb)
|
@@ -69,28 +70,40 @@ module MarkdownExec
|
|
69
70
|
# @param name [String] The name of the code block to start the retrieval from.
|
70
71
|
# @return [Array<Hash>] An array of code blocks required by the specified code block.
|
71
72
|
#
|
72
|
-
def
|
73
|
+
def collect_block_dependencies(name)
|
73
74
|
name_block = get_block_by_anyname(name)
|
74
75
|
if name_block.nil? || name_block.keys.empty?
|
75
76
|
raise "Named code block `#{name}` not found. (@#{__LINE__})"
|
76
77
|
end
|
77
78
|
|
78
|
-
|
79
|
-
|
80
|
-
|
79
|
+
nickname = name_block[:nickname] || name_block[:oname]
|
80
|
+
dependencies = collect_dependencies(nickname)
|
81
|
+
# &bc 'dependencies.count:',dependencies.count
|
82
|
+
all_dependency_names = collect_unique_names(dependencies).push(nickname).uniq
|
83
|
+
# &bc 'all_dependency_names.count:',all_dependency_names.count
|
84
|
+
|
85
|
+
# select non-chrome blocks in order of appearance in source documents
|
86
|
+
#
|
87
|
+
blocks = @table.select do |fcb|
|
88
|
+
!fcb.fetch(:chrome,
|
89
|
+
false) && all_dependency_names.include?(fcb.fetch(:nickname,
|
90
|
+
nil) || fcb.fetch(:oname))
|
91
|
+
end
|
92
|
+
# &bc 'blocks.count:',blocks.count
|
81
93
|
|
82
|
-
|
83
|
-
#
|
84
|
-
|
85
|
-
|
86
|
-
unmet_dependencies.delete(fcb[:oname]) # may not exist if block name is duplicated
|
94
|
+
## add cann key to blocks, calc unmet_dependencies
|
95
|
+
#
|
96
|
+
unmet_dependencies = all_dependency_names.dup
|
97
|
+
blocks = blocks.map do |fcb|
|
98
|
+
unmet_dependencies.delete(fcb[:nickname] || fcb[:oname]) # may not exist if block name is duplicated
|
87
99
|
if (call = fcb[:call])
|
88
|
-
[
|
100
|
+
[get_block_by_anyname("[#{call.match(/^%\((\S+) |\)/)[1]}]")
|
89
101
|
.merge({ cann: call })]
|
90
102
|
else
|
91
103
|
[]
|
92
104
|
end + [fcb]
|
93
105
|
end.flatten(1)
|
106
|
+
# &bc 'unmet_dependencies.count:',unmet_dependencies.count
|
94
107
|
|
95
108
|
{ all_dependency_names: all_dependency_names,
|
96
109
|
blocks: blocks,
|
@@ -103,13 +116,15 @@ module MarkdownExec
|
|
103
116
|
# @param name [String] The name of the code block to start the collection from.
|
104
117
|
# @return [Array<String>] An array of strings containing the collected code blocks.
|
105
118
|
#
|
106
|
-
def collect_recursively_required_code(name, label_body: true, label_format_above: nil,
|
107
|
-
label_format_below: nil
|
108
|
-
block_search =
|
119
|
+
def collect_recursively_required_code(name, block_source:, label_body: true, label_format_above: nil,
|
120
|
+
label_format_below: nil)
|
121
|
+
block_search = collect_block_dependencies(name)
|
109
122
|
if block_search[:blocks]
|
110
123
|
blocks = collect_wrapped_blocks(block_search[:blocks])
|
124
|
+
# &bc 'blocks.count:',blocks.count
|
125
|
+
|
111
126
|
block_search.merge(
|
112
|
-
{ block_names: blocks.map { |block| block[:oname] },
|
127
|
+
{ block_names: blocks.map { |block| block[:nickname] || block[:oname] },
|
113
128
|
code: blocks.map do |fcb|
|
114
129
|
if fcb[:cann]
|
115
130
|
collect_block_code_cann(fcb)
|
@@ -121,11 +136,12 @@ module MarkdownExec
|
|
121
136
|
elsif fcb[:shell] == BlockType::PORT
|
122
137
|
collect_block_code_shell(fcb)
|
123
138
|
elsif label_body
|
139
|
+
block_name_for_bash_comment = (fcb[:nickname] || fcb[:oname]).gsub(/\s+/, '_')
|
124
140
|
[label_format_above && format(label_format_above,
|
125
|
-
block_source.merge({ block_name:
|
141
|
+
block_source.merge({ block_name: block_name_for_bash_comment }))] +
|
126
142
|
fcb[:body] +
|
127
143
|
[label_format_below && format(label_format_below,
|
128
|
-
block_source.merge({ block_name:
|
144
|
+
block_source.merge({ block_name: block_name_for_bash_comment }))]
|
129
145
|
else # raw body
|
130
146
|
fcb[:body]
|
131
147
|
end
|
@@ -134,6 +150,8 @@ module MarkdownExec
|
|
134
150
|
else
|
135
151
|
block_search.merge({ block_names: [], code: [] })
|
136
152
|
end
|
153
|
+
rescue StandardError
|
154
|
+
error_handler('collect_recursively_required_code')
|
137
155
|
end
|
138
156
|
|
139
157
|
def collect_unique_names(hash)
|
@@ -160,6 +178,13 @@ module MarkdownExec
|
|
160
178
|
end.flatten(1).compact
|
161
179
|
end
|
162
180
|
|
181
|
+
def error_handler(name = '', opts = {})
|
182
|
+
Exceptions.error_handler(
|
183
|
+
"MDoc.#{name} -- #{$!}",
|
184
|
+
opts
|
185
|
+
)
|
186
|
+
end
|
187
|
+
|
163
188
|
# Retrieves code blocks based on the provided options.
|
164
189
|
#
|
165
190
|
# @param opts [Hash] The options used for filtering code blocks.
|
@@ -173,9 +198,15 @@ module MarkdownExec
|
|
173
198
|
|
174
199
|
### hide rows correctly
|
175
200
|
|
201
|
+
if !options[:menu_include_imported_blocks]
|
202
|
+
selrows = selrows.reject do |block|
|
203
|
+
block.fetch(:depth, 0).positive?
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
176
207
|
if opts[:hide_blocks_by_name]
|
177
208
|
selrows = selrows.reject do |block|
|
178
|
-
|
209
|
+
hide_menu_block_on_name opts, block
|
179
210
|
end
|
180
211
|
end
|
181
212
|
|
@@ -195,19 +226,8 @@ module MarkdownExec
|
|
195
226
|
#
|
196
227
|
def get_block_by_anyname(name, default = {})
|
197
228
|
@table.select do |fcb|
|
198
|
-
fcb.fetch(:
|
199
|
-
|
200
|
-
end
|
201
|
-
|
202
|
-
def get_block_by_dname(name, default = {})
|
203
|
-
@table.select do |fcb|
|
204
|
-
fcb.fetch(:dname, '') == name
|
205
|
-
end.fetch(0, default)
|
206
|
-
end
|
207
|
-
|
208
|
-
def get_block_by_oname(name, default = {})
|
209
|
-
@table.select do |fcb|
|
210
|
-
fcb.fetch(:oname, '') == name
|
229
|
+
fcb.fetch(:nickname,
|
230
|
+
'') == name || fcb.fetch(:dname, '') == name || fcb.fetch(:oname, '') == name
|
211
231
|
end.fetch(0, default)
|
212
232
|
end
|
213
233
|
|
@@ -218,7 +238,7 @@ module MarkdownExec
|
|
218
238
|
# @return [Boolean] True if the code block should be hidden; false otherwise.
|
219
239
|
#
|
220
240
|
# :reek:UtilityFunction
|
221
|
-
def
|
241
|
+
def hide_menu_block_on_name(opts, block)
|
222
242
|
if block.fetch(:chrome, false)
|
223
243
|
false
|
224
244
|
else
|
@@ -249,7 +269,7 @@ module MarkdownExec
|
|
249
269
|
next if memo.include? req
|
250
270
|
|
251
271
|
memo += [req]
|
252
|
-
|
272
|
+
get_block_by_anyname(req).fetch(:reqs, [])
|
253
273
|
end
|
254
274
|
.compact
|
255
275
|
.flatten(1)
|
@@ -424,29 +444,29 @@ if $PROGRAM_NAME == __FILE__
|
|
424
444
|
# end
|
425
445
|
|
426
446
|
def test_get_block_by_name
|
427
|
-
result = @doc.
|
447
|
+
result = @doc.get_block_by_anyname('block1')
|
428
448
|
assert_equal @table[0], result
|
429
449
|
|
430
|
-
result_missing = @doc.
|
450
|
+
result_missing = @doc.get_block_by_anyname('missing_block')
|
431
451
|
assert_equal({}, result_missing)
|
432
452
|
end
|
433
453
|
|
434
454
|
### broken test
|
435
|
-
def
|
436
|
-
result = @doc.
|
455
|
+
def test_collect_block_dependencies
|
456
|
+
result = @doc.collect_block_dependencies('block3')[:blocks]
|
437
457
|
expected_result = [@table[0], @table[1], @table[2]]
|
438
458
|
assert_equal expected_result, result
|
439
459
|
|
440
460
|
assert_raises(RuntimeError) do
|
441
|
-
@doc.
|
461
|
+
@doc.collect_block_dependencies('missing_block')
|
442
462
|
end
|
443
463
|
end
|
444
464
|
|
445
|
-
def
|
465
|
+
def test_hide_menu_block_on_name
|
446
466
|
opts = { hide_blocks_by_name: true,
|
447
467
|
block_name_hidden_match: 'block1' }
|
448
468
|
block = FCB.new(oname: 'block1')
|
449
|
-
result = @doc.
|
469
|
+
result = @doc.hide_menu_block_on_name(opts, block)
|
450
470
|
assert result # this should be true based on the given logic
|
451
471
|
end
|
452
472
|
|
data/lib/menu.src.yml
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
---
|
2
2
|
- :description: Show current configuration values
|
3
3
|
:procname: show_config
|
4
|
-
:short_name:
|
4
|
+
:short_name: '0'
|
5
5
|
|
6
6
|
- :arg_name: BOOL
|
7
|
-
:default:
|
7
|
+
:default: true
|
8
8
|
:description: Display only blocks of type "bash"
|
9
9
|
:env_var: MDE_BASH_ONLY
|
10
10
|
:opt_name: bash_only
|
@@ -30,7 +30,7 @@
|
|
30
30
|
:opt_name: block_name_hidden_match
|
31
31
|
:procname: val_as_str
|
32
32
|
|
33
|
-
- :default: "
|
33
|
+
- :default: "^\\(.*\\)$"
|
34
34
|
:description: Pattern for blocks to hide from user-selection
|
35
35
|
:env_var: MDE_BLOCK_NAME_INCLUDE_MATCH
|
36
36
|
:opt_name: block_name_include_match
|
@@ -41,6 +41,12 @@
|
|
41
41
|
:opt_name: block_name_match
|
42
42
|
:procname: val_as_str
|
43
43
|
|
44
|
+
- :default: "^\\[.*\\]$"
|
45
|
+
:description: Pattern for block nicknames (name is not used in menu)
|
46
|
+
:env_var: MDE_BLOCK_NAME_NICK_MATCH
|
47
|
+
:opt_name: block_name_nick_match
|
48
|
+
:procname: val_as_str
|
49
|
+
|
44
50
|
- :default: "^{.+}$"
|
45
51
|
:description: Pattern for block names to use as wrappers
|
46
52
|
:env_var: MDE_BLOCK_NAME_WRAPPER_MATCH
|
@@ -73,6 +79,13 @@
|
|
73
79
|
:long_name: config
|
74
80
|
:procname: path
|
75
81
|
|
82
|
+
- :arg_name: BOOL
|
83
|
+
:default: true
|
84
|
+
:description: debounce_execution
|
85
|
+
:env_var: MDE_debounce_execution
|
86
|
+
:opt_name: debounce_execution
|
87
|
+
:procname: val_as_bool
|
88
|
+
|
76
89
|
- :arg_name: BOOL
|
77
90
|
:default: false
|
78
91
|
:description: Debug output
|
@@ -177,6 +190,68 @@
|
|
177
190
|
:opt_name: exclude_expect_blocks
|
178
191
|
:procname: val_as_bool
|
179
192
|
|
193
|
+
- :default: >
|
194
|
+
osascript -e '
|
195
|
+
tell application "iTerm"
|
196
|
+
tell application "System Events"
|
197
|
+
tell application "Finder"
|
198
|
+
set {posx, posy, screenWidth, screenHeight} to bounds of window of desktop
|
199
|
+
end tell
|
200
|
+
tell application process "Finder"
|
201
|
+
set {missing value, menubarHeight} to the size of menu bar 1
|
202
|
+
end tell
|
203
|
+
end tell
|
204
|
+
|
205
|
+
set winHeight to (screenHeight * 2 / 3)
|
206
|
+
set winWidth to (screenWidth / 2)
|
207
|
+
set xoff to menubarHeight * %{batch_index}
|
208
|
+
set yoff to xoff mod (screenHeight - winHeight)
|
209
|
+
|
210
|
+
create window with default profile
|
211
|
+
tell the first window
|
212
|
+
set bounds to {xoff, yoff, xoff + winWidth, yoff + winHeight}
|
213
|
+
tell the current session
|
214
|
+
write text "alias cat_script=\"cat -n \\\"%{script_filespec}\\\"\""
|
215
|
+
write text "alias less_script=\"less \\\"%{script_filespec}\\\"\""
|
216
|
+
write text "alias run_script=\"%{script_filespec}\""
|
217
|
+
write text "alias vim_script=\"vim \\\"%{script_filespec}\\\"\""
|
218
|
+
delay 1
|
219
|
+
|
220
|
+
write text "alias cat_output=\"cat -n \\\"%{output_filespec}\\\"\""
|
221
|
+
write text "alias grep_output=\"read -p Pattern: pattern && grep \\\"\\$pattern\\\" \\\"%{output_filespec}\\\"\""
|
222
|
+
write text "alias less_output=\"less \\\"%{output_filespec}\\\"\""
|
223
|
+
delay 1
|
224
|
+
|
225
|
+
write text "alias menu=\"select cmd in cat_script less_script run_script vim_script cat_output grep_output less_output exit; do eval \\\"\\$cmd\\\"; done\""
|
226
|
+
delay 1
|
227
|
+
|
228
|
+
write text "echo -ne \"\\033]; %{started_at} - %{document_filename} - %{block_name} \\007\""
|
229
|
+
write text "cd \"%{home}\""
|
230
|
+
write text "\"%{script_filename}\" | tee \"%{output_filespec}\""
|
231
|
+
delay 2
|
232
|
+
|
233
|
+
write text "menu"
|
234
|
+
end tell
|
235
|
+
end tell
|
236
|
+
end tell'
|
237
|
+
:description: execute_command_format
|
238
|
+
:env_var: MDE_EXECUTE_COMMAND_FORMAT
|
239
|
+
:opt_name: execute_command_format
|
240
|
+
:procname: val_as_str
|
241
|
+
|
242
|
+
- :default: "%T"
|
243
|
+
:description: Format for time in window title
|
244
|
+
:env_var: MDE_EXECUTE_COMMAND_TITLE_TIME_FORMAT
|
245
|
+
:opt_name: execute_command_title_time_format
|
246
|
+
:procname: val_as_str
|
247
|
+
|
248
|
+
- :arg_name: BOOL
|
249
|
+
:default: true
|
250
|
+
:description: Execute script in own window
|
251
|
+
:env_var: MDE_EXECUTE_IN_OWN_WINDOW
|
252
|
+
:opt_name: execute_in_own_window
|
253
|
+
:procname: val_as_bool
|
254
|
+
|
180
255
|
- :default: fg_rgbh_7f_ff_00
|
181
256
|
:description: execution_report_preview_frame_color
|
182
257
|
:env_var: MDE_EXECUTION_REPORT_PREVIEW_FRAME_COLOR
|
@@ -224,31 +299,31 @@
|
|
224
299
|
:short_name: f
|
225
300
|
|
226
301
|
- :arg_name: FIND
|
227
|
-
:default:
|
302
|
+
:default: ''
|
228
303
|
:description: Find in documents
|
229
304
|
:long_name: find
|
230
305
|
:procname: find
|
231
306
|
:short_name: "?"
|
232
307
|
|
233
308
|
- :arg_name: FIND_PATH
|
234
|
-
:default:
|
309
|
+
:default: ''
|
235
310
|
:description: Path for find (uses PATH if empty)
|
236
311
|
:env_var: MDE_FIND_PATH
|
237
312
|
:long_name: find-path
|
238
313
|
:opt_name: find_path
|
239
314
|
:procname: val_as_str
|
240
315
|
|
241
|
-
- :default: "^# *(?<
|
316
|
+
- :default: "^# *(?<line>[^#]*?) *$"
|
242
317
|
:env_var: MDE_HEADING1_MATCH
|
243
318
|
:opt_name: heading1_match
|
244
319
|
:procname: val_as_str
|
245
320
|
|
246
|
-
- :default: "^## *(?<
|
321
|
+
- :default: "^## *(?<line>[^#]*?) *$"
|
247
322
|
:env_var: MDE_HEADING2_MATCH
|
248
323
|
:opt_name: heading2_match
|
249
324
|
:procname: val_as_str
|
250
325
|
|
251
|
-
- :default: "^### *(?<
|
326
|
+
- :default: "^### *(?<line>.+?) *$"
|
252
327
|
:env_var: MDE_HEADING3_MATCH
|
253
328
|
:opt_name: heading3_match
|
254
329
|
:procname: val_as_str
|
@@ -278,12 +353,17 @@
|
|
278
353
|
:procname: val_as_str
|
279
354
|
|
280
355
|
- :arg_name: HOW
|
281
|
-
:default:
|
356
|
+
:default: ''
|
282
357
|
:description: Find in YAML configuration options
|
283
358
|
:long_name: how
|
284
359
|
:procname: how
|
285
360
|
:short_name: "?"
|
286
361
|
|
362
|
+
- :default:
|
363
|
+
:env_var: MDE_IMPORT_PATHS
|
364
|
+
:opt_name: import_paths
|
365
|
+
:procname: val_as_str
|
366
|
+
|
287
367
|
- :default: "^ *@import +(?<name>.+?) *$"
|
288
368
|
:env_var: MDE_IMPORT_PATTERN
|
289
369
|
:opt_name: import_pattern
|
@@ -363,7 +443,7 @@
|
|
363
443
|
:procname: val_as_bool
|
364
444
|
|
365
445
|
- :arg_name: BOOL
|
366
|
-
:default:
|
446
|
+
:default: true
|
367
447
|
:description: Controls whether headings(levels 1,2,3) are displayed in the block selection menu
|
368
448
|
:env_var: MDE_MENU_BLOCKS_WITH_HEADINGS
|
369
449
|
:opt_name: menu_blocks_with_headings
|
@@ -419,7 +499,43 @@
|
|
419
499
|
:opt_name: menu_final_divider
|
420
500
|
:procname: val_as_str
|
421
501
|
|
422
|
-
- :default:
|
502
|
+
- :default: fg_rgbh_80_80_c0
|
503
|
+
:description: Color for heading 1 in menu
|
504
|
+
:env_var: MDE_MENU_HEADING1_COLOR
|
505
|
+
:opt_name: menu_heading1_color
|
506
|
+
:procname: val_as_str
|
507
|
+
|
508
|
+
- :default: "# %{line}"
|
509
|
+
:description: format for menu heading1 in menu
|
510
|
+
:env_var: MDE_MENU_HEADING1_FORMAT
|
511
|
+
:opt_name: menu_heading1_format
|
512
|
+
:procname: val_as_str
|
513
|
+
|
514
|
+
- :default: fg_rgbh_60_60_c0
|
515
|
+
:description: Color for heading 2 in menu
|
516
|
+
:env_var: MDE_MENU_HEADING2_COLOR
|
517
|
+
:opt_name: menu_heading2_color
|
518
|
+
:procname: val_as_str
|
519
|
+
|
520
|
+
- :default: "## %{line}"
|
521
|
+
:description: format for menu heading2 in menu
|
522
|
+
:env_var: MDE_MENU_HEADING2_FORMAT
|
523
|
+
:opt_name: menu_heading2_format
|
524
|
+
:procname: val_as_str
|
525
|
+
|
526
|
+
- :default: fg_rgbh_40_40_c0
|
527
|
+
:description: Color for heading 3 in menu
|
528
|
+
:env_var: MDE_MENU_HEADING3_COLOR
|
529
|
+
:opt_name: menu_heading3_color
|
530
|
+
:procname: val_as_str
|
531
|
+
|
532
|
+
- :default: "### %{line}"
|
533
|
+
:description: format for menu heading3 in menu
|
534
|
+
:env_var: MDE_MENU_HEADING3_FORMAT
|
535
|
+
:opt_name: menu_heading3_format
|
536
|
+
:procname: val_as_str
|
537
|
+
|
538
|
+
- :default: '0'
|
423
539
|
:description: Import levels for blocks to appear in menu. Empty is all.
|
424
540
|
:env_var: MDE_MENU_IMPORT_LEVEL_MATCH
|
425
541
|
:opt_name: menu_import_level_match
|
@@ -440,8 +556,27 @@
|
|
440
556
|
:opt_name: menu_include_imported_notes
|
441
557
|
:procname: val_as_bool
|
442
558
|
|
559
|
+
- :arg_name: BOOL
|
560
|
+
:default: true
|
561
|
+
:description: Display inherited lines at top of menu (vs bottom)
|
562
|
+
:env_var: MDE_MENU_INHERITED_LINES_AT_TOP
|
563
|
+
:opt_name: menu_inherited_lines_at_top
|
564
|
+
:procname: val_as_bool
|
565
|
+
|
566
|
+
- :default: fg_rgbh_94_00_D3
|
567
|
+
:description: Color of inherited lines in menu
|
568
|
+
:env_var: MDE_MENU_INHERITED_LINES_COLOR
|
569
|
+
:opt_name: menu_inherited_lines_color
|
570
|
+
:procname: val_as_str
|
571
|
+
|
572
|
+
- :default: "%{line}"
|
573
|
+
:description: format for inherited lines in menu
|
574
|
+
:env_var: MDE_MENU_INHERITED_LINES_FORMAT
|
575
|
+
:opt_name: menu_inherited_lines_format
|
576
|
+
:procname: val_as_str
|
577
|
+
|
443
578
|
- :default:
|
444
|
-
:line:
|
579
|
+
:line: ''
|
445
580
|
:description: opening demarcation for menu
|
446
581
|
:env_var: MDE_MENU_INITIAL_DIVIDER
|
447
582
|
:opt_name: menu_initial_divider
|
@@ -511,6 +646,12 @@
|
|
511
646
|
:opt_name: menu_opts_set_format
|
512
647
|
:procname: val_as_str
|
513
648
|
|
649
|
+
- :default: "."
|
650
|
+
:description: Block name to display menu
|
651
|
+
:env_var: MDE_MENU_PERSIST_BLOCK_NAME
|
652
|
+
:opt_name: menu_persist_block_name
|
653
|
+
:procname: val_as_str
|
654
|
+
|
514
655
|
- :default: fg_rgbh_ff_ff_ff
|
515
656
|
:description: Color of menu task
|
516
657
|
:env_var: MDE_MENU_TASK_COLOR
|
@@ -567,6 +708,13 @@
|
|
567
708
|
:opt_name: menu_with_exit
|
568
709
|
:procname: val_as_bool
|
569
710
|
|
711
|
+
- :arg_name: BOOL
|
712
|
+
:default: true
|
713
|
+
:description: Display inherited lines in menu
|
714
|
+
:env_var: MDE_MENU_WITH_INHERITED_LINES
|
715
|
+
:opt_name: menu_with_inherited_lines
|
716
|
+
:procname: val_as_bool
|
717
|
+
|
570
718
|
- :arg_name: BOOL
|
571
719
|
:default: false
|
572
720
|
:description: Hide decorative menu entries
|
@@ -574,6 +722,26 @@
|
|
574
722
|
:opt_name: no_chrome
|
575
723
|
:procname: val_as_bool
|
576
724
|
|
725
|
+
- :default:
|
726
|
+
:description: Expression to match to start collecting lines
|
727
|
+
:env_var: MDE_OUTPUT_ASSIGNMENT_BEGIN
|
728
|
+
:opt_name: output_assignment_begin
|
729
|
+
:procname: val_as_str
|
730
|
+
- :default:
|
731
|
+
:description: Expression to match to stop collecting lines
|
732
|
+
:env_var: MDE_OUTPUT_ASSIGNMENT_END
|
733
|
+
:opt_name: output_assignment_begin
|
734
|
+
:procname: val_as_str
|
735
|
+
- :default: "%{line} # !!!"
|
736
|
+
:description: Format for assignments from output
|
737
|
+
:env_var: MDE_OUTPUT_ASSIGNMENT_FORMAT
|
738
|
+
:opt_name: output_assignment_format
|
739
|
+
:procname: val_as_str
|
740
|
+
- :default: "^ *(\\w+=.*?) *$"
|
741
|
+
:description: Pattern for assignments from output
|
742
|
+
:env_var: MDE_OUTPUT_ASSIGNMENT_MATCH
|
743
|
+
:opt_name: output_assignment_match
|
744
|
+
:procname: val_as_str
|
577
745
|
- :arg_name: BOOL
|
578
746
|
:default: false
|
579
747
|
:description: Display summary for execution
|
@@ -638,7 +806,7 @@
|
|
638
806
|
:short_name: p
|
639
807
|
|
640
808
|
- :arg_name: BOOL
|
641
|
-
:default:
|
809
|
+
:default: false
|
642
810
|
:description: Wheter to pause after manually executing a block and the next menu
|
643
811
|
:env_var: MDE_PAUSE_AFTER_SCRIPT_EXECUTION
|
644
812
|
:opt_name: pause_after_script_execution
|
@@ -662,13 +830,19 @@
|
|
662
830
|
:opt_name: prompt_color_after_script_execution
|
663
831
|
:procname: val_as_str
|
664
832
|
|
833
|
+
- :default: "\nRepeat this block?"
|
834
|
+
:description: Prompt to debounce
|
835
|
+
:env_var: MDE_PROMPT_DEBOUNCE
|
836
|
+
:opt_name: prompt_debounce
|
837
|
+
:procname: val_as_str
|
838
|
+
|
665
839
|
- :default: Exit
|
666
840
|
:description: Prompt to exit app
|
667
841
|
:env_var: MDE_PROMPT_EXIT
|
668
842
|
:opt_name: prompt_exit
|
669
843
|
:procname: val_as_str
|
670
844
|
|
671
|
-
- :default:
|
845
|
+
- :default: 'No'
|
672
846
|
:description: Prompt for no
|
673
847
|
:env_var: MDE_PROMPT_NO
|
674
848
|
:opt_name: prompt_no
|
@@ -704,7 +878,13 @@
|
|
704
878
|
:opt_name: prompt_select_output
|
705
879
|
:procname: val_as_str
|
706
880
|
|
707
|
-
- :default:
|
881
|
+
- :default: Uninterrupted
|
882
|
+
:description: Uninterrupted execution
|
883
|
+
:env_var: MDE_PROMPT_UNINTERRUPTED
|
884
|
+
:opt_name: prompt_uninterrupted
|
885
|
+
:procname: val_as_str
|
886
|
+
|
887
|
+
- :default: 'Yes'
|
708
888
|
:description: Prompt for yes
|
709
889
|
:env_var: MDE_PROMPT_YES
|
710
890
|
:opt_name: prompt_yes
|
@@ -721,7 +901,7 @@
|
|
721
901
|
:procname: val_as_bool
|
722
902
|
|
723
903
|
- :default: 1
|
724
|
-
:description:
|
904
|
+
:description: Runtime exception error level (warn if < 0, ignore if 0, abort if > 0)
|
725
905
|
:env_var: MDE_RUNTIME_EXCEPTION_ERROR_LEVEL
|
726
906
|
:opt_name: runtime_exception_error_level
|
727
907
|
:procname: val_as_int
|
@@ -849,7 +1029,7 @@
|
|
849
1029
|
:procname: val_as_str
|
850
1030
|
|
851
1031
|
- :default: 36
|
852
|
-
:description:
|
1032
|
+
:description: 'Maximum # of rows in select list'
|
853
1033
|
:env_var: MDE_SELECT_PAGE_HEIGHT
|
854
1034
|
:opt_name: select_page_height
|
855
1035
|
:procname: val_as_int
|
@@ -876,13 +1056,13 @@
|
|
876
1056
|
:opt_name: shell
|
877
1057
|
:procname: val_as_str
|
878
1058
|
|
879
|
-
- :default: "# -^-
|
1059
|
+
- :default: "# -^-"
|
880
1060
|
:description: shell_code_label_format_above
|
881
1061
|
:env_var: MDE_SHELL_CODE_LABEL_FORMAT_ABOVE
|
882
1062
|
:opt_name: shell_code_label_format_above
|
883
1063
|
:procname: val_as_str
|
884
1064
|
|
885
|
-
- :default: "# -v- +%{block_name} -v-"
|
1065
|
+
- :default: "# -v- +%{block_name} -o- %{document_filename} -v-"
|
886
1066
|
:description: shell_code_label_format_below
|
887
1067
|
:env_var: MDE_SHELL_CODE_LABEL_FORMAT_BELOW
|
888
1068
|
:opt_name: shell_code_label_format_below
|
@@ -894,7 +1074,7 @@
|
|
894
1074
|
:procname: val_as_bool
|
895
1075
|
|
896
1076
|
- :arg_name: BOOL
|
897
|
-
:default:
|
1077
|
+
:default: false
|
898
1078
|
:description: Requires user approval before executing a script
|
899
1079
|
:env_var: MDE_USER_MUST_APPROVE
|
900
1080
|
:long_name: user-must-approve
|
@@ -913,7 +1093,7 @@
|
|
913
1093
|
:opt_name: warning_color
|
914
1094
|
:procname: val_as_str
|
915
1095
|
|
916
|
-
- :default:
|
1096
|
+
- :default: 'Error: %{error}'
|
917
1097
|
:description: Format of warning message
|
918
1098
|
:env_var: MDE_WARNING_FORMAT
|
919
1099
|
:opt_name: warning_format
|