]> git.lizzy.rs Git - micro.git/blobdiff - cmd/micro/command.go
Use messenger error instead of termerror
[micro.git] / cmd / micro / command.go
index 137821488ddb25040b9679faf11534d608a30c28..7ef885133cc92d5eb2edb85b07efe96d74c86bb5 100644 (file)
@@ -320,7 +320,7 @@ func Help(args []string) {
 // If no file is given, it opens an empty buffer in a new split
 func VSplit(args []string) {
        if len(args) == 0 {
-               CurView().VSplit(NewBuffer(strings.NewReader(""), ""))
+               CurView().VSplit(NewBufferFromString("", ""))
        } else {
                filename := args[0]
                home, _ := homedir.Dir()
@@ -338,9 +338,9 @@ func VSplit(args []string) {
                var buf *Buffer
                if err != nil {
                        // File does not exist -- create an empty buffer with that name
-                       buf = NewBuffer(strings.NewReader(""), filename)
+                       buf = NewBufferFromString("", filename)
                } else {
-                       buf = NewBuffer(file, filename)
+                       buf = NewBuffer(file, FSize(file), filename)
                }
                CurView().VSplit(buf)
        }
@@ -350,7 +350,7 @@ func VSplit(args []string) {
 // If no file is given, it opens an empty buffer in a new split
 func HSplit(args []string) {
        if len(args) == 0 {
-               CurView().HSplit(NewBuffer(strings.NewReader(""), ""))
+               CurView().HSplit(NewBufferFromString("", ""))
        } else {
                filename := args[0]
                home, _ := homedir.Dir()
@@ -368,9 +368,9 @@ func HSplit(args []string) {
                var buf *Buffer
                if err != nil {
                        // File does not exist -- create an empty buffer with that name
-                       buf = NewBuffer(strings.NewReader(""), filename)
+                       buf = NewBufferFromString("", filename)
                } else {
-                       buf = NewBuffer(file, filename)
+                       buf = NewBuffer(file, FSize(file), filename)
                }
                CurView().HSplit(buf)
        }
@@ -408,9 +408,9 @@ func NewTab(args []string) {
 
                var buf *Buffer
                if err != nil {
-                       buf = NewBuffer(strings.NewReader(""), filename)
+                       buf = NewBufferFromString("", filename)
                } else {
-                       buf = NewBuffer(file, filename)
+                       buf = NewBuffer(file, FSize(file), filename)
                }
 
                tab := NewTabFromView(NewView(buf))
@@ -565,20 +565,25 @@ func Replace(args []string) {
                        }
                }
        } else {
+               // var deltas []Delta
                for i := 0; i < view.Buf.LinesNum(); i++ {
                        // view.Buf.lines[i].data = regex.ReplaceAll(view.Buf.lines[i].data, []byte(replace))
-                       matches := regex.FindAllIndex(view.Buf.lines[i].data, -1)
+                       for {
+                               m := regex.FindIndex(view.Buf.lines[i].data)
 
-                       if matches != nil && len(matches) > 0 {
-                               for _, m := range matches {
+                               if m != nil {
                                        from := Loc{m[0], i}
                                        to := Loc{m[1], i}
 
+                                       // deltas = append(deltas, Delta{replace, from, to})
                                        view.Buf.Replace(from, to, replace)
                                        found++
+                               } else {
+                                       break
                                }
                        }
                }
+               // view.Buf.MultipleReplace(deltas)
        }
        view.Cursor.Relocate()