MCPcopy
hub / github.com/micro-editor/micro / UnbindKey

Function UnbindKey

internal/action/bindings.go:333–381  ·  view source on GitHub ↗

UnbindKey removes the binding for a key from the bindings.json file

(k string)

Source from the content-addressed store, hash-verified

331
332// UnbindKey removes the binding for a key from the bindings.json file
333func 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
383var mouseEvents = map[string]tcell.ButtonMask{
384 "MouseLeft": tcell.ButtonPrimary,

Callers 1

UnbindCmdMethod · 0.85

Calls 10

UnregisterRawSeqFunction · 0.92
createBindingsIfNotExistFunction · 0.85
findEventFunction · 0.85
eventsEqualFunction · 0.85
DefaultBindingsFunction · 0.85
BindKeyFunction · 0.85
BufUnmapFunction · 0.85
JoinMethod · 0.80
writeFileFunction · 0.70
ErrorMethod · 0.45

Tested by

no test coverage detected