Skip to content

Add lint step for ambiguous list literals#267

Open
annevk wants to merge 2 commits into
mainfrom
annevk/list-literals
Open

Add lint step for ambiguous list literals#267
annevk wants to merge 2 commits into
mainfrom
annevk/list-literals

Conversation

@annevk
Copy link
Copy Markdown
Member

@annevk annevk commented Jan 3, 2022

Copy whatwg/whatwg.org@33ad837 and adjust formatting slightly.

@annevk annevk requested a review from domenic January 3, 2022 09:13
@annevk
Copy link
Copy Markdown
Member Author

annevk commented Jan 4, 2022

@noamr @zcorpan it seems that this list literal check isn't working as expected, at least the error message isn't. See the output at https://github.com/whatwg/html-build/runs/4689408108.

Wrong list literals, use ABBB instead:

Comment thread lint.sh Outdated
grep -niE '\s+$' "$1" | perl -lpe 'print "\nTrailing whitespace:" if $. == 1'
grep $'\t' "$1" | perl -lpe 'print "\nTab:" if $. == 1'
grep $'\xc2\xa0' "$1" | perl -lpe 'print "\nUnescaped nonbreaking space:" if $. == 1'
grep $'[\u226a\u226b]' "$1" | perl -lpe 'print "\nWrong list literals, use \uAB\uBB instead:" if $. == 1'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grep $'[\u226a\u226b]' "$1" | perl -CSDA -lpe 'print "\nWrong list literals, use \xAB\xBB instead:" if $. == 1'
should work in the context of html-build

Not sure why it shows an error though, the grep on source doesn't find anything

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the difference? Why would perl require different arguments for this particular line and not the others?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because Perl doesn't handle UTF8 by default. The other commands don't have unicode characters

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, so should we change the other script as well then?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So when I run grep $'[\u226a\u226b]' source locally on macOS it seems to return every line in the file, essentially. That's probably why this goes wrong.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strange, doesn't on my Mac
Will try to reproduce

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK it was a bash vs zsh thing. The next line works and seems portable:

perl -CSDA -ne '$/ = "\n\n"; print "$_" if (/[\x{226A}\x{226B}]/si)' $1 | perl -CSDA -lpe 'print "\nWrong list literals, use \xAB\xBB instead:" if $. == 1'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants