Use file completion for command mode
This commit is contained in:
parent
431eb12c96
commit
76a9697a80
2 changed files with 10 additions and 4 deletions
|
@ -674,7 +674,7 @@ func (v *View) ShellMode() bool {
|
||||||
|
|
||||||
// CommandMode lets the user enter a command
|
// CommandMode lets the user enter a command
|
||||||
func (v *View) CommandMode() bool {
|
func (v *View) CommandMode() bool {
|
||||||
input, canceled := messenger.Prompt("> ", "Command", NoCompletion)
|
input, canceled := messenger.Prompt("> ", "Command", FileCompletion)
|
||||||
if !canceled {
|
if !canceled {
|
||||||
HandleCommand(input)
|
HandleCommand(input)
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,9 @@ func (m *Messenger) Prompt(prompt, historyType string, completionType Completion
|
||||||
m.history[historyType][len(m.history[historyType])-1] = response
|
m.history[historyType][len(m.history[historyType])-1] = response
|
||||||
case tcell.KeyTab:
|
case tcell.KeyTab:
|
||||||
if completionType == FileCompletion {
|
if completionType == FileCompletion {
|
||||||
dirs := strings.Split(m.response, "/")
|
args := strings.Split(m.response, " ")
|
||||||
|
currentArg := args[len(args)-1]
|
||||||
|
dirs := strings.Split(currentArg, "/")
|
||||||
var files []os.FileInfo
|
var files []os.FileInfo
|
||||||
var err error
|
var err error
|
||||||
if len(dirs) > 1 {
|
if len(dirs) > 1 {
|
||||||
|
@ -187,10 +189,14 @@ func (m *Messenger) Prompt(prompt, historyType string, completionType Completion
|
||||||
}
|
}
|
||||||
if len(suggestions) == 1 {
|
if len(suggestions) == 1 {
|
||||||
if len(dirs) > 1 {
|
if len(dirs) > 1 {
|
||||||
m.response = strings.Join(dirs[:len(dirs)-1], "/") + "/" + suggestions[0]
|
currentArg = strings.Join(dirs[:len(dirs)-1], "/") + "/" + suggestions[0]
|
||||||
} else {
|
} else {
|
||||||
m.response = suggestions[0]
|
currentArg = suggestions[0]
|
||||||
}
|
}
|
||||||
|
if len(args) > 1 {
|
||||||
|
currentArg = " " + currentArg
|
||||||
|
}
|
||||||
|
m.response = strings.Join(args[:len(args)-1], " ") + currentArg
|
||||||
m.cursorx = Count(m.response)
|
m.cursorx = Count(m.response)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue