tn1150 1.0.0
tn1150: ^1.0.0 copied to clipboard
A Dart implementation of Apple's HFS+ FastUnicodeCompare.
TN1150 #
A Dart implementation of Apple's HFS+ FastUnicodeCompare algorithm for case-insensitive string comparison that matches macOS file sorting behavior.
Features #
- HFS+ compatible string comparison
- NFD Unicode normalization
- Case-insensitive comparison with special character support
Usage #
import 'package:tn1150/tn1150.dart';
void main() {
// Case-insensitive comparison
print(compare('Hello', 'hello')); // 0 (equal)
// With normalization
String str1 = normalize('café');
String str2 = normalize('CAFÉ');
print(compare(str1, str2)); // 0
// Sorting files (HFS+ style)
List<String> files = ['Test.txt', 'test2.txt', 'readme.md'];
files.sort((a, b) => compare(normalize(a), normalize(b)));
}
API #
compare(String str1, String str2) → int
Compares two NFD-normalized strings using HFS+ rules. Returns negative if str1 < str2, zero if equal, positive if str1 > str2.
normalize(String string) → String
Normalizes string to Unicode NFD form.
Credits #
Dart port of node-tn1150 by Linus Unnebäck.
License #
MIT License