mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-15 21:37:09 +09:00
Support for multiple modifiers in colorschemes (#1772)
* Support for multiple modifiers (eg. "bold italic") * Test for multiple modifiers (bold + italic + underline)
This commit is contained in:
@@ -117,16 +117,12 @@ func ParseColorscheme(text string) (map[string]tcell.Style, error) {
|
|||||||
|
|
||||||
// StringToStyle returns a style from a string
|
// StringToStyle returns a style from a string
|
||||||
// The strings must be in the format "extra foregroundcolor,backgroundcolor"
|
// The strings must be in the format "extra foregroundcolor,backgroundcolor"
|
||||||
// The 'extra' can be bold, reverse, or underline
|
// The 'extra' can be bold, reverse, italic or underline
|
||||||
func StringToStyle(str string) tcell.Style {
|
func StringToStyle(str string) tcell.Style {
|
||||||
var fg, bg string
|
var fg, bg string
|
||||||
spaceSplit := strings.Split(str, " ")
|
spaceSplit := strings.Split(str, " ")
|
||||||
var split []string
|
var split []string
|
||||||
if len(spaceSplit) > 1 {
|
split = strings.Split(spaceSplit[len(spaceSplit)-1], ",")
|
||||||
split = strings.Split(spaceSplit[1], ",")
|
|
||||||
} else {
|
|
||||||
split = strings.Split(str, ",")
|
|
||||||
}
|
|
||||||
if len(split) > 1 {
|
if len(split) > 1 {
|
||||||
fg, bg = split[0], split[1]
|
fg, bg = split[0], split[1]
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ func TestAttributeStringToStyle(t *testing.T) {
|
|||||||
assert.NotEqual(t, 0, attr&tcell.AttrBold)
|
assert.NotEqual(t, 0, attr&tcell.AttrBold)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMultiAttributesStringToStyle(t *testing.T) {
|
||||||
|
s := StringToStyle("bold italic underline cyan,brightcyan")
|
||||||
|
|
||||||
|
fg, bg, attr := s.Decompose()
|
||||||
|
|
||||||
|
assert.Equal(t, tcell.ColorTeal, fg)
|
||||||
|
assert.Equal(t, tcell.ColorAqua, bg)
|
||||||
|
assert.NotEqual(t, 0, attr&tcell.AttrBold)
|
||||||
|
assert.NotEqual(t, 0, attr&tcell.AttrItalic)
|
||||||
|
assert.NotEqual(t, 0, attr&tcell.AttrUnderline)
|
||||||
|
}
|
||||||
|
|
||||||
func TestColor256StringToStyle(t *testing.T) {
|
func TestColor256StringToStyle(t *testing.T) {
|
||||||
s := StringToStyle("128,60")
|
s := StringToStyle("128,60")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user