]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(odin): update indent and syntax scripts
authorMaxim Kim <habamax@gmail.com>
Mon, 2 Feb 2026 10:16:36 +0000 (10:16 +0000)
committerChristian Brabandt <cb@256bit.org>
Mon, 2 Feb 2026 10:16:36 +0000 (10:16 +0000)
- fix indent of a closing } after another } on previous line
- fix indent of consequent #+feature lines
- highlight #+features

closes: #19310

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/indent/odin.vim
runtime/syntax/odin.vim

index 50284f4cabd52309ffda1f013a431934dd8769f1..f8e0d3609ed69c5b5ffbe1e0517ab3bd711b2f5c 100644 (file)
@@ -4,7 +4,7 @@ vim9script
 # Language: Odin
 # Maintainer: Maxim Kim <habamax@gmail.com>
 # Website: https://github.com/habamax/vim-odin
-# Last Change: 2025-10-15
+# Last Change: 2026-02-02
 
 if exists("b:did_indent")
     finish
@@ -61,7 +61,9 @@ def GetOdinIndent(lnum: number): number
     var indent = cindent(lnum)
     var line = getline(lnum)
 
-    if line =~ '^\s*#\k\+'
+    if line =~ '^\s*#+\k'
+        indent = pindent
+    elseif line =~ '^\s*#\k\+'
         if pline =~ '[{:]\s*$'
             indent = pindent + shiftwidth()
         else
@@ -79,7 +81,7 @@ def GetOdinIndent(lnum: number): number
         endif
     elseif pline =~ '^\s*@.*' && line !~ '^\s*}'
         indent = pindent
-    elseif pline =~ ':[:=].*}\s*$'
+    elseif pline =~ ':[:=].*}\s*$' && line !~ '^\s*}'
         indent = pindent
     elseif pline =~ '^\s*}\s*$'
         if line !~ '^\s*}' && line !~ '\<case\>\s*.*:\s*$'
index 41d6ca1c470ba6286d6dbabbdb7e5f46ca33ee1d..efa107b79fcf2c4255124e0f4266330f8945cfb2 100644 (file)
@@ -4,7 +4,7 @@ vim9script
 # Language: Odin
 # Maintainer: Maxim Kim <habamax@gmail.com>
 # Website: https://github.com/habamax/vim-odin
-# Last Change: 2025-12-06
+# Last Change: 2026-02-02
 
 if exists("b:current_syntax")
   finish
@@ -64,6 +64,7 @@ syntax match odinAddressOf "&" display
 syntax match odinDeref "\^" display
 
 syntax match odinMacro "#\<\w\+\>" display
+syntax region odinFeature matchgroup=odinMacro start="#+\<\w\+\>" end="$" oneline display
 
 syntax match odinTemplate "$\<\w\+\>"