2023-01-03 11:08:58 -07:00
|
|
|
*editorconfig.txt* Nvim
|
|
|
|
|
|
|
|
|
|
|
|
NVIM REFERENCE MANUAL
|
|
|
|
|
|
|
|
|
|
|
|
EditorConfig integration *editorconfig*
|
|
|
|
|
2022-12-14 11:58:18 -07:00
|
|
|
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/.
|
2023-01-03 11:08:58 -07:00
|
|
|
|
2023-01-04 15:10:19 -07:00
|
|
|
*g:editorconfig* *b:editorconfig*
|
2022-12-14 11:58:18 -07:00
|
|
|
EditorConfig is enabled by default. To disable it, add to your config: >lua
|
2023-01-03 11:08:58 -07:00
|
|
|
|
2023-01-04 15:10:19 -07:00
|
|
|
vim.g.editorconfig = false
|
2023-01-03 11:08:58 -07:00
|
|
|
<
|
2022-12-14 11:58:18 -07:00
|
|
|
(Vimscript: `let g:editorconfig = v:false`). It can also be disabled
|
|
|
|
per-buffer by setting the |b:editorconfig| buffer-local variable to `false`.
|
2023-01-03 11:08:58 -07:00
|
|
|
|
2022-12-14 11:58:18 -07:00
|
|
|
Nvim stores the applied properties in |b:editorconfig| if it is not `false`.
|
2023-01-03 11:08:58 -07:00
|
|
|
|
|
|
|
*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
|
2023-04-04 10:07:33 -07:00
|
|
|
'softtabstop' options.
|
2023-01-03 11:08:58 -07:00
|
|
|
|
|
|
|
*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
|
|
|
|
<
|
2022-12-14 11:58:18 -07:00
|
|
|
vim:tw=78:ts=8:et:sw=4:ft=help:norl:
|