Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 97f5db9

Browse files
committed
Website issue tracker link and better search performance
* last minor improvements
1 parent 12a35ab commit 97f5db9

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

util/gh-pages/index.html

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ <h1>ALL the Clippy Lints</h1>
7777
<div class="col-md-12 form-horizontal">
7878
<div class="input-group">
7979
<label class="input-group-addon" id="filter-label" for="filter-input">Filter:</label>
80-
<input type="text" class="form-control" placeholder="Keywords or search string" id="filter-input" ng-model="search" />
80+
<input type="text" class="form-control" placeholder="Keywords or search string" id="filter-input" ng-model="search" ng-model-options="{debounce: 50}"/>
8181
<span class="input-group-btn">
8282
<button class="btn btn-default" type="button" ng-click="search = ''">
8383
Clear
@@ -119,6 +119,7 @@ <h4 class="list-group-item-heading">
119119
{{title}}
120120
</h4>
121121
<div class="list-group-item-text" ng-bind-html="text | markdown"></div>
122+
<a ng-if="title == 'Known problems'" href="https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+{{lint.id}}">Search on GitHub</a>
122123
</li>
123124
</ul>
124125
</article>
@@ -180,6 +181,22 @@ <h4 class="list-group-item-heading">
180181
}
181182
}
182183

184+
function searchLint(lint, therm) {
185+
for (const field in lint.docs) {
186+
// Continue if it's not a property
187+
if (!lint.docs.hasOwnProperty(field)) {
188+
continue;
189+
}
190+
191+
// Return if not found
192+
if (lint.docs[field].toLowerCase().indexOf(therm) !== -1) {
193+
return true;
194+
}
195+
}
196+
197+
return false;
198+
}
199+
183200
angular.module("clippy", [])
184201
.filter('markdown', function ($sce) {
185202
return function (text) {
@@ -216,40 +233,31 @@ <h4 class="list-group-item-heading">
216233
};
217234

218235
$scope.bySearch = function (lint, index, array) {
219-
let search_str = $scope.search;
236+
let searchStr = $scope.search;
220237
// It can be `null` I haven't missed this value
221-
if (search_str == null || search_str.length == 0) {
238+
if (searchStr == null || searchStr.length < 3) {
222239
return true;
223240
}
224-
search_str = search_str.toLowerCase();
241+
searchStr = searchStr.toLowerCase();
225242

226243
// Search by id
227-
let id_search = search_str.trim().replace(/(\-| )/g, "_");
228-
if (lint.id.includes(id_search)) {
244+
if (lint.id.indexOf(searchStr.replace("-", "_")) !== -1) {
229245
return true;
230246
}
231247

232248
// Search the description
233249
// The use of `for`-loops instead of `foreach` enables us to return early
234-
let search_lint = (lint, therm) => {
235-
for (const field in lint.docs) {
236-
// Continue if it's not a property
237-
if (!lint.docs.hasOwnProperty(field)) {
238-
continue;
239-
}
240-
241-
// Return if not found
242-
if (lint.docs[field].toLowerCase().includes(therm)) {
243-
return true;
244-
}
245-
}
246-
return false;
247-
};
248-
let therms = search_str.split(" ");
250+
let therms = searchStr.split(" ");
249251
for (index = 0; index < therms.length; index++) {
250-
if (!search_lint(lint, therms[index])) {
251-
return false;
252+
if (lint.id.indexOf(therms[index]) !== -1) {
253+
continue;
252254
}
255+
256+
if (searchLint(lint, therms[index])) {
257+
continue;
258+
}
259+
260+
return false;
253261
}
254262

255263
return true;

0 commit comments

Comments
 (0)