-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong indentation for comment after nested unbraced control constructs #1079
Comments
gagern
added a commit
to gagern/CindyJS
that referenced
this issue
Dec 21, 2016
The braces are required due to beautifier/js-beautify#1079
So many ways comments can go off the rails. |
Thanks for the quick fix here, particularly at this time of the year! ❤️ Although #1090 (comment) suggests that unfortunately this is not the end of the story yet, since the fix here made issues reported there considerably more severe. 😢 |
0-wiz-0
pushed a commit
to NetBSD/pkgsrc-wip
that referenced
this issue
Apr 14, 2017
pkgsrc changes: - Use ALTERNATIVES in order to permit multi-pkgs to coexists and adjust PLIST and introduce Makefile post-install target accordingly Changes: * CSS: Preserve Newlines ([#537](beautifier/js-beautify#537)) Reverted #1117 - Preserve newlines broken * On beautify, new line before next CSS selector ([#1142](beautifier/js-beautify#1142)) Added `preserver_newlines` to css beautifier * Fixed html formatting issue with attribute wrap (Thanks, @HookyQR!) * Fixed python package publishing * Wrong HTML beautification starting with v1.6.5 ([#1115](beautifier/js-beautify#1115)) * Ignore linebreak when meet handlebar ([#1104](beautifier/js-beautify#1104)) * Lines are not un-indented correctly when attributes are wrapped ([#1103](beautifier/js-beautify#1103)) * force-aligned is not aligned when indenting with tabs ([#1102](beautifier/js-beautify#1102)) * Python package fails to publish ([#1101](beautifier/js-beautify#1101)) * Explaination of 'operator_position' is absent from README.md ([#1047](beautifier/js-beautify#1047)) * Fixed a batch of comment and semicolon-less code bugs * Incorrect indentation after loop with comment ([#1090](beautifier/js-beautify#1090)) * Extra newline is inserted after beautifying code with anonymous function ([#1085](beautifier/js-beautify#1085)) * end brace with next comment line make bad indent ([#1043](beautifier/js-beautify#1043)) * Javascript comment in last line doesn't beautify well ([#964](beautifier/js-beautify#964)) * indent doesn't work with comment (jsdoc) ([#913](beautifier/js-beautify#913)) * Wrong indentation, when new line between chained methods ([#892](beautifier/js-beautify#892)) * Comments in a non-semicolon style have extra indent ([#815](beautifier/js-beautify#815)) * [bug] Incorrect indentation due to commented line(s) following a function call with a function argument. ([#713](beautifier/js-beautify#713)) * Wrong indent formatting ([#569](beautifier/js-beautify#569)) Added `content_unformatted` option (Thanks @arai-a) * HTML pre code indentation ([#928](beautifier/js-beautify#928)) * Beautify script/style tags but ignore their inner JS/CSS content ([#906](beautifier/js-beautify#906)) * Added support for editorconfig from stdin * Added js-beautify to cdnjs * Fixed CRLF to LF for HTML and CSS on windows * Added inheritance/overriding to config format (Thanks @DaniGuardiola and @HookyQR) * Added `force-align` to `wrap-attributes` (Thanks @LukinoS) * Added `force-expand-multiline` to `wrap-attributes` (Thanks @tobias-zucali) * Added `preserve-inline` as independent brace setting (Thanks @Coburn37) * Fixed handlebars with angle-braces (Thanks @mmsqe) * Wrong indentation for comment after nested unbraced control constructs ([#1079](beautifier/js-beautify#1079)) * Should prefer breaking the line after operator ? instead of before operator < ([#1073](beautifier/js-beautify#1073)) * New option "force-expand-multiline" for "wrap_attributes" ([#1070](beautifier/js-beautify#1070)) * Breaks if html file starts with comment ([#1068](beautifier/js-beautify#1068)) * collapse-preserve-inline restricts users to collapse brace_style ([#1057](beautifier/js-beautify#1057)) * Parsing failure on numbers with "e" ([#1054](beautifier/js-beautify#1054)) * Issue with Browser Instructions ([#1053](beautifier/js-beautify#1053)) * Add preserve inline function for expand style braces ([#1052](beautifier/js-beautify#1052)) * Update years in LICENSE ([#1038](beautifier/js-beautify#1038)) * JS. Switch with template literals. Unexpected indentation. ([#1030](beautifier/js-beautify#1030)) * The object with spread object formatted not correctly ([#1023](beautifier/js-beautify#1023)) * Bad output generator function in class ([#1013](beautifier/js-beautify#1013)) * Support editorconfig for stdin ([#1012](beautifier/js-beautify#1012)) * Publish to cdnjs ([#992](beautifier/js-beautify#992)) * breaks if handlebars comments contain handlebars tags ([#930](beautifier/js-beautify#930)) * Using jsbeautifyrc is broken ([#929](beautifier/js-beautify#929)) * Option to put HTML attributes on their own lines, aligned ([#916](beautifier/js-beautify#916)) * Erroneously changes CRLF to LF on Windows in HTML and CSS ([#899](beautifier/js-beautify#899)) * Weird space in {get } vs { normal } ([#888](beautifier/js-beautify#888)) * Bad for-of formatting with constant Array ([#875](beautifier/js-beautify#875)) * Problems with filter property in css and scss ([#755](beautifier/js-beautify#755)) * Add "collapse-one-line" option for non-collapse brace styles ([#487](beautifier/js-beautify#487))
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
When nesting multiple control constructs (like
if
orfor
) nesting increases with each of them. When there is a comment following that, it gets indented at the level of the last control construct. Which in my opinion is even stranger than if it were indented with the level of the final leaf statement that is not a control construct.Input and Expected Output
The code looked like this before beautification, and should have looked like this after beautification as well:
Actual Output
The code actually looked like this after beautification:
Steps to Reproduce
I first observed this using the [email protected] npm package.
But I can reproduce this on http://jsbeautifier.org/ right now, with default settings.
The text was updated successfully, but these errors were encountered: