--- title: "SpaceVim format layer" description: "Code formatting layer for SpaceVim, includes a variety of formatters for many filetypes" --- # [Available Layers](../) >> format - [Description](#description) - [Install](#install) - [Configuration](#configuration) - [Layer options](#layer-options) - [Global options](#global-options) - [Key bindings](#key-bindings) ## Description The `format` layer provides code formatting for SpaceVim, with support for [`neoformat`](https://github.com/sbdchd/neoformat) (default) and [`codefmt`](https://github.com/google/vim-codefmt) underlying code formatting plugins. ## Install This layer is enabled by default. If you want to disable it, add the following to your configuration file: ```toml [[layers]] name = "format" enable = false ``` ## Configuration ### Layer options - **`format_method`**: The default plugin is `neoformat` but can be changed to `codefmt`: ```toml [[layers]] name = "format" format_method = "codefmt" ``` - **`format_on_save`**: This layer option is to enable/disable code formatting when save current buffer, and it is disabled by default. To enable it: ```toml [[layers]] name = "format" format_on_save = true ``` This option can be overrided by `format_on_save` in the language layer. For example, enable `format_on_save` for all filetypes except python. ```toml # enable format layer [[layers]] name = 'format' format_on_save = true # enable lang#java layer [[layers]] name = 'lang#python' format_on_save = false ``` - **`silent_format`**: Setting this to true will run the formatter silently without any messages. Default is disabled. ```toml [[layers]] name = "format" silent_format = true ``` ### Global options neoformat is a formatting framework, all of it's options can be used in bootstrap function. You can read `:help neoformat` for more info. Here is an example for add formatter for java file, and it has been included into `lang#java` layer: ```viml let g:neoformat_enabled_java = ['googlefmt'] let g:neoformat_java_googlefmt = { \ 'exe': 'java', \ 'args': ['-jar', '~/Downloads/google-java-format-1.5-all-deps.jar', '-'], \ 'stdin': 1, \ } ``` ## Key bindings | Key binding | Description | | ----------- | ------------------------------------- | | `SPC b f` | format whole buffer or selected lines |