]> git.lizzy.rs Git - micro.git/commitdiff
Use unicode.Mark for combining unicode range
authorZachary Yedidia <zyedidia@gmail.com>
Wed, 20 May 2020 22:01:10 +0000 (18:01 -0400)
committerZachary Yedidia <zyedidia@gmail.com>
Wed, 20 May 2020 22:01:10 +0000 (18:01 -0400)
internal/util/unicode.go
pkg/highlight/unicode.go

index d5a4d022a9ce467bb3e3f71bc18a380b47eb6243..f1bb989626604d3021eb8ef45b6fd919e7d55d67 100644 (file)
@@ -16,17 +16,6 @@ import (
 // For rendering, micro will display the combining characters. It's not perfect
 // but it's pretty good.
 
-// combining character range table
-var combining = &unicode.RangeTable{
-       R16: []unicode.Range16{
-               {0x0300, 0x036f, 1}, // combining diacritical marks
-               {0x1ab0, 0x1aff, 1}, // combining diacritical marks extended
-               {0x1dc0, 0x1dff, 1}, // combining diacritical marks supplement
-               {0x20d0, 0x20ff, 1}, // combining diacritical marks for symbols
-               {0xfe20, 0xfe2f, 1}, // combining half marks
-       },
-}
-
 // DecodeCharacter returns the next character from an array of bytes
 // A character is a rune along with any accompanying combining runes
 func DecodeCharacter(b []byte) (rune, []rune, int) {
@@ -35,7 +24,7 @@ func DecodeCharacter(b []byte) (rune, []rune, int) {
        c, s := utf8.DecodeRune(b)
 
        var combc []rune
-       for unicode.In(c, combining) {
+       for unicode.In(c, unicode.Mark) {
                combc = append(combc, c)
                size += s
 
@@ -54,7 +43,7 @@ func DecodeCharacterInString(str string) (rune, []rune, int) {
        c, s := utf8.DecodeRuneInString(str)
 
        var combc []rune
-       for unicode.In(c, combining) {
+       for unicode.In(c, unicode.Mark) {
                combc = append(combc, c)
                size += s
 
@@ -72,7 +61,7 @@ func CharacterCount(b []byte) int {
 
        for len(b) > 0 {
                r, size := utf8.DecodeRune(b)
-               if !unicode.In(r, combining) {
+               if !unicode.In(r, unicode.Mark) {
                        s++
                }
 
@@ -88,7 +77,7 @@ func CharacterCountInString(str string) int {
        s := 0
 
        for _, r := range str {
-               if !unicode.In(r, combining) {
+               if !unicode.In(r, unicode.Mark) {
                        s++
                }
        }
index eea53e5366a660c6d275adc5bef1d57603124aec..646c2eecd5855e1eff4f57acbe36c1541f1e52f3 100644 (file)
@@ -5,17 +5,6 @@ import (
        "unicode/utf8"
 )
 
-// combining character range table
-var combining = &unicode.RangeTable{
-       R16: []unicode.Range16{
-               {0x0300, 0x036f, 1}, // combining diacritical marks
-               {0x1ab0, 0x1aff, 1}, // combining diacritical marks extended
-               {0x1dc0, 0x1dff, 1}, // combining diacritical marks supplement
-               {0x20d0, 0x20ff, 1}, // combining diacritical marks for symbols
-               {0xfe20, 0xfe2f, 1}, // combining half marks
-       },
-}
-
 // DecodeCharacter returns the next character from an array of bytes
 // A character is a rune along with any accompanying combining runes
 func DecodeCharacter(b []byte) (rune, []rune, int) {
@@ -24,7 +13,7 @@ func DecodeCharacter(b []byte) (rune, []rune, int) {
        c, s := utf8.DecodeRune(b)
 
        var combc []rune
-       for unicode.In(c, combining) {
+       for unicode.In(c, unicode.Mark) {
                combc = append(combc, c)
                size += s
 
@@ -43,7 +32,7 @@ func DecodeCharacterInString(str string) (rune, []rune, int) {
        c, s := utf8.DecodeRuneInString(str)
 
        var combc []rune
-       for unicode.In(c, combining) {
+       for unicode.In(c, unicode.Mark) {
                combc = append(combc, c)
                size += s
 
@@ -61,7 +50,7 @@ func CharacterCount(b []byte) int {
 
        for len(b) > 0 {
                r, size := utf8.DecodeRune(b)
-               if !unicode.In(r, combining) {
+               if !unicode.In(r, unicode.Mark) {
                        s++
                }
 
@@ -77,7 +66,7 @@ func CharacterCountInString(str string) int {
        s := 0
 
        for _, r := range str {
-               if !unicode.In(r, combining) {
+               if !unicode.In(r, unicode.Mark) {
                        s++
                }
        }