Home Explore Blog CI



neovim

21th chunk of `runtime/doc/starting.txt`
0aafd4ca9b2605408f17eba08cb593a4b062dc6b0600536e0000000100000f63
     none  Other keys are allowed
                                                   for compatibility reasons,
                                                   see |shada-compatibility|.
   6 (Variable)        Array containing two items: variable name (binary) and
                       variable value (any object).  Values are converted
                       using the same code |msgpackparse()| uses when reading,
                       |msgpackdump()| when writing, so there may appear
                       |msgpack-special-dict|s.  If there are more then two
                       entries then the rest are ignored
                       (|shada-compatibility|).
   7 (GlobalMark)
   8 (Jump)
   10 (LocalMark)
   11 (Change)         Map containing some position description:
                       Entry      Position ~
                       GlobalMark Global mark position. |'A|
                       LocalMark  Local mark position. |'a|
                       Jump       One position from the |jumplist|.
                       Change     One position from the |changelist|.

                       Data contained in the map:
                       Key  Type      Default  Description ~
                       l    UInteger  1        Position line number.  Must be
                                               greater then zero.
                       c    UInteger  0        Position column number.
                       n    UInteger  34 ('"') Mark name.  Only valid for
                                               GlobalMark and LocalMark
                                               entries.
                       f    Binary    N/A      File name.  Required.
                       `*`    any       none     Other keys are allowed for
                                               compatibility reasons, see
                                               |shada-compatibility|.
   9 (BufferList)      Array containing maps.  Each map in the array
                       represents one buffer.  Possible keys:
                       Key  Type      Default  Description ~
                       l    UInteger  1        Position line number.  Must be
                                               greater then zero.
                       c    UInteger  0        Position column number.
                       f    Binary    N/A      File name.  Required.
                       `*`    any       none     Other keys are allowed for
                                               compatibility reasons, see
                                               |shada-compatibility|.
   `*` (Unknown)         Any other entry type is allowed for compatibility
                       reasons, see |shada-compatibility|.

								*E575* *E576*
Errors in ShaDa file may have two types:
1. E575 for “logical” errors.
2. E576 for “critical” errors.
When writing, critical errors trigger behaviour described in
|shada-error-handling|.
When reading, critical errors cause the rest of the file to be skipped.
Critical errors include:
					    *shada-critical-contents-errors*
- Any of first three MessagePack objects being not an unsigned integer.
- Third object requesting amount of bytes greater then bytes left in the ShaDa
  file.
- Entry with zero type.  I.e. first object being equal to zero.
- MessagePack parser failing to parse the entry data.
- MessagePack parser consuming less or requesting greater bytes then described
  in the third object for parsing fourth object.  I.e. when fourth object
  either contains more then one MessagePack object or it does not contain
  complete MessagePack object.

==============================================================================
Standard Paths					*standard-path*

Nvim stores configuration, data, and logs in standard locations. Plugins are
strongly encouraged to follow this pattern also. Use |stdpath()| to get the
paths.

						*base-directories* *xdg*

Title: ShaDa File Format: Position, BufferList, Errors, and Standard Paths
Summary
This section describes the structure of position entries like GlobalMark, LocalMark, Jump and Change, and the data they hold, including line number, column number, mark name, and file name. It also details the format of BufferList entries, which are arrays of maps representing buffers, and defines possible keys. Furthermore, it outlines potential errors in the ShaDa file and introduces the concept of standard paths for storing configuration, data, and logs, encouraging plugins to adhere to this pattern.