diff --git a/base/lex/regexp.go b/base/lex/regexp.go index 7607d7f9..e81c567c 100644 --- a/base/lex/regexp.go +++ b/base/lex/regexp.go @@ -1,6 +1,11 @@ package lex -const PREFIX = "prefix" -const SUFFIX = "suffix" -const REGEXP = "regexp" -const PATTERN = "pattern" +const ( + PATTERN = "pattern" + REGEXP = "regexp" + PREFIX = "prefix" + SUFFIX = "suffix" + + SPACE = "space" + OPERATOR = "operator" +) diff --git a/core/code/inner.go b/core/code/inner.go index 15bbe594..9b95b015 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -21,8 +21,7 @@ func _inner_list(m *ice.Message, ext, file, dir string) { m.Cmdy(nfs.CAT, path.Join(dir, file)) } if m.IsErrNotFound() { - m.SetResult() - _inner_show(m, ext, file, dir) + _inner_show(m.SetResult(), ext, file, dir) } } } @@ -73,11 +72,11 @@ const ( FUNCTION = "function" ) const ( - SPACE = "space" - OPERATE = "operate" - SPLIT = lex.SPLIT - PREFIX = lex.PREFIX - SUFFIX = lex.SUFFIX + SPLIT = lex.SPLIT + SPACE = lex.SPACE + OPERATOR = lex.OPERATOR + PREFIX = lex.PREFIX + SUFFIX = lex.SUFFIX ) const ( 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, 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] { 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: p := kit.Select(nfs.PWD, arg, 1) 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: m.Cmdy(FAVOR, mdb.INPUTS, arg) } }}, - mdb.PLUGIN: {Name: "plugin", Help: "插件", Hand: func(m *ice.Message, arg ...string) { - if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" { - m.Echo(kit.Select("{}", m.Config(kit.Keys(PLUG, arg[0])))) - } - }}, - 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]) - }}, + mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(mdb.PLUGIN, arg) }}, + mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _inner_show(m, arg[0], arg[1], arg[2]) }}, + mdb.ENGINE: {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) { m.Cmdy(nfs.GREP, m.Option(nfs.PATH), arg[0]).StatusTimeCount(mdb.INDEX, 0) diff --git a/core/code/vimer.go b/core/code/vimer.go index a2fbd795..d72c1fc2 100644 --- a/core/code/vimer.go +++ b/core/code/vimer.go @@ -17,12 +17,18 @@ import ( func _vimer_make(m *ice.Message, dir string, msg *ice.Message) { for _, line := range strings.Split(msg.Append(cli.CMD_ERR), ice.NL) { - if strings.Contains(line, ice.DF) { - if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 { - m.Push(nfs.PATH, dir) - m.Push(nfs.FILE, strings.TrimPrefix(ls[0], dir)) - m.Push(nfs.LINE, ls[1]) - m.Push(mdb.TEXT, ls[3]) + if !strings.Contains(line, ice.DF) { + continue + } + if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 { + for _, p := range kit.Split(dir) { + 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() { Index.MergeCommands(ice.Commands{ - VIMER: {Name: "vimer path=src/ file=main.go line=1@keyboard list", Help: "编辑器", Actions: ice.Actions{ - mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { + VIMER: {Name: "vimer path=src/ file=main.go line=1 list", Help: "编辑器", Actions: ice.Actions{ + mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { switch m.Option(ctx.ACTION) { case AUTOGEN, web.DREAM, XTERM: 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) == "" { m.Option(nfs.CONTENT, m.Cmdx("", TEMPLATE)) } 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) { m.Cmd(nfs.TRASH, arg[0]) @@ -164,7 +171,7 @@ func LangAction() ice.Actions { } } 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] m.Push(mdb.TEXT, kit.Simple(data[key])) } else {