Skip to content

Commit ed11e4a

Browse files
authored
Merge pull request #1059 from perl6/coke/levenshtein
Coke/levenshtein
2 parents 6524f06 + dd0aa1d commit ed11e4a

File tree

4 files changed

+21
-58
lines changed

4 files changed

+21
-58
lines changed

html/js/levenshtein.js

Lines changed: 0 additions & 47 deletions
This file was deleted.

template/footer.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
<script type="text/javascript" src="/js/jquery-3.1.1.min.js?v=1"></script>
2626
<script type="text/javascript" src="/js/jquery-ui.min.js?v=1"></script>
27-
<script type="text/javascript" src="/js/levenshtein.js?v=1"></script>
28-
<script type="text/javascript" src="/js/search.js?v=1"></script>
27+
<script type="text/javascript" src="/js/sift4-common.js?v=1"></script>
28+
<script type="text/javascript" src="/js/search.js?v=2"></script>
2929
<script type="text/javascript" src="/js/jquery.cookie.js?v=1"></script>
3030
<script type="text/javascript" src="/js/main.js?v=1"></script>

template/search_template.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,30 @@ $(function(){
8585
});
8686
});
8787

88-
// allow for inexact searching via levenshtein
89-
9088
/*
89+
* allow for inexact searching via sift4
90+
* try to restrict usage, and always check the standard
91+
* search mechanism if sift4 doesn't match
92+
*/
9193
$.extend( $.ui.autocomplete, {
94+
escapeRegex: function( value ) {
95+
return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
96+
},
9297
filter: function( array, term ) {
93-
var OK_distance = 1;
98+
var max_distance = 2;
99+
var len = term.length;
100+
var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
94101
return $.grep( array, function( value ) {
95-
var lookup = value.value;
96-
if (lookup.length > term.length) {
97-
lookup = lookup.substr(0,term.length);
102+
if (len >=2 ) {
103+
var OK_distance = Math.min(max_distance, len -1);
104+
var result = sift4( value.value, term, Math.max(5, len+1), Math.max(3, len-1));
105+
if (result <=OK_distance) {
106+
return true;
107+
}
98108
}
99-
return getEditDistance( lookup, term) <= OK_distance;
109+
110+
// Try the old school match
111+
return matcher.test( value.label || value.value || value );
100112
} );
101113
}
102114
} );
103-
*/

xt/trailing-whitespace.t

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ for qx<git ls-files>.lines -> $file {
1010
next if $file ~~ / 'jquery'/;
1111
next if $file ~~ / '.png' $/;
1212
next if $file ~~ / '.ico' $/;
13-
next if $file eq 'html/js/levenshtein.js';
1413

1514
push @files, $file;
1615
}

0 commit comments

Comments
 (0)