docs(ref): Add dotall specifier to block ignore

Needed a `(?s)` to match multiple enclosed newlines. And added a
non-greedy modifier and matching test to prevent double blocks from
causing intermediate lines to be ignored:

```shell
# spellchecker:off
should be ignored
# spellchecker:on
should not be ignored  # without non-greedy, this is also ignored
# spellchecker:off
should be ignored
# spellchecker:on
```
This commit is contained in:
Noah Pendleton 2024-06-04 15:56:21 -04:00
parent d9da472373
commit c7a34fcbe2
4 changed files with 10 additions and 6 deletions

View file

@ -1,5 +1,5 @@
[default] [default]
extend-ignore-re = ["#\\s*spellchecker:off\\s*\\n.*\\n\\s*#\\s*spellchecker:on"] extend-ignore-re = ["(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on"]
[default.extend-identifiers] [default.extend-identifiers]
hello = "goodbye" hello = "goodbye"

View file

@ -1,5 +1,9 @@
hello hello
# spellchecker:off # spellchecker:off
hello hello
# spellchecker:on henlo
// spellchecker:on
hello hello
// ensure greedy doesn't exclude everything across blocks
# spellchecker:off
# spellchecker:on

View file

@ -8,9 +8,9 @@ error: `hello` should be `goodbye`
| ^^^^^ | ^^^^^
| |
error: `hello` should be `goodbye` error: `hello` should be `goodbye`
--> ./file.ignore:5:1 --> ./file.ignore:6:1
| |
5 | hello 6 | hello
| ^^^^^ | ^^^^^
| |
""" """

View file

@ -39,8 +39,8 @@ Configuration is read from the following (in precedence order)
| type.\<name>.extend-glob | \- | list of strings | File globs for matching `<name>` | | type.\<name>.extend-glob | \- | list of strings | File globs for matching `<name>` |
Common `extend-ignore-re`: Common `extend-ignore-re`:
- Line ignore with trailing `# spellchecker:disable-line`: `"(?Rm)^.*#\\s*spellchecker:disable-line$"` - Line ignore with trailing `# spellchecker:disable-line`: `"(?Rm)^.*(#|//)\\s*spellchecker:disable-line$"`
- Line block with `# spellchecker:<on|off>`: `"#\\s*spellchecker:off\\s*\\n.*\\n\\s*#\\s*spellchecker:on"` - Line block with `# spellchecker:<on|off>`: `"(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on"`
Common `extend-ignore-identifiers-re`: Common `extend-ignore-identifiers-re`:
- SSL Cipher suites: `"\\bTLS_[A-Z0-9_]+(_anon_[A-Z0-9_]+)?\\b"` - SSL Cipher suites: `"\\bTLS_[A-Z0-9_]+(_anon_[A-Z0-9_]+)?\\b"`