forked from x/icebergs
opt vim
This commit is contained in:
parent
9996a38bde
commit
8340bf915d
@ -162,6 +162,7 @@ func ZoneAction(fields ...string) map[string]*ice.Action {
|
|||||||
m.Cmdy(MODIFY, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), m.Option(kit.MDB_ID), arg)
|
m.Cmdy(MODIFY, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), m.Option(kit.MDB_ID), arg)
|
||||||
}},
|
}},
|
||||||
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Option(ice.CACHE_LIMIT, "-1")
|
||||||
m.OptionFields(_zone(m), m.Config(kit.MDB_FIELD))
|
m.OptionFields(_zone(m), m.Config(kit.MDB_FIELD))
|
||||||
m.Cmdy(EXPORT, m.PrefixKey(), "", ZONE)
|
m.Cmdy(EXPORT, m.PrefixKey(), "", ZONE)
|
||||||
}},
|
}},
|
||||||
|
@ -10,7 +10,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/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -67,13 +66,6 @@ func _go_grep(m *ice.Message, key string) {
|
|||||||
msg.Table(func(index int, value map[string]string, head []string) { m.PushSearch(ice.CMD, GREP, value) })
|
msg.Table(func(index int, value map[string]string, head []string) { m.PushSearch(ice.CMD, GREP, value) })
|
||||||
}
|
}
|
||||||
|
|
||||||
func PlugAction(fields ...string) map[string]*ice.Action {
|
|
||||||
return ice.SelectAction(map[string]*ice.Action{
|
|
||||||
mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) { m.Echo(m.Config(PLUG)) }},
|
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.CAT, path.Join(arg[2], arg[1])) }},
|
|
||||||
}, fields...)
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_TAGS = ".tags"
|
_TAGS = ".tags"
|
||||||
FIND = "find"
|
FIND = "find"
|
||||||
|
@ -45,6 +45,13 @@ func LoadPlug(m *ice.Message, language string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func PlugAction(fields ...string) map[string]*ice.Action {
|
||||||
|
return ice.SelectAction(map[string]*ice.Action{
|
||||||
|
mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) { m.Echo(m.Config(PLUG)) }},
|
||||||
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.CAT, path.Join(arg[2], arg[1])) }},
|
||||||
|
}, fields...)
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
COMMENT = "comment"
|
COMMENT = "comment"
|
||||||
KEYWORD = "keyword"
|
KEYWORD = "keyword"
|
||||||
|
@ -200,7 +200,7 @@ func InstallAction(fields ...string) map[string]*ice.Action {
|
|||||||
m.Cmdy(INSTALL, cli.BUILD, m.Config(cli.SOURCE))
|
m.Cmdy(INSTALL, cli.BUILD, m.Config(cli.SOURCE))
|
||||||
}},
|
}},
|
||||||
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(INSTALL, cli.ORDER, m.Config(cli.SOURCE), "_install/bin")
|
m.Cmdy(INSTALL, cli.ORDER, m.Config(cli.SOURCE), "_install/bin")
|
||||||
}},
|
}},
|
||||||
}, fields...)
|
}, fields...)
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,8 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch m.RenderResult(); arg[0] {
|
switch m.RenderResult(); arg[0] {
|
||||||
case "/qrcode", "/sess": // 登录入口
|
case "/qrcode", "/sess":
|
||||||
return
|
return // 登录入口
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.Warn(m.Option(SID, strings.TrimSpace(m.Option(SID))) == "", ice.ErrNotLogin, arg) {
|
if m.Warn(m.Option(SID, strings.TrimSpace(m.Option(SID))) == "", ice.ErrNotLogin, arg) {
|
||||||
|
@ -11,8 +11,6 @@ import (
|
|||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
const _sync_index = 1
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SHELL = "shell"
|
SHELL = "shell"
|
||||||
HISTORY = "history"
|
HISTORY = "history"
|
||||||
@ -46,7 +44,7 @@ func init() {
|
|||||||
m.Cmdy(FAVOR, mdb.INSERT, m.OptionSimple(kit.MDB_ZONE, m.Conf(FAVOR, kit.META_FIELD)))
|
m.Cmdy(FAVOR, mdb.INSERT, m.OptionSimple(kit.MDB_ZONE, m.Conf(FAVOR, kit.META_FIELD)))
|
||||||
}},
|
}},
|
||||||
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.OptionPage(kit.Slice(arg, _sync_index)...)
|
m.OptionPage(kit.Slice(arg, 1)...)
|
||||||
mdb.ListSelect(m, kit.Slice(arg, 0, 1)...)
|
mdb.ListSelect(m, kit.Slice(arg, 0, 1)...)
|
||||||
m.PushAction(cli.SYSTEM, FAVOR)
|
m.PushAction(cli.SYSTEM, FAVOR)
|
||||||
m.StatusTimeCountTotal(m.Config(kit.MDB_COUNT))
|
m.StatusTimeCountTotal(m.Config(kit.MDB_COUNT))
|
||||||
|
@ -2,8 +2,7 @@ package misc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
_ "shylinux.com/x/icebergs/misc/bash"
|
_ "shylinux.com/x/icebergs/misc/bash"
|
||||||
_ "shylinux.com/x/icebergs/misc/tmux"
|
|
||||||
|
|
||||||
_ "shylinux.com/x/icebergs/misc/git"
|
_ "shylinux.com/x/icebergs/misc/git"
|
||||||
|
_ "shylinux.com/x/icebergs/misc/tmux"
|
||||||
_ "shylinux.com/x/icebergs/misc/vim"
|
_ "shylinux.com/x/icebergs/misc/vim"
|
||||||
)
|
)
|
||||||
|
@ -2,9 +2,9 @@ package vim
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
"unicode"
|
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/core/code"
|
"shylinux.com/x/icebergs/core/code"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
@ -13,48 +13,15 @@ import (
|
|||||||
const FAVOR = "favor"
|
const FAVOR = "favor"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
FAVOR: {Name: FAVOR, Help: "收藏夹", Value: kit.Data(
|
FAVOR: {Name: FAVOR, Help: "收藏夹", Value: kit.Data(
|
||||||
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,type,name,text,file,line,pwd",
|
kit.MDB_SHORT, kit.MDB_ZONE, kit.MDB_FIELD, "time,id,type,name,text,file,line,pwd",
|
||||||
)},
|
)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
"/tags": {Name: "/tags", Help: "跳转", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
pre := m.Option("pre")
|
|
||||||
for i := kit.Int(m.Option("col")); i > 0; i-- {
|
|
||||||
if i > 0 && (pre[i] == '_' || pre[i] == '.' || unicode.IsDigit(rune(pre[i])) || unicode.IsLetter(rune(pre[i]))) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
m.Debug("what %v", pre[i+1:kit.Int(m.Option("col"))])
|
|
||||||
pre = pre[i+1 : kit.Int(m.Option("col"))]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
switch file := kit.Slice(kit.Split(pre, ".", "."), -2)[0]; file {
|
|
||||||
case "kit", "ice", "ctx", "chat", "html", "lang":
|
|
||||||
m.Echo("4\n%s\n/%s: /\n", "usr/volcanos/proto.js", m.Option("pattern"))
|
|
||||||
case "msg":
|
|
||||||
m.Echo("4\nusr/volcanos/lib/%s.js\n/%s: \\(shy\\|func\\)/\n", "misc", m.Option("pattern"))
|
|
||||||
case "base", "core", "misc", "page", "user":
|
|
||||||
m.Echo("4\nusr/volcanos/lib/%s.js\n/%s: \\(shy\\|func\\)/\n", file, m.Option("pattern"))
|
|
||||||
case "onengine", "ondaemon", "onappend", "onlayout", "onmotion", "onkeypop":
|
|
||||||
m.Echo("4\n%s\n/%s: \\(shy\\|func\\)/\n", "usr/volcanos/frame.js", m.Option("pattern"))
|
|
||||||
case "onimport", "onaction", "onexport":
|
|
||||||
m.Echo("4\n%s\n/%s: \\(shy\\|func\\)/\n", m.Option("buf"), m.Option("pattern"))
|
|
||||||
default:
|
|
||||||
switch m.Option("pattern") {
|
|
||||||
case "require", "request", "get", "set":
|
|
||||||
m.Echo("4\n%s\n/%s: \\(shy\\|func\\)/\n", "usr/volcanos/proto.js", m.Option("pattern"))
|
|
||||||
default:
|
|
||||||
m.Echo("4\n%s\n/%s: \\(shy\\|func\\)/\n", "usr/volcanos/frame.js", m.Option("pattern"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
"/favor": {Name: "/favor", Help: "收藏", Action: map[string]*ice.Action{
|
"/favor": {Name: "/favor", Help: "收藏", Action: map[string]*ice.Action{
|
||||||
mdb.SELECT: {Name: "select", Help: "主题", Hand: func(m *ice.Message, arg ...string) {
|
mdb.SELECT: {Name: "select", Help: "主题", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(FAVOR).Table(func(index int, value map[string]string, head []string) {
|
m.Cmd(FAVOR).Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Echo(value[kit.MDB_ZONE]).Echo("\n")
|
m.Echo(value[kit.MDB_ZONE]).Echo(ice.NL)
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
mdb.INSERT: {Name: "insert", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -66,52 +33,20 @@ func init() {
|
|||||||
value[kit.MDB_FILE], value[kit.MDB_LINE], "1", value[kit.MDB_NAME], value[kit.MDB_TEXT])
|
value[kit.MDB_FILE], value[kit.MDB_LINE], "1", value[kit.MDB_NAME], value[kit.MDB_TEXT])
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
FAVOR: {Name: "favor zone id auto create export import", Help: "收藏夹", Action: map[string]*ice.Action{
|
FAVOR: {Name: "favor zone id auto", Help: "收藏夹", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {Name: "insert zone=数据结构 type name=hi text=hello file line", Help: "添加"},
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), "", mdb.HASH, arg)
|
|
||||||
}},
|
|
||||||
mdb.INSERT: {Name: "insert zone=数据结构 name=hi text=hello file line", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), "", mdb.HASH, m.OptionSimple(kit.MDB_ZONE))
|
|
||||||
m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), kit.KeyHash(m.Option(kit.MDB_ZONE)), mdb.LIST, arg[2:])
|
|
||||||
}},
|
|
||||||
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(FAVOR), "", mdb.ZONE, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), arg)
|
|
||||||
}},
|
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(FAVOR), "", mdb.ZONE, m.OptionSimple(kit.MDB_ZONE))
|
|
||||||
}},
|
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.OptionFields(kit.MDB_ZONE, m.Conf(FAVOR, kit.META_FIELD))
|
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(FAVOR), "", mdb.ZONE)
|
|
||||||
m.Conf(FAVOR, kit.MDB_HASH, "")
|
|
||||||
}},
|
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(FAVOR), "", mdb.ZONE)
|
|
||||||
}},
|
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
switch arg[0] {
|
|
||||||
case kit.MDB_ZONE:
|
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(FAVOR), "", mdb.HASH, arg)
|
|
||||||
default:
|
|
||||||
m.Cmdy(mdb.INPUTS, m.Prefix(FAVOR), kit.KeyHash(m.Option(kit.MDB_ZONE)), mdb.LIST, arg)
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
code.INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
code.INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.ProcessCommand(code.INNER, []string{
|
p := path.Join(m.Option(cli.PWD), m.Option(kit.MDB_FILE))
|
||||||
kit.Select("./", path.Dir(m.Option(kit.MDB_FILE))),
|
m.ProcessCommand(code.INNER, []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(kit.MDB_LINE)}, arg...)
|
||||||
path.Base(m.Option(kit.MDB_FILE)),
|
|
||||||
m.Option(kit.MDB_LINE),
|
|
||||||
}, arg...)
|
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Fields(len(arg), "time,zone,count", m.Conf(FAVOR, kit.META_FIELD))
|
if mdb.ZoneSelect(m, arg...); len(arg) == 0 {
|
||||||
if m.Cmdy(mdb.SELECT, m.Prefix(FAVOR), "", mdb.ZONE, arg); len(arg) == 0 {
|
m.Action(mdb.CREATE, mdb.EXPORT, mdb.IMPORT)
|
||||||
m.Action(mdb.CREATE)
|
|
||||||
m.PushAction(mdb.REMOVE)
|
m.PushAction(mdb.REMOVE)
|
||||||
} else {
|
} else {
|
||||||
m.PushAction(code.INNER)
|
m.PushAction(code.INNER)
|
||||||
|
m.StatusTimeCount()
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -6,71 +6,52 @@ 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/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/core/code"
|
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
PERSON = "person"
|
|
||||||
)
|
|
||||||
const INPUT = "input"
|
const INPUT = "input"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
INPUT: {Name: INPUT, Help: "输入法", Value: kit.Data(
|
INPUT: {Name: INPUT, Help: "输入法", Value: kit.Data(
|
||||||
kit.MDB_FIELD, "time,id,type,name,text",
|
kit.MDB_FIELD, "time,id,type,name,text",
|
||||||
)},
|
)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
"/input": {Name: "/input", Help: "输入法", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"/input": {Name: "/input", Help: "输入法", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
if m.Cmdy(TAGS, arg[0]); len(m.Result()) > 0 {
|
||||||
|
return // 代码补全
|
||||||
|
}
|
||||||
|
|
||||||
if arg[0] = strings.TrimSpace(arg[0]); strings.HasPrefix(arg[0], "ice ") {
|
if arg[0] = strings.TrimSpace(arg[0]); strings.HasPrefix(arg[0], "ice ") {
|
||||||
switch list := kit.Split(arg[0]); list[1] {
|
switch list := kit.Split(arg[0]); list[1] {
|
||||||
case "add": // ice add 想你 shwq [person [9999]]
|
case "add": // ice add 想你 shwq [person [9999]]
|
||||||
m.Cmd("web.code.input.wubi", mdb.INSERT, kit.MDB_TEXT, list[2], kit.MDB_CODE, list[3],
|
m.Cmd("web.code.input.wubi", mdb.INSERT, kit.MDB_TEXT, list[2], kit.MDB_CODE, list[3],
|
||||||
kit.MDB_ZONE, kit.Select(PERSON, list, 4), kit.MDB_VALUE, kit.Select("999999", list, 5),
|
kit.MDB_ZONE, kit.Select("person", list, 4), kit.MDB_VALUE, kit.Select("999999", list, 5),
|
||||||
)
|
)
|
||||||
arg[0] = list[3]
|
arg[0] = list[3]
|
||||||
default:
|
default: // 执行命令
|
||||||
if m.Cmdy(list[1:]); strings.TrimSpace(m.Result()) == "" {
|
if m.Cmdy(list[1:]); strings.TrimSpace(m.Result()) == "" {
|
||||||
m.Table()
|
m.Table()
|
||||||
}
|
}
|
||||||
if strings.TrimSpace(m.Result()) == "" {
|
if strings.TrimSpace(m.Result()) == "" {
|
||||||
m.Cmdy(cli.SYSTEM, list[1:])
|
m.Cmdy(cli.SYSTEM, list[1:])
|
||||||
}
|
}
|
||||||
m.Cmd(mdb.INSERT, m.Prefix(INPUT), "", mdb.LIST, kit.MDB_TYPE, "cmd",
|
m.Cmd(INPUT, mdb.INSERT, kit.MDB_TYPE, "cmd", kit.MDB_NAME, strings.TrimSpace(strings.Join(list[1:], ice.SP)), kit.MDB_TEXT, m.Result())
|
||||||
kit.MDB_NAME, strings.TrimSpace(strings.Join(list[1:], " ")), kit.MDB_TEXT, m.Result())
|
|
||||||
m.Echo("%s\n", arg[0])
|
m.Echo("%s\n", arg[0])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch kit.Ext(m.Option("buf")) {
|
|
||||||
case code.JS:
|
|
||||||
switch arg[0] {
|
|
||||||
case "core":
|
|
||||||
m.Echo(arg[0] + ".Timer()" + ice.NL)
|
|
||||||
m.Echo(arg[0] + ".Timer300ms()" + ice.NL)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 词汇列表
|
// 词汇列表
|
||||||
m.Cmd("web.code.input.wubi", "word", arg[0]).Table(func(index int, value map[string]string, head []string) {
|
m.Cmd("web.code.input.wubi", "word", arg[0]).Table(func(index int, value map[string]string, head []string) {
|
||||||
m.Echo("%s\n", value[kit.MDB_TEXT])
|
m.Echo("%s\n", value[kit.MDB_TEXT])
|
||||||
})
|
})
|
||||||
m.Cmd(mdb.INSERT, m.Prefix(INPUT), "", mdb.LIST, kit.MDB_TYPE, "wubi", kit.MDB_NAME, arg[0], kit.MDB_TEXT, m.Result())
|
m.Cmd(INPUT, mdb.INSERT, kit.MDB_TYPE, "wubi", kit.MDB_NAME, arg[0], kit.MDB_TEXT, m.Result())
|
||||||
}},
|
}},
|
||||||
INPUT: {Name: "input id auto export import", Help: "输入法", Action: map[string]*ice.Action{
|
INPUT: {Name: "input id auto export import", Help: "输入法", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INSERT: {},
|
||||||
m.Cmdy(mdb.EXPORT, m.Prefix(INPUT), "", mdb.LIST)
|
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
mdb.ListSelect(m, arg...)
|
||||||
}},
|
}},
|
||||||
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
}})
|
||||||
m.Cmdy(mdb.IMPORT, m.Prefix(INPUT), "", mdb.LIST)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Fields(len(arg), m.Conf(INPUT, kit.META_FIELD))
|
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(INPUT), "", mdb.LIST, kit.MDB_ID, arg)
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -24,13 +24,11 @@ const (
|
|||||||
const SESS = "sess"
|
const SESS = "sess"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
SESS: {Name: SESS, Help: "会话流", Value: kit.Data(
|
SESS: {Name: SESS, Help: "会话流", Value: kit.Data(
|
||||||
kit.MDB_FIELD, "time,hash,status,username,hostname,pid,pwd",
|
kit.MDB_FIELD, "time,hash,status,username,hostname,pid,pwd",
|
||||||
)},
|
)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
web.WEB_LOGIN: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
web.WEB_LOGIN: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if f, _, e := m.R.FormFile(SUB); e == nil {
|
if f, _, e := m.R.FormFile(SUB); e == nil {
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
@ -40,47 +38,40 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch m.RenderResult(); arg[0] {
|
switch m.RenderResult(); arg[0] {
|
||||||
case "/qrcode", "/input", "/sess": // 登录入口
|
case "/input", "/sess":
|
||||||
return
|
return // 登录入口
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.Warn(m.Option(SID, strings.TrimSpace(m.Option(SID))) == "", ice.ErrNotLogin, arg[0]) {
|
if m.Warn(m.Option(SID, strings.TrimSpace(m.Option(SID))) == "", ice.ErrNotLogin, arg[0]) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
msg := m.Cmd(mdb.SELECT, m.Prefix(SESS), "", mdb.HASH, kit.MDB_HASH, m.Option(SID),
|
msg := m.Cmd(SESS, m.Option(SID))
|
||||||
ice.OptionFields(m.Conf(SESS, kit.META_FIELD)))
|
|
||||||
m.Option(aaa.USERNAME, msg.Append(aaa.USERNAME))
|
m.Option(aaa.USERNAME, msg.Append(aaa.USERNAME))
|
||||||
m.Option(tcp.HOSTNAME, msg.Append(tcp.HOSTNAME))
|
m.Option(tcp.HOSTNAME, msg.Append(tcp.HOSTNAME))
|
||||||
m.Warn(m.Option(aaa.USERNAME) == "", ice.ErrNotLogin, arg[0])
|
m.Warn(m.Option(aaa.USERNAME) == "", ice.ErrNotLogin, arg[0])
|
||||||
}},
|
}},
|
||||||
"/sess": {Name: "/sess", Help: "会话", Action: map[string]*ice.Action{
|
"/sess": {Name: "/sess", Help: "会话", Action: map[string]*ice.Action{
|
||||||
aaa.LOGOUT: {Name: "logout", Help: "退出", Hand: func(m *ice.Message, arg ...string) {
|
aaa.LOGOUT: {Name: "logout", Help: "退出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(SESS), "", mdb.HASH, kit.MDB_HASH, m.Option(SID), kit.MDB_STATUS, aaa.LOGOUT)
|
m.Cmdy(SESS, mdb.MODIFY, kit.MDB_STATUS, aaa.LOGOUT, ice.Option{kit.MDB_HASH, m.Option(SID)})
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if m.Option(SID) == "" {
|
if m.Option(SID) == "" { // 终端登录
|
||||||
m.Option(SID, m.Cmdx(mdb.INSERT, m.Prefix(SESS), "", mdb.HASH, kit.MDB_STATUS, aaa.LOGIN,
|
m.Option(SID, m.Cmdx(SESS, mdb.CREATE, kit.MDB_STATUS, aaa.LOGIN, m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, cli.PID, cli.PWD)))
|
||||||
m.OptionSimple(aaa.USERNAME, tcp.HOSTNAME, cli.PID, cli.PWD)))
|
|
||||||
} else {
|
} else {
|
||||||
m.Cmdy(mdb.MODIFY, m.Prefix(SESS), "", mdb.HASH, kit.MDB_HASH, m.Option(SID), kit.MDB_STATUS, aaa.LOGIN)
|
m.Cmdy(SESS, mdb.MODIFY, kit.MDB_STATUS, aaa.LOGIN, ice.Option{kit.MDB_HASH, m.Option(SID)})
|
||||||
}
|
}
|
||||||
m.Echo(m.Option(SID))
|
m.Echo(m.Option(SID))
|
||||||
}},
|
}},
|
||||||
SESS: {Name: "sess hash auto prunes", Help: "会话流", Action: map[string]*ice.Action{
|
SESS: {Name: "sess hash auto prunes", Help: "会话流", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.OptionFields(m.Conf(SESS, kit.META_FIELD))
|
|
||||||
m.Cmdy(mdb.DELETE, m.Prefix(SESS), "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
|
|
||||||
}},
|
|
||||||
mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.OptionFields(m.Conf(SESS, kit.META_FIELD))
|
m.OptionFields(m.Config(kit.MDB_FIELD))
|
||||||
m.Cmdy(mdb.PRUNES, m.Prefix(SESS), "", mdb.HASH, kit.MDB_STATUS, aaa.LOGOUT)
|
m.Cmdy(mdb.PRUNES, m.PrefixKey(), "", mdb.HASH, kit.MDB_STATUS, aaa.LOGOUT)
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Fields(len(arg), m.Conf(SESS, kit.META_FIELD))
|
mdb.HashSelect(m, arg...)
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(SESS), "", mdb.HASH, kit.MDB_HASH, arg)
|
|
||||||
m.PushAction(mdb.REMOVE)
|
m.PushAction(mdb.REMOVE)
|
||||||
|
m.StatusTimeCount()
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -1,52 +1,49 @@
|
|||||||
package vim
|
package vim
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"path"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/aaa"
|
"shylinux.com/x/icebergs/base/aaa"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
|
"shylinux.com/x/icebergs/core/code"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
const _sync_index = 1
|
|
||||||
|
|
||||||
func _sync_count(m *ice.Message) string {
|
|
||||||
return m.Conf(SYNC, kit.Keym(kit.MDB_COUNT))
|
|
||||||
}
|
|
||||||
|
|
||||||
const SYNC = "sync"
|
const SYNC = "sync"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
|
||||||
Configs: map[string]*ice.Config{
|
|
||||||
SYNC: {Name: SYNC, Help: "同步流", Value: kit.Data(
|
SYNC: {Name: SYNC, Help: "同步流", Value: kit.Data(
|
||||||
kit.MDB_FIELD, "time,id,type,name,text,pwd,username,hostname",
|
kit.MDB_FIELD, "time,id,type,name,text,pwd,buf,row,col",
|
||||||
)},
|
)},
|
||||||
},
|
}, Commands: map[string]*ice.Command{
|
||||||
Commands: map[string]*ice.Command{
|
|
||||||
"/sync": {Name: "/sync", Help: "同步", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
"/sync": {Name: "/sync", Help: "同步", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
switch m.Option(ARG) {
|
switch m.Option(ARG) {
|
||||||
case "wq", "q", "qa":
|
case "wq", "q", "qa":
|
||||||
m.Cmd("/sess", aaa.LOGOUT)
|
m.Cmd("/sess", aaa.LOGOUT)
|
||||||
}
|
}
|
||||||
|
|
||||||
m.Cmd(mdb.INSERT, m.Prefix(SYNC), "", mdb.LIST, kit.MDB_TYPE, VIMRC,
|
m.Cmd(SYNC, mdb.INSERT, kit.MDB_TYPE, VIMRC, kit.MDB_NAME, arg[0], kit.MDB_TEXT, kit.Select(m.Option(ARG), m.Option(SUB)),
|
||||||
kit.MDB_NAME, arg[0], kit.MDB_TEXT, kit.Select(m.Option(ARG), m.Option(SUB)),
|
m.OptionSimple(cli.PWD, BUF, ROW, COL))
|
||||||
cli.PWD, m.Option(cli.PWD), BUF, m.Option(BUF), ROW, m.Option(ROW), COL, m.Option(COL))
|
|
||||||
}},
|
}},
|
||||||
SYNC: {Name: "sync id auto page", Help: "同步流", Action: map[string]*ice.Action{
|
SYNC: {Name: "sync id auto page export import", Help: "同步流", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
mdb.PREV: {Name: "prev", Help: "上一页", Hand: func(m *ice.Message, arg ...string) {
|
code.INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.PrevPage(m, arg[0], arg[1:]...)
|
p := path.Join(m.Option(cli.PWD), m.Option(BUF))
|
||||||
|
m.ProcessCommand(code.INNER, []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(ROW)}, arg...)
|
||||||
}},
|
}},
|
||||||
mdb.NEXT: {Name: "next", Help: "下一页", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "favor inputs", Help: "补全"},
|
||||||
mdb.NextPage(m, arg[0], arg[1:]...)
|
FAVOR: {Name: "favor zone=some@key type name text buf row pwd", Help: "收藏", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(FAVOR, mdb.INSERT, m.OptionSimple(kit.MDB_ZONE, "type,name,text,pwd"),
|
||||||
|
nfs.FILE, m.Option(BUF), nfs.LINE, m.Option(ROW))
|
||||||
}},
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.OptionPage(kit.Slice(arg, _sync_index)...)
|
m.OptionPage(kit.Slice(arg, 1)...)
|
||||||
m.Fields(len(kit.Slice(arg, 0, 1)), m.Conf(SYNC, kit.META_FIELD))
|
mdb.ListSelect(m, kit.Slice(arg, 0, 1)...)
|
||||||
m.Cmdy(mdb.SELECT, m.Prefix(SYNC), "", mdb.LIST, kit.MDB_ID, arg)
|
m.PushAction(code.INNER, FAVOR)
|
||||||
m.StatusTimeCountTotal(_sync_count(m))
|
m.StatusTimeCountTotal(m.Config(kit.MDB_COUNT))
|
||||||
}},
|
}},
|
||||||
},
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
@ -6,8 +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/mdb"
|
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
"shylinux.com/x/icebergs/core/code"
|
"shylinux.com/x/icebergs/core/code"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
@ -18,68 +16,24 @@ func _vim_pkg(m *ice.Message, url string) string {
|
|||||||
return kit.Path(m.Conf(code.INSTALL, kit.META_PATH), strings.Split(m.Cmdx(cli.SYSTEM, "sh", "-c", kit.Format("tar tf %s| head -n1", p)), "/")[0])
|
return kit.Path(m.Conf(code.INSTALL, kit.META_PATH), strings.Split(m.Cmdx(cli.SYSTEM, "sh", "-c", kit.Format("tar tf %s| head -n1", p)), "/")[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
const VIMRC = "vimrc"
|
|
||||||
const VIM = "vim"
|
const VIM = "vim"
|
||||||
|
|
||||||
var Index = &ice.Context{Name: VIM, Help: "编辑器", Commands: map[string]*ice.Command{
|
var Index = &ice.Context{Name: VIM, Help: "编辑器", Configs: map[string]*ice.Config{
|
||||||
|
VIM: {Name: VIM, Help: "编辑器", Value: kit.Data(
|
||||||
|
cli.SOURCE, "http://mirrors.tencent.com/macports/distfiles/vim/vim-8.2.2681.tar.gz",
|
||||||
|
)},
|
||||||
|
}, Commands: map[string]*ice.Command{
|
||||||
VIM: {Name: "vim path auto order build download", Help: "编辑器", Action: ice.MergeAction(map[string]*ice.Action{
|
VIM: {Name: "vim path auto order build download", Help: "编辑器", Action: ice.MergeAction(map[string]*ice.Action{
|
||||||
cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmdy(code.INSTALL, cli.BUILD, _vim_pkg(m, m.Config(cli.SOURCE)), "--enable-multibyte=yes",
|
m.Cmdy(code.INSTALL, cli.BUILD, _vim_pkg(m, m.Config(cli.SOURCE)), "--enable-multibyte=yes",
|
||||||
"--enable-pythoninterp=yes", "--enable-luainterp=yes", "--enable-cscope=yes")
|
"--enable-pythoninterp=yes", "--enable-luainterp=yes", "--enable-cscope=yes")
|
||||||
}},
|
}},
|
||||||
|
cli.ORDER: {Name: "order", Help: "加载", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.PLUGIN: {Hand: func(m *ice.Message, arg ...string) {
|
m.Cmdy(code.INSTALL, cli.ORDER, _vim_pkg(m, m.Config(cli.SOURCE)), "_install/bin")
|
||||||
m.Echo(m.Config(code.PLUG))
|
|
||||||
}},
|
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(nfs.CAT, path.Join(arg[2], arg[1]))
|
|
||||||
}},
|
}},
|
||||||
}, code.InstallAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, code.InstallAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmdy(code.INSTALL, cli.SOURCE, _vim_pkg(m, m.Config(cli.SOURCE)), arg)
|
m.Cmdy(code.INSTALL, cli.SOURCE, _vim_pkg(m, m.Config(cli.SOURCE)), arg)
|
||||||
}},
|
}},
|
||||||
|
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Save()
|
|
||||||
}},
|
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
|
||||||
m.Load()
|
|
||||||
m.Cmd(mdb.PLUGIN, mdb.CREATE, VIM, m.Prefix(VIM))
|
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, VIM, m.Prefix(VIM))
|
|
||||||
m.Cmd(mdb.PLUGIN, mdb.CREATE, VIMRC, m.Prefix(VIM))
|
|
||||||
m.Cmd(mdb.RENDER, mdb.CREATE, VIMRC, m.Prefix(VIM))
|
|
||||||
}},
|
|
||||||
}, Configs: map[string]*ice.Config{
|
|
||||||
VIM: {Name: VIM, Help: "编辑器", Value: kit.Data(
|
|
||||||
cli.SOURCE, "http://mirrors.tencent.com/macports/distfiles/vim/vim-8.2.2681.tar.gz",
|
|
||||||
|
|
||||||
code.PLUG, kit.Dict(
|
|
||||||
code.SPLIT, kit.Dict(
|
|
||||||
"space", " \t",
|
|
||||||
"operator", "{[(&.,;!|<>)]}",
|
|
||||||
),
|
|
||||||
code.PREFIX, kit.Dict(
|
|
||||||
"\"", "comment",
|
|
||||||
),
|
|
||||||
code.PREPARE, kit.Dict(
|
|
||||||
code.KEYWORD, kit.Simple(
|
|
||||||
"source", "finish",
|
|
||||||
"set", "let", "end",
|
|
||||||
"if", "else", "elseif", "endif",
|
|
||||||
"for", "in", "continue", "break", "endfor",
|
|
||||||
"try", "catch", "finally", "endtry",
|
|
||||||
"call", "function", "return", "endfunction",
|
|
||||||
|
|
||||||
"autocmd", "command", "execute",
|
|
||||||
"nnoremap", "cnoremap", "inoremap",
|
|
||||||
"colorscheme", "highlight", "syntax",
|
|
||||||
),
|
|
||||||
code.FUNCTION, kit.Simple(
|
|
||||||
"has", "type", "empty",
|
|
||||||
"exists", "executable",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)},
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
func init() { code.Index.Register(Index, &web.Frame{}) }
|
func init() { code.Index.Register(Index, &web.Frame{}) }
|
||||||
|
@ -29,21 +29,9 @@ cd ./_install
|
|||||||
`
|
`
|
||||||
|
|
||||||
chapter "应用"
|
chapter "应用"
|
||||||
field "编辑器" web.code.vim.sess
|
field "会话流" web.code.vim.sess
|
||||||
field "同步流" web.code.vim.sync
|
field "同步流" web.code.vim.sync
|
||||||
field "收藏夹" web.code.vim.favor
|
field "收藏夹" web.code.vim.favor
|
||||||
field "输入法" web.code.vim.input
|
field "输入法" web.code.vim.input
|
||||||
|
field "索引" web.code.vim.tags
|
||||||
|
|
||||||
chapter "插件"
|
|
||||||
field "插件管理器" web.code.inner args `usr/intshell/misc/vim/ plug.vim`
|
|
||||||
|
|
||||||
section "状态栏"
|
|
||||||
refer `
|
|
||||||
插件 https://github.com/vim-airline/vim-airline
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "配置"
|
|
||||||
field "启动脚本" web.code.inner args `usr/intshell/misc/vim/ vimrc`
|
|
||||||
|
|
||||||
field "脚本" web.code.inner args `usr/install/vim81/_install/share/vim/vim81/ filetype.vim`
|
|
||||||
field "文档" web.code.inner args `usr/install/vim81/_install/share/vim/vim81/doc/ help.txt`
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user