mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins/csvview: init
This commit is contained in:
parent
6c93c52dc1
commit
4f4917be69
2 changed files with 160 additions and 0 deletions
112
plugins/by-name/csvview/default.nix
Normal file
112
plugins/by-name/csvview/default.nix
Normal file
|
@ -0,0 +1,112 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib) types;
|
||||
inherit (lib.nixvim) defaultNullOpts;
|
||||
in
|
||||
lib.nixvim.plugins.mkNeovimPlugin {
|
||||
name = "csvview";
|
||||
packPathName = "csvview.nvim";
|
||||
package = "csvview-nvim";
|
||||
|
||||
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||
|
||||
settingsOptions = {
|
||||
parser = {
|
||||
async_chunksize = defaultNullOpts.mkUnsignedInt 50 ''
|
||||
The number of lines that the asynchronous parser processes per cycle.
|
||||
|
||||
This setting is used to prevent monopolization of the main thread when displaying large
|
||||
files.
|
||||
|
||||
If the UI freezes, try reducing this value.
|
||||
'';
|
||||
|
||||
delimiter = defaultNullOpts.mkNullable' {
|
||||
type =
|
||||
with types;
|
||||
either str (submodule {
|
||||
freeformType = attrsOf anything;
|
||||
options = {
|
||||
default = defaultNullOpts.mkStr "," ''
|
||||
Default delimiter character.
|
||||
'';
|
||||
|
||||
ft = defaultNullOpts.mkAttrsOf str { tsv = "\t"; } ''
|
||||
Filetype to delimiter character mapping.
|
||||
'';
|
||||
};
|
||||
});
|
||||
pluginDefault = {
|
||||
default = ",";
|
||||
ft = {
|
||||
tsv = "\t";
|
||||
};
|
||||
};
|
||||
example.__raw = "function(bufnr) return ',' end";
|
||||
description = ''
|
||||
The delimiter character.
|
||||
|
||||
You can specify a string, an attrs of delimiter characters for each file type, or a
|
||||
function that returns a delimiter character.
|
||||
'';
|
||||
};
|
||||
|
||||
quote_char = defaultNullOpts.mkStr' {
|
||||
pluginDefault = ''"'';
|
||||
example = "'";
|
||||
description = ''
|
||||
The quote character.
|
||||
|
||||
If a field is enclosed in this character, it is treated as a single field and the delimiter
|
||||
in it will be ignored.
|
||||
|
||||
You can also specify it on the command line.
|
||||
e.g:
|
||||
```
|
||||
:CsvViewEnable quote_char='
|
||||
```
|
||||
'';
|
||||
};
|
||||
|
||||
comments = defaultNullOpts.mkListOf types.str [ "#" "--" "//" ] ''
|
||||
The comment prefix characters.
|
||||
|
||||
If the line starts with one of these characters, it is treated as a comment.
|
||||
Comment lines are not displayed in tabular format.
|
||||
|
||||
You can also specify it on the command line.
|
||||
e.g:
|
||||
```
|
||||
:CsvViewEnable comment=#
|
||||
```
|
||||
'';
|
||||
};
|
||||
|
||||
view = {
|
||||
min_column_width = defaultNullOpts.mkUnsignedInt 5 ''
|
||||
Minimum width of a column.
|
||||
'';
|
||||
|
||||
spacing = defaultNullOpts.mkUnsignedInt 2 ''
|
||||
Spacing between columns.
|
||||
'';
|
||||
|
||||
display_mode = defaultNullOpts.mkEnumFirstDefault [ "highlight" "border" ] ''
|
||||
The display method of the delimiter.
|
||||
|
||||
- `"highlight"` highlights the delimiter
|
||||
- `"border"` displays the delimiter with `│`
|
||||
|
||||
see `Features` section of the README.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
parser.async_chunksize = 30;
|
||||
view = {
|
||||
spacing = 4;
|
||||
display_mode = "border";
|
||||
};
|
||||
};
|
||||
}
|
48
tests/test-sources/plugins/by-name/csvview/default.nix
Normal file
48
tests/test-sources/plugins/by-name/csvview/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
empty = {
|
||||
plugins.csvview.enable = true;
|
||||
};
|
||||
|
||||
defaults = {
|
||||
plugins.csvview = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
parser = {
|
||||
async_chunksize = 50;
|
||||
delimiter = {
|
||||
default = ",";
|
||||
ft = {
|
||||
tsv = "\t";
|
||||
};
|
||||
};
|
||||
quote_char = ''"'';
|
||||
comments = [
|
||||
"#"
|
||||
"--"
|
||||
"//"
|
||||
];
|
||||
};
|
||||
view = {
|
||||
min_column_width = 5;
|
||||
spacing = 2;
|
||||
display_mode = "highlight";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
example = {
|
||||
plugins.csvview = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
parser.async_chunksize = 30;
|
||||
view = {
|
||||
spacing = 4;
|
||||
display_mode = "border";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue