/format-files

VS Code extension to format all files in workspace

Primary LanguageTypeScript

Format Files

Format Files is a VS Code extension that formats all files in the current workspace, selected folder or glob.

VS Code Marketplace Downloads VS Code Marketplace Installs

Get Format Files on the Visual Studio Code Marketplace

Note: Due to the limitations in VSCode API, this opens each file, runs formatting command, saves the file (other save actions are started as well, to support features such as tslint.autoFixOnSave on typescript files), then closes it. The time to complete depends on the number of files and how large the files are.

Usage

  • Open command pallette (Ctrl+Shift+P) & enter "Start Format Files: Workspace"
    • Uses default exclude options
    • Keybindable to 'formatFiles.start.workspaces' command
  • Open command pallette (Ctrl+Shift+P) & enter "Start Format Files: From Glob"
    • Prompts for a user defined glob pattern
    • Prompts to use default exclude options or none
    • Keybindable to 'formatFiles.start.fromGlob' command
  • Right click a folder and select "Start Format Files: This Folder"
    • Uses default exclude options

This extension will prompt the user to confirm to start formatting. Check Format Files in the Output pane for the list of files that will be formatted. A progress bar will appear on bottom right to indicate the progress of the formatting.

Options

These settings are specific to VS Code and need to be set in the VS Code settings file. See the documentation for how to do that.

  • formatFiles.excludedFolders: [ default: [ "node_modules", ".vscode", ".git", "dist", ".chrome"] ] list of folder names to exclude, relative to the workspace root
  • formatFiles.extensionsToInclude: [ default: '*' ] comma delimited list of extensions to include, i.e. "ts,js,cp,cs", if this is not specified all extensions are included
  • formatFiles.excludePattern: [ default: unset] GlobPattern of paths to exclude.
  • formatFiles.inheritWorkspaceExcludedFiles: [ default: true ] Specifies that workspace globs specified in files.exclude that are true will be included in exclude glob
  • formatFiles.runOrganizeImports: [ default: true ] Additionally organize all imports when formatting files (Uses the built-in 'Organize Imports' command, which is supported by some languages)
  • formatFiles.useGitIgnore: [ default: true ] If the workspace folder is a git repository, skips files that git ignores

Requirements

Each extension needs a formatter installed for it to work, or else the VS Code formatter will display an error that it does not have a formatter for the given extension.

Some recommended formatters:

Known Issues

  • If your code actions on save are not run on some of your files, it may be due to VS Code's editor.codeActionsOnSaveTimeout setting. If a file is large or the save code action should take longer than that configured setting, the action will be aborted. This does not affect formatters, only code actions on save. The default value is 750ms, adjust it to your liking.

Contributing/Enhancement requests

Please open an issue if you would like to contribute or request an enhancement.