*plugins.txt*  Nvim


                            NVIM REFERENCE MANUAL

                                       Type |gO| to see the table of contents.

==============================================================================
Plugins and modules included with Nvim                               *plugins*

Nvim includes various Lua and Vim plugins or modules which may provide
commands (such as :TOhtml) or modules that you can optionally require() or
:packadd. The Lua ones are not part of the |lua-stdlib|, that is, they are not
available from the global `vim` module namespace. Some of the plugins are
loaded by default while others are not loaded until requested by |:packadd|.

==============================================================================
Standard plugins ~
						*standard-plugin-list*
Help-link		Loaded	Short description ~
|difftool|		No	Compares two directories or files side-by-side
|editorconfig|		Yes	Detect and interpret editorconfig
|ft-shada|		Yes	Allows editing binary |shada| files
|man.lua|		Yes	View manpages in Nvim
|matchit|		Yes	Extended |%| matching
|matchparen|		Yes	Highlight matching pairs
|netrw|			Yes	Reading and writing files over a network
|package-cfilter|	No	Filtering quickfix/location list
|package-justify|	No	Justify text
|package-nohlsearch|	No	Automatically run :nohlsearch
|package-termdebug|	No	Debug inside Nvim with gdb
|pi_gzip.txt|		Yes	Reading and writing compressed files
|pi_msgpack.txt|	No	msgpack utilities
|pi_paren.txt|		Yes	Highlight matching parens
|pi_spec.txt|		Yes	Filetype plugin to work with rpm spec files
|pi_swapmouse|		No	Swap meaning of left and right mouse buttons
|pi_tar.txt|		Yes	Tar file explorer
|pi_tutor.txt|		Yes	Interactive tutorial
|pi_zip.txt|		Yes	Zip archive explorer
|spellfile.vim|		Yes	Install spellfile if missing
|tohtml|		Yes	Convert buffer to html, syntax included
|undotree|		No	Interactive textual undotree

==============================================================================
Builtin plugin: difftool                                            *difftool*


:DiffTool {left} {right}                                           *:DiffTool*
Compares two directories or files side-by-side.
Supports directory diffing, rename detection, and highlights changes
in quickfix list.

The plugin is not loaded by default; use `:packadd nvim.difftool` before
invoking `:DiffTool`.

Example `git difftool -d` integration using `DiffTool` command: >ini
    [difftool "nvim_difftool"]
      cmd = nvim -c \"packadd nvim.difftool\" -c \"DiffTool $LOCAL $REMOTE\"
    [diff]
      tool = nvim_difftool
<


open({left}, {right}, {opt})                                 *difftool.open()*
    Diff two files or directories

    Parameters: ~
      • {left}   (`string`)
      • {right}  (`string`)
      • {opt}    (`table?`)
                 • {rename.detect} (`boolean`, default: `false`) Whether to
                   detect renames
                 • {rename.similarity} (`number`, default: `0.5`) Minimum
                   similarity for rename detection (0 to 1)
                 • {rename.chunk_size} (`number`, default: `4096`) Maximum
                   chunk size to read from files for similarity calculation
                 • {method} (`'auto'|'builtin'|'diffr'`, default: `auto`) Diff
                   method to use
                 • {ignore} (`string[]`, default: `{}`) List of file patterns
                   to ignore (for example: `'.git', '*.log'`)
                 • {rename} (`table`) Controls rename detection


==============================================================================
Builtin plugin: editorconfig                                    *editorconfig*

Nvim supports EditorConfig. When a file is opened, after running |ftplugin|s
and |FileType| autocommands, 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-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.


==============================================================================
Builtin plugin: tohtml                                                *tohtml*


:[range]TOhtml {file}                                                *:TOhtml*
Converts the buffer shown in the current window to HTML, opens the generated
HTML in a new split window, and saves its contents to {file}. If {file} is not
given, a temporary file (created by |tempname()|) is used.


tohtml({winid}, {opt})                                       *tohtml.tohtml()*
    Converts the buffer shown in the window {winid} to HTML and returns the
    output as a list of string.

    Parameters: ~
      • {winid}  (`integer?`) Window to convert (defaults to current window)
      • {opt}    (`table?`) Optional parameters.
                 • {title}? (`string|false`, default: buffer name) Title tag
                   to set in the generated HTML code.
                 • {number_lines}? (`boolean`, default: `false`) Show line
                   numbers.
                 • {font}? (`string[]|string`, default: `guifont`) Fonts to
                   use.
                 • {width}? (`integer`, default: 'textwidth' if non-zero or
                   window width otherwise) Width used for items which are
                   either right aligned or repeat a character infinitely.
                 • {range}? (`integer[]`, default: entire buffer) Range of
                   rows to use.

    Return: ~
        (`string[]`)


==============================================================================
Builtin plugin: undotree                                            *undotree*

open({opts})                                                 *undotree.open()*
    Open a window that displays a textual representation of the undotree.

    While in the window, moving the cursor changes the undo.

    Load the plugin with this command: >
                packadd nvim.undotree
<

    Can also be shown with `:Undotree`.                            *:Undotree*

    Parameters: ~
      • {opts}  (`table?`) A table with the following fields:
                • {bufnr} (`integer?`) Buffer to draw the tree into. If
                  omitted, a new buffer is created.
                • {winid} (`integer?`) Window id to display the tree buffer
                  in. If omitted, a new window is created with {command}.
                • {command} (`string?`) Vimscript command to create the
                  window. Default value is "30vnew". Only used when {winid} is
                  nil.
                • {title} (`(string|fun(bufnr:integer):string?)?`) Title of
                  the window. If a function, it accepts the buffer number of
                  the source buffer as its only argument and should return a
                  string.


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