jlevy / jlevy/flowmark

Silently accepts contradictory flag combinations (--auto + -o/--output, --auto + --check)

Open
#63 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
81
Forks
11
Avg merge
10h 53m
Merged PRs (30d)
6

Description

## Summary

`--auto` is a preset that implies in-place editing (`--inplace`, which ignores `--output`). Combining `--auto` with `--output`/`-o`, or with `--check`, is contradictory — but flowmark accepts the combination silently instead of erroring, producing confusing no-ops.

Confirmed on flowmark 0.7.2:

### `--auto` + `-o -` / `--output`

```
$ flowmark --auto -o - FILE
# exit 0, nothing on stdout, FILE unchanged, no error/warning
```

The `--output` is silently dropped (in-place mode ignores it), so this writes nothing to stdout. It is easy to mistake the empty stdout for "flowmark produced an empty document" when piping into another tool or a diff.

### `--auto` + `--check`

```
$ flowmark --auto --check FILE
```

`--auto` means "format in place"; `--check` means "don't write anything." The combination is contradictory but runs silently as a check (the in-place intent is dropped).

## Request

Emit a clear, consistent error (or at least a warning) for incompatible flag combinations — `--auto` together with `--output`/`-o`, and `--auto` together with `--check` — instead of silently ignoring one side.

## Related

Same behavior in the Rust port: jlevy/flowmark-rs#76. (The separate incremental-cache bug — jlevy/flowmark-rs#75 — does **not** affect flowmark-py, which has no incremental cache.)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.