jazzy 0.15.0 → 0.15.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/.github/workflows/Tests.yml +3 -2
- data/.rubocop.yml +11 -1
- data/CHANGELOG.md +31 -0
- data/CONTRIBUTING.md +1 -1
- data/Gemfile.lock +41 -41
- data/jazzy.gemspec +9 -9
- data/lib/jazzy/config.rb +2 -2
- data/lib/jazzy/gem_version.rb +1 -1
- data/lib/jazzy/grouper.rb +6 -6
- data/lib/jazzy/podspec_documenter.rb +1 -1
- data/lib/jazzy/sourcekitten.rb +15 -4
- data/lib/jazzy/symbol_graph/ext_node.rb +11 -7
- data/lib/jazzy/symbol_graph/relationship.rb +1 -1
- data/lib/jazzy/themes/apple/assets/js/jazzy.js +1 -1
- data/lib/jazzy/themes/fullwidth/assets/js/jazzy.js +1 -1
- data/lib/jazzy/themes/jony/assets/js/jazzy.js +1 -1
- data/spec/integration_spec.rb +19 -5
- metadata +13 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9a5cf4da18c11cdb04965d69968cee0b16db1720e9a8f31b9b27fbd4eaddd8fd
|
|
4
|
+
data.tar.gz: 5efbaf91ef7e253a86a652b45c5fbfd512d7dccccbf06aa2b53190f8a8a135d9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 62074603cb5b33f8809ae5f5d9c16c5381947f4187d6e58f4d08c47ba2408479568bb9631d3c293e6a53ed7bdd0237ca928f931af496d13bf60715e90bfb3844
|
|
7
|
+
data.tar.gz: db5f645a8a7a5deaf0f6f2776ad17010a28d948d2cda1e2c3c4e8cb1a23e0ab14ac773a00b9fd8a6c88fd76198d4c756ce1536ce500a18ede7e42bcfd02493bb
|
data/.github/workflows/Tests.yml
CHANGED
|
@@ -34,15 +34,16 @@ jobs:
|
|
|
34
34
|
- uses: actions/checkout@v4
|
|
35
35
|
with:
|
|
36
36
|
submodules: recursive
|
|
37
|
+
persist-credentials: false
|
|
37
38
|
- uses: maxim-lobanov/setup-xcode@v1
|
|
38
39
|
with:
|
|
39
|
-
xcode-version:
|
|
40
|
+
xcode-version: '16.0'
|
|
40
41
|
- uses: ruby/setup-ruby@v1
|
|
41
42
|
with:
|
|
42
43
|
ruby-version: 3.2
|
|
43
44
|
bundler-cache: true
|
|
44
45
|
- name: Cache cocoapods
|
|
45
|
-
uses: actions/cache@
|
|
46
|
+
uses: actions/cache@v4
|
|
46
47
|
env:
|
|
47
48
|
cache-name: cocoapods
|
|
48
49
|
with:
|
data/.rubocop.yml
CHANGED
|
@@ -8,8 +8,10 @@ AllCops:
|
|
|
8
8
|
SuggestExtensions: false
|
|
9
9
|
TargetRubyVersion: 2.6
|
|
10
10
|
|
|
11
|
-
#- Pending Cops as of 1.
|
|
11
|
+
#- Pending Cops as of 1.66.1 ---------------------------------------------#
|
|
12
12
|
|
|
13
|
+
Gemspec/AddRuntimeDependency: # new in 1.65
|
|
14
|
+
Enabled: true
|
|
13
15
|
Gemspec/DeprecatedAttributeAssignment: # new in 1.30
|
|
14
16
|
Enabled: true
|
|
15
17
|
Gemspec/DevelopmentDependencies: # new in 1.44
|
|
@@ -82,6 +84,8 @@ Lint/UnexpectedBlockArity: # (new in 1.5)
|
|
|
82
84
|
Enabled: true
|
|
83
85
|
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
|
|
84
86
|
Enabled: true
|
|
87
|
+
Lint/UselessNumericOperation: # new in 1.66
|
|
88
|
+
Enabled: true
|
|
85
89
|
Lint/UselessRescue: # new in 1.43
|
|
86
90
|
Enabled: true
|
|
87
91
|
Lint/UselessRuby2Keywords: # new in 1.23
|
|
@@ -186,6 +190,8 @@ Style/RedundantHeredocDelimiterQuotes: # new in 1.45
|
|
|
186
190
|
Enabled: true
|
|
187
191
|
Style/RedundantInitialize: # new in 1.27
|
|
188
192
|
Enabled: true
|
|
193
|
+
Style/RedundantInterpolationUnfreeze: # new in 1.66
|
|
194
|
+
Enabled: true
|
|
189
195
|
Style/RedundantLineContinuation: # new in 1.49
|
|
190
196
|
Enabled: true
|
|
191
197
|
Style/RedundantRegexpArgument: # new in 1.53
|
|
@@ -200,10 +206,14 @@ Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
|
|
|
200
206
|
Enabled: true
|
|
201
207
|
Style/SelectByRegexp: # new in 1.22
|
|
202
208
|
Enabled: true
|
|
209
|
+
Style/SendWithLiteralMethodName: # new in 1.64
|
|
210
|
+
Enabled: true
|
|
203
211
|
Style/SingleLineDoEndBlock: # new in 1.57
|
|
204
212
|
Enabled: true
|
|
205
213
|
Style/StringChars: # (new in 1.12)
|
|
206
214
|
Enabled: true
|
|
215
|
+
Style/SuperArguments: # new in 1.64
|
|
216
|
+
Enabled: true
|
|
207
217
|
Style/SuperWithArgsParentheses: # new in 1.58
|
|
208
218
|
Enabled: true
|
|
209
219
|
Style/SwapValues: # (new in 1.1)
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,34 @@
|
|
|
1
|
+
## 0.15.2
|
|
2
|
+
|
|
3
|
+
##### Breaking
|
|
4
|
+
|
|
5
|
+
* None.
|
|
6
|
+
|
|
7
|
+
##### Enhancements
|
|
8
|
+
|
|
9
|
+
* Support Swift 6.0 / Xcode 16.0
|
|
10
|
+
[John Fairhurst](https://github.com/johnfairh)
|
|
11
|
+
|
|
12
|
+
##### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* None.
|
|
15
|
+
|
|
16
|
+
## 0.15.1
|
|
17
|
+
|
|
18
|
+
##### Breaking
|
|
19
|
+
|
|
20
|
+
* None.
|
|
21
|
+
|
|
22
|
+
##### Enhancements
|
|
23
|
+
|
|
24
|
+
* None.
|
|
25
|
+
|
|
26
|
+
##### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* Restore compatibility with Ruby 2.6
|
|
29
|
+
[John Fairhurst](https://github.com/johnfairh)
|
|
30
|
+
[#1388](https://github.com/realm/jazzy/issues/1388)
|
|
31
|
+
|
|
1
32
|
## 0.15.0
|
|
2
33
|
|
|
3
34
|
##### Breaking
|
data/CONTRIBUTING.md
CHANGED
|
@@ -49,7 +49,7 @@ git push
|
|
|
49
49
|
You'll need push access to the integration specs repo to do this. You can
|
|
50
50
|
request access from one of the maintainers when filing your PR.
|
|
51
51
|
|
|
52
|
-
You must have Xcode
|
|
52
|
+
You must have Xcode 16.0 installed to build the integration specs.
|
|
53
53
|
|
|
54
54
|
## Making changes to SourceKitten
|
|
55
55
|
|
data/Gemfile.lock
CHANGED
|
@@ -9,12 +9,12 @@ GIT
|
|
|
9
9
|
PATH
|
|
10
10
|
remote: .
|
|
11
11
|
specs:
|
|
12
|
-
jazzy (0.15.
|
|
12
|
+
jazzy (0.15.2)
|
|
13
13
|
cocoapods (~> 1.5)
|
|
14
14
|
mustache (~> 1.1)
|
|
15
15
|
open4 (~> 1.3)
|
|
16
16
|
redcarpet (~> 3.4)
|
|
17
|
-
rexml (
|
|
17
|
+
rexml (>= 3.2.7, < 4.0)
|
|
18
18
|
rouge (>= 2.0.6, < 5.0)
|
|
19
19
|
sassc (~> 2.1)
|
|
20
20
|
sqlite3 (~> 1.3)
|
|
@@ -27,18 +27,19 @@ GEM
|
|
|
27
27
|
base64
|
|
28
28
|
nkf
|
|
29
29
|
rexml
|
|
30
|
-
activesupport (7.1
|
|
30
|
+
activesupport (7.2.1)
|
|
31
31
|
base64
|
|
32
32
|
bigdecimal
|
|
33
|
-
concurrent-ruby (~> 1.0, >= 1.
|
|
33
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
34
34
|
connection_pool (>= 2.2.5)
|
|
35
35
|
drb
|
|
36
36
|
i18n (>= 1.6, < 2)
|
|
37
|
+
logger (>= 1.4.2)
|
|
37
38
|
minitest (>= 5.1)
|
|
38
|
-
|
|
39
|
-
tzinfo (~> 2.0)
|
|
40
|
-
addressable (2.8.
|
|
41
|
-
public_suffix (>= 2.0.2, <
|
|
39
|
+
securerandom (>= 0.3)
|
|
40
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
41
|
+
addressable (2.8.7)
|
|
42
|
+
public_suffix (>= 2.0.2, < 7.0)
|
|
42
43
|
algoliasearch (1.27.5)
|
|
43
44
|
httpclient (~> 2.8, >= 2.8.3)
|
|
44
45
|
json (>= 1.5.1)
|
|
@@ -46,7 +47,7 @@ GEM
|
|
|
46
47
|
atomos (0.1.3)
|
|
47
48
|
bacon (1.2.0)
|
|
48
49
|
base64 (0.2.0)
|
|
49
|
-
bigdecimal (3.1.
|
|
50
|
+
bigdecimal (3.1.8)
|
|
50
51
|
claide (1.1.0)
|
|
51
52
|
claide-plugins (0.9.2)
|
|
52
53
|
cork
|
|
@@ -90,14 +91,14 @@ GEM
|
|
|
90
91
|
netrc (~> 0.11)
|
|
91
92
|
cocoapods-try (1.2.0)
|
|
92
93
|
colored2 (3.1.2)
|
|
93
|
-
concurrent-ruby (1.
|
|
94
|
+
concurrent-ruby (1.3.4)
|
|
94
95
|
connection_pool (2.4.1)
|
|
95
96
|
cork (0.3.0)
|
|
96
97
|
colored2 (~> 3.1)
|
|
97
98
|
crack (1.0.0)
|
|
98
99
|
bigdecimal
|
|
99
100
|
rexml
|
|
100
|
-
danger (9.
|
|
101
|
+
danger (9.5.0)
|
|
101
102
|
claide (~> 1.0)
|
|
102
103
|
claide-plugins (>= 0.9.2)
|
|
103
104
|
colored2 (~> 3.1)
|
|
@@ -107,7 +108,6 @@ GEM
|
|
|
107
108
|
git (~> 1.13)
|
|
108
109
|
kramdown (~> 2.3)
|
|
109
110
|
kramdown-parser-gfm (~> 1.0)
|
|
110
|
-
no_proxy_fix
|
|
111
111
|
octokit (>= 4.0)
|
|
112
112
|
terminal-table (>= 1, < 4)
|
|
113
113
|
diffy (3.4.2)
|
|
@@ -115,22 +115,24 @@ GEM
|
|
|
115
115
|
escape (0.0.4)
|
|
116
116
|
ethon (0.16.0)
|
|
117
117
|
ffi (>= 1.15.0)
|
|
118
|
-
faraday (2.
|
|
119
|
-
faraday-net_http (>= 2.0, < 3.
|
|
118
|
+
faraday (2.12.0)
|
|
119
|
+
faraday-net_http (>= 2.0, < 3.4)
|
|
120
|
+
json
|
|
121
|
+
logger
|
|
120
122
|
faraday-http-cache (2.5.1)
|
|
121
123
|
faraday (>= 0.8)
|
|
122
|
-
faraday-net_http (3.
|
|
124
|
+
faraday-net_http (3.3.0)
|
|
123
125
|
net-http
|
|
124
|
-
ffi (1.
|
|
126
|
+
ffi (1.17.0)
|
|
125
127
|
fourflusher (2.3.1)
|
|
126
128
|
fuzzy_match (2.0.4)
|
|
127
129
|
gh_inspector (1.1.3)
|
|
128
130
|
git (1.19.1)
|
|
129
131
|
addressable (~> 2.8)
|
|
130
132
|
rchardet (~> 1.8)
|
|
131
|
-
hashdiff (1.1.
|
|
133
|
+
hashdiff (1.1.1)
|
|
132
134
|
httpclient (2.8.3)
|
|
133
|
-
i18n (1.14.
|
|
135
|
+
i18n (1.14.6)
|
|
134
136
|
concurrent-ruby (~> 1.0)
|
|
135
137
|
json (2.7.2)
|
|
136
138
|
kramdown (2.4.0)
|
|
@@ -139,54 +141,51 @@ GEM
|
|
|
139
141
|
kramdown (~> 2.0)
|
|
140
142
|
language_server-protocol (3.17.0.3)
|
|
141
143
|
liferaft (0.0.6)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
144
|
+
logger (1.6.1)
|
|
145
|
+
mini_portile2 (2.8.7)
|
|
146
|
+
minitest (5.25.1)
|
|
147
|
+
mocha (2.4.5)
|
|
145
148
|
ruby2_keywords (>= 0.0.5)
|
|
146
149
|
mocha-on-bacon (0.2.3)
|
|
147
150
|
mocha (>= 0.13.0)
|
|
148
151
|
molinillo (0.8.0)
|
|
149
152
|
mustache (1.1.1)
|
|
150
|
-
mutex_m (0.2.0)
|
|
151
153
|
nanaimo (0.3.0)
|
|
152
154
|
nap (1.1.0)
|
|
153
155
|
net-http (0.4.1)
|
|
154
156
|
uri
|
|
155
157
|
netrc (0.11.0)
|
|
156
158
|
nkf (0.2.0)
|
|
157
|
-
|
|
158
|
-
octokit (8.1.0)
|
|
159
|
-
base64
|
|
159
|
+
octokit (9.1.0)
|
|
160
160
|
faraday (>= 1, < 3)
|
|
161
161
|
sawyer (~> 0.9)
|
|
162
162
|
open4 (1.3.4)
|
|
163
|
-
parallel (1.
|
|
164
|
-
parser (3.3.
|
|
163
|
+
parallel (1.26.3)
|
|
164
|
+
parser (3.3.5.0)
|
|
165
165
|
ast (~> 2.4.1)
|
|
166
166
|
racc
|
|
167
167
|
prettybacon (0.0.2)
|
|
168
168
|
bacon (~> 1.2)
|
|
169
169
|
public_suffix (4.0.7)
|
|
170
|
-
racc (1.
|
|
170
|
+
racc (1.8.1)
|
|
171
171
|
rainbow (3.1.1)
|
|
172
172
|
rake (13.2.1)
|
|
173
173
|
rchardet (1.8.0)
|
|
174
174
|
redcarpet (3.6.0)
|
|
175
|
-
regexp_parser (2.9.
|
|
176
|
-
rexml (3.
|
|
177
|
-
rouge (4.
|
|
178
|
-
rubocop (1.
|
|
175
|
+
regexp_parser (2.9.2)
|
|
176
|
+
rexml (3.3.7)
|
|
177
|
+
rouge (4.4.0)
|
|
178
|
+
rubocop (1.66.1)
|
|
179
179
|
json (~> 2.3)
|
|
180
180
|
language_server-protocol (>= 3.17.0)
|
|
181
181
|
parallel (~> 1.10)
|
|
182
182
|
parser (>= 3.3.0.2)
|
|
183
183
|
rainbow (>= 2.2.2, < 4.0)
|
|
184
|
-
regexp_parser (>=
|
|
185
|
-
|
|
186
|
-
rubocop-ast (>= 1.31.1, < 2.0)
|
|
184
|
+
regexp_parser (>= 2.4, < 3.0)
|
|
185
|
+
rubocop-ast (>= 1.32.2, < 2.0)
|
|
187
186
|
ruby-progressbar (~> 1.7)
|
|
188
187
|
unicode-display_width (>= 2.4.0, < 3.0)
|
|
189
|
-
rubocop-ast (1.
|
|
188
|
+
rubocop-ast (1.32.3)
|
|
190
189
|
parser (>= 3.3.1.0)
|
|
191
190
|
ruby-macho (2.5.1)
|
|
192
191
|
ruby-progressbar (1.13.0)
|
|
@@ -196,6 +195,7 @@ GEM
|
|
|
196
195
|
sawyer (0.9.2)
|
|
197
196
|
addressable (>= 2.3.5)
|
|
198
197
|
faraday (>= 0.17.3, < 3)
|
|
198
|
+
securerandom (0.3.1)
|
|
199
199
|
sqlite3 (1.7.3)
|
|
200
200
|
mini_portile2 (~> 2.8.0)
|
|
201
201
|
terminal-table (3.0.2)
|
|
@@ -204,21 +204,21 @@ GEM
|
|
|
204
204
|
ethon (>= 0.9.0)
|
|
205
205
|
tzinfo (2.0.6)
|
|
206
206
|
concurrent-ruby (~> 1.0)
|
|
207
|
-
unicode-display_width (2.
|
|
208
|
-
uri (0.13.
|
|
209
|
-
webmock (3.23.
|
|
207
|
+
unicode-display_width (2.6.0)
|
|
208
|
+
uri (0.13.1)
|
|
209
|
+
webmock (3.23.1)
|
|
210
210
|
addressable (>= 2.8.0)
|
|
211
211
|
crack (>= 0.3.2)
|
|
212
212
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
213
213
|
xcinvoke (0.3.0)
|
|
214
214
|
liferaft (~> 0.0.6)
|
|
215
|
-
xcodeproj (1.
|
|
215
|
+
xcodeproj (1.25.0)
|
|
216
216
|
CFPropertyList (>= 2.3.3, < 4.0)
|
|
217
217
|
atomos (~> 0.1.3)
|
|
218
218
|
claide (>= 1.0.2, < 2.0)
|
|
219
219
|
colored2 (~> 3.1)
|
|
220
220
|
nanaimo (~> 0.3.0)
|
|
221
|
-
rexml (
|
|
221
|
+
rexml (>= 3.3.2, < 4.0)
|
|
222
222
|
|
|
223
223
|
PLATFORMS
|
|
224
224
|
ruby
|
data/jazzy.gemspec
CHANGED
|
@@ -18,15 +18,15 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.files = `git ls-files`.split($/)
|
|
19
19
|
spec.executables << 'jazzy'
|
|
20
20
|
|
|
21
|
-
spec.
|
|
22
|
-
spec.
|
|
23
|
-
spec.
|
|
24
|
-
spec.
|
|
25
|
-
spec.
|
|
26
|
-
spec.
|
|
27
|
-
spec.
|
|
28
|
-
spec.
|
|
29
|
-
spec.
|
|
21
|
+
spec.add_dependency 'cocoapods', '~> 1.5'
|
|
22
|
+
spec.add_dependency 'mustache', '~> 1.1'
|
|
23
|
+
spec.add_dependency 'open4', '~> 1.3'
|
|
24
|
+
spec.add_dependency 'redcarpet', '~> 3.4'
|
|
25
|
+
spec.add_dependency 'rexml', ['>= 3.2.7', '< 4.0']
|
|
26
|
+
spec.add_dependency 'rouge', ['>= 2.0.6', '< 5.0']
|
|
27
|
+
spec.add_dependency 'sassc', '~> 2.1'
|
|
28
|
+
spec.add_dependency 'sqlite3', '~> 1.3'
|
|
29
|
+
spec.add_dependency 'xcinvoke', '~> 0.3.0'
|
|
30
30
|
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
|
32
32
|
spec.add_development_dependency 'rake', '~> 13.0'
|
data/lib/jazzy/config.rb
CHANGED
|
@@ -717,12 +717,12 @@ module Jazzy
|
|
|
717
717
|
|
|
718
718
|
if modules.first.is_a?(String)
|
|
719
719
|
# Massage format (2) into (3)
|
|
720
|
-
self.modules = modules.map { { 'module' =>
|
|
720
|
+
self.modules = modules.map { |mod| { 'module' => mod } }
|
|
721
721
|
end
|
|
722
722
|
|
|
723
723
|
# Allow per-module overrides of only some config options
|
|
724
724
|
attrs_by_conf_key, attrs_by_name =
|
|
725
|
-
grouped_attributes {
|
|
725
|
+
grouped_attributes { |attr| attr.select(&:per_module) }
|
|
726
726
|
|
|
727
727
|
modules.map do |module_hash|
|
|
728
728
|
mod_name = module_hash['module'] || ''
|
data/lib/jazzy/gem_version.rb
CHANGED
data/lib/jazzy/grouper.rb
CHANGED
|
@@ -24,7 +24,7 @@ module Jazzy
|
|
|
24
24
|
# Group root-level docs by type
|
|
25
25
|
def self.group_docs_by_type(docs, type_category_prefix)
|
|
26
26
|
type_groups = SourceDeclaration::Type.all.map do |type|
|
|
27
|
-
children, docs = docs.partition {
|
|
27
|
+
children, docs = docs.partition { |doc| doc.type == type }
|
|
28
28
|
make_type_group(children, type, type_category_prefix)
|
|
29
29
|
end
|
|
30
30
|
merge_categories(type_groups.compact) + docs
|
|
@@ -49,7 +49,7 @@ module Jazzy
|
|
|
49
49
|
|
|
50
50
|
def self.group_custom_categories(docs, doc_index)
|
|
51
51
|
group = config.custom_categories.map do |category|
|
|
52
|
-
children = category['children'].
|
|
52
|
+
children = category['children'].map do |name|
|
|
53
53
|
unless doc = doc_index.lookup(name)
|
|
54
54
|
warn 'WARNING: No documented top-level declarations match ' \
|
|
55
55
|
"name \"#{name}\" specified in categories file"
|
|
@@ -64,7 +64,7 @@ module Jazzy
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
docs.delete(doc)
|
|
67
|
-
end
|
|
67
|
+
end.compact
|
|
68
68
|
# Category config overrides alphabetization
|
|
69
69
|
children.each.with_index { |child, i| child.nav_order = i }
|
|
70
70
|
make_group(children, category['name'], '')
|
|
@@ -73,7 +73,7 @@ module Jazzy
|
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def self.group_guides(docs, prefix)
|
|
76
|
-
guides, others = docs.partition {
|
|
76
|
+
guides, others = docs.partition { |doc| doc.type.markdown? }
|
|
77
77
|
return [[], others] unless guides.any?
|
|
78
78
|
|
|
79
79
|
[[make_type_group(guides, guides.first.type, prefix)], others]
|
|
@@ -92,7 +92,7 @@ module Jazzy
|
|
|
92
92
|
def self.merge_categories(categories)
|
|
93
93
|
merged = []
|
|
94
94
|
categories.each do |new_category|
|
|
95
|
-
if existing = merged.find {
|
|
95
|
+
if existing = merged.find { |cat| cat.name == new_category.name }
|
|
96
96
|
existing.children += new_category.children
|
|
97
97
|
else
|
|
98
98
|
merged.append(new_category)
|
|
@@ -102,7 +102,7 @@ module Jazzy
|
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def self.make_group(group, name, abstract, url_name = nil)
|
|
105
|
-
group.reject! {
|
|
105
|
+
group.reject! { |decl| decl.name.empty? }
|
|
106
106
|
unless group.empty?
|
|
107
107
|
SourceDeclaration.new.tap do |sd|
|
|
108
108
|
sd.type = SourceDeclaration::Type.overview
|
|
@@ -102,7 +102,7 @@ module Jazzy
|
|
|
102
102
|
private_class_method :github_file_prefix
|
|
103
103
|
|
|
104
104
|
# Latest valid value for SWIFT_VERSION.
|
|
105
|
-
LATEST_SWIFT_VERSION = '
|
|
105
|
+
LATEST_SWIFT_VERSION = '6'
|
|
106
106
|
|
|
107
107
|
# All valid values for SWIFT_VERSION that are longer
|
|
108
108
|
# than a major version number. Ordered ascending.
|
data/lib/jazzy/sourcekitten.rb
CHANGED
|
@@ -485,10 +485,19 @@ module Jazzy
|
|
|
485
485
|
# @available attrs only in compiler 'interface' style
|
|
486
486
|
extract_availability(doc['key.doc.declaration'] || '')
|
|
487
487
|
.concat(extract_documented_attributes(annotated_decl_attrs))
|
|
488
|
+
.concat(fabricate_spi_attributes(doc, annotated_decl_attrs))
|
|
488
489
|
.push(decl)
|
|
489
490
|
.join("\n")
|
|
490
491
|
end
|
|
491
492
|
|
|
493
|
+
# Swift 6 workaround: @_spi attribute & SPI group missing
|
|
494
|
+
def self.fabricate_spi_attributes(doc, attrs)
|
|
495
|
+
return [] unless spi_attribute?(doc)
|
|
496
|
+
return [] if attrs =~ /@_spi/
|
|
497
|
+
|
|
498
|
+
['@_spi(<<unknown>>)']
|
|
499
|
+
end
|
|
500
|
+
|
|
492
501
|
# Exclude non-async routines that accept async closures
|
|
493
502
|
def self.swift_async?(fully_annotated_decl)
|
|
494
503
|
document = REXML::Document.new(fully_annotated_decl)
|
|
@@ -692,7 +701,7 @@ module Jazzy
|
|
|
692
701
|
decl.type.objc_class? ||
|
|
693
702
|
(decl.type.objc_category? &&
|
|
694
703
|
(category_classname = decl.objc_category_name[0]) &&
|
|
695
|
-
root_decls.any? {
|
|
704
|
+
root_decls.any? { |d| d.name == category_classname })
|
|
696
705
|
end
|
|
697
706
|
|
|
698
707
|
# Returns if a Swift declaration is mergeable.
|
|
@@ -919,7 +928,9 @@ module Jazzy
|
|
|
919
928
|
|
|
920
929
|
# Grab all the extensions from the same doc module
|
|
921
930
|
def self.next_doc_module_group(decls)
|
|
922
|
-
decls.partition
|
|
931
|
+
decls.partition do |decl|
|
|
932
|
+
decl.doc_module_name == decls.first.doc_module_name
|
|
933
|
+
end
|
|
923
934
|
end
|
|
924
935
|
|
|
925
936
|
# Does this extension/type need a note explaining which doc module it is from?
|
|
@@ -1055,12 +1066,12 @@ module Jazzy
|
|
|
1055
1066
|
# Remove top-level enum cases because it means they have an ACL lower
|
|
1056
1067
|
# than min_acl
|
|
1057
1068
|
def self.reject_swift_types(docs)
|
|
1058
|
-
docs.reject {
|
|
1069
|
+
docs.reject { |doc| doc.type.swift_enum_element? }
|
|
1059
1070
|
end
|
|
1060
1071
|
|
|
1061
1072
|
# Spot and mark any categories on classes not declared in these docs
|
|
1062
1073
|
def self.mark_objc_external_categories(docs)
|
|
1063
|
-
class_names = docs.select {
|
|
1074
|
+
class_names = docs.select { |doc| doc.type.objc_class? }.to_set(&:name)
|
|
1064
1075
|
|
|
1065
1076
|
docs.map do |doc|
|
|
1066
1077
|
if (names = doc.objc_category_name) && !class_names.include?(names.first)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'set'
|
|
4
|
+
|
|
3
5
|
module Jazzy
|
|
4
6
|
module SymbolGraph
|
|
5
7
|
# For extensions we need to track constraints of the extended type
|
|
@@ -26,7 +28,7 @@ module Jazzy
|
|
|
26
28
|
attr_accessor :real_usr
|
|
27
29
|
attr_accessor :name
|
|
28
30
|
attr_accessor :all_constraints # ExtConstraints
|
|
29
|
-
attr_accessor :conformances #
|
|
31
|
+
attr_accessor :conformances # set, can be empty
|
|
30
32
|
|
|
31
33
|
# Deduce an extension from a member of an unknown type or
|
|
32
34
|
# of known type with additional constraints
|
|
@@ -54,7 +56,7 @@ module Jazzy
|
|
|
54
56
|
self.usr = usr
|
|
55
57
|
self.name = name
|
|
56
58
|
self.all_constraints = constraints
|
|
57
|
-
self.conformances =
|
|
59
|
+
self.conformances = Set.new
|
|
58
60
|
super()
|
|
59
61
|
end
|
|
60
62
|
|
|
@@ -65,13 +67,13 @@ module Jazzy
|
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
def add_conformance(protocol)
|
|
68
|
-
conformances.
|
|
70
|
+
conformances.add(protocol)
|
|
69
71
|
end
|
|
70
72
|
|
|
71
73
|
def full_declaration
|
|
72
74
|
decl = "extension #{name}"
|
|
73
75
|
unless conformances.empty?
|
|
74
|
-
decl += " : #{conformances.join(', ')}"
|
|
76
|
+
decl += " : #{conformances.sort.join(', ')}"
|
|
75
77
|
end
|
|
76
78
|
decl + all_constraints.ext.to_where_clause
|
|
77
79
|
end
|
|
@@ -90,7 +92,7 @@ module Jazzy
|
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
unless conformances.empty?
|
|
93
|
-
hash['key.inheritedtypes'] = conformances.map do |conformance|
|
|
95
|
+
hash['key.inheritedtypes'] = conformances.sort.map do |conformance|
|
|
94
96
|
{ 'key.name' => conformance }
|
|
95
97
|
end
|
|
96
98
|
end
|
|
@@ -100,11 +102,13 @@ module Jazzy
|
|
|
100
102
|
hash
|
|
101
103
|
end
|
|
102
104
|
|
|
103
|
-
# Sort order - by type name then constraint
|
|
105
|
+
# Sort order - by type name then constraint then conformances
|
|
106
|
+
# Conformance check needed for stable order with Swift 5.9
|
|
107
|
+
# extension symbols that can't merge as well as previously.
|
|
104
108
|
include Comparable
|
|
105
109
|
|
|
106
110
|
def sort_key
|
|
107
|
-
name + constraints.map(&:to_swift).join
|
|
111
|
+
name + constraints.map(&:to_swift).join + conformances.sort.join
|
|
108
112
|
end
|
|
109
113
|
|
|
110
114
|
def <=>(other)
|
|
@@ -34,7 +34,7 @@ module Jazzy
|
|
|
34
34
|
# Protocol conformances added by compiler to actor decls that
|
|
35
35
|
# users aren't interested in.
|
|
36
36
|
def actor_protocol?
|
|
37
|
-
%w[Actor Sendable].include?(target_fallback)
|
|
37
|
+
%w[Actor AnyActor Sendable].include?(target_fallback)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def initialize(hash)
|
|
@@ -22,7 +22,7 @@ function itemLinkToContent($link) {
|
|
|
22
22
|
return $link.parent().parent().next();
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// On doc load + hash-change, open any
|
|
25
|
+
// On doc load + hash-change, open any targeted item
|
|
26
26
|
function openCurrentItemIfClosed() {
|
|
27
27
|
if (window.jazzy.docset) {
|
|
28
28
|
return;
|
|
@@ -22,7 +22,7 @@ function itemLinkToContent($link) {
|
|
|
22
22
|
return $link.parent().parent().next();
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// On doc load + hash-change, open any
|
|
25
|
+
// On doc load + hash-change, open any targeted item
|
|
26
26
|
function openCurrentItemIfClosed() {
|
|
27
27
|
if (window.jazzy.docset) {
|
|
28
28
|
return;
|
|
@@ -22,7 +22,7 @@ function itemLinkToContent($link) {
|
|
|
22
22
|
return $link.parent().parent().next();
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// On doc load + hash-change, open any
|
|
25
|
+
// On doc load + hash-change, open any targeted item
|
|
26
26
|
function openCurrentItemIfClosed() {
|
|
27
27
|
if (window.jazzy.docset) {
|
|
28
28
|
return;
|
data/spec/integration_spec.rb
CHANGED
|
@@ -146,6 +146,15 @@ describe_cli 'jazzy' do
|
|
|
146
146
|
</script>
|
|
147
147
|
HTML
|
|
148
148
|
|
|
149
|
+
realm_jazzy_yaml = <<-YAML
|
|
150
|
+
build_tool_arguments:
|
|
151
|
+
- "-scheme"
|
|
152
|
+
- "RealmSwift"
|
|
153
|
+
- "SWIFT_VERSION=4.2"
|
|
154
|
+
- "-destination"
|
|
155
|
+
- "platform=OS X,arch=x86_64"
|
|
156
|
+
YAML
|
|
157
|
+
|
|
149
158
|
spec_subset = ENV.fetch('JAZZY_SPEC_SUBSET', nil)
|
|
150
159
|
|
|
151
160
|
# rubocop:disable Style/MultilineIfModifier
|
|
@@ -208,9 +217,15 @@ describe_cli 'jazzy' do
|
|
|
208
217
|
|
|
209
218
|
describe 'Creates Realm Swift docs' do
|
|
210
219
|
realm_version = ''
|
|
211
|
-
|
|
220
|
+
realm_path = ROOT + 'spec/integration_specs/document_realm_swift/before'
|
|
221
|
+
realm_jazzy_path = realm_path + '.jazzy.yaml'
|
|
222
|
+
|
|
223
|
+
Dir.chdir(realm_path) do
|
|
212
224
|
realm_version = `./build.sh get-version`.chomp
|
|
213
225
|
end
|
|
226
|
+
# Xcode 16 workaround
|
|
227
|
+
File.write(realm_jazzy_path, realm_jazzy_yaml)
|
|
228
|
+
|
|
214
229
|
behaves_like cli_spec 'document_realm_swift',
|
|
215
230
|
'--author Realm ' \
|
|
216
231
|
'--author_url "https://realm.io" ' \
|
|
@@ -222,10 +237,8 @@ describe_cli 'jazzy' do
|
|
|
222
237
|
"--module-version #{realm_version} " \
|
|
223
238
|
'--root-url https://realm.io/docs/swift/' \
|
|
224
239
|
"#{realm_version}/api/ " \
|
|
225
|
-
'--xcodebuild-arguments ' \
|
|
226
|
-
'-scheme,RealmSwift,SWIFT_VERSION=4.2,' \
|
|
227
|
-
"-destination,'platform=OS X' " \
|
|
228
240
|
"--head #{realm_head.shellescape}"
|
|
241
|
+
FileUtils.rm_rf realm_jazzy_path
|
|
229
242
|
end
|
|
230
243
|
|
|
231
244
|
describe 'Creates Siesta docs' do
|
|
@@ -249,7 +262,8 @@ describe_cli 'jazzy' do
|
|
|
249
262
|
behaves_like cli_spec 'misc_jazzy_symgraph_features',
|
|
250
263
|
'--swift-build-tool symbolgraph ' \
|
|
251
264
|
'--build-tool-arguments ' \
|
|
252
|
-
|
|
265
|
+
'-emit-extension-block-symbols,-I,' \
|
|
266
|
+
"#{module_path.chomp}/Modules"
|
|
253
267
|
end
|
|
254
268
|
|
|
255
269
|
describe 'Creates docs for a multiple-module project' do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jazzy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.15.
|
|
4
|
+
version: 0.15.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- JP Simard
|
|
@@ -11,7 +11,7 @@ authors:
|
|
|
11
11
|
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
date: 2024-
|
|
14
|
+
date: 2024-09-20 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: cocoapods
|
|
@@ -73,16 +73,22 @@ dependencies:
|
|
|
73
73
|
name: rexml
|
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
|
75
75
|
requirements:
|
|
76
|
-
- - "
|
|
76
|
+
- - ">="
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 3.2.7
|
|
79
|
+
- - "<"
|
|
77
80
|
- !ruby/object:Gem::Version
|
|
78
|
-
version: '
|
|
81
|
+
version: '4.0'
|
|
79
82
|
type: :runtime
|
|
80
83
|
prerelease: false
|
|
81
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
82
85
|
requirements:
|
|
83
|
-
- - "
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 3.2.7
|
|
89
|
+
- - "<"
|
|
84
90
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '
|
|
91
|
+
version: '4.0'
|
|
86
92
|
- !ruby/object:Gem::Dependency
|
|
87
93
|
name: rouge
|
|
88
94
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -376,7 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
376
382
|
- !ruby/object:Gem::Version
|
|
377
383
|
version: '0'
|
|
378
384
|
requirements: []
|
|
379
|
-
rubygems_version: 3.
|
|
385
|
+
rubygems_version: 3.5.3
|
|
380
386
|
signing_key:
|
|
381
387
|
specification_version: 4
|
|
382
388
|
summary: Soulful docs for Swift & Objective-C.
|