All suggestions were migrated from User Voice to Github. This one can be found here:
Any further discussion should happen on that Github issue, and voting should be done by reactions on the issue (either thumbs-up or thumbs-down).
BTW, records have been mentioned in a separate suggestion: https://fslang.uservoice.com/forums/245727-f-language/suggestions/15696774-relax-indentation-rules-on-records
I feel the records idea is a subset of this one, which would also cover lists and arrays (and so on). So although I'm 100% in favor of the records suggestion, I've put my limited votes on this one instead.
Also, I'd like to mention one thing that I haven't seen mentioned yet. I'd like to be able to put the closing delimiter on a line of its own, indented at the same level as the following code. E.g.,
let myFunction () =
....let someList = [
....let otherList = [1; 2; 3]
....// Other code follows
If this is implemented, I'd suggest a name incorporating "d" for "delay", e.g. one of the following naming schemes:
dprintf, dbprintf, dfprintf, dsprintf
dkprintf, dkbprintf, dkfprintf, dksprintf
kdprintf, kdbprintf, kdfprintf, kdsprintf
kprintfd, kbprintfd, kfprintfd, ksprintfd
Personally, I like the last scheme best, where the "d" is appended at the end of the "normal" kprintf names. That fits with the printf / printfn function naming, where the two functions do ALMOST the same thing with one minor change (whether a newline is appended or not). Since no kprintf-family functions have an "n" overload, there won't be any confusion over whether to put the "d" before or after the "n", and the parallels to printf / printfn are clear (the "d" functions work almost the same as the non-"d" functions, but delay calling the continuation).