Add colon after username completion at beginning of line

This commit is contained in:
Tulir Asokan 2018-03-20 16:03:05 +02:00
parent bfb5151cb6
commit 508b4ea280
2 changed files with 11 additions and 2 deletions

View File

@ -122,7 +122,12 @@ func (view *MainView) InputTabComplete(text string, cursorOffset int) string {
word := findWordToTabComplete(str)
userCompletions := roomView.AutocompleteUser(word)
if len(userCompletions) == 1 {
text = str[0:len(str)-len(word)] + userCompletions[0] + text[len(str):]
startIndex := len(str)-len(word)
completion := userCompletions[0]
if startIndex == 0 {
completion = completion + ": "
}
text = str[0:startIndex] + completion + text[len(str):]
} else if len(userCompletions) > 1 && len(userCompletions) < 6 {
roomView.SetStatus(fmt.Sprintf("Completions: %s", strings.Join(userCompletions, ", ")))
}

View File

@ -102,8 +102,12 @@ func (view *RoomView) SetTyping(users []string) {
}
func (view *RoomView) AutocompleteUser(existingText string) (completions []string) {
textWithoutPrefix := existingText
if strings.HasPrefix(existingText, "@") {
textWithoutPrefix = existingText[1:]
}
for _, user := range view.Room.GetMembers() {
if strings.HasPrefix(user.DisplayName, existingText) {
if strings.HasPrefix(user.DisplayName, textWithoutPrefix) {
completions = append(completions, user.DisplayName)
} else if strings.HasPrefix(user.UserID, existingText) {
completions = append(completions, user.UserID)