Index: charted/lib/core/text_metrics/segmentation.dart |
diff --git a/charted/lib/core/text_metrics/segmentation.dart b/charted/lib/core/text_metrics/segmentation.dart |
deleted file mode 100644 |
index b1c6c3115fb82f3fc676a757aec7394cf6746e40..0000000000000000000000000000000000000000 |
--- a/charted/lib/core/text_metrics/segmentation.dart |
+++ /dev/null |
@@ -1,68 +0,0 @@ |
-// |
-// Copyright 2014 Google Inc. All rights reserved. |
-// |
-// Use of this source code is governed by a BSD-style |
-// license that can be found in the LICENSE file or at |
-// https://developers.google.com/open-source/licenses/bsd |
-// |
- |
-library charted.core.text_metrics.segmentation; |
- |
-import "package:charted/core/text_metrics/segmentation_utils.dart"; |
-import "package:charted/core/text_metrics/segmentation_data.dart"; |
- |
-/// Current unicode version. |
-/// Character database available at http://www.unicode.org/Public/7.0.0/ucd/ |
-const UNICODE_VERSION = '7.0.0'; |
- |
-// Code table based on: |
-// http://www.unicode.org/Public/7.0.0/ucd/auxiliary/GraphemeBreakTest.html |
-// GRAPHEME_BREAK_TABLE[prevType * TYPE_COUNT + curType] == 1 means break. |
-const GRAPHEME_BREAK_TABLE = const[ |
- 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, |
- 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, |
- 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, |
- 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0 |
-]; |
- |
-/// Get type of a given char code. |
-int _typeForRune(int rune) { |
- int count = CODE_POINT_BLOCKS.length ~/ 3; |
- int min = 0; |
- int max = count - 1; |
- while (max >= min) { |
- int mid = (max + min) ~/ 2; |
- int idx = mid * 3; |
- if (CODE_POINT_BLOCKS[idx] <= rune && rune <= CODE_POINT_BLOCKS[idx+1]) { |
- return CODE_POINT_BLOCKS[idx+2]; // Return the found character type |
- } |
- if (CODE_POINT_BLOCKS[idx] > rune) { |
- max = mid - 1; |
- } |
- else if (CODE_POINT_BLOCKS[idx+1] < rune) { |
- min = max + 1; |
- } |
- } |
- return CODE_CATEGORY_OTHER; // Defaults to OTHER. |
-} |
- |
-Iterable<int> graphemeBreakIndices(String s) { |
- List<int> indices = []; |
- int previousType = 0; |
- for (var iter = s.runes.iterator; iter.moveNext();) { |
- int currentType = _typeForRune(iter.current); |
- if (GRAPHEME_BREAK_TABLE[previousType * 12 + currentType] == 1) { |
- indices.add(iter.rawIndex); |
- } |
- previousType = currentType; |
- } |
- return indices; |
-} |