Quick links: help overview · quick reference · user manual toc · reference manual toc
Go to keyword (shortcut: k)
Site search (shortcut: s)
editorconfig.txt  Nvim


                            NVIM REFERENCE MANUAL


EditorConfig integration                                        editorconfig

Nvim supports EditorConfig. When a file is opened, Nvim searches all parent
directories of that file for ".editorconfig" files, parses them, and applies
any properties that match the opened file. Think of it like 'modeline' for an
entire (recursive) directory. For more information see
https://editorconfig.org/.

                                               g:editorconfig b:editorconfig
EditorConfig is enabled by default. To disable it, add to your config: 

    vim.g.editorconfig = false

(Vimscript: `let g:editorconfig = v:false`). It can also be disabled
per-buffer by setting the b:editorconfig buffer-local variable to false.

Nvim stores the applied properties in b:editorconfig if it is not false.

                                                     editorconfig-properties
The following properties are supported by default:

                                                           editorconfig_root
root                    If "true", then stop searching for .editorconfig files
                        in parent directories. This property must be at the
                        top-level of the .editorconfig file (i.e. it must not
                        be within a glob section).

                                                        editorconfig_charset
charset                 One of "utf-8", "utf-8-bom", "latin1", "utf-16be", or
                        "utf-16le". Sets the 'fileencoding' and 'bomb'
                        options.

                                                    editorconfig_end_of_line
end_of_line             One of "lf", "crlf", or "cr". These correspond to
                        setting 'fileformat' to "unix", "dos", or "mac",
                        respectively.

                                                   editorconfig_indent_style
indent_style            One of "tab" or "space". Sets the 'expandtab' option.

                                                    editorconfig_indent_size
indent_size             A number indicating the size of a single indent.
                        Alternatively, use the value "tab" to use the value of
                        the tab_width property. Sets the 'shiftwidth' and
                        'softtabstop' options.

                                           editorconfig_insert_final_newline
insert_final_newline    "true" or "false" to ensure the file always has a
                        trailing newline as its last byte. Sets the
                        'fixendofline' and 'endofline' options.

                                                editorconfig_max_line_length
max_line_length         A number indicating the maximum length of a single
                        line. Sets the 'textwidth' option.

                                                      editorconfig_tab_width
tab_width               The display size of a single tab character. Sets the
                        'tabstop' option.

                                       editorconfig_trim_trailing_whitespace
trim_trailing_whitespace
                        When "true", trailing whitespace is automatically
                        removed when the buffer is written.

                                              editorconfig-custom-properties
New properties can be added by adding a new entry to the "properties" table.
The table key is a property name and the value is a callback function which
accepts the number of the buffer to be modified, the value of the property
in the .editorconfig file, and (optionally) a table containing all of the
other properties and their values (useful for properties which depend on other
properties). The value is always a string and must be coerced if necessary.
Example: 

    require('editorconfig').properties.foo = function(bufnr, val, opts)
      if opts.charset and opts.charset ~= "utf-8" then
        error("foo can only be set when charset is utf-8", 0)
      end
      vim.b[bufnr].foo = val
    end

 vim:tw=78:ts=8:et:sw=4:ft=help:norl:


Quick links: help overview · quick reference · user manual toc · reference manual toc