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