Why auto-completion after '<' or '>' erases the leading spaces in kate

I use kate as my code editor, and I enable clangd as the lsp server.

when I use auto-completion after ‘<‘ or ‘>’, then kate will erase the leading space. For example:

int abcde = 1;
if (1 < abc)
           ^
           |------------ when I press TAB here, it will be changed to:

if (1 <abcde)
       ^
       |----------------- now the leading space is deleted

but when I disable lsp, and use the default completion, it works well.

enable lsp:

fail_2

disable lsp:

here is my lsp server config:

        "c": {
            "command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=detailed", "--clang-tidy", "--fallback-style=\"Visual Studio\"", "--header-insertion-decorators"],
            "commandDebug": ["clangd", "-log=verbose", "--background-index"],
            "url": "https://clangd.llvm.org",
            "highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
        },
        "cpp": {
            "use": "c",
            "highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
        }

Is there any log I can check?