Proper support for double width characters

Fixes #99
This commit is contained in:
Zachary Yedidia
2016-06-04 16:25:11 -04:00
parent 852bd2c904
commit d6307b2718
3 changed files with 42 additions and 12 deletions

View File

@@ -7,6 +7,7 @@ import (
"strings"
"time"
"github.com/mattn/go-runewidth"
"github.com/zyedidia/tcell"
)
@@ -601,6 +602,16 @@ func (v *View) DisplayView() {
screen.SetContent(x-v.leftCol, lineN, ' ', nil, lineStyle)
}
}
} else if runewidth.RuneWidth(ch) > 1 {
if x-v.leftCol >= v.lineNumOffset {
screen.SetContent(x-v.leftCol, lineN, ch, nil, lineStyle)
}
for i := 0; i < runewidth.RuneWidth(ch)-1; i++ {
x++
if x-v.leftCol >= v.lineNumOffset {
screen.SetContent(x-v.leftCol, lineN, ' ', nil, lineStyle)
}
}
} else {
if x-v.leftCol >= v.lineNumOffset {
screen.SetContent(x-v.leftCol, lineN, ch, nil, lineStyle)