mirror of
https://shylinux.com/x/icebergs
synced 2025-06-26 02:17:30 +08:00
opt vimer
This commit is contained in:
parent
1b21938136
commit
987e84f428
@ -135,8 +135,8 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Option(SIZE, kit.Select("240", arg, 3))
|
m.Option(SIZE, kit.Select("240", arg, 3))
|
||||||
m.Option(BG, kit.Select(WHITE, arg, 2))
|
m.Option(BG, kit.Select(kit.Select(WHITE, BLACK, m.Option("topic") == BLACK), arg, 2))
|
||||||
m.Option(FG, kit.Select(BLUE, arg, 1))
|
m.Option(FG, kit.Select(kit.Select(BLUE, CYAN, m.Option("topic") == BLACK), arg, 1))
|
||||||
if m.IsCliUA() {
|
if m.IsCliUA() {
|
||||||
_qrcode_cli(m, kit.Select(kit.Select(ice.Info.Make.Domain, ice.Info.Domain), arg, 0))
|
_qrcode_cli(m, kit.Select(kit.Select(ice.Info.Make.Domain, ice.Info.Domain), arg, 0))
|
||||||
} else {
|
} else {
|
||||||
|
@ -173,9 +173,6 @@ func init() {
|
|||||||
}
|
}
|
||||||
m.Option(CMD_ENV, "COLUMNS", kit.Int(kit.Select("1920", m.Option("width")))/12)
|
m.Option(CMD_ENV, "COLUMNS", kit.Int(kit.Select("1920", m.Option("width")))/12)
|
||||||
m.Cmdy(SYSTEM, "sh", "-c", kit.Format("man %s %s|col -b", kit.Select("", arg[1], arg[1] != "1"), arg[0]))
|
m.Cmdy(SYSTEM, "sh", "-c", kit.Format("man %s %s|col -b", kit.Select("", arg[1], arg[1] != "1"), arg[0]))
|
||||||
if IsSuccess(m) && m.Append(CMD_ERR) == "" {
|
|
||||||
m.SetAppend()
|
|
||||||
}
|
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
|
@ -51,6 +51,9 @@ func ProcessHold(m *ice.Message, text ...ice.Any) {
|
|||||||
func ProcessRefresh(m *ice.Message) {
|
func ProcessRefresh(m *ice.Message) {
|
||||||
m.ProcessRefresh("300ms")
|
m.ProcessRefresh("300ms")
|
||||||
}
|
}
|
||||||
|
func ProcessRewrite(m *ice.Message, arg ...ice.Any) {
|
||||||
|
m.ProcessRewrite(arg...)
|
||||||
|
}
|
||||||
|
|
||||||
func ProcessAction() ice.Actions {
|
func ProcessAction() ice.Actions {
|
||||||
return ice.Actions{
|
return ice.Actions{
|
||||||
|
@ -37,7 +37,7 @@ func _mdb_args(m *ice.Message, field string, arg ...Any) []string {
|
|||||||
}
|
}
|
||||||
for i := 0; i < len(args); i += 2 {
|
for i := 0; i < len(args); i += 2 {
|
||||||
if !strings.Contains(field, args[i]) && !strings.HasPrefix(args[i], EXTRA) {
|
if !strings.Contains(field, args[i]) && !strings.HasPrefix(args[i], EXTRA) {
|
||||||
args[i] = kit.Keys(EXTRA, args[i])
|
// args[i] = kit.Keys(EXTRA, args[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return args
|
return args
|
||||||
|
@ -170,13 +170,15 @@ func ZoneAction(args ...ice.Any) ice.Actions {
|
|||||||
func ZoneShort(m *ice.Message) string {
|
func ZoneShort(m *ice.Message) string {
|
||||||
return kit.Select(ZONE, m.Config(SHORT), m.Config(SHORT) != UNIQ)
|
return kit.Select(ZONE, m.Config(SHORT), m.Config(SHORT) != UNIQ)
|
||||||
}
|
}
|
||||||
func ZoneField(m *ice.Message) string { return kit.Select(ZONE_FIELD, m.Config(FIELD)) }
|
func ZoneField(m *ice.Message) string {
|
||||||
|
return kit.Select(ZONE_FIELD, m.Config(FIELD))
|
||||||
|
}
|
||||||
func ZoneArgs(m *ice.Message, arg ...Any) []string {
|
func ZoneArgs(m *ice.Message, arg ...Any) []string {
|
||||||
return _mdb_args(m, ZoneField(m), arg...)
|
return _mdb_args(m, ZoneField(m), arg...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ZoneInputs(m *ice.Message, arg ...Any) {
|
func ZoneInputs(m *ice.Message, arg ...Any) {
|
||||||
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, ZoneArgs(m, arg...))
|
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, m.Option(ZoneShort(m)), ZoneArgs(m, arg...))
|
||||||
}
|
}
|
||||||
func ZoneCreate(m *ice.Message, arg ...Any) {
|
func ZoneCreate(m *ice.Message, arg ...Any) {
|
||||||
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
|
||||||
|
@ -158,6 +158,9 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
|
func IsSourceFile(m *ice.Message, ext string) bool {
|
||||||
|
return m.Conf(CAT, kit.Keym(SOURCE, ext)) == ice.TRUE
|
||||||
|
}
|
||||||
func OptionLoad(m *ice.Message, file string) *ice.Message {
|
func OptionLoad(m *ice.Message, file string) *ice.Message {
|
||||||
if f, e := OpenFile(m, file); e == nil {
|
if f, e := OpenFile(m, file); e == nil {
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
@ -138,14 +138,13 @@ func init() {
|
|||||||
_dream_show(m, m.Option(mdb.NAME))
|
_dream_show(m, m.Option(mdb.NAME))
|
||||||
}},
|
}},
|
||||||
cli.OPEN: {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
cli.OPEN: {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME), "", ""))
|
ProcessWebsite(m, m.Option(mdb.NAME), "", "", "")
|
||||||
}},
|
}},
|
||||||
"vimer": {Name: "vimer", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
"vimer": {Name: "vimer", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.vimer", "", "")
|
||||||
}},
|
}},
|
||||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", mdb.HASH,
|
ProcessWebsite(m, m.Option(mdb.NAME), "web.code.xterm", mdb.HASH, m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm"))
|
||||||
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm")))
|
|
||||||
}},
|
}},
|
||||||
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)
|
m.Cmd(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)
|
||||||
|
@ -51,7 +51,7 @@ func init() {
|
|||||||
Index.Register(&ice.Context{Name: C, Help: "系统", Commands: ice.Commands{
|
Index.Register(&ice.Context{Name: C, Help: "系统", Commands: ice.Commands{
|
||||||
C: {Name: C, Help: "系统", Actions: ice.MergeActions(ice.Actions{
|
C: {Name: C, Help: "系统", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
for _, cmd := range []string{mdb.SEARCH, mdb.ENGINE, mdb.RENDER, mdb.PLUGIN} {
|
for _, cmd := range []string{mdb.SEARCH, mdb.ENGINE, mdb.RENDER, mdb.PLUGIN, NAVIGATE} {
|
||||||
for _, k := range []string{H, C, CC} {
|
for _, k := range []string{H, C, CC} {
|
||||||
m.Cmd(cmd, mdb.CREATE, k, m.PrefixKey())
|
m.Cmd(cmd, mdb.CREATE, k, m.PrefixKey())
|
||||||
}
|
}
|
||||||
@ -80,6 +80,12 @@ func init() {
|
|||||||
// _go_find(m, kit.Select(cli.MAIN, arg, 1), arg[2])
|
// _go_find(m, kit.Select(cli.MAIN, arg, 1), arg[2])
|
||||||
// _go_grep(m, kit.Select(cli.MAIN, arg, 1), arg[2])
|
// _go_grep(m, kit.Select(cli.MAIN, arg, 1), arg[2])
|
||||||
}},
|
}},
|
||||||
|
NAVIGATE: {Name: "navigate", Help: "跳转", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if !nfs.ExistsFile(m, path.Join(m.Option(nfs.PATH), nfs.TAGS)) {
|
||||||
|
m.Cmd(cli.SYSTEM, "ctags", "-a", "-R", nfs.PWD, kit.Dict(cli.CMD_DIR, m.Option(nfs.PATH)))
|
||||||
|
}
|
||||||
|
_inner_tags(m, m.Option(nfs.PATH), m.Option(mdb.NAME))
|
||||||
|
}},
|
||||||
}, PlugAction())},
|
}, PlugAction())},
|
||||||
MAN: {Name: MAN, Help: "手册", Actions: ice.MergeActions(ice.Actions{
|
MAN: {Name: MAN, Help: "手册", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -11,14 +11,15 @@ compile.go
|
|||||||
publish.go
|
publish.go
|
||||||
upgrade.go
|
upgrade.go
|
||||||
|
|
||||||
xterm.shy
|
oauth.go
|
||||||
xterm.go
|
|
||||||
vimer.go
|
|
||||||
inner.go
|
|
||||||
favor.go
|
favor.go
|
||||||
|
xterm.go
|
||||||
|
xterm.shy
|
||||||
|
inner.go
|
||||||
|
vimer.go
|
||||||
bench.go
|
bench.go
|
||||||
pprof.go
|
pprof.go
|
||||||
oauth.go
|
case.go
|
||||||
|
|
||||||
c.go
|
c.go
|
||||||
sh.go
|
sh.go
|
||||||
@ -27,7 +28,3 @@ go.go
|
|||||||
js.go
|
js.go
|
||||||
py.go
|
py.go
|
||||||
zml.go
|
zml.go
|
||||||
|
|
||||||
template.go
|
|
||||||
case.go
|
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ func init() {
|
|||||||
XTERM: {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
XTERM: {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||||
ctx.Process(m, m.ActionKey(), append(m.OptionSimple(mdb.TYPE, mdb.NAME), ice.INIT, m.Option(mdb.TEXT)), arg...)
|
ctx.Process(m, m.ActionKey(), append(m.OptionSimple(mdb.TYPE, mdb.NAME), ice.INIT, m.Option(mdb.TEXT)), arg...)
|
||||||
}},
|
}},
|
||||||
}, mdb.ZoneAction(mdb.FIELD, "time,id,type,name,text,path,file,line")), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.ZoneAction(mdb.SHORT, mdb.ZONE, mdb.FIELD, "time,id,type,name,text,path,file,line")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if mdb.ZoneSelectPage(m, arg...); len(arg) > 0 && arg[0] != "" {
|
if mdb.ZoneSelectPage(m, arg...); len(arg) > 0 && arg[0] != "" {
|
||||||
m.Tables(func(value ice.Maps) {
|
m.Tables(func(value ice.Maps) {
|
||||||
m.PushButton(kit.Select(INNER, XTERM, value[mdb.TEXT] == "" || value[nfs.FILE] == ""))
|
m.PushButton(kit.Select(INNER, XTERM, value[mdb.TEXT] == "" || value[nfs.FILE] == ""))
|
||||||
|
@ -75,16 +75,19 @@ func _go_doc(m *ice.Message, mod string, pkg string) *ice.Message {
|
|||||||
if mod != "" {
|
if mod != "" {
|
||||||
m.Cmd(cli.SYSTEM, "go", "get", mod)
|
m.Cmd(cli.SYSTEM, "go", "get", mod)
|
||||||
}
|
}
|
||||||
if msg := _vimer_go_complete(m.Spawn(), key); msg.Length() > 0 {
|
// if msg := _vimer_go_complete(m.Spawn(), key); msg.Length() > 0 {
|
||||||
_cache_mods[key] = msg
|
// _cache_mods[key] = msg
|
||||||
return msg
|
// return msg
|
||||||
}
|
// }
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func _go_exec(m *ice.Message, arg ...string) {
|
func _go_exec(m *ice.Message, arg ...string) {
|
||||||
if m.Option("some") == "run" {
|
if m.Option("some") == "run" {
|
||||||
args := []string{"./bin/ice.bin", ctx.GetFileCmd(path.Join(arg[2], arg[1]))}
|
args := []string{"./bin/ice.bin"}
|
||||||
|
if cmd := ctx.GetFileCmd(path.Join(arg[2], arg[1])); cmd != "" {
|
||||||
|
args = append(args, cmd)
|
||||||
|
}
|
||||||
m.Cmdy(cli.SYSTEM, args)
|
m.Cmdy(cli.SYSTEM, args)
|
||||||
m.StatusTime("args", kit.Join(args, " "))
|
m.StatusTime("args", kit.Join(args, " "))
|
||||||
return
|
return
|
||||||
|
@ -11,44 +11,34 @@ import (
|
|||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/base/ssh"
|
|
||||||
"shylinux.com/x/icebergs/base/web"
|
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _inner_list(m *ice.Message, ext, file, dir string, arg ...string) {
|
func _inner_list(m *ice.Message, ext, file, dir string, arg ...string) {
|
||||||
if !aaa.Right(m, dir, file) {
|
if aaa.Right(m, dir, file) {
|
||||||
return // 没有权限
|
if nfs.IsSourceFile(m, ext) {
|
||||||
}
|
m.Cmdy(nfs.CAT, path.Join(dir, file))
|
||||||
if m.Conf(nfs.CAT, kit.Keym(ssh.SOURCE, ext)) == ice.TRUE {
|
} else {
|
||||||
m.Cmdy(nfs.CAT, path.Join(dir, file))
|
_inner_show(m, ext, file, dir, arg...)
|
||||||
} else {
|
}
|
||||||
_inner_show(m, ext, file, dir, arg...)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func _inner_show(m *ice.Message, ext, file, dir string, arg ...string) {
|
func _inner_show(m *ice.Message, ext, file, dir string, arg ...string) {
|
||||||
if !aaa.Right(m, dir, file) {
|
if aaa.Right(m, dir, file) {
|
||||||
return // 没有权限
|
m.Cmdy(mdb.RENDER, ext, file, dir, arg)
|
||||||
}
|
}
|
||||||
m.Cmdy(mdb.RENDER, ext, file, dir, arg)
|
|
||||||
}
|
}
|
||||||
func _inner_exec(m *ice.Message, ext, file, dir string, arg ...string) {
|
func _inner_exec(m *ice.Message, ext, file, dir string, arg ...string) {
|
||||||
if !aaa.Right(m, dir, file) {
|
if aaa.Right(m, dir, file) {
|
||||||
return // 没有权限
|
m.Cmdy(mdb.ENGINE, ext, file, dir, arg)
|
||||||
}
|
|
||||||
// defer m.StatusTime()
|
|
||||||
if m.Cmdy(mdb.ENGINE, ext, file, dir, arg); m.Result() != "" {
|
|
||||||
return // 执行成功
|
|
||||||
}
|
|
||||||
if ls := kit.Simple(m.Configv(kit.Keys(EXEC, ext))); len(ls) > 0 {
|
|
||||||
m.Cmdy(cli.SYSTEM, ls, file, kit.Dict(cli.CMD_DIR, dir)).SetAppend()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func _inner_make(m *ice.Message, msg *ice.Message) {
|
func _inner_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 {
|
if ls := strings.SplitN(line, ice.DF, 4); len(ls) > 3 {
|
||||||
m.Push(nfs.FILE, strings.TrimPrefix(ls[0], m.Option(nfs.PATH)))
|
m.Push(nfs.PATH, dir)
|
||||||
|
m.Push(nfs.FILE, strings.TrimPrefix(ls[0], dir))
|
||||||
m.Push(nfs.LINE, ls[1])
|
m.Push(nfs.LINE, ls[1])
|
||||||
m.Push(mdb.TEXT, ls[3])
|
m.Push(mdb.TEXT, ls[3])
|
||||||
}
|
}
|
||||||
@ -62,14 +52,12 @@ func _inner_make(m *ice.Message, msg *ice.Message) {
|
|||||||
}
|
}
|
||||||
func _inner_tags(m *ice.Message, dir string, value string) {
|
func _inner_tags(m *ice.Message, dir string, value string) {
|
||||||
for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, nfs.GREP, "^"+value+"\\>", nfs.TAGS, kit.Dict(cli.CMD_DIR, dir)), ice.NL) {
|
for _, l := range strings.Split(m.Cmdx(cli.SYSTEM, nfs.GREP, "^"+value+"\\>", nfs.TAGS, kit.Dict(cli.CMD_DIR, dir)), ice.NL) {
|
||||||
ls := strings.SplitN(l, ice.TB, 2)
|
ls := strings.SplitN(l, ice.TB, 3)
|
||||||
if len(ls) < 2 {
|
if len(ls) < 3 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
ls = strings.SplitN(ls[1], ice.TB, 2)
|
file, ls := ls[1], strings.SplitN(ls[2], ";\"", 2)
|
||||||
file := ls[0]
|
|
||||||
ls = strings.SplitN(ls[1], ";\"", 2)
|
|
||||||
text := strings.TrimSuffix(strings.TrimPrefix(ls[0], "/^"), "$/")
|
text := strings.TrimSuffix(strings.TrimPrefix(ls[0], "/^"), "$/")
|
||||||
line := kit.Int(text)
|
line := kit.Int(text)
|
||||||
|
|
||||||
@ -114,16 +102,27 @@ const INNER = "inner"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{Commands: ice.Commands{
|
Index.Merge(&ice.Context{Commands: ice.Commands{
|
||||||
INNER: {Name: "inner path=src/@key file=main.go@key line=1 auto", Help: "源代码", Meta: kit.Dict(ice.DisplayLocal("")), Actions: ice.MergeActions(ice.Actions{
|
INNER: {Name: "inner path=src/@key file=main.go@key line=1 auto", Help: "源代码", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
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) {
|
||||||
|
switch arg[0] {
|
||||||
|
case nfs.PATH:
|
||||||
|
m.Cmdy(nfs.DIR, 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()
|
||||||
|
default:
|
||||||
|
m.Cmdy(FAVOR, mdb.INPUTS, arg)
|
||||||
|
}
|
||||||
|
}},
|
||||||
mdb.PLUGIN: {Name: "plugin", Help: "插件", Hand: func(m *ice.Message, arg ...string) {
|
mdb.PLUGIN: {Name: "plugin", Help: "插件", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" {
|
if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" {
|
||||||
m.Echo(kit.Select("{}", m.Config(kit.Keys(PLUG, arg[0]))))
|
m.Echo(kit.Select("{}", m.Config(kit.Keys(PLUG, arg[0]))))
|
||||||
}
|
}
|
||||||
m.Set(ice.MSG_STATUS)
|
|
||||||
}},
|
}},
|
||||||
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_inner_show(m, arg[0], arg[1], arg[2])
|
_inner_show(m, arg[0], arg[1], arg[2])
|
||||||
@ -136,33 +135,6 @@ func init() {
|
|||||||
_inner_tags(m, "", arg[1])
|
_inner_tags(m, "", arg[1])
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
if m.Option(ctx.ACTION) == web.WEBSITE {
|
|
||||||
switch arg[0] {
|
|
||||||
case nfs.FILE:
|
|
||||||
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_ROOT, "src/website/")).ProcessAgain()
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
switch arg[0] {
|
|
||||||
case cli.MAIN:
|
|
||||||
m.Cmdy(nfs.DIR, ice.SRC, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_REG, `.*\.go`)).ProcessAgain()
|
|
||||||
case mdb.ZONE:
|
|
||||||
m.Cmdy(nfs.DIR, nfs.PWD, mdb.NAME, kit.Dict(nfs.DIR_ROOT, ice.SRC, nfs.DIR_TYPE, nfs.DIR)).RenameAppend(mdb.NAME, mdb.ZONE)
|
|
||||||
case nfs.PATH:
|
|
||||||
m.Cmdy(nfs.DIR, 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()
|
|
||||||
case "url":
|
|
||||||
m.Option(nfs.DIR_ROOT, "usr/volcanos/plugin/local/code/")
|
|
||||||
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_DEEP, ice.TRUE)).ProcessAgain()
|
|
||||||
default:
|
|
||||||
m.Cmdy(FAVOR, mdb.INPUTS, arg)
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
|
|
||||||
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)
|
||||||
@ -173,17 +145,21 @@ func init() {
|
|||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
cli.MAKE: {Name: "make", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
cli.MAKE: {Name: "make", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_inner_make(m, m.Cmd(cli.SYSTEM, cli.MAKE, arg))
|
_inner_make(m, m.Option(nfs.PATH), m.Cmd(cli.SYSTEM, cli.MAKE, arg))
|
||||||
|
}},
|
||||||
|
|
||||||
|
"listTags": {Name: "listTags", Help: "索引", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy("web.code.vim.tags", "listTags", arg)
|
||||||
}},
|
}},
|
||||||
FAVOR: {Name: "favor", Help: "收藏"},
|
|
||||||
NAVIGATE: {Name: "navigate", Help: "跳转", Hand: func(m *ice.Message, arg ...string) {
|
NAVIGATE: {Name: "navigate", Help: "跳转", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(NAVIGATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
m.Cmdy(NAVIGATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
||||||
}},
|
}},
|
||||||
|
FAVOR: {Name: "favor", Help: "收藏"},
|
||||||
}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
}, ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if arg[0] = strings.Split(arg[0], ice.FS)[0]; !strings.HasSuffix(arg[0], ice.PS) {
|
if arg[0] = strings.Split(arg[0], ice.FS)[0]; !strings.HasSuffix(arg[0], ice.PS) && len(arg) == 1 {
|
||||||
arg[1] = kit.Slice(strings.Split(arg[0], ice.PS), -1)[0]
|
arg[1] = kit.Slice(strings.Split(arg[0], ice.PS), -1)[0]
|
||||||
arg[0] = strings.TrimSuffix(arg[0], arg[1])
|
arg[0] = strings.TrimSuffix(arg[0], arg[1])
|
||||||
m.ProcessRewrite(nfs.PATH, arg[0], nfs.FILE, arg[1])
|
ctx.ProcessRewrite(m, nfs.PATH, arg[0], nfs.FILE, arg[1])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(arg) < 2 {
|
if len(arg) < 2 {
|
||||||
@ -205,29 +181,9 @@ func init() {
|
|||||||
m.Option("exts", m.Config("show.exts"))
|
m.Option("exts", m.Config("show.exts"))
|
||||||
|
|
||||||
arg[1] = strings.Split(arg[1], ice.FS)[0]
|
arg[1] = strings.Split(arg[1], ice.FS)[0]
|
||||||
if _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]); m.IsErrNotFound() {
|
_inner_list(m, kit.Ext(arg[1]), arg[1], arg[0])
|
||||||
m.SetResult("")
|
|
||||||
}
|
|
||||||
ctx.DisplayLocal(m, "")
|
ctx.DisplayLocal(m, "")
|
||||||
m.Set(ice.MSG_STATUS)
|
|
||||||
}},
|
}},
|
||||||
}, Configs: ice.Configs{
|
|
||||||
INNER: {Name: "inner", Help: "源代码", Value: kit.Data(
|
|
||||||
EXEC, kit.Dict("py", []string{"python"}),
|
|
||||||
PLUG, kit.Dict(
|
|
||||||
"S", kit.Dict(PREFIX, kit.Dict("//", COMMENT)),
|
|
||||||
"s", kit.Dict(PREFIX, kit.Dict("//", COMMENT), KEYWORD, kit.Dict("TEXT", KEYWORD, "RET", KEYWORD)),
|
|
||||||
"py", kit.Dict(PREFIX, kit.Dict("#", COMMENT), KEYWORD, kit.Dict("print", KEYWORD)),
|
|
||||||
nfs.HTML, kit.Dict(SPLIT, kit.Dict(SPACE, " ", OPERATE, "<>"), KEYWORD, kit.Dict("head", KEYWORD, "body", KEYWORD)),
|
|
||||||
nfs.CSS, kit.Dict(SUFFIX, kit.Dict("{", COMMENT)),
|
|
||||||
"yaml", kit.Dict(PREFIX, kit.Dict("#", COMMENT)),
|
|
||||||
"yml", kit.Dict(PREFIX, kit.Dict("#", COMMENT)),
|
|
||||||
|
|
||||||
"makefile", kit.Dict(PREFIX, kit.Dict("#", COMMENT), SUFFIX, kit.Dict(":", COMMENT),
|
|
||||||
KEYWORD, kit.Dict("ifeq", KEYWORD, "ifneq", KEYWORD, "else", KEYWORD, "endif", KEYWORD),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)},
|
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
func PlugAction() ice.Actions {
|
func PlugAction() ice.Actions {
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
@ -40,9 +39,9 @@ func init() {
|
|||||||
})
|
})
|
||||||
m.Cmd(mdb.ENGINE, mdb.CREATE, PY, m.PrefixKey())
|
m.Cmd(mdb.ENGINE, mdb.CREATE, PY, m.PrefixKey())
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, PY, m.PrefixKey())
|
m.Cmd(mdb.RENDER, mdb.CREATE, PY, m.PrefixKey())
|
||||||
gdb.Watch(m, VIMER_TEMPLATE)
|
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
}},
|
}},
|
||||||
VIMER_TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import (
|
|||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
@ -67,9 +66,9 @@ func init() {
|
|||||||
m.Cmd(cmd, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
m.Cmd(cmd, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
}
|
}
|
||||||
LoadPlug(m, m.CommandKey())
|
LoadPlug(m, m.CommandKey())
|
||||||
gdb.Watch(m, VIMER_TEMPLATE)
|
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
}},
|
}},
|
||||||
VIMER_TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
@ -42,9 +41,9 @@ func init() {
|
|||||||
m.Cmd(cmd, mdb.CREATE, SHY, m.PrefixKey())
|
m.Cmd(cmd, mdb.CREATE, SHY, m.PrefixKey())
|
||||||
}
|
}
|
||||||
LoadPlug(m, SHY)
|
LoadPlug(m, SHY)
|
||||||
gdb.Watch(m, VIMER_TEMPLATE)
|
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
}},
|
}},
|
||||||
VIMER_TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
if kit.Ext(m.Option(mdb.FILE)) != m.CommandKey() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
@ -55,94 +54,60 @@ func _vimer_inputs(m *ice.Message, arg ...string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func _vimer_go_complete(m *ice.Message, name string, arg ...string) *ice.Message {
|
|
||||||
kit.Fetch(kit.Split(m.Cmdx(cli.SYSTEM, GO, "doc", name), ice.NL, ice.NL, ice.NL), func(index int, value string) {
|
|
||||||
if ls := kit.Split(value); len(ls) > 1 {
|
|
||||||
switch ls[0] {
|
|
||||||
case "const", "type", "func", "var":
|
|
||||||
if ls[1] == "(" {
|
|
||||||
m.Push(mdb.NAME, strings.TrimSpace(ls[5]))
|
|
||||||
} else {
|
|
||||||
m.Push(mdb.NAME, strings.TrimSpace(ls[1]))
|
|
||||||
}
|
|
||||||
m.Push(mdb.TEXT, strings.TrimSpace(value))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
VIMER_TEMPLATE = "vimer.template"
|
|
||||||
VIMER_COMPLETE = "vimer.complete"
|
|
||||||
)
|
|
||||||
const VIMER = "vimer"
|
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 list", Help: "编辑器", Meta: kit.Dict(ice.DisplayLocal("", INNER)), Actions: ice.Actions{
|
VIMER: {Name: "vimer path=src/ file=main.go line=1 list", Help: "编辑器", Actions: ice.Actions{
|
||||||
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if arg[0] == mdb.FOREACH && arg[1] == "" {
|
switch arg[0] {
|
||||||
m.PushSearch(mdb.TYPE, "go", mdb.NAME, "src/main.go", mdb.TEXT, chat.MergeCmd(m, ""))
|
case nfs.FILE:
|
||||||
|
m.Cmdy(COMPLETE, mdb.FOREACH, arg[1], m.Option(ctx.ACTION))
|
||||||
|
}
|
||||||
|
if m.Option(ctx.ACTION) == web.WEBSITE {
|
||||||
|
switch arg[0] {
|
||||||
|
case nfs.FILE:
|
||||||
|
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_ROOT, "src/website/")).ProcessAgain()
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
switch arg[0] {
|
||||||
|
case cli.MAIN:
|
||||||
|
m.Cmdy(nfs.DIR, ice.SRC, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_REG, `.*\.go`)).ProcessAgain()
|
||||||
|
case mdb.ZONE:
|
||||||
|
m.Cmdy(nfs.DIR, nfs.PWD, mdb.NAME, kit.Dict(nfs.DIR_ROOT, ice.SRC, nfs.DIR_TYPE, nfs.DIR)).RenameAppend(mdb.NAME, mdb.ZONE)
|
||||||
|
case "url":
|
||||||
|
m.Option(nfs.DIR_ROOT, "usr/volcanos/plugin/local/code/")
|
||||||
|
m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_DEEP, ice.TRUE)).ProcessAgain()
|
||||||
|
default:
|
||||||
|
_vimer_inputs(m, arg...)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
|
||||||
nfs.SAVE: {Name: "save type file path", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
|
nfs.SAVE: {Name: "save type file path", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(nfs.CONTENT) == "" {
|
if m.Option(nfs.CONTENT) == "" {
|
||||||
m.Option(nfs.CONTENT, gdb.Event(m.Spawn(), VIMER_TEMPLATE).Result())
|
m.Option(nfs.CONTENT, m.Cmdx(TEMPLATE, m.Option(mdb.TYPE), m.Option(nfs.FILE), m.Option(nfs.PATH)))
|
||||||
}
|
}
|
||||||
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)))
|
||||||
}},
|
}},
|
||||||
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.Cmdy(nfs.TRASH, arg[0])
|
m.Cmdy(nfs.TRASH, arg[0])
|
||||||
}},
|
}},
|
||||||
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
if msg := m.Cmd(COMPILE, ice.SRC_MAIN_GO, ice.BIN_ICE_BIN); cli.IsSuccess(msg) {
|
|
||||||
m.Cmd(UPGRADE, cli.RESTART)
|
|
||||||
} else {
|
|
||||||
_inner_make(m, msg)
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
AUTOGEN: {Name: "create name=hi help=示例 type=Zone,Hash,Data,Code main=main.go zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(AUTOGEN, mdb.CREATE, arg)
|
|
||||||
}},
|
|
||||||
nfs.SCRIPT: {Name: "script file=hi/hi.js", Help: "脚本", Hand: func(m *ice.Message, arg ...string) {
|
nfs.SCRIPT: {Name: "script file=hi/hi.js", Help: "脚本", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Cmdx(TEMPLATE, kit.Ext(m.Option(nfs.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH)))
|
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Cmdx(TEMPLATE, kit.Ext(m.Option(nfs.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH)))
|
||||||
}},
|
}},
|
||||||
web.WEBSITE: {Name: "website file=hi.zml", Help: "网页", Hand: func(m *ice.Message, arg ...string) {
|
web.WEBSITE: {Name: "website file=hi.zml", Help: "网页", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(mdb.TEXT) == "" {
|
m.Cmdy(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), m.Cmdx(TEMPLATE, kit.Ext(m.Option(nfs.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH)))
|
||||||
m.Option(mdb.TEXT, gdb.Event(m.Spawn(), VIMER_TEMPLATE).Result())
|
|
||||||
}
|
|
||||||
m.Option(nfs.FILE, path.Join(web.WEBSITE, m.Option(nfs.FILE)))
|
|
||||||
m.Cmdy(TEMPLATE, nfs.DEFS)
|
|
||||||
}},
|
}},
|
||||||
web.DREAM: {Name: "dream name=hi repos", Help: "空间", Hand: func(m *ice.Message, arg ...string) {
|
web.DREAM: {Name: "dream name=hi repos", Help: "空间", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(web.DREAM, cli.START, arg)
|
m.Cmdy(web.DREAM, cli.START, arg)
|
||||||
}},
|
}},
|
||||||
XTERM: {Name: "xterm type=sh name", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(XTERM, mdb.CREATE, arg)
|
|
||||||
}},
|
|
||||||
PUBLISH: {Name: "publish", Help: "发布", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(PUBLISH, ice.CONTEXTS)
|
|
||||||
}},
|
|
||||||
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
AUTOGEN: {Name: "create name=hi help=示例 type=Zone,Hash,Data,Code main=main.go zone key", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch arg[0] {
|
m.Cmdy(AUTOGEN, mdb.CREATE, arg)
|
||||||
case nfs.FILE:
|
|
||||||
m.Cmdy(COMPLETE, mdb.FOREACH, arg[1], m.Option(ctx.ACTION))
|
|
||||||
}
|
|
||||||
_vimer_inputs(m, arg...)
|
|
||||||
}},
|
}},
|
||||||
TEMPLATE: {Name: "template", Help: "模板", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(TEMPLATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
|
||||||
}},
|
|
||||||
COMPLETE: {Name: "complete", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(COMPLETE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
|
||||||
}},
|
|
||||||
|
|
||||||
"listTags": {Name: "listTags", Help: "索引", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy("web.code.vim.tags", "listTags", arg)
|
|
||||||
}},
|
|
||||||
|
|
||||||
DEVPACK: {Name: "devpack", Help: "开发模式", Hand: func(m *ice.Message, arg ...string) {
|
DEVPACK: {Name: "devpack", Help: "开发模式", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(nfs.LINK, ice.GO_SUM, path.Join(ice.SRC_DEBUG, ice.GO_SUM))
|
m.Cmd(nfs.LINK, ice.GO_SUM, path.Join(ice.SRC_DEBUG, ice.GO_SUM))
|
||||||
m.Cmd(nfs.LINK, ice.GO_MOD, path.Join(ice.SRC_DEBUG, ice.GO_MOD))
|
m.Cmd(nfs.LINK, ice.GO_MOD, path.Join(ice.SRC_DEBUG, ice.GO_MOD))
|
||||||
@ -157,6 +122,26 @@ func init() {
|
|||||||
m.ProcessInner()
|
m.ProcessInner()
|
||||||
web.ToastSuccess(m)
|
web.ToastSuccess(m)
|
||||||
}},
|
}},
|
||||||
|
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if msg := m.Cmd(COMPILE, ice.SRC_MAIN_GO, ice.BIN_ICE_BIN); cli.IsSuccess(msg) {
|
||||||
|
m.Cmd(UPGRADE, cli.RESTART)
|
||||||
|
} else {
|
||||||
|
_inner_make(m, nfs.PWD, msg)
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
PUBLISH: {Name: "publish", Help: "发布", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(PUBLISH, ice.CONTEXTS)
|
||||||
|
}},
|
||||||
|
|
||||||
|
TEMPLATE: {Name: "template", Help: "模板", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(TEMPLATE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
||||||
|
}},
|
||||||
|
COMPLETE: {Name: "complete", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(COMPLETE, kit.Ext(m.Option(mdb.FILE)), m.Option(nfs.FILE), m.Option(nfs.PATH))
|
||||||
|
}},
|
||||||
|
XTERM: {Name: "xterm type=sh name", Help: "终端", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(XTERM, mdb.CREATE, arg)
|
||||||
|
}},
|
||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(INNER, arg)
|
m.Cmdy(INNER, arg)
|
||||||
m.Option("tabs", m.Config("show.tabs"))
|
m.Option("tabs", m.Config("show.tabs"))
|
||||||
@ -164,20 +149,22 @@ func init() {
|
|||||||
m.Option("exts", m.Config("show.exts"))
|
m.Option("exts", m.Config("show.exts"))
|
||||||
|
|
||||||
if arg[0] != ctx.ACTION {
|
if arg[0] != ctx.ACTION {
|
||||||
ctx.DisplayLocal(m, "")
|
|
||||||
m.Action(nfs.SAVE, COMPILE, AUTOGEN, nfs.SCRIPT, chat.WEBSITE, web.DREAM, XTERM)
|
m.Action(nfs.SAVE, COMPILE, AUTOGEN, nfs.SCRIPT, chat.WEBSITE, web.DREAM, XTERM)
|
||||||
|
ctx.DisplayLocal(m, "")
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
func ProcessVimer(m *ice.Message, path, file, line string, arg ...string) {
|
|
||||||
ctx.ProcessField(m, Prefix(VIMER), kit.Simple(path, file, line), arg...)
|
|
||||||
}
|
|
||||||
|
|
||||||
const TEMPLATE = "template"
|
const TEMPLATE = "template"
|
||||||
const COMPLETE = "complete"
|
const COMPLETE = "complete"
|
||||||
const NAVIGATE = "navigate"
|
const NAVIGATE = "navigate"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.MergeCommands(ice.Commands{TEMPLATE: {Name: "template type name text auto", Help: "模板", Actions: mdb.RenderAction()}})
|
||||||
|
Index.MergeCommands(ice.Commands{COMPLETE: {Name: "complete type name text auto", Help: "补全", Actions: mdb.RenderAction()}})
|
||||||
|
Index.MergeCommands(ice.Commands{NAVIGATE: {Name: "navigate type name text auto", Help: "跳转", Actions: mdb.RenderAction()}})
|
||||||
|
}
|
||||||
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, ".") {
|
||||||
key := kit.Slice(kit.Split(text, " ."), -1)[0]
|
key := kit.Slice(kit.Split(text, " ."), -1)[0]
|
||||||
@ -188,42 +175,4 @@ func Complete(m *ice.Message, text string, data ice.Map) {
|
|||||||
m.Push(mdb.TEXT, k)
|
m.Push(mdb.TEXT, k)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
|
||||||
|
|
||||||
if strings.TrimSpace(text) == "" {
|
|
||||||
m.Push(mdb.TEXT, kit.Simple(data[""]))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
name := kit.Slice(kit.Split(text), -1)[0]
|
|
||||||
if name == "" {
|
|
||||||
m.Push(mdb.TEXT, kit.Simple(data[""]))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
key := kit.Slice(kit.Split(name, "."), -1)[0]
|
|
||||||
if strings.HasSuffix(name, ".") {
|
|
||||||
m.Push(mdb.TEXT, kit.Simple(data[key]))
|
|
||||||
} else {
|
|
||||||
for k := range data {
|
|
||||||
if strings.HasPrefix(k, key) {
|
|
||||||
m.Push(mdb.TEXT, key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
list := kit.Simple(data[key])
|
|
||||||
for i, v := range list {
|
|
||||||
list[i] = "." + v
|
|
||||||
}
|
|
||||||
m.Push(mdb.TEXT, list)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
Index.MergeCommands(ice.Commands{COMPLETE: {Name: "complete type name text auto", Help: "补全", Actions: mdb.RenderAction()}})
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
Index.MergeCommands(ice.Commands{TEMPLATE: {Name: "template type name text auto", Help: "模板", Actions: mdb.RenderAction()}})
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
Index.MergeCommands(ice.Commands{NAVIGATE: {Name: "navigate type name text auto", Help: "跳转", Actions: mdb.RenderAction()}})
|
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ func init() {
|
|||||||
web.WEBSITE: {Name: "website", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
web.WEBSITE: {Name: "website", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
||||||
web.ProcessWebsite(m, "", "", m.OptionSimple(mdb.HASH))
|
web.ProcessWebsite(m, "", "", m.OptionSimple(mdb.HASH))
|
||||||
}},
|
}},
|
||||||
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text,init", mdb.TOOLS, FAVOR), ctx.CmdAction(), ctx.ProcessAction()), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text,init", mdb.TOOLS, FAVOR), ctx.ProcessAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||||
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
||||||
m.Action(mdb.CREATE, mdb.PRUNES)
|
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||||
|
@ -6,7 +6,6 @@ import (
|
|||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/core/chat"
|
"shylinux.com/x/icebergs/core/chat"
|
||||||
@ -28,10 +27,10 @@ func init() {
|
|||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
m.Cmd(mdb.RENDER, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
||||||
m.Cmd(mdb.ENGINE, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
m.Cmd(mdb.ENGINE, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
||||||
gdb.Watch(m, VIMER_TEMPLATE)
|
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
gdb.Watch(m, VIMER_COMPLETE)
|
m.Cmd(COMPLETE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||||
}},
|
}},
|
||||||
VIMER_TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch kit.Ext(m.Option(mdb.FILE)) {
|
switch kit.Ext(m.Option(mdb.FILE)) {
|
||||||
case ZML:
|
case ZML:
|
||||||
m.Echo(`
|
m.Echo(`
|
||||||
@ -70,7 +69,7 @@ func init() {
|
|||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
VIMER_COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch kit.Select("", kit.Slice(kit.Split(m.Option(mdb.TEXT), "\t \n`"), -1), 0) {
|
switch kit.Select("", kit.Slice(kit.Split(m.Option(mdb.TEXT), "\t \n`"), -1), 0) {
|
||||||
case mdb.TYPE:
|
case mdb.TYPE:
|
||||||
m.Push(mdb.NAME, "menu")
|
m.Push(mdb.NAME, "menu")
|
||||||
|
@ -78,6 +78,7 @@ func _field_show(m *ice.Message, name, text string, arg ...string) {
|
|||||||
kit.Value(meta, kit.Keys(FEATURE, "mode"), "simple")
|
kit.Value(meta, kit.Keys(FEATURE, "mode"), "simple")
|
||||||
if meta["msg"] = msg.FormatMeta(); text == "web.code.inner" {
|
if meta["msg"] = msg.FormatMeta(); text == "web.code.inner" {
|
||||||
meta["plug"] = kit.UnMarshal(m.Cmdx(mdb.PLUGIN, kit.Ext(name)))
|
meta["plug"] = kit.UnMarshal(m.Cmdx(mdb.PLUGIN, kit.Ext(name)))
|
||||||
|
kit.Value(meta, kit.Keys(FEATURE, "display"), "/plugin/local/code/inner.js")
|
||||||
kit.Value(meta, ARGS, kit.List(path.Dir(name)+ice.PS, path.Base(name)))
|
kit.Value(meta, ARGS, kit.List(path.Dir(name)+ice.PS, path.Base(name)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package wiki
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
|
"strings"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/aaa"
|
"shylinux.com/x/icebergs/base/aaa"
|
||||||
@ -25,7 +26,7 @@ const WORD = "word"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{Configs: ice.Configs{
|
Index.Merge(&ice.Context{Configs: ice.Configs{
|
||||||
WORD: {Name: WORD, Help: "语言文字", Value: kit.Data(
|
WORD: {Name: WORD, Help: "笔记文档", Value: kit.Data(
|
||||||
nfs.PATH, "", lex.REGEXP, ".*\\.shy", mdb.ALIAS, kit.Dict(
|
nfs.PATH, "", lex.REGEXP, ".*\\.shy", mdb.ALIAS, kit.Dict(
|
||||||
NAVMENU, kit.List(TITLE, NAVMENU),
|
NAVMENU, kit.List(TITLE, NAVMENU),
|
||||||
PREMENU, kit.List(TITLE, PREMENU),
|
PREMENU, kit.List(TITLE, PREMENU),
|
||||||
@ -40,7 +41,7 @@ func init() {
|
|||||||
mdb.FIELD, "time,hash,type,name,text",
|
mdb.FIELD, "time,hash,type,name,text",
|
||||||
)},
|
)},
|
||||||
}, Commands: ice.Commands{
|
}, Commands: ice.Commands{
|
||||||
WORD: {Name: "word path=src/main.shy@key list play", Help: "语言文字", Actions: ice.MergeActions(ice.Actions{
|
WORD: {Name: "word path=src/main.shy@key list play", Help: "笔记文档", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
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_SHY)
|
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_SHY)
|
||||||
@ -57,6 +58,11 @@ func init() {
|
|||||||
m.PushSearch(value)
|
m.PushSearch(value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
m.Cmd("", mdb.INPUTS).Tables(func(value ice.Maps) {
|
||||||
|
if strings.Contains(value[nfs.PATH], arg[1]) {
|
||||||
|
m.PushSearch(mdb.TYPE, "shy", mdb.NAME, value[nfs.PATH], value)
|
||||||
|
}
|
||||||
|
})
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, arg)
|
m.Cmd(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, arg)
|
||||||
|
@ -6,10 +6,170 @@ refer `
|
|||||||
`
|
`
|
||||||
|
|
||||||
chapter "源码"
|
chapter "源码"
|
||||||
field "下载" web.code.tmux.tmux
|
field "终端" web.code.tmux.tmux
|
||||||
field "源码" web.code.inner args `usr/install/tmux-3.2/ cmd-bind-key.c`
|
field "源码" web.code.ctags.inner args `usr/install/tmux-3.2/ cmd-bind-key.c`
|
||||||
|
field "文档" web.code.ctags.nroff args `usr/install/tmux-3.2/ tmux.1`
|
||||||
|
field "计数" web.code.git.count args `usr/install/tmux-3.2/`
|
||||||
|
|
||||||
|
option ctags.path `usr/install/tmux-3.2/`
|
||||||
|
|
||||||
|
web.code.ctags.chain `
|
||||||
|
tmux
|
||||||
|
tmux.c
|
||||||
|
tmux.h
|
||||||
|
client.c
|
||||||
|
server.c
|
||||||
|
server-client.c
|
||||||
|
server-fn.c
|
||||||
|
session.c
|
||||||
|
window.c
|
||||||
|
window-buffer.c
|
||||||
|
window-client.c
|
||||||
|
window-clock.c
|
||||||
|
window-copy.c
|
||||||
|
window-customize.c
|
||||||
|
window-tree.c
|
||||||
|
layout.c
|
||||||
|
layout-custom.c
|
||||||
|
layout-set.c
|
||||||
|
status.c
|
||||||
|
popup.c
|
||||||
|
menu.c
|
||||||
|
|
||||||
|
mode-tree.c
|
||||||
|
names.c
|
||||||
|
screen.c
|
||||||
|
screen-redraw.c
|
||||||
|
screen-write.c
|
||||||
|
grid-reader.c
|
||||||
|
grid-view.c
|
||||||
|
attributes.c
|
||||||
|
grid.c
|
||||||
|
resize.c
|
||||||
|
arguments.c
|
||||||
|
environ.c
|
||||||
|
options.c
|
||||||
|
options-table.c
|
||||||
|
control.c
|
||||||
|
control-notify.c
|
||||||
|
notify.c
|
||||||
|
paste.c
|
||||||
|
alerts.c
|
||||||
|
|
||||||
|
input.c
|
||||||
|
input-keys.c
|
||||||
|
key-string.c
|
||||||
|
key-bindings.c
|
||||||
|
|
||||||
|
tty.c
|
||||||
|
tty-acs.c
|
||||||
|
tty-keys.c
|
||||||
|
tty-term.c
|
||||||
|
tty-features.c
|
||||||
|
|
||||||
|
compat
|
||||||
|
compat.h
|
||||||
|
|
||||||
|
cfg.c
|
||||||
|
log.c
|
||||||
|
job.c
|
||||||
|
file.c
|
||||||
|
proc.c
|
||||||
|
spawn.c
|
||||||
|
|
||||||
|
utf8.c
|
||||||
|
regsub.c
|
||||||
|
style.c
|
||||||
|
colour.c
|
||||||
|
format.c
|
||||||
|
format-draw.c
|
||||||
|
|
||||||
|
xmalloc.c
|
||||||
|
xmalloc.h
|
||||||
|
|
||||||
|
osdep-aix.c
|
||||||
|
osdep-cygwin.c
|
||||||
|
osdep-darwin.c
|
||||||
|
osdep-dragonfly.c
|
||||||
|
osdep-freebsd.c
|
||||||
|
osdep-haiku.c
|
||||||
|
osdep-hpux.c
|
||||||
|
osdep-linux.c
|
||||||
|
osdep-netbsd.c
|
||||||
|
osdep-openbsd.c
|
||||||
|
osdep-sunos.c
|
||||||
|
osdep-unknown.c
|
||||||
|
|
||||||
|
cmd.c
|
||||||
|
cmd-attach-session.c
|
||||||
|
cmd-bind-key.c
|
||||||
|
cmd-break-pane.c
|
||||||
|
cmd-capture-pane.c
|
||||||
|
cmd-choose-tree.c
|
||||||
|
cmd-command-prompt.c
|
||||||
|
cmd-confirm-before.c
|
||||||
|
cmd-copy-mode.c
|
||||||
|
cmd-detach-client.c
|
||||||
|
cmd-display-menu.c
|
||||||
|
cmd-display-message.c
|
||||||
|
cmd-display-panes.c
|
||||||
|
cmd-find.c
|
||||||
|
cmd-find-window.c
|
||||||
|
cmd-if-shell.c
|
||||||
|
cmd-join-pane.c
|
||||||
|
cmd-kill-pane.c
|
||||||
|
cmd-kill-server.c
|
||||||
|
cmd-kill-session.c
|
||||||
|
cmd-kill-window.c
|
||||||
|
cmd-list-buffers.c
|
||||||
|
cmd-list-clients.c
|
||||||
|
cmd-list-keys.c
|
||||||
|
cmd-list-panes.c
|
||||||
|
cmd-list-sessions.c
|
||||||
|
cmd-list-windows.c
|
||||||
|
cmd-load-buffer.c
|
||||||
|
cmd-lock-server.c
|
||||||
|
cmd-move-window.c
|
||||||
|
cmd-new-session.c
|
||||||
|
cmd-new-window.c
|
||||||
|
cmd-parse.y
|
||||||
|
cmd-paste-buffer.c
|
||||||
|
cmd-pipe-pane.c
|
||||||
|
cmd-queue.c
|
||||||
|
cmd-refresh-client.c
|
||||||
|
cmd-rename-session.c
|
||||||
|
cmd-rename-window.c
|
||||||
|
cmd-resize-pane.c
|
||||||
|
cmd-resize-window.c
|
||||||
|
cmd-respawn-pane.c
|
||||||
|
cmd-respawn-window.c
|
||||||
|
cmd-rotate-window.c
|
||||||
|
cmd-run-shell.c
|
||||||
|
cmd-save-buffer.c
|
||||||
|
cmd-select-layout.c
|
||||||
|
cmd-select-pane.c
|
||||||
|
cmd-select-window.c
|
||||||
|
cmd-send-keys.c
|
||||||
|
cmd-set-buffer.c
|
||||||
|
cmd-set-environment.c
|
||||||
|
cmd-set-option.c
|
||||||
|
cmd-show-environment.c
|
||||||
|
cmd-show-messages.c
|
||||||
|
cmd-show-options.c
|
||||||
|
cmd-source-file.c
|
||||||
|
cmd-split-window.c
|
||||||
|
cmd-swap-pane.c
|
||||||
|
cmd-swap-window.c
|
||||||
|
cmd-switch-client.c
|
||||||
|
cmd-unbind-key.c
|
||||||
|
cmd-wait-for.c
|
||||||
|
`
|
||||||
|
|
||||||
section "构建"
|
section "构建"
|
||||||
|
refer `
|
||||||
|
https://github.com/libevent/libevent
|
||||||
|
https://invisible-mirror.net/archives/ncurses/
|
||||||
|
`
|
||||||
shell `
|
shell `
|
||||||
yum install -y wget make gcc
|
yum install -y wget make gcc
|
||||||
yum install -y libevent-devel.x86_64 ncurses-devel.x86_64
|
yum install -y libevent-devel.x86_64 ncurses-devel.x86_64
|
||||||
@ -33,4 +193,3 @@ field "文本" web.code.tmux.text
|
|||||||
field "缓存" web.code.tmux.buffer
|
field "缓存" web.code.tmux.buffer
|
||||||
field "脚本" web.code.tmux.script
|
field "脚本" web.code.tmux.script
|
||||||
field "会话" web.code.tmux.session
|
field "会话" web.code.tmux.session
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user