tikhomirov / vim-glsl

Vim runtime files for OpenGL Shading Language
MIT License
279 stars 27 forks source link

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

Open maxcutlyp opened 2 years ago

maxcutlyp commented 2 years ago

Specifically, if

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.

tikhomirov commented 2 years ago

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.