tabry 0.2.2 → 0.2.4
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/bin/tabry-fish +9 -0
- data/bin/tabry-generate-fish-complete +31 -0
- data/lib/tabry/cli/all_in_one.rb +27 -6
- data/lib/tabry/config_builder/arg_or_flag_builder.rb +5 -0
- data/lib/tabry/config_builder/top_level_builder.rb +3 -0
- data/lib/tabry/machine.rb +1 -1
- data/lib/tabry/models/const_option.rb +1 -1
- data/lib/tabry/models/flags_list.rb +6 -2
- data/lib/tabry/models/include_option.rb +2 -2
- data/lib/tabry/models/method_option.rb +14 -0
- data/lib/tabry/models/option.rb +5 -5
- data/lib/tabry/models/options_list.rb +2 -2
- data/lib/tabry/models/shell_option.rb +1 -1
- data/lib/tabry/models/subs_list.rb +13 -2
- data/lib/tabry/options_finder.rb +13 -8
- data/lib/tabry/replty/base.rb +23 -0
- data/lib/tabry/replty/builder.rb +100 -0
- data/lib/tabry/runner.rb +2 -2
- data/lib/tabry/shell_tokenizer.rb +50 -0
- data/lib/tabry/shells/bash/wrapper.rb +2 -2
- data/lib/tabry/shells/fish/wrapper.rb +51 -0
- data/lib/tabry/shells/fish.rb +82 -0
- data/lib/tabry/version.rb +3 -0
- data/sh/fish/README.md +2 -1
- data/sh/fish/tabry_fish.fish +17 -11
- data/spec/fixtures/config_builder/underscoresdashes.yml +1 -1
- data/spec/fixtures/vehicles-expectations.json +351 -0
- data/spec/tabry/cli/all_in_one_spec.rb +12 -0
- data/spec/tabry/machine_spec.rb +5 -82
- data/spec/tabry/shell_tokenizer_spec.rb +34 -0
- data/tabry.gemspec +2 -4
- data/treesitter/corpus/opts.txt +2 -0
- data/treesitter/grammar.js +7 -0
- data/treesitter/src/grammar.json +21 -0
- data/treesitter/src/node-types.json +23 -0
- data/treesitter/src/parser.c +959 -893
- data/treesitter/tabry-compile.js +6 -0
- metadata +16 -5
- data/lib/tabry/shell_splitter.rb +0 -34
- data/spec/tabry/shell_splitter_spec.rb +0 -22
data/tabry.gemspec
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
lib = File.expand_path("lib", __dir__)
|
5
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require_relative './lib/tabry/version'
|
6
4
|
|
7
5
|
Gem::Specification.new do |s|
|
8
6
|
s.name = "tabry"
|
9
|
-
s.version =
|
7
|
+
s.version = Tabry::VERSION
|
10
8
|
s.summary = "Tab completion and CLIs extraordinaire"
|
11
9
|
s.authors = ["Evan Battaglia"]
|
12
10
|
s.email = "battaglia.evan@gmail.com"
|
data/treesitter/corpus/opts.txt
CHANGED
@@ -5,6 +5,7 @@ Options
|
|
5
5
|
arg {
|
6
6
|
opts const a
|
7
7
|
opts shell "ls"
|
8
|
+
opts method foo
|
8
9
|
opts file
|
9
10
|
opts dir
|
10
11
|
}
|
@@ -17,5 +18,6 @@ arg {
|
|
17
18
|
(block
|
18
19
|
(opts_const_statement (string))
|
19
20
|
(opts_shell_statement (string))
|
21
|
+
(opts_method_statement (string))
|
20
22
|
(opts_file_statement)
|
21
23
|
(opts_dir_statement))))
|
data/treesitter/grammar.js
CHANGED
@@ -27,6 +27,7 @@ module.exports = grammar({
|
|
27
27
|
$._common_statement,
|
28
28
|
$.opts_const_statement,
|
29
29
|
$.opts_shell_statement,
|
30
|
+
$.opts_method_statement,
|
30
31
|
$.opts_file_statement,
|
31
32
|
$.opts_dir_statement,
|
32
33
|
$.title_statement,
|
@@ -121,6 +122,12 @@ module.exports = grammar({
|
|
121
122
|
'dir',
|
122
123
|
),
|
123
124
|
|
125
|
+
opts_method_statement: $ => seq(
|
126
|
+
'opts',
|
127
|
+
'method',
|
128
|
+
$.string
|
129
|
+
),
|
130
|
+
|
124
131
|
flagarg_statement: $ => seq(
|
125
132
|
optional($.flag_modifier),
|
126
133
|
'flagarg',
|
data/treesitter/src/grammar.json
CHANGED
@@ -77,6 +77,10 @@
|
|
77
77
|
"type": "SYMBOL",
|
78
78
|
"name": "opts_shell_statement"
|
79
79
|
},
|
80
|
+
{
|
81
|
+
"type": "SYMBOL",
|
82
|
+
"name": "opts_method_statement"
|
83
|
+
},
|
80
84
|
{
|
81
85
|
"type": "SYMBOL",
|
82
86
|
"name": "opts_file_statement"
|
@@ -389,6 +393,23 @@
|
|
389
393
|
}
|
390
394
|
]
|
391
395
|
},
|
396
|
+
"opts_method_statement": {
|
397
|
+
"type": "SEQ",
|
398
|
+
"members": [
|
399
|
+
{
|
400
|
+
"type": "STRING",
|
401
|
+
"value": "opts"
|
402
|
+
},
|
403
|
+
{
|
404
|
+
"type": "STRING",
|
405
|
+
"value": "method"
|
406
|
+
},
|
407
|
+
{
|
408
|
+
"type": "SYMBOL",
|
409
|
+
"name": "string"
|
410
|
+
}
|
411
|
+
]
|
412
|
+
},
|
392
413
|
"flagarg_statement": {
|
393
414
|
"type": "SEQ",
|
394
415
|
"members": [
|
@@ -101,6 +101,10 @@
|
|
101
101
|
"type": "opts_file_statement",
|
102
102
|
"named": true
|
103
103
|
},
|
104
|
+
{
|
105
|
+
"type": "opts_method_statement",
|
106
|
+
"named": true
|
107
|
+
},
|
104
108
|
{
|
105
109
|
"type": "opts_shell_statement",
|
106
110
|
"named": true
|
@@ -332,6 +336,21 @@
|
|
332
336
|
"named": true,
|
333
337
|
"fields": {}
|
334
338
|
},
|
339
|
+
{
|
340
|
+
"type": "opts_method_statement",
|
341
|
+
"named": true,
|
342
|
+
"fields": {},
|
343
|
+
"children": {
|
344
|
+
"multiple": false,
|
345
|
+
"required": true,
|
346
|
+
"types": [
|
347
|
+
{
|
348
|
+
"type": "string",
|
349
|
+
"named": true
|
350
|
+
}
|
351
|
+
]
|
352
|
+
}
|
353
|
+
},
|
335
354
|
{
|
336
355
|
"type": "opts_shell_statement",
|
337
356
|
"named": true,
|
@@ -524,6 +543,10 @@
|
|
524
543
|
"type": "include",
|
525
544
|
"named": false
|
526
545
|
},
|
546
|
+
{
|
547
|
+
"type": "method",
|
548
|
+
"named": false
|
549
|
+
},
|
527
550
|
{
|
528
551
|
"type": "opts",
|
529
552
|
"named": false
|