@@ -92,41 +92,72 @@ <h1>Member Results</h1>
92
92
// Insert into list of results in package, no need to sort -
93
93
// already sorted:
94
94
var entityUl = entityResults [ parent . name ] ;
95
- var entityLi = document . createElement ( "li" ) ;
96
- if ( entity . hasCompanion )
97
- entityLi . classList . add ( "entity-result-li" , "with-companion" ) ;
98
- else
99
- entityLi . classList . add ( "entity-result-li" ) ;
100
-
101
- var companion = ! entity . hasCompanion ? "" : (
102
- '<a class="letter-anchor object" href="{{ site.baseurl }}/api/' + entity . companionPath . join ( '/' ) + '.html">O</a>'
103
- ) ;
104
-
105
- var letter =
106
- '<a class="letter-anchor ' + entity . kind + '" href="{{ site.baseurl }}/api/' + entity . path . join ( '/' ) + '.html">' +
107
- entity . kind . charAt ( 0 ) . toUpperCase ( ) +
108
- '</a>'
109
-
110
- entityLi . innerHTML = (
111
- '<div class="entity-kinds">' +
112
- companion +
113
- letter +
114
- '</div>' +
115
- "<a class=\"entity-name\" href=\"{{ site.baseurl }}/api/" + entity . path . join ( '/' ) + ".html\">" +
116
- entity . name +
117
- "</a>"
118
- ) ;
119
- entityUl . appendChild ( entityLi ) ;
95
+ var selector = entity . path . slice ( 0 , entity . path . length - 1 ) . join ( '-' ) + '-' + entity . name ;
96
+ var entityLi = document . querySelector ( '#' + selector ) ;
97
+ if ( ! entityLi ) {
98
+ entityLi = document . createElement ( "li" ) ;
99
+ if ( entity . hasCompanion )
100
+ entityLi . classList . add ( "entity-result-li" , "with-companion" ) ;
101
+ else
102
+ entityLi . classList . add ( "entity-result-li" ) ;
103
+
104
+ entityLi . id = selector ;
105
+
106
+ var companion = ! entity . hasCompanion ? "" : (
107
+ '<a class="letter-anchor object" href="{{ site.baseurl }}/api/' + entity . companionPath . join ( '/' ) + '.html">O</a>'
108
+ ) ;
109
+
110
+ var letter =
111
+ '<a class="letter-anchor ' + entity . kind + '" href="{{ site.baseurl }}/api/' + entity . path . join ( '/' ) + '.html">' +
112
+ entity . kind . charAt ( 0 ) . toUpperCase ( ) +
113
+ '</a>'
114
+
115
+ entityLi . innerHTML = (
116
+ '<div class="entity-kinds">' +
117
+ companion +
118
+ letter +
119
+ '</div>' +
120
+ "<a class=\"entity-name\" href=\"{{ site.baseurl }}/api/" + entity . path . join ( '/' ) + ".html\">" +
121
+ entity . name +
122
+ "</a>"
123
+ ) ;
124
+ entityUl . appendChild ( entityLi ) ;
125
+ }
120
126
return entityLi ;
121
127
}
122
128
else {
123
- return undefined ;
129
+ var path = entity . path . slice ( 0 , entity . path . length - 1 )
130
+ return document . querySelector ( '#' + path + '-' + entity . name ) ;
124
131
}
125
132
} ;
126
133
} ;
127
134
128
135
var insertMember = function ( member , li ) {
129
- li . appendChild ( document . createTextNode ( ", " + member . name ) ) ;
136
+ var div = document . createElement ( "div" ) ;
137
+ div . classList . add ( "member-result" ) ;
138
+
139
+ var renderParamList = function ( plist ) {
140
+ var start = plist . isImplicit ? "(implicit " : "(" ;
141
+ var args = plist . list . join ( ', ' ) ;
142
+ return start + args + ")" ;
143
+ } ;
144
+
145
+ var concatenateStrings = function ( acc , str ) { return acc + str ; } ;
146
+
147
+ var paramLists = ! member . paramLists ? "" : (
148
+ member . paramLists
149
+ . map ( renderParamList )
150
+ . reduce ( concatenateStrings , "" )
151
+ ) ;
152
+
153
+ div . innerHTML =
154
+ '<span class="member-kind">' + member . kind + '</span>' +
155
+ '<span class="member-name">' + member . name + '</span>' +
156
+ paramLists +
157
+ ':' +
158
+ '<span class="member-return">' + member . returnValue + '</span>'
159
+
160
+ li . appendChild ( div ) ;
130
161
} ;
131
162
132
163
var entityResultsNode = document . getElementById ( "entity-results" ) ;
@@ -135,18 +166,17 @@ <h1>Member Results</h1>
135
166
var memberResults = [ ] ;
136
167
137
168
apiSearch . onmessage = function ( res ) {
169
+ var package = res . data . package ;
138
170
switch ( res . data . type ) {
139
171
case "entityResult" : {
140
172
var entity = res . data . entity ;
141
- var package = res . data . package ;
142
173
//console.log("got entity: " + entity.name + ", in package: " + package.name);
143
174
insertEntity ( entityResultsNode , entityResults ) ( entity , package ) ;
144
175
break ;
145
176
}
146
177
case "memberResult" : {
147
178
var member = res . data . member ;
148
179
var parent = res . data . parent ;
149
- var package = res . data . package ;
150
180
//console.log("got member: " + member.name + ", in entity: " + parent.name);
151
181
var li = insertEntity ( memberResultsNode , memberResults ) ( parent , package ) ;
152
182
if ( li ) insertMember ( member , li ) ;
0 commit comments