]> git.lizzy.rs Git - micro.git/commitdiff
Fix internal string binding representation
authorZachary Yedidia <zyedidia@gmail.com>
Thu, 5 Nov 2020 20:52:25 +0000 (15:52 -0500)
committerZachary Yedidia <zyedidia@gmail.com>
Thu, 5 Nov 2020 20:52:25 +0000 (15:52 -0500)
internal/action/bindings.go
internal/action/bufpane.go
internal/action/command.go
internal/action/infopane.go
internal/action/termpane.go
internal/config/globals.go
internal/display/statusline.go

index fb924f58a6abc0df2f91df93556f655ba627e010..76f29e3bfef026d3869abe3677c7233bed4c76fe 100644 (file)
@@ -83,8 +83,6 @@ func BindKey(k, v string, bind func(e Event, a string)) {
                return
        }
 
-       config.Bindings[event.Name()] = v
-
        bind(event, v)
 
        // switch e := event.(type) {
@@ -322,9 +320,9 @@ func UnbindKey(k string) error {
                defaults := DefaultBindings("buffer")
                if a, ok := defaults[k]; ok {
                        BindKey(k, a, Binder["buffer"])
-               } else if _, ok := config.Bindings[k]; ok {
+               } else if _, ok := config.Bindings["buffer"][k]; ok {
                        BufUnmap(key)
-                       delete(config.Bindings, k)
+                       delete(config.Bindings["buffer"], k)
                }
 
                txt, _ := json.MarshalIndent(parsed, "", "    ")
index 129de8b4605b071d6e079ccb9c66c2899a2db872..40b55f56c3e7a35bf0f8503b670594d2e1e70f12 100644 (file)
@@ -62,6 +62,8 @@ func LuaAction(fn string) func(*BufPane) bool {
 
 // BufMapKey maps an event to an action
 func BufMapEvent(k Event, action string) {
+       config.Bindings["buffer"][k.Name()] = action
+
        switch e := k.(type) {
        case KeyEvent, KeySequenceEvent, RawEvent:
                bufMapKey(e, action)
index 6349247166220034b269171e23bb491cdf360443..28e8bfd6673663f381ea5857bf166a7fcf166a57 100644 (file)
@@ -646,7 +646,7 @@ func (h *BufPane) ShowKeyCmd(args []string) {
                InfoBar.Error(err)
                return
        }
-       if action, ok := config.Bindings[event.Name()]; ok {
+       if action, ok := config.Bindings["buffer"][event.Name()]; ok {
                InfoBar.Message(action)
        } else {
                InfoBar.Message(args[0], " has no binding")
index f1518558c32b9c8661b9c84cf41b34f32821aee6..b85a49b34a75f677568f9500f9337ae95f7d3692 100644 (file)
@@ -4,6 +4,7 @@ import (
        "bytes"
 
        "github.com/zyedidia/micro/v2/internal/buffer"
+       "github.com/zyedidia/micro/v2/internal/config"
        "github.com/zyedidia/micro/v2/internal/display"
        "github.com/zyedidia/micro/v2/internal/info"
        "github.com/zyedidia/micro/v2/internal/util"
@@ -21,6 +22,8 @@ func init() {
 }
 
 func InfoMapEvent(k Event, action string) {
+       config.Bindings["command"][k.Name()] = action
+
        switch e := k.(type) {
        case KeyEvent, KeySequenceEvent, RawEvent:
                infoMapKey(e, action)
index ec52faffd3d1cf965066441a323b8847c090387e..bbb1e17b7cd10fc3dfc7453349a0102c7a8b5fab 100644 (file)
@@ -5,6 +5,7 @@ import (
        "runtime"
 
        "github.com/zyedidia/micro/v2/internal/clipboard"
+       "github.com/zyedidia/micro/v2/internal/config"
        "github.com/zyedidia/micro/v2/internal/display"
        "github.com/zyedidia/micro/v2/internal/screen"
        "github.com/zyedidia/micro/v2/internal/shell"
@@ -28,6 +29,8 @@ func TermKeyActionGeneral(a TermKeyAction) PaneKeyAction {
 }
 
 func TermMapEvent(k Event, action string) {
+       config.Bindings["terminal"][k.Name()] = action
+
        switch e := k.(type) {
        case KeyEvent, KeySequenceEvent, RawEvent:
                termMapKey(e, action)
index f473393a5b700c04e06863d8243964cc8b833127..50793b15aa9651360da0f8bb6d7024f6947166d7 100644 (file)
@@ -4,8 +4,12 @@ const (
        DoubleClickThreshold = 400 // How many milliseconds to wait before a second click is not a double click
 )
 
-var Bindings map[string]string
+var Bindings map[string]map[string]string
 
 func init() {
-       Bindings = make(map[string]string)
+       Bindings = map[string]map[string]string{
+               "command":  make(map[string]string),
+               "buffer":   make(map[string]string),
+               "terminal": make(map[string]string),
+       }
 }
index b94acdef37fadf5d75a44111e96da5685cc70454..947a3ee7b48b828dce783829f0367ac6f8ddfa2f 100644 (file)
@@ -141,7 +141,7 @@ func (s *StatusLine) Display() {
                        return []byte(fmt.Sprint(s.FindOpt(string(option))))
                } else if bytes.HasPrefix(name, []byte("bind")) {
                        binding := string(name[5:])
-                       for k, v := range config.Bindings {
+                       for k, v := range config.Bindings["buffer"] {
                                if v == binding {
                                        return []byte(k)
                                }