1
0
mirror of https://shylinux.com/x/icebergs synced 2025-05-01 03:09:21 +08:00
This commit is contained in:
shylinux@163.com 2022-10-03 07:12:03 +08:00
parent 1382ed1ff3
commit ecddb6cdae
3 changed files with 38 additions and 35 deletions

View File

@ -1,6 +1,11 @@
package lex package lex
const PREFIX = "prefix" const (
const SUFFIX = "suffix" PATTERN = "pattern"
const REGEXP = "regexp" REGEXP = "regexp"
const PATTERN = "pattern" PREFIX = "prefix"
SUFFIX = "suffix"
SPACE = "space"
OPERATOR = "operator"
)

View File

@ -21,8 +21,7 @@ func _inner_list(m *ice.Message, ext, file, dir string) {
m.Cmdy(nfs.CAT, path.Join(dir, file)) m.Cmdy(nfs.CAT, path.Join(dir, file))
} }
if m.IsErrNotFound() { if m.IsErrNotFound() {
m.SetResult() _inner_show(m.SetResult(), ext, file, dir)
_inner_show(m, ext, file, dir)
} }
} }
} }
@ -73,11 +72,11 @@ const (
FUNCTION = "function" FUNCTION = "function"
) )
const ( const (
SPACE = "space" SPLIT = lex.SPLIT
OPERATE = "operate" SPACE = lex.SPACE
SPLIT = lex.SPLIT OPERATOR = lex.OPERATOR
PREFIX = lex.PREFIX PREFIX = lex.PREFIX
SUFFIX = lex.SUFFIX SUFFIX = lex.SUFFIX
) )
const ( const (
PLUG = "plug" PLUG = "plug"
@ -93,29 +92,21 @@ func init() {
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey()) m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey())
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_GO) m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_GO)
}}, }},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch arg[0] { switch arg[0] {
case nfs.PATH: case nfs.PATH:
m.Cmdy(nfs.DIR, arg[1:], nfs.DIR_CLI_FIELDS).ProcessAgain() m.Cmdy(nfs.DIR, kit.Select(nfs.PWD, arg, 1), nfs.DIR_CLI_FIELDS).ProcessAgain()
case nfs.FILE: case nfs.FILE:
p := kit.Select(nfs.PWD, arg, 1) p := kit.Select(nfs.PWD, arg, 1)
m.Option(nfs.DIR_ROOT, m.Option(nfs.PATH)) m.Option(nfs.DIR_ROOT, m.Option(nfs.PATH))
m.Cmdy(nfs.DIR, kit.Select(path.Dir(p), p, strings.HasSuffix(p, ice.FS))+ice.PS, nfs.DIR_CLI_FIELDS).ProcessAgain() m.Cmdy(nfs.DIR, kit.Select(path.Dir(p), p, strings.HasSuffix(p, ice.PS))+ice.PS, nfs.DIR_CLI_FIELDS).ProcessAgain()
default: default:
m.Cmdy(FAVOR, mdb.INPUTS, arg) m.Cmdy(FAVOR, mdb.INPUTS, arg)
} }
}}, }},
mdb.PLUGIN: {Name: "plugin", Help: "插件", Hand: func(m *ice.Message, arg ...string) { mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(mdb.PLUGIN, arg) }},
if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" { mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _inner_show(m, arg[0], arg[1], arg[2]) }},
m.Echo(kit.Select("{}", m.Config(kit.Keys(PLUG, arg[0])))) mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _inner_exec(m, arg[0], arg[1], arg[2]) }},
}
}},
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
_inner_show(m, arg[0], arg[1], arg[2])
}},
mdb.ENGINE: {Name: "engine", Help: "引擎", Hand: func(m *ice.Message, arg ...string) {
_inner_exec(m, arg[0], arg[1], arg[2])
}},
nfs.GREP: {Name: "grep", Help: "搜索", Hand: func(m *ice.Message, arg ...string) { nfs.GREP: {Name: "grep", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(nfs.GREP, m.Option(nfs.PATH), arg[0]).StatusTimeCount(mdb.INDEX, 0) m.Cmdy(nfs.GREP, m.Option(nfs.PATH), arg[0]).StatusTimeCount(mdb.INDEX, 0)

View File

@ -17,12 +17,18 @@ import (
func _vimer_make(m *ice.Message, dir string, msg *ice.Message) { func _vimer_make(m *ice.Message, dir string, msg *ice.Message) {
for _, line := range strings.Split(msg.Append(cli.CMD_ERR), ice.NL) { for _, line := range strings.Split(msg.Append(cli.CMD_ERR), ice.NL) {
if strings.Contains(line, ice.DF) { if !strings.Contains(line, ice.DF) {
if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 { continue
m.Push(nfs.PATH, dir) }
m.Push(nfs.FILE, strings.TrimPrefix(ls[0], dir)) if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 {
m.Push(nfs.LINE, ls[1]) for _, p := range kit.Split(dir) {
m.Push(mdb.TEXT, ls[3]) if strings.HasPrefix(ls[0], p) {
m.Push(nfs.PATH, p)
m.Push(nfs.FILE, strings.TrimPrefix(ls[0], p))
m.Push(nfs.LINE, ls[1])
m.Push(mdb.TEXT, ls[3])
break
}
} }
} }
} }
@ -37,8 +43,8 @@ const VIMER = "vimer"
func init() { func init() {
Index.MergeCommands(ice.Commands{ Index.MergeCommands(ice.Commands{
VIMER: {Name: "vimer path=src/ file=main.go line=1@keyboard list", Help: "编辑器", Actions: ice.Actions{ VIMER: {Name: "vimer path=src/ file=main.go line=1 list", Help: "编辑器", Actions: ice.Actions{
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch m.Option(ctx.ACTION) { switch m.Option(ctx.ACTION) {
case AUTOGEN, web.DREAM, XTERM: case AUTOGEN, web.DREAM, XTERM:
m.Cmdy(m.Option(ctx.ACTION), mdb.INPUTS, arg) m.Cmdy(m.Option(ctx.ACTION), mdb.INPUTS, arg)
@ -58,11 +64,12 @@ func init() {
} }
} }
}}, }},
nfs.SAVE: {Name: "save type file path", Help: "保存", Hand: func(m *ice.Message, arg ...string) { nfs.SAVE: {Name: "save", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
if m.Option(nfs.CONTENT) == "" { if m.Option(nfs.CONTENT) == "" {
m.Option(nfs.CONTENT, m.Cmdx("", TEMPLATE)) m.Option(nfs.CONTENT, m.Cmdx("", TEMPLATE))
} }
m.Cmdy(nfs.SAVE, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE))) m.Cmdy(nfs.SAVE, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)))
web.ToastSuccess(m)
}}, }},
nfs.TRASH: {Name: "trash path", Help: "删除", Hand: func(m *ice.Message, arg ...string) { nfs.TRASH: {Name: "trash path", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(nfs.TRASH, arg[0]) m.Cmd(nfs.TRASH, arg[0])
@ -164,7 +171,7 @@ func LangAction() ice.Actions {
} }
} }
func Complete(m *ice.Message, text string, data ice.Map) { func Complete(m *ice.Message, text string, data ice.Map) {
if strings.HasSuffix(text, ".") { if strings.HasSuffix(text, ice.PT) {
key := kit.Slice(kit.Split(text, " ."), -1)[0] key := kit.Slice(kit.Split(text, " ."), -1)[0]
m.Push(mdb.TEXT, kit.Simple(data[key])) m.Push(mdb.TEXT, kit.Simple(data[key]))
} else { } else {