UnbindKey removes the binding for a key from the bindings.json file
(k string)
| 331 | |
| 332 | // UnbindKey removes the binding for a key from the bindings.json file |
| 333 | func UnbindKey(k string) error { |
| 334 | var e error |
| 335 | var parsed map[string]any |
| 336 | |
| 337 | filename := filepath.Join(config.ConfigDir, "bindings.json") |
| 338 | createBindingsIfNotExist(filename) |
| 339 | if _, e = os.Stat(filename); e == nil { |
| 340 | input, err := os.ReadFile(filename) |
| 341 | if err != nil { |
| 342 | return errors.New("Error reading bindings.json file: " + err.Error()) |
| 343 | } |
| 344 | |
| 345 | err = json5.Unmarshal(input, &parsed) |
| 346 | if err != nil { |
| 347 | return errors.New("Error reading bindings.json: " + err.Error()) |
| 348 | } |
| 349 | |
| 350 | key, err := findEvent(k) |
| 351 | if err != nil { |
| 352 | return err |
| 353 | } |
| 354 | |
| 355 | for ev := range parsed { |
| 356 | if e, err := findEvent(ev); err == nil { |
| 357 | if eventsEqual(e, key) { |
| 358 | delete(parsed, ev) |
| 359 | break |
| 360 | } |
| 361 | } |
| 362 | } |
| 363 | |
| 364 | if strings.HasPrefix(k, "\x1b") { |
| 365 | screen.UnregisterRawSeq(k) |
| 366 | } |
| 367 | |
| 368 | defaults := DefaultBindings("buffer") |
| 369 | if a, ok := defaults[k]; ok { |
| 370 | BindKey(k, a, Binder["buffer"]) |
| 371 | } else if _, ok := config.Bindings["buffer"][k]; ok { |
| 372 | BufUnmap(key) |
| 373 | delete(config.Bindings["buffer"], k) |
| 374 | } |
| 375 | |
| 376 | txt, _ := json.MarshalIndent(parsed, "", " ") |
| 377 | txt = append(txt, '\n') |
| 378 | return writeFile(filename, txt) |
| 379 | } |
| 380 | return e |
| 381 | } |
| 382 | |
| 383 | var mouseEvents = map[string]tcell.ButtonMask{ |
| 384 | "MouseLeft": tcell.ButtonPrimary, |
no test coverage detected