Compare commits
2 commits
1f61932393
...
e221723c1e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e221723c1e | ||
|
|
b2bed26be5 |
|
|
@ -6,9 +6,12 @@
|
||||||
.editor-mountpoint {
|
.editor-mountpoint {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
|
min-height: 0;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-bar {
|
.status-bar {
|
||||||
|
flex-shrink: 0;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
background-color: rgb(245, 245, 245);
|
background-color: rgb(245, 245, 245);
|
||||||
border-top: solid thin rgb(200, 200, 200);
|
border-top: solid thin rgb(200, 200, 200);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
|
@ -280,6 +281,41 @@ var TextFilters = map[string]TextProcessor{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"sort-lines-asc": {
|
||||||
|
Label: "Lines: Sort A-Z",
|
||||||
|
Filter: func(ctx context.Context, input string) (resp TextFilterResponse, err error) {
|
||||||
|
lines := strings.Split(input, "\n")
|
||||||
|
sort.Strings(lines)
|
||||||
|
return TextFilterResponse{Output: strings.Join(lines, "\n")}, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
"sort-lines-desc": {
|
||||||
|
Label: "Lines: Sort Z-A",
|
||||||
|
Filter: func(ctx context.Context, input string) (resp TextFilterResponse, err error) {
|
||||||
|
lines := strings.Split(input, "\n")
|
||||||
|
sort.Sort(sort.Reverse(sort.StringSlice(lines)))
|
||||||
|
return TextFilterResponse{Output: strings.Join(lines, "\n")}, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
"unique-lines": {
|
||||||
|
Label: "Lines: Unique",
|
||||||
|
Filter: func(ctx context.Context, input string) (resp TextFilterResponse, err error) {
|
||||||
|
lines := strings.Split(input, "\n")
|
||||||
|
seen := make(map[string]struct{}, len(lines))
|
||||||
|
dst := make([]string, 0, len(lines))
|
||||||
|
for _, line := range lines {
|
||||||
|
if _, ok := seen[line]; ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[line] = struct{}{}
|
||||||
|
dst = append(dst, line)
|
||||||
|
}
|
||||||
|
return TextFilterResponse{Output: strings.Join(dst, "\n")}, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
"remove-blank-lines": {
|
"remove-blank-lines": {
|
||||||
Label: "Lines: Remove Blank Lines",
|
Label: "Lines: Remove Blank Lines",
|
||||||
Filter: func(ctx context.Context, input string) (resp TextFilterResponse, err error) {
|
Filter: func(ctx context.Context, input string) (resp TextFilterResponse, err error) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue