53 lines
2.0 KiB
Go
53 lines
2.0 KiB
Go
package style
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/charmbracelet/lipgloss"
|
|
)
|
|
|
|
func CaptureStyle(base lipgloss.Style, capture string) lipgloss.Style {
|
|
full := strings.ToLower(strings.TrimSpace(capture))
|
|
baseName := strings.Split(full, ".")[0]
|
|
|
|
switch full {
|
|
case "keyword", "keyword.type", "keyword.function", "keyword.coroutine", "keyword.repeat", "keyword.import", "keyword.conditional":
|
|
return base.Foreground(lipgloss.Color("#c678dd"))
|
|
case "function", "function.call", "function.method", "function.method.call":
|
|
return base.Foreground(lipgloss.Color("#61afef"))
|
|
case "function.builtin", "constructor", "keyword.return":
|
|
return base.Foreground(lipgloss.Color("#ff5f5f"))
|
|
case "type", "type.builtin", "type.definition", "tag.attribute", "tag.attribute.url":
|
|
return base.Foreground(lipgloss.Color("#e5c07b"))
|
|
case "string", "string.escape":
|
|
return base.Foreground(lipgloss.Color("#98c379"))
|
|
case "number", "number.float", "boolean", "constant", "constant.builtin", "string.special.url":
|
|
return base.Foreground(lipgloss.Color("#56b6c2"))
|
|
case "operator", "punctuation.delimiter", "punctuation.bracket", "string.special":
|
|
return base.Foreground(lipgloss.Color("#d19a66"))
|
|
case "comment", "comment.documentation", "tag.delimiter":
|
|
return base.Foreground(lipgloss.Color("#7f848e"))
|
|
case "variable.parameter":
|
|
return base.Foreground(lipgloss.Color("#dcdfe4")).Italic(true)
|
|
case "module", "label", "property", "variable.member", "variable":
|
|
return base.Foreground(lipgloss.Color("#dcdfe4"))
|
|
}
|
|
|
|
switch baseName {
|
|
case "keyword", "tag":
|
|
return base.Foreground(lipgloss.Color("#c678dd"))
|
|
case "function", "markup":
|
|
return base.Foreground(lipgloss.Color("#61afef"))
|
|
case "type":
|
|
return base.Foreground(lipgloss.Color("#e5c07b"))
|
|
case "string":
|
|
return base.Foreground(lipgloss.Color("#98c379"))
|
|
case "number", "boolean", "constant":
|
|
return base.Foreground(lipgloss.Color("#56b6c2"))
|
|
case "comment":
|
|
return base.Foreground(lipgloss.Color("#7f848e"))
|
|
default:
|
|
return base
|
|
}
|
|
}
|