mirror of https://github.com/Hilbis/Hilbish
feat: add case insensitive tab completion
parent
3f9b230381
commit
b37715f483
|
@ -150,7 +150,7 @@ func matchPath(query string) ([]string, string) {
|
||||||
|
|
||||||
files, _ := os.ReadDir(path)
|
files, _ := os.ReadDir(path)
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
if strings.HasPrefix(file.Name(), baseName) {
|
if strings.HasPrefix(strings.ToLower(file.Name()), strings.ToLower(baseName)) {
|
||||||
entry := file.Name()
|
entry := file.Name()
|
||||||
if file.IsDir() {
|
if file.IsDir() {
|
||||||
entry = entry + string(os.PathSeparator)
|
entry = entry + string(os.PathSeparator)
|
||||||
|
|
|
@ -74,7 +74,8 @@ func (rl *Instance) insertCandidate() {
|
||||||
|
|
||||||
// Ensure no indexing error happens with prefix
|
// Ensure no indexing error happens with prefix
|
||||||
if len(completion) >= prefix {
|
if len(completion) >= prefix {
|
||||||
rl.insert([]rune(completion[prefix:]))
|
rl.viDeleteByAdjust(-prefix)
|
||||||
|
rl.insert([]rune(completion))
|
||||||
if !cur.TrimSlash && !cur.NoSpace {
|
if !cur.TrimSlash && !cur.NoSpace {
|
||||||
rl.insert([]rune(" "))
|
rl.insert([]rune(" "))
|
||||||
}
|
}
|
||||||
|
@ -86,7 +87,6 @@ func (rl *Instance) insertCandidate() {
|
||||||
func (rl *Instance) updateVirtualComp() {
|
func (rl *Instance) updateVirtualComp() {
|
||||||
cur := rl.getCurrentGroup()
|
cur := rl.getCurrentGroup()
|
||||||
if cur != nil {
|
if cur != nil {
|
||||||
|
|
||||||
completion := cur.getCurrentCell(rl)
|
completion := cur.getCurrentCell(rl)
|
||||||
prefix := len(rl.tcPrefix)
|
prefix := len(rl.tcPrefix)
|
||||||
|
|
||||||
|
@ -99,6 +99,9 @@ func (rl *Instance) updateVirtualComp() {
|
||||||
rl.viUndoSkipAppend = true
|
rl.viUndoSkipAppend = true
|
||||||
rl.resetTabCompletion()
|
rl.resetTabCompletion()
|
||||||
} else {
|
} else {
|
||||||
|
if strings.HasSuffix(string(rl.line), rl.tcPrefix) {
|
||||||
|
rl.viDeleteByAdjust(-prefix)
|
||||||
|
}
|
||||||
|
|
||||||
// Special case for the only special escape, which
|
// Special case for the only special escape, which
|
||||||
// if not handled, will make us insert the first
|
// if not handled, will make us insert the first
|
||||||
|
@ -109,7 +112,7 @@ func (rl *Instance) updateVirtualComp() {
|
||||||
|
|
||||||
// Or insert it virtually.
|
// Or insert it virtually.
|
||||||
if len(completion) >= prefix {
|
if len(completion) >= prefix {
|
||||||
rl.insertCandidateVirtual([]rune(completion[prefix:]))
|
rl.insertCandidateVirtual([]rune(completion))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -173,7 +176,7 @@ func (rl *Instance) resetVirtualComp(drop bool) {
|
||||||
completion = completion + " "
|
completion = completion + " "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rl.insertCandidateVirtual([]rune(completion[prefix:]))
|
rl.insertCandidateVirtual([]rune(completion))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset virtual
|
// Reset virtual
|
||||||
|
|
Loading…
Reference in New Issue