erb-formatter 0.7.1 → 0.7.2
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/README.md +17 -0
- data/lib/erb/formatter/version.rb +1 -1
- data/lib/erb/formatter.rb +10 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4d4aa4df0dfb6331993b2586513da76d3c4bb9443f536e5738adf68ef1cbb37
|
4
|
+
data.tar.gz: 0d6a144fd792f2eb78fb6a7112f49e330aae42a6c4b5de0b3b2fe42f6fb513d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5db13cddb929dec25486feafd48261068365d4f6847e514ec1c99df903d45bd036e4fa82b54c4de08534af079e8d1dd7c879c282595cb2f539b0e07a44fda135
|
7
|
+
data.tar.gz: 4bacbaecf5078bc4fc43c89cdc183a5883522a23e015a7642fc6b56384bfa34440585a1afb7964e8643db2492d325994eaf6f0d41d2f790a4ddfd81add43e774
|
data/README.md
CHANGED
@@ -119,6 +119,23 @@ let g:ale_fixers = {
|
|
119
119
|
\}
|
120
120
|
```
|
121
121
|
|
122
|
+
### With [Zed](https://zed.dev/) editor
|
123
|
+
|
124
|
+
With the gem installed, configure `settings.json` to use the formatter as an external command
|
125
|
+
|
126
|
+
```json
|
127
|
+
"language_overrides": {
|
128
|
+
"ERB": {
|
129
|
+
"formatter": {
|
130
|
+
"external": {
|
131
|
+
"command": "erb-format",
|
132
|
+
"arguments": ["--stdin", "--print-width", "80"]
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
```
|
138
|
+
|
122
139
|
## Development
|
123
140
|
|
124
141
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/erb/formatter.rb
CHANGED
@@ -26,9 +26,11 @@ class ERB::Formatter
|
|
26
26
|
|
27
27
|
class Error < StandardError; end
|
28
28
|
|
29
|
+
SPACES = /\s+/m
|
30
|
+
|
29
31
|
# https://stackoverflow.com/a/317081
|
30
32
|
ATTR_NAME = %r{[^\r\n\t\f\v= '"<>]*[^\r\n\t\f\v= '"<>/]} # not ending with a slash
|
31
|
-
UNQUOTED_VALUE =
|
33
|
+
UNQUOTED_VALUE = %r{[^<>'"\s]+}
|
32
34
|
UNQUOTED_ATTR = %r{#{ATTR_NAME}=#{UNQUOTED_VALUE}}
|
33
35
|
SINGLE_QUOTE_ATTR = %r{(?:#{ATTR_NAME}='[^']*?')}m
|
34
36
|
DOUBLE_QUOTE_ATTR = %r{(?:#{ATTR_NAME}="[^"]*?")}m
|
@@ -136,17 +138,18 @@ class ERB::Formatter
|
|
136
138
|
attrs.scan(ATTR).flatten.each do |attr|
|
137
139
|
attr.strip!
|
138
140
|
name, value = attr.split('=', 2)
|
139
|
-
if UNQUOTED_ATTR =~ attr
|
140
|
-
attr_html << indented("#{name}=\"#{value}\"")
|
141
|
-
next
|
142
|
-
end
|
143
141
|
|
144
142
|
if value.nil?
|
145
143
|
attr_html << indented("#{name}")
|
146
144
|
next
|
147
145
|
end
|
148
146
|
|
149
|
-
|
147
|
+
if /\A#{UNQUOTED_VALUE}\z/o.match?(value)
|
148
|
+
attr_html << indented("#{name}=\"#{value}\"")
|
149
|
+
next
|
150
|
+
end
|
151
|
+
|
152
|
+
value_parts = value[1...-1].strip.split(SPACES)
|
150
153
|
value_parts.sort_by!(&@css_class_sorter) if name == 'class' && @css_class_sorter
|
151
154
|
|
152
155
|
full_attr = "#{name}=#{value[0]}#{value_parts.join(" ")}#{value[-1]}"
|
@@ -231,7 +234,7 @@ class ERB::Formatter
|
|
231
234
|
|
232
235
|
return if text.match?(/\A\s*\z/m) # empty
|
233
236
|
|
234
|
-
text = text.gsub(
|
237
|
+
text = text.gsub(SPACES, ' ').strip
|
235
238
|
|
236
239
|
offset = indented("").size
|
237
240
|
# Restore full line width if there are less than 40 columns available
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erb-formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: syntax_tree
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
requirements: []
|
99
|
-
rubygems_version: 3.5.
|
99
|
+
rubygems_version: 3.5.4
|
100
100
|
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: Format ERB files with speed and precision.
|