Skip to content

v0.8.1

Choose a tag to compare

@arloliu arloliu released this 18 Aug 03:39
· 87 commits to main since this release

The checker stops accusing five kinds of correct line, and stops hiding work on two others.

Fixed

  • A line ending in Chinese punctuation is no longer read as unterminated.
    A line closing on or counted as a severed clause,
    so an English line beneath it was flagged on correct text.
    Mixed Chinese-English prose puts that boundary in ordinary paragraphs.
    This is not Chinese support: no check reads Chinese, it only stops accusing text it never understood.
  • A break before since, once, whereas, whenever, or whether is no longer flagged.
    Those words open a clause exactly as until, while, and because already did,
    so the line above one of them ends where it should.
    before and after were considered and deliberately left out:
    they open a clause and also work as ordinary prepositions,
    and exempting them would hide real column wraps like 4 LE bytes right / after it.
  • A long-line advisory now measures the sentence, not the indentation.
    A 68-character comment nested deep inside a struct drew an advisory telling you to split it at column 120.
    Indentation and the comment marker no longer count toward a sentence's length.
  • A line holding several run-on sentences now reports every one of them.
    It used to surrender them one per pass,
    which is indistinguishable from a finding that survived a repair,
    so a fix could stop with the line still run on.
  • A repeated phrase almost never costs a finding its position now.
    When the same sentence appeared twice on a line,
    the checker could not say where the problem was and withheld the finding from editor feedback entirely.
    One shape still defeats it:
    a one-line block comment whose text also appears in code beside it on the same line.
  • A citation is no longer read as two sentences.
    In The Smith et al. Nature paper argues otherwise. the period closes the citation, not the sentence,
    and the checker blocked the line it appeared on.
    A sentence that genuinely ends in al. now goes unreported instead,
    which is the trade this checker prefers: a missed line costs less than a wrong accusation.
  • Text inside a Python multi-line string is no longer read as a comment.
    A #-led line inside an assigned triple-quoted string or f-string was checked as prose,
    so a string holding sample text or a template could block the edit that wrote it.
    A suppression directive written inside such a string no longer reaches the line below it either.
    Docstrings are unaffected and are still checked.
    Other languages do not yet have this: a comment marker inside their multi-line strings can still be misread.

Added

  • An over-long line now always says so, even when the checker cannot suggest where to break it.
    It used to report nothing in that case, which was indistinguishable from approval.
    That mattered most right after repairing a column-wrapped comment:
    you rejoin the severed lines as asked, the result runs past the limit,
    and the tool went quiet on a line that still needed splitting.
    The new message says plainly that no boundary was recognized,
    that the checker's word list is short rather than complete,
    and that leaving the line long is the right answer when it genuinely has nowhere to break.

Documentation

  • The suppression directive is shown in every language that supports it,
    not only in Markdown.
  • The scope note says plainly that Chinese, Japanese, and Korean prose is passed over rather than checked,
    so a clean run over it is silence rather than approval.
  • The repair guidance for a severed clause is bound to the two lines the finding covers,
    which settles the old conflict between rejoining a clause and never reflowing text you did not write.