panache 2.24.1

An LSP, formatter, and linter for Pandoc markdown, Quarto, and RMarkdown
version: "3"

tasks:
  lint:
    desc: Run linter
    cmds:
      - cargo clippy --all-targets --all-features -- -D warnings

  format:
    desc: Check code formatting
    cmds:
      - cargo fmt --

  build-release:
    desc: Build release version
    cmds:
      - cargo build --release

  test:
    desc: Run tests
    cmds:
      - cargo test

  test-debug:
    desc: Run tests with debug logging
    cmds:
      - RUST_LOG=debug cargo test

  test-trace:
    desc: Run tests with trace logging for parser
    cmds:
      - RUST_LOG=panache::parser=trace cargo test

  test-quiet:
    desc: Run tests quietly (no debug output)
    cmds:
      - RUST_LOG=off cargo test

  dev:
    desc: Development workflow - check, test, lint
    cmds:
      - cargo check
      - cargo test
      - cargo clippy --all-targets --all-features -- -D warnings

  docs-preview:
    desc: Preview documentation site locally
    cmds:
      - cd docs && quarto preview --no-browser

  wasm-build:
    desc: Build panache-wasm for web playground
    cmds:
      - cd crates/panache-wasm && wasm-pack build --target web
      - cp -r crates/panache-wasm/pkg docs/playground/
      - rm -rf docs/playground/pkg/.gitignore

  playground-serve:
    desc: Serve playground locally
    cmds:
      - cd docs/playground && python3 -m http.server

  update-golden-expected:
    desc: Update expected golden test outputs
    cmds:
      - UPDATE_EXPECTED=1 cargo test --test golden_cases

  update-golden-cst:
    desc: Update golden test CST files
    cmds:
      - UPDATE_CST=1 cargo test --test golden_cases

  update-yaml-fixtures:
    desc: Download and refresh yaml-test-suite fixtures (default data-2022-01-17)
    cmds:
      - ./scripts/update-yaml-test-suite-fixtures.sh data-2022-01-17

  coverage:
    desc: Generate code coverage report
    cmds:
      - cargo llvm-cov --all-features --workspace --html
      - echo "Coverage report generated at target/llvm-cov/html/index.html"

  coverage-open:
    desc: Generate and open coverage report in browser
    cmds:
      - cargo llvm-cov --all-features --workspace --open

  vsix:
    desc: Build VS Code extension package
    dir: editors/code
    cmds:
      - npm install
      - npm run compile
      - npx @vscode/vsce package
      - code --install-extension *.vsix --force

  release:
    desc: Publish a new release
    cmds:
      - gh workflow run release.yml --ref main

  release-dry-run:
    desc: Run a semantic release dry run to preview changes
    cmds:
      - |
        npx \
          --yes \
          --package @semantic-release/changelog \
          --package @semantic-release/git \
          --package conventional-changelog-conventionalcommits \
          --package semantic-release-cargo \
          --package semantic-release-replace-plugin \
          --package semantic-release-vsce \
          semantic-release --dry-run --no-ci