add more options
This commit is contained in:
parent
3d64ef464a
commit
90341cf26d
|
@ -1,8 +1,7 @@
|
|||
{ lib }:
|
||||
|
||||
let
|
||||
shared = with lib; with types; {
|
||||
# global or window
|
||||
sharedGlobalOrWindow = with lib; with types; {
|
||||
fillchars = mkOption {
|
||||
type = nullOr (listOf (enum [
|
||||
"stl"
|
||||
|
@ -32,8 +31,34 @@ let
|
|||
`:help fillchars`
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
sharedGlobalOrBuffer = with lib; with types; {
|
||||
autoread = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = ''
|
||||
When a file has been detected to have been changed outside of Vim and
|
||||
it has not been changed inside of Vim, automatically read it again.
|
||||
When the file has been deleted this is not done, so you have the text
|
||||
from before it was deleted. When it appears again then it is read.
|
||||
|timestamp|
|
||||
|
||||
`:help autoread`
|
||||
'';
|
||||
};
|
||||
|
||||
backupcopy = mkOption {
|
||||
type = nullOr (listOf (enum [ "yes" "no" "auto" "breaksymlink" "breakhardlink" ]));
|
||||
default = null;
|
||||
description = ''
|
||||
When writing a file and a backup is made, this option tells how it's
|
||||
done. This is a comma-separated list of words.
|
||||
|
||||
`:help backupcopy`
|
||||
'';
|
||||
};
|
||||
|
||||
# global or buffer
|
||||
formatprg = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
|
@ -47,7 +72,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# global or buffer
|
||||
grepprg = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
|
@ -59,7 +83,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# global or buffer
|
||||
include = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
|
@ -71,7 +94,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# global or buffer
|
||||
keywordprg = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
|
@ -86,7 +108,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# global or buffer
|
||||
lispwords = mkOption {
|
||||
type = nullOr (listOf string);
|
||||
default = null;
|
||||
|
@ -98,11 +119,24 @@ let
|
|||
`:help lispwords`
|
||||
'';
|
||||
};
|
||||
|
||||
makeencoding = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
defaultText = "";
|
||||
description = ''
|
||||
Encoding used for reading the output of external commands. When empty,
|
||||
encoding is not converted.
|
||||
This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
|
||||
`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,
|
||||
and `:laddfile`.
|
||||
|
||||
`:help makeencoding`
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
global = with lib; with types; {
|
||||
inherit (shared) fillchars formatprg grepprg include keywordprg lispwords;
|
||||
|
||||
global = with lib; with types; sharedGlobalOrWindow // sharedGlobalOrBuffer // {
|
||||
allowrevins = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
|
@ -114,6 +148,7 @@ let
|
|||
`:help allowrevins`
|
||||
'';
|
||||
};
|
||||
|
||||
ambiwidth = mkOption {
|
||||
type = nullOr (enum [ "single" "double" ]);
|
||||
default = null;
|
||||
|
@ -125,6 +160,7 @@ let
|
|||
`:help ambiwidth`
|
||||
'';
|
||||
};
|
||||
|
||||
autochdir = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
|
@ -139,19 +175,17 @@ let
|
|||
`:help autochdir`
|
||||
'';
|
||||
};
|
||||
# TODO: arabic, arabicshape
|
||||
# TODO: autoindent
|
||||
autoread = mkOption {
|
||||
|
||||
arabicshape = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
When a file has been detected to have been changed outside of Vim and
|
||||
it has not been changed inside of Vim, automatically read it again.
|
||||
When the file has been deleted this is not done, so you have the text
|
||||
from before it was deleted. When it appears again then it is read.
|
||||
|timestamp|
|
||||
When on and 'termbidi' is off, the required visual character
|
||||
corrections that need to take place for displaying the Arabic language
|
||||
take effect.
|
||||
|
||||
`:help autoread`
|
||||
`:help arabicshape`
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -233,17 +267,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
backupcopy = mkOption {
|
||||
type = nullOr (listOf (enum [ "yes" "no" "auto" "breaksymlink" "breakhardlink" ]));
|
||||
default = null;
|
||||
description = ''
|
||||
When writing a file and a backup is made, this option tells how it's
|
||||
done. This is a comma-separated list of words.
|
||||
|
||||
`:help backupcopy`
|
||||
'';
|
||||
};
|
||||
|
||||
backupdir = mkOption {
|
||||
type = nullOr (listOf (either string path));
|
||||
default = null;
|
||||
|
@ -341,9 +364,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# TODO: binary
|
||||
# TODO: bomb
|
||||
|
||||
breakat = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
|
@ -354,7 +374,6 @@ let
|
|||
`:help breakat`
|
||||
'';
|
||||
};
|
||||
# TODO: breakindent, breakindentopt
|
||||
|
||||
browsedir = mkOption {
|
||||
type = nullOr (either path (enum [ "last" "buffer" "current" ]));
|
||||
|
@ -370,8 +389,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
# TODO: bufhidden, buflisted, buftype
|
||||
|
||||
casemap = mkOption {
|
||||
type = nullOr (listOf (enum [ "internal" "keepascii" ]));
|
||||
default = null;
|
||||
|
@ -399,6 +416,19 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
charconvert = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
defaultText = "";
|
||||
description = ''
|
||||
An expression that is used for character encoding conversion. It is
|
||||
evaluated when a file that is to be read or has been written has a
|
||||
different encoding from what is desired.
|
||||
|
||||
`:help charconvert`
|
||||
'';
|
||||
};
|
||||
|
||||
clipboard = mkOption {
|
||||
type = nullOr (listOf (enum [ "unnamed" "unnamedplus" ]));
|
||||
default = null;
|
||||
|
@ -1289,8 +1319,54 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
window = with lib; with types; {
|
||||
inherit (shared) fillchars;
|
||||
window = with lib; with types; sharedGlobalOrWindow // {
|
||||
arabic = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
This option can be set to start editing Arabic text.
|
||||
|
||||
`:help arabic`
|
||||
'';
|
||||
};
|
||||
|
||||
breakindent = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
Every wrapped line will continue visually indented (same amount of
|
||||
space as the beginning of that line), thus preserving horizontal blocks
|
||||
of text.
|
||||
|
||||
`:help breakindent`
|
||||
'';
|
||||
};
|
||||
|
||||
breakindentopt = mkOption {
|
||||
type = nullOr commas;
|
||||
default = null;
|
||||
defaultText = literalExpression "[]";
|
||||
description = ''
|
||||
Settings for 'breakindent
|
||||
|
||||
`:help breakindentopt`
|
||||
'';
|
||||
};
|
||||
|
||||
colorcolumn = mkOption {
|
||||
type = nullOr commas;
|
||||
default = null;
|
||||
defaultText = literalExpression "[]";
|
||||
description = ''
|
||||
'colorcolumn' is a comma-separated list of screen columns that are
|
||||
highlighted with ColorColumn |hl-ColorColumn|. Useful to align
|
||||
text. Will make screen redrawing slower.
|
||||
|
||||
`:help colorcolumn`
|
||||
'';
|
||||
};
|
||||
|
||||
foldcolumn = mkOption {
|
||||
type = nullOr string;
|
||||
|
@ -1472,7 +1548,7 @@ let
|
|||
apply = x:
|
||||
assert (
|
||||
(stringLength x >= min && stringLength x <= max)
|
||||
|| abort ''
|
||||
|| abort ''
|
||||
The number of characters ${x} does not correspond to the boundaries
|
||||
(min: ${toString min}; max: ${toString max})
|
||||
''
|
||||
|
@ -1594,8 +1670,170 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
buffer = with lib; with types; {
|
||||
inherit (shared) formatprg grepprg include keywordprg lispwords;
|
||||
buffer = with lib; with types; sharedGlobalOrBuffer // {
|
||||
autoindent = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "true";
|
||||
description = ''
|
||||
Copy indent from current line when starting a new line (typing <CR>
|
||||
in Insert mode or when using the "o" or "O" command). If you do not
|
||||
type anything on the new line except <BS> or CTRL-D and then type
|
||||
<Esc>, CTRL-O or <CR>, the indent is deleted again.
|
||||
|
||||
`:help autoindent`
|
||||
'';
|
||||
};
|
||||
|
||||
binary = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
This option should be set before editing a binary file. You can also
|
||||
use the |-b| Vim argument.
|
||||
|
||||
`:help binary`
|
||||
'';
|
||||
};
|
||||
|
||||
bomb = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
When writing a file and the following conditions are met, a BOM (Byte
|
||||
Order Mark) is prepended to the file:
|
||||
- this option is on
|
||||
- the 'binary' option is off
|
||||
- 'fileencoding' is "utf-8", "ucs-2", "ucs-4" or one of the little/big
|
||||
endian variants.
|
||||
|
||||
`:help bomb`
|
||||
'';
|
||||
};
|
||||
|
||||
bufhidden = mkOption {
|
||||
type = nullOr (enum [ "" "hide" "unload" "delete" "wipe" ]);
|
||||
default = null;
|
||||
defaultText = "";
|
||||
description = ''
|
||||
This option specifies what happens when a buffer is no longer
|
||||
displayed in a window
|
||||
|
||||
`:help bufhidden`
|
||||
'';
|
||||
};
|
||||
|
||||
buflisted = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "true";
|
||||
description = ''
|
||||
When this option is set, the buffer shows up in the buffer list.
|
||||
|
||||
`:help buflisted`
|
||||
'';
|
||||
};
|
||||
|
||||
buftype = mkOption {
|
||||
type = nullOr (enum [ "" "acwrite" "help" "nofile" "nowrite" "quickfix" "terminal" "prompt" ]);
|
||||
default = null;
|
||||
defaultText = "";
|
||||
description = ''
|
||||
This option is used together with 'bufhidden' and 'swapfile' to
|
||||
specify special kinds of buffers.
|
||||
|
||||
`:help buftype`
|
||||
`:help special-buffers`
|
||||
'';
|
||||
};
|
||||
|
||||
cindent = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
defaultText = literalExpression "false";
|
||||
description = ''
|
||||
Enables automatic C program indenting.
|
||||
|
||||
`:help cindent`
|
||||
'';
|
||||
};
|
||||
|
||||
cinkeys = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
defaultText = "0{,0},0),0],:,0#,!^F,o,O,e";
|
||||
description = ''
|
||||
A list of keys that, when typed in Insert mode, cause reindenting of
|
||||
the current line.
|
||||
|
||||
`:help cinkeys`
|
||||
'';
|
||||
};
|
||||
|
||||
cinoptions = mkOption {
|
||||
type = nullOr string;
|
||||
default = null;
|
||||
defaultText = "";
|
||||
description = ''
|
||||
The 'cinoptions' affect the way 'cindent' reindents lines in a C
|
||||
program.
|
||||
|
||||
`:help cinoptions`
|
||||
`:help cinoptions-values`
|
||||
'';
|
||||
};
|
||||
|
||||
cinwords = mkOption {
|
||||
type = nullOr commas;
|
||||
default = null;
|
||||
defaultText = literalExpression ''["if" "else" "while" "do" "for" "switch"]'';
|
||||
descrpition = ''
|
||||
These keywords start an extra indent in the next line when
|
||||
'smartindent' or 'cindent' is set. For 'cindent' this is only done at
|
||||
an appropriate place (inside {}).
|
||||
|
||||
`:help cinwords`
|
||||
'';
|
||||
};
|
||||
|
||||
cinscopedecls = mkOption {
|
||||
type = nullOr commas;
|
||||
default = null;
|
||||
defaultText = literalExpression ''["public" "protected" "private"]'';
|
||||
descrpition = ''
|
||||
Keywords that are interpreted as a C++ scope declaration by |cino-g|.
|
||||
Useful e.g. for working with the Qt framework that defines additional
|
||||
scope declarations "signals", "public slots" and "private slots"
|
||||
|
||||
`:help cinscopedecls`
|
||||
'';
|
||||
};
|
||||
|
||||
comments = mkOption {
|
||||
type = nullOr commas;
|
||||
default = null;
|
||||
defaultText = literalExpression ''
|
||||
[
|
||||
"s1/*"
|
||||
"mb:8"
|
||||
"ex:*/"
|
||||
"://"
|
||||
"b:#"
|
||||
":%"
|
||||
":XCOMM"
|
||||
"n:>"
|
||||
"fb:-"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
list of strings that can start a comment line.
|
||||
|
||||
`:help comments`
|
||||
`:help format-comments`
|
||||
'';
|
||||
};
|
||||
|
||||
expandtab = mkOption {
|
||||
type = nullOr bool;
|
||||
|
|
Loading…
Reference in New Issue
Block a user