# 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
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
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*$'
# 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
syntax match odinDeref "\^" display
syntax match odinMacro "#\<\w\+\>" display
+syntax region odinFeature matchgroup=odinMacro start="#+\<\w\+\>" end="$" oneline display
syntax match odinTemplate "$\<\w\+\>"