Fix djlint:off formatting not being respected inside script tags #1360
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
{# djlint:off #}
directive was not being respected when used inside<script>
tags, causing JavaScript code within ignore blocks to be formatted anyway. This could break JavaScript syntax and functionality.Problem:
The root cause was in
src/djlint/formatter/js.py
where thelaunch_formatter
function only checked if the entire script tag was within an unformatted block usingchild_of_unformatted_block()
, but didn't detect unformatted blocks within the script content itself.Solution:
Enhanced the JavaScript formatter to:
{# djlint:off #}
blocks within script content using the same regex patterns as the rest of djLintAfter the fix:
The fix properly filters out empty regex matches and uses the correct flags (
RE_FLAGS_IMSX
) for pattern matching with verbose regex expressions.Fixes #868.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.