fix: Completion on first line

This commit is contained in:
FalsePattern 2024-05-28 02:39:49 +02:00
parent aa41c5c9aa
commit 3d768a183e
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
2 changed files with 7 additions and 7 deletions

View file

@ -21,6 +21,7 @@ Changelog structure reference:
- Zig
- Fixed indentation to be more consistent with zig fmt
- Code completion now works correctly on the first line in a file too
## [14.3.0]

View file

@ -800,22 +800,21 @@ public class EditorEventManager {
return getCompletionPrefix(this.editor, offset).length();
}
private static final List<String> WHITESPACE_DELIMITERS = Arrays.asList(" \t\n\r".split(""));
@NotNull
public String getCompletionPrefix(Editor editor, int offset) {
List<String> delimiters = new ArrayList<>(this.completionTriggers);
// add whitespace as delimiter, otherwise forced completion does not work
delimiters.addAll(Arrays.asList(" \t\n\r".split("")));
StringBuilder s = new StringBuilder();
String documentText = editor.getDocument().getText();
for (int i = 0; i < offset; i++) {
char singleLetter = documentText.charAt(offset - i - 1);
if (delimiters.contains(String.valueOf(singleLetter))) {
return s.reverse().toString();
val letterString = String.valueOf(singleLetter);
if (WHITESPACE_DELIMITERS.contains(letterString) || completionTriggers.contains(letterString)) {
break;
}
s.append(singleLetter);
}
return "";
return s.reverse().toString();
}
@SuppressWarnings("WeakerAccess")