syntax_tree 3.2.1 → 3.3.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 +9 -1
- data/Gemfile.lock +1 -1
- data/README.md +24 -0
- data/lib/syntax_tree/cli.rb +7 -0
- data/lib/syntax_tree/node.rb +1 -1
- data/lib/syntax_tree/rake/check_task.rb +10 -1
- data/lib/syntax_tree/rake/write_task.rb +10 -1
- data/lib/syntax_tree/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92ff69f19d5433566404bce6888eae08a442861821612c986489db05679ecd22
|
4
|
+
data.tar.gz: e05511cf866fa1e0cfde540f0a0bc84a88414b128583a37a68c73658ff667b16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d98f8b9a997ef9278ad2ea9c1600ee5abc52c646d157b0180f6cf6956ebde2ccc6d9ea917436231645a7d4bf58ce1627fbae393b89e81b683157bc5263d65e0
|
7
|
+
data.tar.gz: 924ccb54dec3055dca88aef5efe839d2c979abedfdf96f5e0996e18390b3e246b676cdb1c8aba6d51edfed42219bff3c80b4bfcead0eb3f6b926e585c96f0a1b
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [3.3.0] - 2022-08-02
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- [#123](https://github.com/ruby-syntax-tree/syntax_tree/pull/123) - Allow the rake tasks to configure print width.
|
14
|
+
- [#125](https://github.com/ruby-syntax-tree/syntax_tree/pull/125) - Add support for an `.streerc` file in the current working directory to configure the CLI.
|
15
|
+
|
9
16
|
## [3.2.1] - 2022-07-22
|
10
17
|
|
11
18
|
### Changed
|
@@ -312,7 +319,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
312
319
|
|
313
320
|
- 🎉 Initial release! 🎉
|
314
321
|
|
315
|
-
[unreleased]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.
|
322
|
+
[unreleased]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.3.0...HEAD
|
323
|
+
[3.3.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.2.1...v3.3.0
|
316
324
|
[3.2.1]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.2.0...v3.2.1
|
317
325
|
[3.2.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.1.0...v3.2.0
|
318
326
|
[3.1.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.0.1...v3.1.0
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -19,6 +19,7 @@ It is built with only standard library dependencies. It additionally ships with
|
|
19
19
|
- [json](#json)
|
20
20
|
- [match](#match)
|
21
21
|
- [write](#write)
|
22
|
+
- [Configuration](#configuration)
|
22
23
|
- [Library](#library)
|
23
24
|
- [SyntaxTree.read(filepath)](#syntaxtreereadfilepath)
|
24
25
|
- [SyntaxTree.parse(source)](#syntaxtreeparsesource)
|
@@ -231,6 +232,19 @@ To change the print width that you are writing with, specify the `--print-width`
|
|
231
232
|
stree write --print-width=100 path/to/file.rb
|
232
233
|
```
|
233
234
|
|
235
|
+
### Configuration
|
236
|
+
|
237
|
+
Any of the above CLI commands can also read configuration options from a `.streerc` file in the directory where the commands are executed.
|
238
|
+
|
239
|
+
This should be a text file with each argument on a separate line.
|
240
|
+
|
241
|
+
```txt
|
242
|
+
--print-width=100
|
243
|
+
--plugins=plugin/trailing_comma
|
244
|
+
```
|
245
|
+
|
246
|
+
If this file is present, it will _always_ be used for CLI commands. You can also pass options from the command line as in the examples above. The options in the `.streerc` file are passed to the CLI first, then the arguments from the command line. In the case of exclusive options (e.g. `--print-width`), this means that the command line options override what's in the config file. In the case of options that can take multiple inputs (e.g. `--plugins`), the effect is additive. That is, the plugins passed from the command line will be loaded _in addition to_ the plugins in the config file.
|
247
|
+
|
234
248
|
## Library
|
235
249
|
|
236
250
|
Syntax Tree can be used as a library to access the syntax tree underlying Ruby source code.
|
@@ -505,6 +519,16 @@ SyntaxTree::Rake::WriteTask.new do |t|
|
|
505
519
|
end
|
506
520
|
```
|
507
521
|
|
522
|
+
#### `print_width`
|
523
|
+
|
524
|
+
If you want to use a different print width from the default (80), you can pass that to the `print_width` field, as in:
|
525
|
+
|
526
|
+
```ruby
|
527
|
+
SyntaxTree::Rake::WriteTask.new do |t|
|
528
|
+
t.print_width = 100
|
529
|
+
end
|
530
|
+
```
|
531
|
+
|
508
532
|
#### `plugins`
|
509
533
|
|
510
534
|
If you're running Syntax Tree with plugins (either your own or the pre-built ones), you can pass that to the `plugins` field, as in:
|
data/lib/syntax_tree/cli.rb
CHANGED
@@ -4,6 +4,8 @@ module SyntaxTree
|
|
4
4
|
# Syntax Tree ships with the `stree` CLI, which can be used to inspect and
|
5
5
|
# manipulate Ruby code. This module is responsible for powering that CLI.
|
6
6
|
module CLI
|
7
|
+
CONFIG_FILE = ".streerc"
|
8
|
+
|
7
9
|
# A utility wrapper around colored strings in the output.
|
8
10
|
class Color
|
9
11
|
attr_reader :value, :code
|
@@ -269,6 +271,11 @@ module SyntaxTree
|
|
269
271
|
name, *arguments = argv
|
270
272
|
print_width = DEFAULT_PRINT_WIDTH
|
271
273
|
|
274
|
+
config_file = File.join(Dir.pwd, CONFIG_FILE)
|
275
|
+
if File.readable?(config_file)
|
276
|
+
arguments.unshift(*File.readlines(config_file, chomp: true))
|
277
|
+
end
|
278
|
+
|
272
279
|
while arguments.first&.start_with?("--")
|
273
280
|
case (argument = arguments.shift)
|
274
281
|
when /^--plugins=(.+)$/
|
data/lib/syntax_tree/node.rb
CHANGED
@@ -1978,7 +1978,7 @@ module SyntaxTree
|
|
1978
1978
|
# If we hit a statements, then we're safe to use whatever since we
|
1979
1979
|
# know for certain we're going to get split over multiple lines
|
1980
1980
|
# anyway.
|
1981
|
-
break false if parent.is_a?(Statements)
|
1981
|
+
break false if parent.is_a?(Statements) || parent.is_a?(ArgParen)
|
1982
1982
|
|
1983
1983
|
[Command, CommandCall].include?(parent.class)
|
1984
1984
|
end
|
@@ -35,14 +35,20 @@ module SyntaxTree
|
|
35
35
|
# Defaults to [].
|
36
36
|
attr_accessor :plugins
|
37
37
|
|
38
|
+
# Max line length.
|
39
|
+
# Defaults to 80.
|
40
|
+
attr_accessor :print_width
|
41
|
+
|
38
42
|
def initialize(
|
39
43
|
name = :"stree:check",
|
40
44
|
source_files = ::Rake::FileList["lib/**/*.rb"],
|
41
|
-
plugins = []
|
45
|
+
plugins = [],
|
46
|
+
print_width = DEFAULT_PRINT_WIDTH
|
42
47
|
)
|
43
48
|
@name = name
|
44
49
|
@source_files = source_files
|
45
50
|
@plugins = plugins
|
51
|
+
@print_width = print_width
|
46
52
|
|
47
53
|
yield self if block_given?
|
48
54
|
define_task
|
@@ -58,6 +64,9 @@ module SyntaxTree
|
|
58
64
|
def run_task
|
59
65
|
arguments = ["check"]
|
60
66
|
arguments << "--plugins=#{plugins.join(",")}" if plugins.any?
|
67
|
+
if print_width != DEFAULT_PRINT_WIDTH
|
68
|
+
arguments << "--print-width=#{print_width}"
|
69
|
+
end
|
61
70
|
|
62
71
|
SyntaxTree::CLI.run(arguments + Array(source_files))
|
63
72
|
end
|
@@ -35,14 +35,20 @@ module SyntaxTree
|
|
35
35
|
# Defaults to [].
|
36
36
|
attr_accessor :plugins
|
37
37
|
|
38
|
+
# Max line length.
|
39
|
+
# Defaults to 80.
|
40
|
+
attr_accessor :print_width
|
41
|
+
|
38
42
|
def initialize(
|
39
43
|
name = :"stree:write",
|
40
44
|
source_files = ::Rake::FileList["lib/**/*.rb"],
|
41
|
-
plugins = []
|
45
|
+
plugins = [],
|
46
|
+
print_width = DEFAULT_PRINT_WIDTH
|
42
47
|
)
|
43
48
|
@name = name
|
44
49
|
@source_files = source_files
|
45
50
|
@plugins = plugins
|
51
|
+
@print_width = print_width
|
46
52
|
|
47
53
|
yield self if block_given?
|
48
54
|
define_task
|
@@ -58,6 +64,9 @@ module SyntaxTree
|
|
58
64
|
def run_task
|
59
65
|
arguments = ["write"]
|
60
66
|
arguments << "--plugins=#{plugins.join(",")}" if plugins.any?
|
67
|
+
if print_width != DEFAULT_PRINT_WIDTH
|
68
|
+
arguments << "--print-width=#{print_width}"
|
69
|
+
end
|
61
70
|
|
62
71
|
SyntaxTree::CLI.run(arguments + Array(source_files))
|
63
72
|
end
|
data/lib/syntax_tree/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: syntax_tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Newton
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prettier_print
|