Jump to content

Code Checks: Difference between revisions

From Torben's Wickie
No edit summary
Line 1: Line 1:
==CSpell==
# run
pnpm dlx cspell-cli@10.0.1 --unique --words-only .
# show list of processed files
pnpm dlx cspell-cli@10.0.1 . --verbose --show-context
cspell.config.yaml
---
$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
version: '0.2'
useCache: true
useGitignore: true
dictionaryDefinitions:
  - name: cspell-words
    path: cspell-words.txt
    addWords: true
dictionaries:
  - cspell-words
  - python
  - typescript
language: en-US
ignorePaths:
  - '**/*.d.ts'
  - /.vscode/
  - /LICENSE
  - /public/
  - /vue_app/src/api/
  - biome.json
  - cspell-words.txt
  - cspell.config.yaml
  - package*.json
  - pnpm-lock.yaml
  - pnpm-workspace.yaml
  - uv.lock
cspell-words.txt
Torben
Menke
In-file-commands
# cspell:disable
# cspell:enable
# cspell:disable-line
# cspell:ignore foobar asdf
# cspell:words foobar bazqux
==pre-commit via prek==
==pre-commit via prek==
https://github.com/j178/prek is a replacement for [https://pre-commit.com/ pre-commit]
https://github.com/j178/prek is a replacement for [https://pre-commit.com/ pre-commit]
Line 8: Line 54:
  pnpm dlx @j178/prek@0.4.14 run --all-files
  pnpm dlx @j178/prek@0.4.14 run --all-files


prek.toml (copy in edit mode)
.pre-commit-config.yaml (copy in edit mode)
  #:schema https://www.schemastore.org/prek.json
---
# install prek package (instead of python pre-commit)
#  brew install prek
# register as git commit-hook to run automatically
#  prek install
# run manually
  # prek run --all-files
# update hooks to latest version
#  prek autoupdate
   
   
  exclude = '''
  exclude: >-
(?x)^(
  (?x)^(
  \.vscode/.*
    \.vscode/.*
)$
    |pnpm-lock.yaml
  '''
  )$
  repos:
[[repos]]
  - repo: builtin
repo = "builtin"
    hooks:
hooks = [
      - id: check-added-large-files
  { id = "check-added-large-files", args = [
        args: ["--maxkb=500"]
    "--maxkb=500",
      - id: check-case-conflict
  ] },
      - id: check-executables-have-shebangs
  { id = "check-case-conflict" },
      - id: check-illegal-windows-names
  { id = "check-executables-have-shebangs" },
      - id: check-json
  { id = "check-illegal-windows-names" },
      - id: check-json5
  { id = "check-json" },
      - id: check-merge-conflict
  { id = "check-json5" },
      - id: check-shebang-scripts-are-executable
  { id = "check-merge-conflict" },
      - id: check-symlinks
  { id = "check-shebang-scripts-are-executable" },
      - id: check-toml
  { id = "check-symlinks" },
      - id: check-vcs-permalinks
  { id = "check-toml" },
      - id: check-xml
  { id = "check-vcs-permalinks" },
      - id: check-yaml
  { id = "check-xml" },
      - id: destroyed-symlinks
  { id = "check-yaml" },
      - id: detect-private-key
  { id = "destroyed-symlinks" },
      - id: end-of-file-fixer
  { id = "detect-private-key" },
      - id: file-contents-sorter
  { id = "end-of-file-fixer" },
        files: '^(\.gitignore|cspell-words\.txt)$'
  { id = "file-contents-sorter", files = "^(.gitignore|cspell-words.txt)$", args = [
        args: ["--ignore-case"]
    "--ignore-case",
      - id: fix-byte-order-marker
  ] },
      - id: mixed-line-ending
  { id = "fix-byte-order-marker" },
        args: ["--fix=lf"]
  { id = "mixed-line-ending", args = [
      - id: requirements-txt-fixer
    "--fix=lf",
      - id: trailing-whitespace
  ] },
  { id = "requirements-txt-fixer" },
  { id = "trailing-whitespace" },
]


==GitLeaks==
==GitLeaks==
[[repos]]
.pre-commit-config.yaml
repo = "https://github.com/gitleaks/gitleaks"
  - repo: https://github.com/gitleaks/gitleaks
rev = "v8.30.1"
    rev: v8.30.1
hooks = [{ id = "gitleaks" }]
    hooks:
      - id: gitleaks


==Markdown via rumdl==
==Markdown via rumdl==
Line 70: Line 121:
  disable = ["MD013"] # line-length
  disable = ["MD013"] # line-length


prek / pre-commit hook
.pre-commit-config.yaml
[[repos]]
  - repo: https://github.com/rvben/rumdl-pre-commit
repo = "https://github.com/rvben/rumdl-pre-commit"
    rev: v0.2.74
rev = "v0.2.57"
    hooks:
hooks = [{ id = "rumdl", args = ["--fix"] }, { id = "rumdl-fmt" }]
      - id: rumdl
        # "--fix"
        args: ["--disable", "MD013"] # line-length
      - id: rumdl-fmt


==YAML via ryl==
==YAML via ryl==
Line 86: Line 140:
  pnpm dlx @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
  pnpm dlx @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix


.pre-commit-config.yaml
  - repo: https://github.com/owenlamont/ryl-pre-commit
    rev: v0.22.0
    hooks:
      - id: ryl
        args: ["--fix", "-d", "{extends: default, rules: {line-length: disable}}"]


.ryl.toml
==Shell via shfmt==
ignore = ["pnpm-lock.yaml"]
https://github.com/mvdan/sh#shfmt
  brew install shfmt
[rules]
  shfmt -w -i 2 -ci .
# https://ryl-docs.pages.dev/rules/
 
  anchors = "enable"
.pre-commit-config.yaml
braces = "enable"
  - repo: https://github.com/scop/pre-commit-shfmt
brackets = "enable"
    rev: v3.14.1-1
colons = "enable"
    hooks:
commas = "enable"
      - id: shfmt
document-end = "disable"
        args: ["-w", "-i", "2", "-ci"]
empty-lines = "enable"
empty-values = "disable"
float-values = "disable"
hyphens = "enable"
indentation = "enable"
key-duplicates = "enable"
key-ordering = "disable"
line-length = "disable"
new-line-at-end-of-file = "enable"
new-lines = "enable"
  octal-values = "disable"
quoted-strings = "disable"
trailing-spaces = "enable"
[rules.comments]
level = "warning"
[rules.comments-indentation]
level = "warning"
[rules.document-start]
level = "warning"
[rules.truthy]
level = "warning"
prek / pre-commit hook
[[repos]]
repo = "https://github.com/owenlamont/ryl-pre-commit"
rev = "v0.21.0"
hooks = [{ id = "ryl" }]


==TOML via taplo==
==TOML via taplo==
Line 133: Line 163:
  pnpm dlx @taplo/cli@0.7.0 fmt *.toml
  pnpm dlx @taplo/cli@0.7.0 fmt *.toml
  pnpm dlx @taplo/cli@0.7.0 check *.toml
  pnpm dlx @taplo/cli@0.7.0 check *.toml
==Shell via shfmt==
https://github.com/mvdan/sh#shfmt
brew install shfmt
shfmt -w -i 2 -ci .
prek / pre-commit hook
[[repos]]
repo = "https://github.com/scop/pre-commit-shfmt"
rev = "v3.13.1-1"
hooks = [{ id = "shfmt", args = ["-w", "-i", "2", "-ci"] }]

Revision as of 09:38, 26 September 2026

CSpell

# run
pnpm dlx cspell-cli@10.0.1 --unique --words-only .
# show list of processed files
pnpm dlx cspell-cli@10.0.1 . --verbose --show-context

cspell.config.yaml

---
$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
version: '0.2'
useCache: true
useGitignore: true
dictionaryDefinitions:
  - name: cspell-words
    path: cspell-words.txt
    addWords: true
dictionaries:
  - cspell-words
  - python
  - typescript
language: en-US
ignorePaths:
  - '**/*.d.ts'
  - /.vscode/
  - /LICENSE
  - /public/
  - /vue_app/src/api/
  - biome.json
  - cspell-words.txt
  - cspell.config.yaml
  - package*.json
  - pnpm-lock.yaml
  - pnpm-workspace.yaml
  - uv.lock

cspell-words.txt

Torben
Menke

In-file-commands

# cspell:disable
# cspell:enable
# cspell:disable-line
# cspell:ignore foobar asdf
# cspell:words foobar bazqux

pre-commit via prek

https://github.com/j178/prek is a replacement for pre-commit

brew install prek
prek run --all-files
# update hook versions
prek autoupdate
# or 
pnpm dlx @j178/prek@0.4.14 run --all-files

.pre-commit-config.yaml (copy in edit mode)

---
# install prek package (instead of python pre-commit)
#  brew install prek
# register as git commit-hook to run automatically
#  prek install
# run manually
#  prek run --all-files
# update hooks to latest version
#  prek autoupdate

exclude: >-
  (?x)^(
    \.vscode/.*
    |pnpm-lock.yaml
  )$
repos:
  - repo: builtin
    hooks:
      - id: check-added-large-files
        args: ["--maxkb=500"]
      - id: check-case-conflict
      - id: check-executables-have-shebangs
      - id: check-illegal-windows-names
      - id: check-json
      - id: check-json5
      - id: check-merge-conflict
      - id: check-shebang-scripts-are-executable
      - id: check-symlinks
      - id: check-toml
      - id: check-vcs-permalinks
      - id: check-xml
      - id: check-yaml
      - id: destroyed-symlinks
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: file-contents-sorter
        files: '^(\.gitignore|cspell-words\.txt)$'
        args: ["--ignore-case"]
      - id: fix-byte-order-marker
      - id: mixed-line-ending
        args: ["--fix=lf"]
      - id: requirements-txt-fixer
      - id: trailing-whitespace

GitLeaks

.pre-commit-config.yaml

  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.30.1
    hooks:
      - id: gitleaks

Markdown via rumdl

https://github.com/rvben/rumdl

brew install rumdl
rumdl fmt .
rumdl check .
rumdl check . --fix
# or
pnpm dlx rumdl@0.2.55 fmt
pnpm dlx rumdl@0.2.55 check
pnpm dlx rumdl@0.2.55 check --fix

.rumdl.toml

[global]
disable = ["MD013"] # line-length

.pre-commit-config.yaml

  - repo: https://github.com/rvben/rumdl-pre-commit
    rev: v0.2.74
    hooks:
      - id: rumdl
        # "--fix"
        args: ["--disable", "MD013"]  # line-length
      - id: rumdl-fmt

YAML via ryl

https://github.com/owenlamont/ryl

# run without config file:
# via uv
uvx ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via npm
npx -y @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via pnpm
pnpm dlx @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix

.pre-commit-config.yaml

  - repo: https://github.com/owenlamont/ryl-pre-commit
    rev: v0.22.0
    hooks:
      - id: ryl
        args: ["--fix", "-d", "{extends: default, rules: {line-length: disable}}"]

Shell via shfmt

https://github.com/mvdan/sh#shfmt

brew install shfmt
shfmt -w -i 2 -ci .

.pre-commit-config.yaml

  - repo: https://github.com/scop/pre-commit-shfmt
    rev: v3.14.1-1
    hooks:
      - id: shfmt
        args: ["-w", "-i", "2", "-ci"]

TOML via taplo

https://github.com/tamasfe/taplo

pnpm dlx @taplo/cli@0.7.0 fmt *.toml
pnpm dlx @taplo/cli@0.7.0 check *.toml