You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--strict runs the full catalog, including the five rules that ship off
by default. Before this, the only way to turn one on was to name it in --select, which also turned off every other rule unless you listed
those too. --ignore still subtracts on top of --strict, and --select is unchanged.
ellipsis-closer (structure, info) flags the long-sentence-then-short-closer
kicker mic-drop-closer catches, but built on the opposite verb shape: the
closer's verb phrase is elided down to a bare auxiliary with no object,
"The agent did." rather than a quantifier plus a full verb. No subject list
is needed — the tell is the missing verb, not the subject — so "That",
"This" and "It" are not excluded the way mic-drop-closer excludes them.
A negative lookahead drops a closer that still holds a wh-word, since that
marks a subordinate clause with its own complement rather than an elided
one. Reuses mic-drop-closer's long-sentence prefix.
actually-not-x: the adverb and a trailing "…, not X" in one clause, as in
"The disclosure actually covered two incidents, not one". Either marker
alone is ordinary technical English and neither is matched on its own; the
tell is the two of them doubled up, correcting an alternative the reader was
never offered. The narrowing is structural, not a word list: the comma in
front of "not" has to be the first comma of its clause and has to follow a
word, so a fronted setup ("Despite the name, …") and a parenthetical both
drop it. Nothing crosses a line break, so two rows of a table cannot weld
into one correction.
real-x-real-y (rhetorical-tic, info) flags the same "real" used twice
attributively in one sentence, in front of two different nouns: "it can
trigger real API calls or hold real credentials". Bare "real" is an
ordinary word, so the narrowing is the repetition itself, not a noun
list. A hyphen on either side takes it out ("real-time", "non-real"), a
backreference requires the second noun to differ from the first, and a
short closed list drops the fixed senses of this register (real time,
real-world, real numbers, real user monitoring, real estate, real money).
phrase-echo (rhetorical-tic, info, off by default) flags a three-word
phrase that comes back within a few hundred words, the model reusing a
phrase it has just minted. Each word must be four characters or more and
lowercase-led, and one of them six letters with nothing but letters, so "in
order to", "couldn't have been" and "New York City" never match. The window
does not cross into a list item or a table row. Off by default: a term of
art repeats because it must, and in reference prose the pattern fires on
names by the thousand per million words.
trailing-restatement (structure, info, off by default) flags the tail
that says the sentence again in other words: ", which means …", ", which
is to say …", ", meaning …", and four participles that hang a result off
the sentence (", making it easier", ", allowing us to", ", giving them
more", ", leaving you with"). The connective is all a pattern can see, and the
same connective states a real consequence in careful prose, so the rule
runs only when selected.
Fixed
check's options now work without the command word: sloplint --markdown -
and sloplint --strict - scan, as the README has said sloplint - does.
Before, the global parser rejected any option it did not own with invalid option, so check had to be spelled out whenever an option
came first. An option no command knows still exits 2.
--markdown now blanks <!-- --> comment blocks along with fenced code,
inline code and URLs. Planning notes kept in comments never render, so
every rule that fired inside one was a permanent false positive.
rule-of-three's message, rationale, README and SPEC entries said it
flagged three parallel comma items. The pattern requires single words in
the closing two slots, so a triad of phrases never matched; the text now
says that.