markdown_exec 1.8.6 → 1.8.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|