Skip to content

Repository files navigation

Ark Format

CI License: MIT GitHub Sponsors Ko-fi

Official monorepo for the Ark Format extensions for Visual Studio Code. It brings together formatters for Shell, PowerShell, and Makefile, plus an extension pack and shared libraries.

🌍 Languages: USA Flag English (this file) Β· Brazil Flag PortuguΓͺs


Ark Format extension pack preview


✨ Overview

  • 🎯 Consistent formatting for Shell, PowerShell, and Makefile
  • πŸ“¦ Packages split by responsibility (formatters, pack, and shared code)
  • 🧩 Monorepo with pnpm workspaces for unified build, test, and lint
  • ⚑ Fast development workflow with VS Code tasks and debugging

πŸ“¦ Packages

Package Version Installs Description
packages/shell Version Installs Formatting extension for Shell (.sh, .bash, .zsh, .ksh, .tcsh, .azcli, .bats)
packages/powershell Version Installs Formatting extension for PowerShell (.ps1, .psm1, .psd1)
packages/makefile Version Installs Formatting extension for Makefile (Makefile, GNUmakefile, *.mk)
packages/pack Version Installs Extension Pack that installs Shell + PowerShell together
packages/shared Internal β€” Shared code across packages (lexer, indentation, utilities, and document processing)

πŸš€ Getting Started

Install dependencies at the repository root:

pnpm install

Build the monorepo:

pnpm run build

Watch mode for development:

pnpm run watch

Lint every package that provides the script:

pnpm run lint

πŸ§ͺ Tests

Run the tests across the whole monorepo:

pnpm run test

Run the tests for a specific package (example: PowerShell):

cd packages/powershell
pnpm test

Generate coverage for a specific package (example: PowerShell):

cd packages/powershell
pnpm exec vitest run --coverage

πŸ“¦ Packaging

Build the .vsix for every package that provides the script:

pnpm run package

🧩 Developing in VS Code

The .vscode/ directory contains task and debug configurations to ease local development.

Recommended workflow:

  1. Open the workspace in VS Code
  2. Run the task pnpm: watch shell, pnpm: watch powershell or pnpm: watch makefile to start the watch mode for the desired package
  3. Press F5 to launch the Extension Host and validate the extension locally

🀝 Contributing

Contributions are welcome! Start with CONTRIBUTING.md β€” it covers the repository layout, the development workflow, the commit convention, the DCO sign-off requirement, and the release process.

Quick notes:

  • Read each package's README before opening a PR
  • Follow the shared lint rules in configs/eslint.base.mjs
  • Run build and tests locally before submitting changes
  • Sign off every commit (git commit -s) β€” a CI check enforces it

By participating you agree to the Code of Conduct.


πŸ†˜ Help & Security

  • ❓ Questions, bugs, feature ideas β€” see SUPPORT.md for the right channel
  • πŸ”’ Security vulnerabilities β€” do not open a public issue; follow SECURITY.md

πŸ’– Support

If this project helps your workflow, consider supporting its development:

Every contribution helps keep the project maintained and improving. Thank you! πŸ™


πŸ“ License

This project is licensed under the MIT License.

About

Official monorepo for the Ark Format extensions for Visual Studio Code. It brings together formatters for Shell, PowerShell, and Makefile, plus an extension pack and shared libraries.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages