import { type Bufname } from "https://deno.land/x/denops_std@v6.5.1/bufname/bufname.ts";
Represent Vim's buffer name
The format of the buffer name assumed is like
{scheme}://{expr}[;{params}][#{fragment}]
Where
{scheme}
is used to distinguish a buffer kind. It contains only alphabet characters.{expr}
is used to identify a buffer itself. Unusable characters, semicolons (;), and sharps (#) are replaced with percent-encoded characters.{params}
(Optional) is used to add meta information to the buffer name like query parameters of URL. Unusable characters and sharps (#) are replaced with percent-encoded characters.{fragment}
(Optional) is used to add a suffix to the buffer name for file type detection or so on. Unusable characters are replaced with percent-encoded characters.
For example,
denops:///Users/John Titor/test.git
βββ¬βββ βββββββββββββ¬βββββββββββββ
scheme expr
denops:///Users/John Titor/test.git;foo=foo&bar=bar1&bar=bar2
βββ¬βββ βββββββββββββ¬βββββββββββββ βββββββββββββ¬ββββββββββββ
scheme expr params
denops:///Users/John Titor/test.git#README.md
βββ¬βββ βββββββββββββ¬βββββββββββββ βββββ¬ββββ
scheme expr fragment
denops:///Users/John Titor/test.git;foo=foo&bar=bar1&bar=bar2#README.md
βββ¬βββ βββββββββββββ¬βββββββββββββ βββββββββββββ¬ββββββββββββ βββββ¬ββββ
scheme expr params fragment
Properties
Expression part of a buffer name. Note that '<>|?*' are not supported in Vim on Windows.
optional
params: BufnameParamsParams part of a buffer name. While '?' is not supported, the params part are splitted by ';' instead.