Skip to content

Tooark/vscode-ark-format

Repository files navigation

Ark Format

License: MIT

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 Description
packages/shell Formatting extension for Shell (.sh, .bash, .zsh, .ksh, .tcsh, .azcli, .bats)
packages/powershell Formatting extension for PowerShell (.ps1, .psm1, .psd1)
packages/makefile Formatting extension for Makefile (Makefile, GNUmakefile, *.mk)
packages/pack Extension Pack that installs Shell + PowerShell together
packages/shared 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 or pnpm: watch powershell
  3. Press F5 to launch the Extension Host and validate the extension locally

🤝 Contributing

  • 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

💖 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

License

Stars

2 stars

Watchers

0 watching

Forks

Contributors