mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-12-20 02:41:17 +00:00
treewide: make the entire generated config lua based
This commit is contained in:
parent
b42a98696c
commit
eba3fa831e
17 changed files with 168 additions and 288 deletions
|
|
@ -5,7 +5,6 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.vim) mkVimBool;
|
||||
|
||||
cfg = config.vim.dashboard.startify;
|
||||
in {
|
||||
|
|
@ -23,28 +22,28 @@ in {
|
|||
else cfg.customFooter;
|
||||
"startify_bookmarks" = cfg.bookmarks;
|
||||
"startify_lists" = cfg.lists;
|
||||
"startify_change_to_dir" = mkVimBool cfg.changeToDir;
|
||||
"startify_change_to_vcs_root" = mkVimBool cfg.changeToVCRoot;
|
||||
"startify_change_to_dir" = cfg.changeToDir;
|
||||
"startify_change_to_vcs_root" = cfg.changeToVCRoot;
|
||||
"startify_change_cmd" = cfg.changeDirCmd;
|
||||
"startify_skiplist" = cfg.skipList;
|
||||
"startify_update_oldfiles" = mkVimBool cfg.updateOldFiles;
|
||||
"startify_session_autoload" = mkVimBool cfg.sessionAutoload;
|
||||
"startify_update_oldfiles" = cfg.updateOldFiles;
|
||||
"startify_session_autoload" = cfg.sessionAutoload;
|
||||
"startify_commands" = cfg.commands;
|
||||
"startify_files_number" = cfg.filesNumber;
|
||||
"startify_custom_indices" = cfg.customIndices;
|
||||
"startify_disable_at_vimenter" = mkVimBool cfg.disableOnStartup;
|
||||
"startify_enable_unsafe" = mkVimBool cfg.unsafe;
|
||||
"startify_disable_at_vimenter" = cfg.disableOnStartup;
|
||||
"startify_enable_unsafe" = cfg.unsafe;
|
||||
"startify_padding_left" = cfg.paddingLeft;
|
||||
"startify_use_env" = mkVimBool cfg.useEnv;
|
||||
"startify_use_env" = cfg.useEnv;
|
||||
"startify_session_before_save" = cfg.sessionBeforeSave;
|
||||
"startify_session_persistence" = mkVimBool cfg.sessionPersistence;
|
||||
"startify_session_delete_buffers" = mkVimBool cfg.sessionDeleteBuffers;
|
||||
"startify_session_persistence" = cfg.sessionPersistence;
|
||||
"startify_session_delete_buffers" = cfg.sessionDeleteBuffers;
|
||||
"startify_session_dir" = cfg.sessionDir;
|
||||
"startify_skiplist_server" = cfg.skipListServer;
|
||||
"startify_session_remove_lines" = cfg.sessionRemoveLines;
|
||||
"startify_session_savevars" = cfg.sessionSavevars;
|
||||
"startify_session_savecmds" = cfg.sessionSavecmds;
|
||||
"startify_session_sort" = mkVimBool cfg.sessionSort;
|
||||
"startify_session_sort" = cfg.sessionSort;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
inherit (lib.modules) mkIf mkMerge;
|
||||
inherit (lib.nvim.lua) expToLua;
|
||||
inherit (lib.nvim.types) mkGrammarOption;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
|
||||
packageToCmd = package: defaultCmd:
|
||||
if isList cfg.lsp.package
|
||||
|
|
@ -141,7 +141,7 @@ in {
|
|||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
(mkIf cfg.cHeader {
|
||||
vim.configRC.c-header = entryAnywhere "let g:c_syntax_for_h = 1";
|
||||
vim.luaConfigRC.c-header = entryAfter ["basic"] "vim.g.c_syntax_for_h = 1";
|
||||
})
|
||||
|
||||
(mkIf cfg.treesitter.enable {
|
||||
|
|
|
|||
|
|
@ -176,8 +176,16 @@ in {
|
|||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
vim.configRC.nix = entryAnywhere ''
|
||||
autocmd filetype nix setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
||||
vim.luaConfigRC.nix = ''
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "nix",
|
||||
callback = function(opts)
|
||||
bo = vim.bo[opts.buf]
|
||||
bo.tabstop = 2
|
||||
bo.shiftwidth = 2
|
||||
bo.softtabstop = 2
|
||||
end
|
||||
})
|
||||
'';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
inherit (lib.attrsets) attrNames;
|
||||
inherit (lib.types) bool lines enum;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryBefore;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
|
||||
cfg = config.vim.theme;
|
||||
supported_themes = import ./supported_themes.nix {
|
||||
supportedThemes = import ./supported-themes.nix {
|
||||
inherit lib config;
|
||||
};
|
||||
in {
|
||||
|
|
@ -21,12 +21,12 @@ in {
|
|||
};
|
||||
|
||||
name = mkOption {
|
||||
type = enum (attrNames supported_themes);
|
||||
description = "Supported themes can be found in `supported_themes.nix`";
|
||||
type = enum (attrNames supportedThemes);
|
||||
description = "Supported themes can be found in `supportedThemes.nix`";
|
||||
};
|
||||
|
||||
style = mkOption {
|
||||
type = enum supported_themes.${cfg.name}.styles;
|
||||
type = enum supportedThemes.${cfg.name}.styles;
|
||||
description = "Specific style for theme if it supports it";
|
||||
};
|
||||
|
||||
|
|
@ -45,11 +45,9 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
vim = {
|
||||
startPlugins = [cfg.name];
|
||||
configRC.theme = entryBefore ["luaScript"] ''
|
||||
lua << EOF
|
||||
luaConfigRC.theme = entryAfter ["basic"] ''
|
||||
${cfg.extraConfig}
|
||||
${supported_themes.${cfg.name}.setup (with cfg; {inherit style transparent;})}
|
||||
EOF
|
||||
${supportedThemes.${cfg.name}.setup {inherit (cfg) style transparent;}}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -37,15 +37,16 @@ in {
|
|||
};
|
||||
|
||||
# For some reason treesitter highlighting does not work on start if this is set before syntax on
|
||||
configRC.treesitter-fold = mkIf cfg.fold (entryBefore ["basic"] ''
|
||||
" This is required by treesitter-context to handle folds
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
# HACK: is there a way to convert the foldexpr line to lua?
|
||||
luaConfigRC.treesitter-fold = mkIf cfg.fold (entryBefore ["basic"] ''
|
||||
-- This is required by treesitter-context to handle folds
|
||||
vim.o.foldmethod = "expr"
|
||||
vim.cmd("set foldexpr=nvim_treesitter#foldexpr())"
|
||||
|
||||
" This is optional, but is set rather as a sane default.
|
||||
" If unset, opened files will be folded by automatically as
|
||||
" the files are opened
|
||||
set nofoldenable
|
||||
-- This is optional, but is set rather as a sane default.
|
||||
-- If unset, opened files will be folded by automatically as
|
||||
-- the files are opened
|
||||
vim.o.foldenable = false
|
||||
'');
|
||||
|
||||
luaConfigRC.treesitter = entryAfter ["basic"] ''
|
||||
|
|
|
|||
|
|
@ -4,25 +4,23 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.strings) optionalString stringLength concatMapStringsSep;
|
||||
inherit (lib.strings) stringLength concatMapStringsSep;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.vim) mkVimBool;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
|
||||
cfg = config.vim.utility.preview.markdownPreview;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
vim.startPlugins = [pkgs.vimPlugins.markdown-preview-nvim];
|
||||
|
||||
vim.configRC.markdown-preview = entryAnywhere ''
|
||||
let g:mkdp_auto_start = ${mkVimBool cfg.autoStart}
|
||||
let g:mkdp_auto_close = ${mkVimBool cfg.autoClose}
|
||||
let g:mkdp_refresh_slow = ${mkVimBool cfg.lazyRefresh}
|
||||
let g:mkdp_filetypes = [${concatMapStringsSep ", " (x: "'" + x + "'") cfg.filetypes}]
|
||||
let g:mkdp_command_for_global = ${mkVimBool cfg.alwaysAllowPreview}
|
||||
let g:mkdp_open_to_the_world = ${mkVimBool cfg.broadcastServer}
|
||||
${optionalString (stringLength cfg.customIP > 0) "let g:mkdp_open_ip = '${cfg.customIP}'"}
|
||||
${optionalString (stringLength cfg.customPort > 0) "let g:mkdp_port = '${cfg.customPort}'"}
|
||||
'';
|
||||
vim.globals = {
|
||||
mkdp_auto_start = cfg.autoStart;
|
||||
mkdp_auto_close = cfg.autoClose;
|
||||
mkdp_refresh_slow = cfg.lazyRefresh;
|
||||
mkdp_filetypes = [(concatMapStringsSep ", " (x: "'" + x + "'") cfg.filetypes)];
|
||||
mkdp_command_for_global = cfg.alwaysAllowPreview;
|
||||
mkdp_open_to_the_world = cfg.broadcastServer;
|
||||
mkdp_open_ip = mkIf (stringLength cfg.customIP > 0) cfg.customIP;
|
||||
mkdp_port = mkIf (stringLength cfg.customPort > 0) cfg.customPort;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,21 +5,14 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
|
||||
cfg = config.vim.utility.vim-wakatime;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
vim.startPlugins = [
|
||||
pkgs.vimPlugins.vim-wakatime
|
||||
];
|
||||
vim.startPlugins = [pkgs.vimPlugins.vim-wakatime];
|
||||
|
||||
vim.configRC.vim-wakatime = entryAnywhere ''
|
||||
${
|
||||
if cfg.cli-package == null
|
||||
then ""
|
||||
else ''let g:wakatime_CLIPath = "${cfg.cli-package}"''
|
||||
}
|
||||
vim.luaConfigRC.vim-wakatime = mkIf (cfg.cli-package != null) ''
|
||||
vim.g.wakatime_CLIPath = "${cfg.cli-package}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue