about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2017-12-13 00:20:45 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2017-12-15 14:44:49 +0100
commit6351ebb7e55345d799499c8a326530d3ce35e00a (patch)
tree4be96cb0b63b19810aaad5bd5e004478097a1f61 /src
parentb4f323254a2cf227852eec1b40db0b152fc6042c (diff)
downloadrust-6351ebb7e55345d799499c8a326530d3ce35e00a.tar.gz
rust-6351ebb7e55345d799499c8a326530d3ce35e00a.zip
make doc search more relevant
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/static/main.js19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 81971157b84..0c775f2a58e 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -681,6 +681,9 @@
             }
 
             function checkPath(startsWith, lastElem, ty) {
+                if (startsWith.length === 0) {
+                    return 0;
+                }
                 var ret_lev = MAX_LEV_DISTANCE + 1;
                 var path = ty.path.split("::");
 
@@ -706,18 +709,7 @@
                         lev_total += lev;
                     }
                     if (aborted === false) {
-                        var extra = MAX_LEV_DISTANCE + 1;
-                        if (i + startsWith.length < path.length) {
-                            extra = levenshtein(path[i + startsWith.length], lastElem);
-                        }
-                        if (extra > MAX_LEV_DISTANCE) {
-                            extra = levenshtein(ty.name, lastElem);
-                        }
-                        if (extra < MAX_LEV_DISTANCE + 1) {
-                            lev_total += extra;
-                            ret_lev = Math.min(ret_lev,
-                                               Math.round(lev_total / (startsWith.length + 1)));
-                        }
+                        ret_lev = Math.min(ret_lev, Math.round(lev_total / startsWith.length));
                     }
                 }
                 return ret_lev;
@@ -934,6 +926,9 @@
                     }
 
                     lev += lev_add;
+                    if (searchWords[j].startsWith(val)) {
+                        lev -= 1;
+                    }
                     if (in_args <= MAX_LEV_DISTANCE) {
                         if (results_in_args[fullId] === undefined) {
                             results_in_args[fullId] = {