runtime(kdl): fix KdlIndent and kdlComment in indent script (#15019)

Signed-off-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/indent/kdl.vim b/runtime/indent/kdl.vim
index b1b004d..b0a6bd9 100644
--- a/runtime/indent/kdl.vim
+++ b/runtime/indent/kdl.vim
@@ -2,7 +2,7 @@
 " Language:         KDL
 " Author:           Aram Drevekenin <aram@poor.dev>
 " Maintainer:       Yinzuo Jiang <jiangyinzuo@foxmail.com>
-" Last Change:      2024-06-11
+" Last Change:      2024-06-16
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -14,13 +14,17 @@
 let b:undo_indent = "setlocal indentexpr<"
 
 function! KdlIndent(...)
-  let line = getline(v:lnum)
+  let line = substitute(getline(v:lnum), '//.*$', '', '')
   let previousNum = prevnonblank(v:lnum - 1)
-  let previous = getline(previousNum)
+  let previous = substitute(getline(previousNum), '//.*$', '', '')
 
-  if previous =~ "{" && previous !~ "}" && line !~ "}" && line !~ ":$"
-    return indent(previousNum) + shiftwidth()
-  else
-    return indent(previousNum)
+  let l:indent = indent(previousNum)
+  if previous =~ "{" && previous !~ "}"
+    let l:indent += shiftwidth()
   endif
+  if line =~ "}" && line !~ "{"
+    let l:indent -= shiftwidth()
+  endif
+  return l:indent
 endfunction
+" vim: sw=2 sts=2 et