4 "github.com/zyedidia/micro/internal/config"
5 "github.com/zyedidia/micro/internal/screen"
8 func (b *Buffer) SetOptionNative(option string, nativeValue interface{}) error {
9 b.Settings[option] = nativeValue
11 if option == "fastdirty" {
12 if !nativeValue.(bool) {
13 e := calcHash(b, &b.origHash)
14 if e == ErrFileTooLarge {
15 b.Settings["fastdirty"] = false
18 } else if option == "statusline" {
20 } else if option == "filetype" {
22 } else if option == "fileformat" {
23 switch b.Settings["fileformat"].(string) {
30 } else if option == "syntax" {
31 if !nativeValue.(bool) {
36 } else if option == "encoding" {
38 } else if option == "readonly" {
39 b.Type.Readonly = nativeValue.(bool)
45 // SetOption sets a given option to a value just for this buffer
46 func (b *Buffer) SetOption(option, value string) error {
47 if _, ok := b.Settings[option]; !ok {
48 return config.ErrInvalidOption
51 nativeValue, err := config.GetNativeValue(option, b.Settings[option], value)
56 return b.SetOptionNative(option, nativeValue)