Home Explore Blog CI



neovim

2nd chunk of `runtime/doc/editorconfig.txt`
9d40f28d8c6902b472bfecf690bdcce436a3022f339170530000000100000c35
                    *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: >lua

    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
<

                                                     *editorconfig-properties*

The following properties are supported by default:


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

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

indent_size                                         *editorconfig.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. If this value is not "tab" and the
    tab_width property is not set, 'tabstop' is also set to this value.

indent_style                                       *editorconfig.indent_style*
    One of `"tab"` or `"space"`. Sets the 'expandtab' option.

insert_final_newline                       *editorconfig.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.

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

root                                                       *editorconfig.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).

spelling_language                             *editorconfig.spelling_language*
    A code of the format ss or ss-TT, where ss is an ISO 639 language code and
    TT is an ISO 3166 territory identifier. Sets the 'spelllang' option.

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

trim_trailing_whitespace               *editorconfig.trim_trailing_whitespace*
    When `"true"`, trailing whitespace is automatically removed when the
    buffer is written.


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

Title: Custom EditorConfig Properties and Default Supported Properties
Summary
Nvim allows adding custom EditorConfig properties via the 'properties' table, using callback functions to handle property values. The following properties are supported by default: `charset`, `end_of_line`, `indent_size`, `indent_style`, `insert_final_newline`, `max_line_length`, `root`, `spelling_language`, `tab_width`, and `trim_trailing_whitespace`. Each property maps to specific Nvim options.