diff options
author | John Hawthorn <john.hawthorn@gmail.com> | 2016-06-26 23:10:25 -0700 |
---|---|---|
committer | John Hawthorn <john.hawthorn@gmail.com> | 2016-07-10 12:54:19 -0700 |
commit | 5c2d67ca7a14cfad94a5718ea62ad1b4d31f73b6 (patch) | |
tree | 691a68254940adf4b6dc7fe4684b4ff2da27043e | |
parent | 95eb1c06231c5a32724402a589f9b07274194a2f (diff) |
Don't consider numbers word separators
This made sense on paper when deciding what was a "word". However in
reality this is rarely an indication of a separate word. I've found that
this caused hexadecimal or base64 strings to be favoured in matches.
-rw-r--r-- | ALGORITHM.md | 2 | ||||
-rw-r--r-- | src/match.c | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/ALGORITHM.md b/ALGORITHM.md index f4f9b27..9bb4e56 100644 --- a/ALGORITHM.md +++ b/ALGORITHM.md @@ -69,7 +69,7 @@ is able to score based on the optimal match. * Matches (positive score) * consecutive * following a slash - * following a space, underscore, dash, or number (the start of a word) + * following a space, underscore, or dash (the start of a word) * capital letter (the start of a CamelCase word) * following a dot (often a file extension) diff --git a/src/match.c b/src/match.c index 6b3b0ad..855b067 100644 --- a/src/match.c +++ b/src/match.c @@ -66,8 +66,7 @@ static void precompute_bonus(const char *haystack, score_t *match_bonus) { if (isalnum(ch)) { if (!last_ch || last_ch == '/') { score = SCORE_MATCH_SLASH; - } else if (last_ch == '-' || last_ch == '_' || last_ch == ' ' || - (last_ch >= '0' && last_ch <= '9')) { + } else if (last_ch == '-' || last_ch == '_' || last_ch == ' ') { score = SCORE_MATCH_WORD; } else if (last_ch >= 'a' && last_ch <= 'z' && ch >= 'A' && ch <= 'Z') { /* CamelCase */ |