mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-22 21:30:51 +00:00
language/markdown: added markdown-previewer.nvim
This commit is contained in:
parent
d0f8e445ab
commit
7352558623
2 changed files with 73 additions and 1 deletions
|
@ -4,7 +4,8 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) nvim mkIf mkMerge mkBinding isList;
|
||||
inherit (lib) nvim mkIf mkMerge mkBinding isList concatMapStringsSep;
|
||||
inherit (nvim.vim) mkVimBool;
|
||||
|
||||
cfg = config.vim.languages.markdown;
|
||||
self = import ./markdown.nix {
|
||||
|
@ -49,6 +50,21 @@ in {
|
|||
'';
|
||||
})
|
||||
|
||||
(mkIf cfg.markdownPreview.enable {
|
||||
vim.startPlugins = [pkgs.vimPlugins.markdown-preview-nvim];
|
||||
|
||||
vim.configRC.markdown-preview = nvim.dag.entryAnywhere ''
|
||||
let g:mkdp_auto_start = ${mkVimBool cfg.markdownPreview.autoStart}
|
||||
let g:mkdp_auto_close = ${mkVimBool cfg.markdownPreview.autoClose}
|
||||
let g:mkdp_refresh_slow = ${mkVimBool cfg.markdownPreview.lazyRefresh}
|
||||
let g:mkdp_filetypes = [${concatMapStringsSep ", " (x: "'" + x + "'") cfg.markdownPreview.filetypes}]
|
||||
let g:mkdp_command_for_global = ${mkVimBool cfg.markdownPreview.alwaysAllowPreview}
|
||||
let g:mkdp_open_to_the_world = ${mkVimBool cfg.markdownPreview.broadcastServer}
|
||||
let g:mkdp_open_ip = '${cfg.markdownPreview.customIP}'
|
||||
let g:mkdp_port = '${cfg.markdownPreview.customPort}'
|
||||
'';
|
||||
})
|
||||
|
||||
(mkIf cfg.lsp.enable {
|
||||
vim.lsp.lspconfig.enable = true;
|
||||
|
||||
|
|
|
@ -40,6 +40,62 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
markdownPreview = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable markdown preview in neovim with markdown-preview.nvim";
|
||||
};
|
||||
|
||||
autoStart = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Automatically open the preview window after entering a Markdown buffer";
|
||||
};
|
||||
|
||||
autoClose = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Automatically close the preview window after leaving a Markdown buffer";
|
||||
};
|
||||
|
||||
lazyRefresh = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Only update preview when saving or leaving insert mode";
|
||||
};
|
||||
|
||||
filetypes = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = ["markdown"];
|
||||
description = "Allowed filetypes";
|
||||
};
|
||||
|
||||
alwaysAllowPreview = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Allow preview on all filetypes";
|
||||
};
|
||||
|
||||
broadcastServer = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Allow for outside and network wide connections";
|
||||
};
|
||||
|
||||
customIP = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "IP-address to use";
|
||||
};
|
||||
|
||||
customPort = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "Port to use";
|
||||
};
|
||||
};
|
||||
|
||||
treesitter = {
|
||||
enable = mkOption {
|
||||
description = "Enable Markdown treesitter";
|
||||
|
|
Loading…
Reference in a new issue