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