Merge pull request #837 from Delgan/GH-347-add-force-exclude

Add "--force-exclude" option
This commit is contained in:
Ed Page 2023-10-09 15:30:30 -05:00 committed by GitHub
commit 2303689282
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 26 additions and 3 deletions

View file

@ -3,7 +3,7 @@
description: Source code spell checker, binary install
language: python
entry: typos
args: [--write-changes]
args: [--write-changes, --force-exclude]
types: [text]
stages: [commit, merge-commit, push, manual]
@ -12,7 +12,7 @@
description: Source code spell checker, Docker image
language: docker
entry: typos
args: [--write-changes]
args: [--write-changes, --force-exclude]
types: [text]
stages: [commit, merge-commit, push, manual]
@ -21,6 +21,6 @@
description: Source code spell checker, source install
language: rust
entry: typos
args: [--write-changes]
args: [--write-changes, --force-exclude]
types: [text]
stages: [commit, merge-commit, push, manual]

View file

@ -46,6 +46,10 @@ pub(crate) struct Args {
#[arg(short = 'j', long = "threads", default_value = "0")]
pub(crate) threads: usize,
/// Respect excluded files even for paths passed explicitly.
#[arg(long, help_heading = None)]
pub(crate) force_exclude: bool,
/// Custom config file
#[arg(short = 'c', long = "config", help_heading = "Config")]
pub(crate) custom_config: Option<std::path::PathBuf>,

View file

@ -216,6 +216,11 @@ fn run_checks(args: &args::Args) -> proc_exit::ExitResult {
let overrides = overrides
.build()
.with_code(proc_exit::sysexits::CONFIG_ERR)?;
if args.force_exclude {
if let ignore::Match::Ignore(_) = overrides.matched(path, path.is_dir()) {
continue;
}
}
walk.overrides(overrides);
}

View file

@ -0,0 +1,5 @@
[files]
extend-exclude = ["file.ignore"]
[default.extend-identifiers]
hello = "goodbye"

View file

@ -0,0 +1 @@
hello

View file

@ -0,0 +1,6 @@
bin.name = "typos"
args = "file.ignore --force-exclude"
stdin = ""
stdout = ""
stderr = ""
status.code = 0

View file

@ -10,6 +10,7 @@ Arguments:
Options:
-j, --threads <THREADS> The approximate number of threads to use [default: 0]
--force-exclude Respect excluded files even for paths passed explicitly
-h, --help Print help
-V, --version Print version

View file

@ -18,6 +18,7 @@ Configuration is read from the following (in precedence order)
|------------------------|-------------------|--------|-------------|
| files.binary | --binary | bool | Check binary files as text |
| files.extend-exclude | --exclude | list of strings | Typos-specific ignore globs (gitignore syntax) |
| file.force-excude | --force-exclude | bool | Respect excluded files even for paths passed explicitly. |
| files.ignore-hidden | --hidden | bool | Skip hidden files and directories. |
| files.ignore-files | --ignore | bool | Respect ignore files. |
| files.ignore-dot | --ignore-dot | bool | Respect .ignore files. |