@@ -135,3 +135,74 @@ We can also include hidden ids:
135135 Main__A was used directly 1 times and indirectly 0 times
136136 Main__B was used directly 1 times and indirectly 0 times
137137 Main__C was used directly 1 times and indirectly 0 times
138+
139+ We can use the generated table when generating the json output:
140+
141+ $ odoc compile-index -o index . json -- occurrences occurrences-all. odoc main/ main. odocl
142+
143+ $ cat index . json | jq sort | jq ' .[]' -c
144+ {" id" : [{" kind" : " Root" ," name" : " Main" }]," doc" : " Handwritten top-level module" ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >.</span><span class=\" entry-name\" >Main</span></code><div class=\" entry-comment\" ><div><p>Handwritten top-level module</p></div></div>" }," occurrences" : {" direct" : 0 ," indirect" : 11 }}
145+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " A" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/A/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.</span><span class=\" entry-name\" >A</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 4 ," indirect" : 6 }}
146+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/B/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.</span><span class=\" entry-name\" >B</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 1 ," indirect" : 0 }}
147+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Module" ," name" : " M" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/B/M/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.</span><span class=\" entry-name\" >M</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
148+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Module" ," name" : " Y" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/B/Y/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.</span><span class=\" entry-name\" >Y</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
149+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Module" ," name" : " Z" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/B/Z/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.</span><span class=\" entry-name\" >Z</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
150+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Module" ," name" : " Z" },{" kind" : " Module" ," name" : " Y" }]," doc" : " " ," kind" : {" kind" : " Module" }," display" : {" url" : " Main/B/Z/Y/index.html" ," html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.Z.</span><span class=\" entry-name\" >Y</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
151+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " A" },{" kind" : " ModuleType" ," name" : " M" }]," doc" : " " ," kind" : {" kind" : " ModuleType" }," display" : {" url" : " Main/A/module-type-M/index.html" ," html" : " <code class=\" entry-kind\" >sig</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.A.</span><span class=\" entry-name\" >M</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 2 ," indirect" : 0 }}
152+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " ModuleType" ," name" : " Y" }]," doc" : " " ," kind" : {" kind" : " ModuleType" }," display" : {" url" : " Main/B/module-type-Y/index.html" ," html" : " <code class=\" entry-kind\" >sig</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.</span><span class=\" entry-name\" >Y</span></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
153+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " A" },{" kind" : " Type" ," name" : " t" }]," doc" : " " ," kind" : {" kind" : " TypeDecl" ," private" : false," manifest" : " string" ," constraints" : []}," display" : {" url" : " Main/A/index.html#type-t" ," html" : " <code class=\" entry-kind\" >type</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.A.</span><span class=\" entry-name\" >t</span><code class=\" entry-rhs\" > = string</code></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 1 ," indirect" : 0 }}
154+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " A" },{" kind" : " Value" ," name" : " (||>)" }]," doc" : " " ," kind" : {" kind" : " Value" ," type" : " int -> int -> int" }," display" : {" url" : " Main/A/index.html#val-(||>)" ," html" : " <code class=\" entry-kind\" >val</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.A.</span><span class=\" entry-name\" >(||& gt ;)</span><code class=\" entry-rhs\" > : int -& gt ; int -& gt ; int</code></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 1 ," indirect" : 0 }}
155+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " A" },{" kind" : " Value" ," name" : " x" }]," doc" : " " ," kind" : {" kind" : " Value" ," type" : " int" }," display" : {" url" : " Main/A/index.html#val-x" ," html" : " <code class=\" entry-kind\" >val</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.A.</span><span class=\" entry-name\" >x</span><code class=\" entry-rhs\" > : int</code></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : {" direct" : 2 ," indirect" : 0 }}
156+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Value" ," name" : " y" }]," doc" : " " ," kind" : {" kind" : " Value" ," type" : " int" }," display" : {" url" : " Main/B/index.html#val-y" ," html" : " <code class=\" entry-kind\" >val</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.</span><span class=\" entry-name\" >y</span><code class=\" entry-rhs\" > : int</code></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
157+ {" id" : [{" kind" : " Root" ," name" : " Main" },{" kind" : " Module" ," name" : " B" },{" kind" : " Module" ," name" : " Z" },{" kind" : " Value" ," name" : " y" }]," doc" : " " ," kind" : {" kind" : " Value" ," type" : " int" }," display" : {" url" : " Main/B/Z/index.html#val-y" ," html" : " <code class=\" entry-kind\" >val</code><code class=\" entry-title\" ><span class=\" prefix-name\" >Main.B.Z.</span><span class=\" entry-name\" >y</span><code class=\" entry-rhs\" > : int</code></code><div class=\" entry-comment\" ><div></div></div>" }," occurrences" : null}
158+
159+ $ cat index . json | jq sort | head -n 33
160+ [
161+ {
162+ " id" : [
163+ {
164+ " kind" : " Root" ,
165+ " name" : " Main"
166+ }
167+ ],
168+ " doc" : " Handwritten top-level module" ,
169+ " kind" : {
170+ " kind" : " Module"
171+ },
172+ " display" : {
173+ " url" : " Main/index.html" ,
174+ " html" : " <code class=\" entry-kind\" >mod</code><code class=\" entry-title\" ><span class=\" prefix-name\" >.</span><span class=\" entry-name\" >Main</span></code><div class=\" entry-comment\" ><div><p>Handwritten top-level module</p></div></div>"
175+ },
176+ " occurrences" : {
177+ " direct" : 0 ,
178+ " indirect" : 11
179+ }
180+ },
181+ {
182+ " id" : [
183+ {
184+ " kind" : " Root" ,
185+ " name" : " Main"
186+ },
187+ {
188+ " kind" : " Module" ,
189+ " name" : " A"
190+ }
191+ ],
192+ " doc" : " " ,
193+
194+ $ cat index . json | jq -r ' .[] | "\(.id | map("\(.kind)-\(.name)") | join(".")), direct: \(.occurrences.direct), indirect: \(.occurrences.indirect)"' | sort
195+ Root-Main, direct: 0 , indirect: 11
196+ Root-Main. Module-A, direct: 4 , indirect: 6
197+ Root-Main. Module-A. ModuleType-M, direct: 2 , indirect: 0
198+ Root-Main. Module-A. Type-t, direct: 1 , indirect: 0
199+ Root-Main. Module-A. Value-(|| > ), direct: 1 , indirect: 0
200+ Root-Main. Module-A. Value-x , direct: 2 , indirect: 0
201+ Root-Main. Module-B, direct: 1 , indirect: 0
202+ Root-Main. Module-B. Module-M, direct: null, indirect: null
203+ Root-Main. Module-B. Module-Y, direct: null, indirect: null
204+ Root-Main. Module-B. Module-Z , direct: null, indirect: null
205+ Root-Main. Module-B. Module-Z . Module-Y, direct: null, indirect: null
206+ Root-Main. Module-B. Module-Z . Value-y, direct: null, indirect: null
207+ Root-Main. Module-B. ModuleType-Y, direct: null, indirect: null
208+ Root-Main. Module-B. Value-y, direct: null, indirect: null
0 commit comments