From 04cdab6f74e08ec9b3ff9440c0ce7fead0c75a5b Mon Sep 17 00:00:00 2001 From: sawka Date: Thu, 26 Oct 2023 00:01:52 -0700 Subject: [PATCH] add metabarecmds into command completion --- src/app/workspace/cmdinput/infomsg.tsx | 3 +++ wavesrv/pkg/cmdrunner/cmdrunner.go | 14 +++++++++++++- wavesrv/pkg/comp/comp.go | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/app/workspace/cmdinput/infomsg.tsx b/src/app/workspace/cmdinput/infomsg.tsx index c62d9ad8..67b754f7 100644 --- a/src/app/workspace/cmdinput/infomsg.tsx +++ b/src/app/workspace/cmdinput/infomsg.tsx @@ -19,6 +19,9 @@ class InfoMsg extends React.Component<{}, {}> { if (s.startsWith("^/")) { return s.substr(1); } + if (s.startsWith("^")) { + return s.substr(1); + } let slashIdx = s.lastIndexOf("/"); if (slashIdx == s.length - 1) { slashIdx = s.lastIndexOf("/", slashIdx - 1); diff --git a/wavesrv/pkg/cmdrunner/cmdrunner.go b/wavesrv/pkg/cmdrunner/cmdrunner.go index e3ea8861..368a581f 100644 --- a/wavesrv/pkg/cmdrunner/cmdrunner.go +++ b/wavesrv/pkg/cmdrunner/cmdrunner.go @@ -1738,10 +1738,22 @@ func simpleCompCommandMeta(ctx context.Context, prefix string, compCtx comp.Comp compsMeta, _ := simpleCompMeta(ctx, prefix, compCtx, nil) return comp.CombineCompReturn(comp.CGTypeCommandMeta, compsCmd, compsMeta), nil } else { - return comp.DoSimpleComp(ctx, comp.CGTypeCommand, prefix, compCtx, nil) + compsCmd, _ := comp.DoSimpleComp(ctx, comp.CGTypeCommand, prefix, compCtx, nil) + compsBareCmd, _ := simpleCompBareCmds(ctx, prefix, compCtx, nil) + return comp.CombineCompReturn(comp.CGTypeCommand, compsCmd, compsBareCmd), nil } } +func simpleCompBareCmds(ctx context.Context, prefix string, compCtx comp.CompContext, args []interface{}) (*comp.CompReturn, error) { + rtn := comp.CompReturn{} + for _, bmc := range BareMetaCmds { + if strings.HasPrefix(bmc.CmdStr, prefix) { + rtn.Entries = append(rtn.Entries, comp.CompEntry{Word: bmc.CmdStr, IsMetaCmd: true}) + } + } + return &rtn, nil +} + func simpleCompMeta(ctx context.Context, prefix string, compCtx comp.CompContext, args []interface{}) (*comp.CompReturn, error) { rtn := comp.CompReturn{} validCommands := getValidCommands() diff --git a/wavesrv/pkg/comp/comp.go b/wavesrv/pkg/comp/comp.go index d15816ef..c0e65f1d 100644 --- a/wavesrv/pkg/comp/comp.go +++ b/wavesrv/pkg/comp/comp.go @@ -499,7 +499,7 @@ func getCompType(compPos shparse.CompletionPos) string { return CGTypeCommandMeta case shparse.CompTypeCommand: - return CGTypeCommand + return CGTypeCommandMeta case shparse.CompTypeVar: return CGTypeVariable