You're right that there's a couple of examples where the indentation of nim-mode is all over the place and this is one of them. I've been meaning to take a look at this too, but lack of time and not being that experienced with elisp means I haven't done so.
Something like this is another: proc someProc(binWidth = 0.0, breaks: seq[float] = @[], binPosition = "none" # <- tab in this line will put it # binPosition = "none", # <- here ): ReturnVal = Run The reason in your specific case of course is the tuple unpacking. It seems the opening parens is confusing nim-mode. In my case it's the default @[] for the breaks. Remove that and it works. As far as I'm aware @krux02 did most of the recent development on nim-mode. Also @kaushalmodi comes to mind as someone who could probably fix this easily.