Don't ignore whitespace when sorting
Intl.Collator's ignorePunctuation ignores whitespace too, so stop using it, since it produces much weirder results than sorting on punctuation does.
This commit is contained in:
parent
3c2bcf012f
commit
c7fd46e6b4
2 changed files with 16 additions and 2 deletions
|
@ -1546,7 +1546,6 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
|
|||
}
|
||||
|
||||
var collator = new Intl.Collator(locales, {
|
||||
ignorePunctuation: true,
|
||||
numeric: true,
|
||||
sensitivity: 'base'
|
||||
});
|
||||
|
@ -1558,7 +1557,6 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
|
|||
try {
|
||||
Zotero.logError("Falling back to en-US sorting");
|
||||
collator = new Intl.Collator(['en-US'], {
|
||||
ignorePunctuation: true,
|
||||
numeric: true,
|
||||
sensitivity: 'base'
|
||||
});
|
||||
|
@ -1602,6 +1600,11 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
|
|||
|
||||
// If initial punctuation is equivalent, use collator comparison
|
||||
// that ignores all punctuation
|
||||
//
|
||||
// Update: Intl.Collator's ignorePunctuation also ignores whitespace, so we're
|
||||
// no longer using it, meaning we could take out most of the code to handle
|
||||
// initial punctuation separately, unless we think we'll at some point switch to
|
||||
// a collation function that ignores punctuation but not whitespace.
|
||||
if (aInitP == bInitP || !aInitP && !bInitP) return collator.compare(a, b);
|
||||
|
||||
// Otherwise consider "attached" words as well, e.g. the order should be
|
||||
|
|
|
@ -16,4 +16,15 @@ describe("Zotero", function() {
|
|||
assert.equal(str1, str2);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe("#localeCompare", function () {
|
||||
it("shouldn't ignore whitespace", function () {
|
||||
assert.equal(Zotero.localeCompare("Chang", "Chan H"), 1);
|
||||
});
|
||||
|
||||
it("shouldn't ignore leading punctuation", function () {
|
||||
assert.equal(Zotero.localeCompare("_Abcd", "Abcd"), -1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue