akalongman / sublimetext-codeformatter

Code Formatter plugin for ST2/ST3
MIT License
771 stars 131 forks source link

Issue with SpaceAroundControlStructures and comments on top of control structure #303

Open godbout opened 7 years ago

godbout commented 7 years ago

Hi there, lovely tool. I've been using it for a few days and I'm loving it already. I'm having a little issue though with comments on top of control structures when I use the "SpaceAroundControlStructures" formatter. Basically, all the spaces before the comments are getting removed, and is not intended properly anymore. I attached a screenshot.

time_php_ _alfred-time

Not sure if it's a problem of combination with some other options (I'm using a lot). I can put the list here if needed. Anything I can do to give a hand?

ParadoxD commented 7 years ago

I'm having the same issue (ST3). I've verified that it still does it when using only the "SpaceAroundControlStructures" transformation. I'm using PSR2 formatting.

godbout commented 7 years ago

So it seems to be an issue about how phpfmt handles the extra line on top of the control structure when there are comments. But there's no way to report an issue in the phpfmt github. When I have a bit of time I'll see if I can fix the code and send a PR.

godbout commented 7 years ago

@ParadoxD It's an issue with the DocBlock which should start with two *, not one . Thanks to @subins2000 for checking. In my case, I had the "DocBlockToComment" pass enabled, so I've removed it. Comments in normal structure will now be DockBlock comments, but it's fine.

godbout commented 7 years ago

I've made a PR, let's see. Even the normal "//" comments didn't work, which was annoying. So with the PR the normal comments "/*" and "//" act like the DocBlocks. They are indented correctly and there is a space between the control structure and the comments (which we might want to remove, and add the space on top of the comments?)

ParadoxD commented 7 years ago

@godbout Personally, I'd consider the comment to be part of the control structure, and say the space should come above it. Similar to how a DocBlock acts. But I'd be happy with just about anything at this point that doesn't align all my comments to the left! 😛

godbout commented 7 years ago

Yep agreed. I'll check when I have time.

godbout commented 7 years ago

I checked, and the reason why the DocBlock is stuck to the control structure has nothing to do with the SpaceAroundControlStructures pass, it is because of the NoSpaceAfterPHPDocBlocks. So there's a bit more of reflection needed. Does a NoSpaceAfterComments make sense? Or a NoSpaceAfterAnyTypeOfComments? Do we always want to remove the space after normal comments?