forked from x/icebergs
opt vimer
This commit is contained in:
parent
1b21938136
commit
987e84f428
@ -135,8 +135,8 @@ func init() {
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(SIZE, kit.Select("240", arg, 3))
|
||||
m.Option(BG, kit.Select(WHITE, arg, 2))
|
||||
m.Option(FG, kit.Select(BLUE, arg, 1))
|
||||
m.Option(BG, kit.Select(kit.Select(WHITE, BLACK, m.Option("topic") == BLACK), arg, 2))
|
||||
m.Option(FG, kit.Select(kit.Select(BLUE, CYAN, m.Option("topic") == BLACK), arg, 1))
|
||||
if m.IsCliUA() {
|
||||
_qrcode_cli(m, kit.Select(kit.Select(ice.Info.Make.Domain, ice.Info.Domain), arg, 0))
|
||||
} else {
|
||||
|
@ -173,9 +173,6 @@ func init() {
|
||||
}
|
||||
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]))
|
||||
if IsSuccess(m) && m.Append(CMD_ERR) == "" {
|
||||
m.SetAppend()
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) == 0 {
|
||||
|
@ -51,6 +51,9 @@ func ProcessHold(m *ice.Message, text ...ice.Any) {
|
||||
func ProcessRefresh(m *ice.Message) {
|
||||
m.ProcessRefresh("300ms")
|
||||
}
|
||||
func ProcessRewrite(m *ice.Message, arg ...ice.Any) {
|
||||
m.ProcessRewrite(arg...)
|
||||
}
|
||||
|
||||
func ProcessAction() 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 {
|
||||
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
|
||||
|
@ -170,13 +170,15 @@ func ZoneAction(args ...ice.Any) ice.Actions {
|
||||
func ZoneShort(m *ice.Message) string {
|
||||
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 {
|
||||
return _mdb_args(m, ZoneField(m), arg...)
|
||||
}
|
||||
|
||||
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) {
|
||||
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 {
|
||||
if f, e := OpenFile(m, file); e == nil {
|
||||
defer f.Close()
|
||||
|
@ -138,14 +138,13 @@ func init() {
|
||||
_dream_show(m, m.Option(mdb.NAME))
|
||||
}},
|
||||
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) {
|
||||
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) {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", mdb.HASH,
|
||||
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm")))
|
||||
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"))
|
||||
}},
|
||||
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)
|
||||
|
@ -51,7 +51,7 @@ func init() {
|
||||
Index.Register(&ice.Context{Name: C, Help: "系统", Commands: ice.Commands{
|
||||
C: {Name: C, Help: "系统", Actions: ice.MergeActions(ice.Actions{
|
||||
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} {
|
||||
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_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())},
|
||||
MAN: {Name: MAN, Help: "手册", Actions: ice.MergeActions(ice.Actions{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||
|
@ -11,14 +11,15 @@ compile.go
|
||||
publish.go
|
||||
upgrade.go
|
||||
|
||||
xterm.shy
|
||||
xterm.go
|
||||
vimer.go
|
||||
inner.go
|
||||
oauth.go
|
||||
favor.go
|
||||
xterm.go
|
||||
xterm.shy
|
||||
inner.go
|
||||
vimer.go
|
||||
bench.go
|
||||
pprof.go
|
||||
oauth.go
|
||||
case.go
|
||||
|
||||
c.go
|
||||
sh.go
|
||||
@ -27,7 +28,3 @@ go.go
|
||||
js.go
|
||||
py.go
|
||||
zml.go
|
||||
|
||||
template.go
|
||||
case.go
|
||||
|
||||
|
@ -20,7 +20,7 @@ func init() {
|
||||
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...)
|
||||
}},
|
||||
}, 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] != "" {
|
||||
m.Tables(func(value ice.Maps) {
|
||||
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 != "" {
|
||||
m.Cmd(cli.SYSTEM, "go", "get", mod)
|
||||
}
|
||||
if msg := _vimer_go_complete(m.Spawn(), key); msg.Length() > 0 {
|
||||
_cache_mods[key] = msg
|
||||
return msg
|
||||
}
|
||||
// if msg := _vimer_go_complete(m.Spawn(), key); msg.Length() > 0 {
|
||||
// _cache_mods[key] = msg
|
||||
// return msg
|
||||
// }
|
||||
return nil
|
||||
}
|
||||
|
||||
func _go_exec(m *ice.Message, arg ...string) {
|
||||
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.StatusTime("args", kit.Join(args, " "))
|
||||
return
|
||||
|
@ -11,44 +11,34 @@ import (
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/ssh"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
func _inner_list(m *ice.Message, ext, file, dir string, arg ...string) {
|
||||
if !aaa.Right(m, dir, file) {
|
||||
return // 没有权限
|
||||
}
|
||||
if m.Conf(nfs.CAT, kit.Keym(ssh.SOURCE, ext)) == ice.TRUE {
|
||||
m.Cmdy(nfs.CAT, path.Join(dir, file))
|
||||
} else {
|
||||
_inner_show(m, ext, file, dir, arg...)
|
||||
if aaa.Right(m, dir, file) {
|
||||
if nfs.IsSourceFile(m, ext) {
|
||||
m.Cmdy(nfs.CAT, path.Join(dir, file))
|
||||
} else {
|
||||
_inner_show(m, ext, file, dir, arg...)
|
||||
}
|
||||
}
|
||||
}
|
||||
func _inner_show(m *ice.Message, ext, file, dir string, arg ...string) {
|
||||
if !aaa.Right(m, dir, file) {
|
||||
return // 没有权限
|
||||
if aaa.Right(m, dir, file) {
|
||||
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) {
|
||||
if !aaa.Right(m, dir, file) {
|
||||
return // 没有权限
|
||||
}
|
||||
// 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()
|
||||
if aaa.Right(m, dir, file) {
|
||||
m.Cmdy(mdb.ENGINE, ext, file, dir, arg)
|
||||
}
|
||||
}
|
||||
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) {
|
||||
if strings.Contains(line, ice.DF) {
|
||||
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(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) {
|
||||
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)
|
||||
if len(ls) < 2 {
|
||||
ls := strings.SplitN(l, ice.TB, 3)
|
||||
if len(ls) < 3 {
|
||||
continue
|
||||
}
|
||||
|
||||
ls = strings.SplitN(ls[1], ice.TB, 2)
|
||||
file := ls[0]
|
||||
ls = strings.SplitN(ls[1], ";\"", 2)
|
||||
file, ls := ls[1], strings.SplitN(ls[2], ";\"", 2)
|
||||
text := strings.TrimSuffix(strings.TrimPrefix(ls[0], "/^"), "$/")
|
||||
line := kit.Int(text)
|
||||
|
||||
@ -114,16 +102,27 @@ const INNER = "inner"
|
||||
|
||||
func init() {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" {
|
||||
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) {
|
||||
_inner_show(m, arg[0], arg[1], arg[2])
|
||||
@ -136,33 +135,6 @@ func init() {
|
||||
_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) {
|
||||
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) {
|
||||
_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) {
|
||||
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) {
|
||||
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[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
|
||||
}
|
||||
if len(arg) < 2 {
|
||||
@ -205,29 +181,9 @@ func init() {
|
||||
m.Option("exts", m.Config("show.exts"))
|
||||
|
||||
arg[1] = strings.Split(arg[1], ice.FS)[0]
|
||||
if _inner_list(m, kit.Ext(arg[1]), arg[1], arg[0]); m.IsErrNotFound() {
|
||||
m.SetResult("")
|
||||
}
|
||||
_inner_list(m, kit.Ext(arg[1]), arg[1], arg[0])
|
||||
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 {
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
@ -40,9 +39,9 @@ func init() {
|
||||
})
|
||||
m.Cmd(mdb.ENGINE, 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() {
|
||||
return
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
@ -67,9 +66,9 @@ func init() {
|
||||
m.Cmd(cmd, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||
}
|
||||
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() {
|
||||
return
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
@ -42,9 +41,9 @@ func init() {
|
||||
m.Cmd(cmd, mdb.CREATE, SHY, m.PrefixKey())
|
||||
}
|
||||
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() {
|
||||
return
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ import (
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"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"
|
||||
|
||||
func init() {
|
||||
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{
|
||||
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||
if arg[0] == mdb.FOREACH && arg[1] == "" {
|
||||
m.PushSearch(mdb.TYPE, "go", mdb.NAME, "src/main.go", mdb.TEXT, chat.MergeCmd(m, ""))
|
||||
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) {
|
||||
switch arg[0] {
|
||||
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) {
|
||||
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)))
|
||||
}},
|
||||
nfs.TRASH: {Name: "trash path", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
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) {
|
||||
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) {
|
||||
if m.Option(mdb.TEXT) == "" {
|
||||
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)
|
||||
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.DREAM: {Name: "dream name=hi repos", Help: "空间", Hand: func(m *ice.Message, arg ...string) {
|
||||
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) {
|
||||
switch arg[0] {
|
||||
case nfs.FILE:
|
||||
m.Cmdy(COMPLETE, mdb.FOREACH, arg[1], m.Option(ctx.ACTION))
|
||||
}
|
||||
_vimer_inputs(m, arg...)
|
||||
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)
|
||||
}},
|
||||
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) {
|
||||
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))
|
||||
@ -157,6 +122,26 @@ func init() {
|
||||
m.ProcessInner()
|
||||
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) {
|
||||
m.Cmdy(INNER, arg)
|
||||
m.Option("tabs", m.Config("show.tabs"))
|
||||
@ -164,20 +149,22 @@ func init() {
|
||||
m.Option("exts", m.Config("show.exts"))
|
||||
|
||||
if arg[0] != ctx.ACTION {
|
||||
ctx.DisplayLocal(m, "")
|
||||
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 COMPLETE = "complete"
|
||||
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) {
|
||||
if strings.HasSuffix(text, ".") {
|
||||
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)
|
||||
}
|
||||
}
|
||||
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.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 {
|
||||
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
||||
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/core/chat"
|
||||
@ -28,10 +27,10 @@ func init() {
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(mdb.RENDER, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
||||
m.Cmd(mdb.ENGINE, mdb.CREATE, nfs.ZML, m.PrefixKey())
|
||||
gdb.Watch(m, VIMER_TEMPLATE)
|
||||
gdb.Watch(m, VIMER_COMPLETE)
|
||||
m.Cmd(TEMPLATE, mdb.CREATE, m.CommandKey(), m.PrefixKey())
|
||||
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)) {
|
||||
case ZML:
|
||||
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) {
|
||||
case mdb.TYPE:
|
||||
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")
|
||||
if meta["msg"] = msg.FormatMeta(); text == "web.code.inner" {
|
||||
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)))
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package wiki
|
||||
|
||||
import (
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/aaa"
|
||||
@ -25,7 +26,7 @@ const WORD = "word"
|
||||
|
||||
func init() {
|
||||
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(
|
||||
NAVMENU, kit.List(TITLE, NAVMENU),
|
||||
PREMENU, kit.List(TITLE, PREMENU),
|
||||
@ -40,7 +41,7 @@ func init() {
|
||||
mdb.FIELD, "time,hash,type,name,text",
|
||||
)},
|
||||
}, 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) {
|
||||
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey())
|
||||
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_SHY)
|
||||
@ -57,6 +58,11 @@ func init() {
|
||||
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) {
|
||||
m.Cmd(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, arg)
|
||||
|
@ -6,10 +6,170 @@ refer `
|
||||
`
|
||||
|
||||
chapter "源码"
|
||||
field "下载" web.code.tmux.tmux
|
||||
field "源码" web.code.inner args `usr/install/tmux-3.2/ cmd-bind-key.c`
|
||||
field "终端" web.code.tmux.tmux
|
||||
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 "构建"
|
||||
refer `
|
||||
https://github.com/libevent/libevent
|
||||
https://invisible-mirror.net/archives/ncurses/
|
||||
`
|
||||
shell `
|
||||
yum install -y wget make gcc
|
||||
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.script
|
||||
field "会话" web.code.tmux.session
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user