vim-glsl icon indicating copy to clipboard operation
vim-glsl copied to clipboard

Strange indentation behaviour with function calls in top-level definitions of multi-line arrays

Open maxcutlyp opened this issue 3 years ago • 1 comments

Specifically, if

  • the last item in the array is a function call (i.e. has (...) at the end - note that it must have the ( as well as the ))
  • the last item in the array does not have a trailing ,
  • the array is defined at the first indentation level
  • the closing ); is on its own line

then the line after the closing ); will be indented one tabstop further than it should be. If any of the above conditions are not met, indentation behaves as expected.

See the below video: https://user-images.githubusercontent.com/46881987/151777293-b2116c88-c616-4046-bead-420b19cfcee4.mp4

Also note the double indentation of the array contents (and the closing );), although this is not the focus of this issue.

maxcutlyp avatar Jan 31 '22 10:01 maxcutlyp

Thank you for such a detailed report! Indentation looks strange but surprisingly it's Vim's default behavior (i.e. behavior you described isn't specific to this plugin; it's the same for C, C++, Java, or JavaScript). You can check :h C-indent for more details but I could not find a way to fix behavior from your video.

Also note the double indentation of the array contents (and the closing );), although this is not the focus of this issue.

This can be changed with :set cino=(0,m1

I'm not closing this issue because I would like to investigate it a bit further and maybe find settings that will change the described behavior to something more expected.

tikhomirov avatar Feb 06 '22 18:02 tikhomirov