neovim/runtime/doc/editorconfig.txt
dundargoc cc38086039
docs: small fixes (#26243)
Co-authored-by: umlx5h <umlx5h21@protonmail.com>
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: Evan Farrar <evan@evanfarrar.com>
2023-12-06 08:04:21 +08:00

90 lines
4.2 KiB
Plaintext

*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: >lua
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.
If this value is not "tab" and the tab_width property
is not set, 'tabstop' is also set to this value.
*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: >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
<
vim:tw=78:ts=8:et:sw=4:ft=help:norl: