From 54d099e552102d51d0b90baf0ed164a8b8e06a0e Mon Sep 17 00:00:00 2001 From: Yichi Zhang Date: Wed, 29 May 2024 11:34:46 -0700 Subject: [PATCH] TERMINAL: Fix autocomplete for mixed case strings (#1323) --- src/utils/StringHelperFunctions.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/utils/StringHelperFunctions.ts b/src/utils/StringHelperFunctions.ts index ecfe2f634..004f8d80c 100644 --- a/src/utils/StringHelperFunctions.ts +++ b/src/utils/StringHelperFunctions.ts @@ -59,17 +59,16 @@ function longestCommonStart(strings: string[]): string { return ""; } - const A: string[] = strings.concat().sort(); - const a1: string = A[0]; - const a2: string = A[A.length - 1]; - const L: number = a1.length; - let i = 0; - const areEqualCaseInsensitive = (a: string, b: string) => a.toUpperCase() === b.toUpperCase(); - while (i < L && areEqualCaseInsensitive(a1.charAt(i), a2.charAt(i))) { - i++; + const a1: string = strings[0]; + for (let i = 0; i < a1.length; ++i) { + const chr = a1.charAt(i).toUpperCase(); + for (let s = 1; s < strings.length; ++s) { + if (chr !== strings[s].charAt(i).toUpperCase()) { + return a1.substring(0, i); + } + } } - - return a1.substring(0, i); + return a1; } // Returns whether an array contains entirely of string objects