Merge branch 'use-nixvim' into nixos
This commit is contained in:
commit
f9fe6174f0
26 changed files with 929 additions and 368 deletions
|
|
@ -6,51 +6,56 @@ let
|
|||
cfg = config.my.programs.nvim;
|
||||
in
|
||||
{
|
||||
imports = lib.my.listModulesRec ./plugins;
|
||||
imports = lib.my.listModulesRec ./new_plugins;
|
||||
|
||||
options.my.programs.nvim.enable = mkEnableOption "nvim";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.moritz = {
|
||||
xdg.configFile."nvim/snippets" = {
|
||||
recursive = true;
|
||||
source = ./plugins/snippets;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
xdotool # for vimtex
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
# programs.neovim = {
|
||||
# extraPackages = with pkgs;
|
||||
# [
|
||||
# alejandra
|
||||
# checkmake
|
||||
# codespell
|
||||
# deadnix
|
||||
# dotenv-linter
|
||||
# fish
|
||||
# jq
|
||||
# nil
|
||||
# nixd
|
||||
# nixpkgs-fmt
|
||||
# nodePackages.bash-language-server
|
||||
# python3Packages.python-lsp-server
|
||||
# shellcheck
|
||||
# shfmt
|
||||
# stable.yamlfix
|
||||
# statix
|
||||
# taplo
|
||||
# yamllint
|
||||
# ];
|
||||
# };
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
withNodeJs = true;
|
||||
withPython3 = true;
|
||||
extraPackages = with pkgs;
|
||||
[
|
||||
alejandra
|
||||
checkmake
|
||||
codespell
|
||||
deadnix
|
||||
dotenv-linter
|
||||
fish
|
||||
jq
|
||||
nil
|
||||
nixd
|
||||
nixpkgs-fmt
|
||||
nodePackages.bash-language-server
|
||||
python3Packages.python-lsp-server
|
||||
shellcheck
|
||||
shfmt
|
||||
stable.yamlfix
|
||||
statix
|
||||
taplo
|
||||
yamllint
|
||||
];
|
||||
extraLuaConfig = readFile ./options.lua;
|
||||
lazy.enable = true;
|
||||
extraConfigLuaPre = readFile ./options.lua;
|
||||
performance = {
|
||||
byteCompileLua = {
|
||||
enable = true;
|
||||
configs = true;
|
||||
initLua = true;
|
||||
nvimRuntime = true;
|
||||
plugins = true;
|
||||
};
|
||||
combinePlugins.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
37
modules/programs/nvim/new_plugins/avante.nix
Normal file
37
modules/programs/nvim/new_plugins/avante.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
nui-nvim
|
||||
render-markdown-nvim
|
||||
avante-nvim
|
||||
];
|
||||
extraConfigLuaPost = ''
|
||||
require("render-markdown").setup({ file_types = {"markdown", "Avante"} })
|
||||
|
||||
require("avante_lib").load()
|
||||
require("avante").setup({
|
||||
provider = "openai",
|
||||
auto_suggestions_provider = "openai",
|
||||
behaviour = {
|
||||
-- auto_suggestions = true,
|
||||
},
|
||||
openai = {
|
||||
model = "gpt-4o",
|
||||
api_key_name = "cmd:cat /run/agenix/openai"
|
||||
}
|
||||
})
|
||||
'';
|
||||
# plugins.copilot-lua.enable = true;
|
||||
# plugins.copilot-lua.suggestion.enabled = false;
|
||||
# plugins.copilot-lua.panel.enabled = false;
|
||||
plugins.dressing.enable = true;
|
||||
# performance.combinePlugins.standalonePlugins = [ "copilot.lua" ];
|
||||
};
|
||||
age.secrets."openai".file = ../../../../secrets/openai.age;
|
||||
age.secrets."openai".owner = "moritz";
|
||||
}
|
||||
15
modules/programs/nvim/new_plugins/catppuccin.nix
Normal file
15
modules/programs/nvim/new_plugins/catppuccin.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
|
||||
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings.flavour = "macchiato";
|
||||
};
|
||||
};
|
||||
}
|
||||
77
modules/programs/nvim/new_plugins/cmp.nix
Normal file
77
modules/programs/nvim/new_plugins/cmp.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
extraConfigLuaPre = ''
|
||||
local has_words_before = function()
|
||||
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then
|
||||
return false
|
||||
end
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_text(0, line-1, 0, line-1, col, {})[1]:match("^%s@*$") == nil
|
||||
end
|
||||
'';
|
||||
plugins.cmp = {
|
||||
autoEnableSources = true;
|
||||
enable = true;
|
||||
settings.sources = [
|
||||
{ priority = 1; name = "async_path"; }
|
||||
{ priority = 1; name = "buffer"; }
|
||||
{ priority = 2; name = "nvim_lsp"; }
|
||||
{ priority = 3; name = "nvim_lsp_signature_help"; }
|
||||
{ priority = 4; name = "luasnip"; }
|
||||
{ priority = 4; name = "vimtex"; }
|
||||
];
|
||||
settings.mapping = {
|
||||
__raw = ''
|
||||
cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
|
||||
elseif require("luasnip").locally_jumpable(1) and has_words_before() then
|
||||
require("luasnip").jump(1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
|
||||
elseif require("luasnip").locally_jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<C-n>"] = cmp.mapping(function(fallback)
|
||||
if require("luasnip").choice_active() then
|
||||
require("luasnip").change_choice(1)
|
||||
elseif require("luasnip").locally_jumpable(1) then
|
||||
require("luasnip").jump(1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<C-p>"] = cmp.mapping(function(fallback)
|
||||
if require("luasnip").choice_active() then
|
||||
require("luasnip").change_choice(-1)
|
||||
elseif require("luasnip").locally_jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
})
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
73
modules/programs/nvim/new_plugins/conform.nix
Normal file
73
modules/programs/nvim/new_plugins/conform.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins.conform-nvim = {
|
||||
enable = true;
|
||||
settings.formatters_by_ft = {
|
||||
"*" = [ "codespell" "trim_whitespace" ];
|
||||
elixir = [ "mix" ];
|
||||
gleam = [ "gleam" ];
|
||||
go = [ "gofmt" ];
|
||||
json = [ "jq" ];
|
||||
lua = [ "stylua" ];
|
||||
nix.__raw = ''{ "nixpkgs_fmt", "alejandra", stop_after_first=true }'';
|
||||
python.__raw = ''
|
||||
function(bufnr)
|
||||
return { first("ruff_organize_imports", "isort"), first("ruff_format", "black")}
|
||||
end
|
||||
'';
|
||||
rust = [ "rustfmt" ];
|
||||
sh = [ "shfmt" ];
|
||||
tex = [ "latexindent" ];
|
||||
toml = [ "taplo" ];
|
||||
yaml = [ "yamlfix" ];
|
||||
};
|
||||
};
|
||||
opts.formatexpr = "v:lua.require'conform'.formatexpr()";
|
||||
extraConfigLuaPre = ''
|
||||
---@param bufnr integer
|
||||
---@param ... string
|
||||
---@return string
|
||||
local function first(bufnr, ...)
|
||||
local conform = require("conform")
|
||||
for i = 1, select("#", ...) do
|
||||
local formatter = select(i, ...)
|
||||
if conform.get_formatter_info(formatter, bufnr).available then
|
||||
return formatter
|
||||
end
|
||||
end
|
||||
return select(1, ...)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("Format", function(opts)
|
||||
require("conform").format({ formatters = opts.fargs })
|
||||
end, {
|
||||
nargs = "+",
|
||||
complete = function()
|
||||
local formatters_by_ft = require("conform").formatters_by_ft
|
||||
local names = formatters_by_ft[vim.bo.filetype] or formatters_by_ft["_"] or {}
|
||||
names = vim.list_extend(names, formatters_by_ft["*"] or {})
|
||||
names = vim.tbl_flatten(names)
|
||||
local formatters = vim.tbl_map(require("conform").get_formatter_info, names)
|
||||
formatters = vim.tbl_filter(function(formatter)
|
||||
return formatter.available
|
||||
end, formatters)
|
||||
return vim.tbl_map(function(formatter_info)
|
||||
return formatter_info.name
|
||||
end, formatters)
|
||||
end,
|
||||
})
|
||||
'';
|
||||
performance.combinePlugins.standalonePlugins = [
|
||||
"conform.nvim"
|
||||
];
|
||||
keymaps = [
|
||||
{ key = "<leader>cf"; action.__raw = ''function() require("conform").format() end''; options.desc = "Format current file"; }
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
33
modules/programs/nvim/new_plugins/lsp.nix
Normal file
33
modules/programs/nvim/new_plugins/lsp.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins.lsp = {
|
||||
enable = true;
|
||||
inlayHints = true;
|
||||
servers.elixirls.enable = true;
|
||||
servers.nextls.enable = true;
|
||||
servers.nil-ls.enable = true;
|
||||
servers.nixd.enable = true;
|
||||
servers.nixd.extraOptions.settings.nixd = {
|
||||
nixpkgs = {
|
||||
expr = "import <nixpkgs> { }";
|
||||
};
|
||||
options = {
|
||||
nixos = {
|
||||
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.nixos-desktop.options'';
|
||||
};
|
||||
"flake-parts" = {
|
||||
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';
|
||||
};
|
||||
"flake-parts2" = {
|
||||
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).currentSystem.options'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
45
modules/programs/nvim/new_plugins/lspsaga.nix
Normal file
45
modules/programs/nvim/new_plugins/lspsaga.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins = {
|
||||
lspsaga = {
|
||||
enable = true;
|
||||
codeAction.keys.quit = "<esc>";
|
||||
lightbulb.virtualText = false;
|
||||
};
|
||||
web-devicons.enable = true;
|
||||
};
|
||||
keymapsOnEvents = {
|
||||
LspAttach = [
|
||||
{
|
||||
key = "<leader>cc";
|
||||
action = "<cmd>Lspsaga code_action<cr>";
|
||||
options.desc = "Code Action";
|
||||
options.buffer = true;
|
||||
}
|
||||
{
|
||||
key = "gd";
|
||||
action = "<cmd>Lspsaga goto_definition<cr>";
|
||||
options.desc = "Goto Definition";
|
||||
options.buffer = true;
|
||||
}
|
||||
{
|
||||
key = "<leader>cr";
|
||||
action = "<cmd>Lspsaga rename<cr>";
|
||||
options.desc = "Rename";
|
||||
options.buffer = true;
|
||||
}
|
||||
{
|
||||
key = "K";
|
||||
action = "<cmd>Lspsaga hover_doc<cr>";
|
||||
options.desc = "Hover";
|
||||
options.buffer = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
10
modules/programs/nvim/new_plugins/lualine.nix
Normal file
10
modules/programs/nvim/new_plugins/lualine.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins.lualine.enable = true;
|
||||
};
|
||||
}
|
||||
38
modules/programs/nvim/new_plugins/luasnip.nix
Normal file
38
modules/programs/nvim/new_plugins/luasnip.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz = {
|
||||
xdg.configFile."nvim/snippets" = {
|
||||
recursive = true;
|
||||
source = ../snippets;
|
||||
};
|
||||
programs.nixvim = {
|
||||
plugins.luasnip = {
|
||||
enable = true;
|
||||
settings = {
|
||||
history = true;
|
||||
update_events = "TextChanged,TextChangedI";
|
||||
delete_check_events = "TextChanged";
|
||||
ext_opts.__raw = ''
|
||||
{
|
||||
[require("luasnip.util.types").choiceNode] = {
|
||||
active = {
|
||||
virt_text = { { "<--", "Error" } },
|
||||
},
|
||||
},
|
||||
}
|
||||
'';
|
||||
ft_func.__raw = ''require("luasnip.extras.filetype_functions").from_pos_or_filetype'';
|
||||
};
|
||||
};
|
||||
extraConfigLuaPost = ''
|
||||
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets" })
|
||||
require("luasnip.loaders.from_snipmate").lazy_load({ paths = "~/.config/nvim/snippets" })
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
10
modules/programs/nvim/new_plugins/nvim-ufo.nix
Normal file
10
modules/programs/nvim/new_plugins/nvim-ufo.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins.nvim-ufo.enable = true;
|
||||
};
|
||||
}
|
||||
89
modules/programs/nvim/new_plugins/other.nix
Normal file
89
modules/programs/nvim/new_plugins/other.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz = {
|
||||
programs.nixvim = lib.mkMerge [
|
||||
{ plugins.which-key.enable = true; }
|
||||
{ plugins.lastplace.enable = true; }
|
||||
{ plugins.comment.enable = true; }
|
||||
{ plugins.ts-context-commentstring.enable = true; }
|
||||
{
|
||||
plugins.vimtex = {
|
||||
enable = true;
|
||||
settings.view_method = "zathura";
|
||||
};
|
||||
}
|
||||
{
|
||||
plugins.todo-comments = {
|
||||
enable = true;
|
||||
keymaps.todoTelescope.key = "<leader>fc";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
keymaps = [
|
||||
{ key = "<esc>"; action = "<cmd>noh<cr><esc>"; options.desc = "Escape and clear hlsearch"; mode = [ "i" "n" ]; }
|
||||
];
|
||||
}
|
||||
{ plugins.oil.enable = true; }
|
||||
{
|
||||
plugins = {
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions.fzf-native.enable = true;
|
||||
keymaps = {
|
||||
"<leader>ff" = {
|
||||
action = "find_files";
|
||||
options.desc = "Find files";
|
||||
};
|
||||
"<leader>fb" = {
|
||||
action = "buffers";
|
||||
options.desc = "Find buffers";
|
||||
};
|
||||
"<leader>fl" = {
|
||||
action = "current_buffer_fuzzy_find";
|
||||
options.desc = "Search lines";
|
||||
};
|
||||
"<leader>fg" = {
|
||||
action = "live_grep";
|
||||
options.desc = "Live grep";
|
||||
};
|
||||
"<leader>fh" = {
|
||||
action = "help_tags";
|
||||
options.desc = "Help tags";
|
||||
};
|
||||
"<leader>fr" = {
|
||||
action = "oldfiles";
|
||||
options.desc = "Recent files";
|
||||
};
|
||||
};
|
||||
};
|
||||
web-devicons.enable = true;
|
||||
};
|
||||
}
|
||||
{ plugins.nvim-autopairs.enable = true; }
|
||||
{ plugins.vim-surround.enable = true; }
|
||||
{
|
||||
plugins.lint.enable = true;
|
||||
# TODO: add linters
|
||||
plugins.lint.lintersByFt = { };
|
||||
}
|
||||
{
|
||||
plugins.marks.enable = true;
|
||||
plugins.marks.defaultMappings = false;
|
||||
}
|
||||
{
|
||||
plugins.hmts.enable = true;
|
||||
performance.combinePlugins.standalonePlugins = [ "hmts.nvim" ];
|
||||
}
|
||||
{ plugins.gitsigns.enable = true; }
|
||||
{ plugins.fugitive.enable = true; }
|
||||
{ plugins.friendly-snippets.enable = true; }
|
||||
{ plugins.direnv.enable = true; }
|
||||
{ plugins.crates-nvim.enable = true; }
|
||||
];
|
||||
};
|
||||
}
|
||||
19
modules/programs/nvim/new_plugins/treesitter.nix
Normal file
19
modules/programs/nvim/new_plugins/treesitter.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf readFile;
|
||||
in
|
||||
{
|
||||
home-manager.users.moritz.programs.nixvim = {
|
||||
plugins.treesitter = {
|
||||
enable = true;
|
||||
folding = true;
|
||||
nixvimInjections = true;
|
||||
settings.indent.enable = true;
|
||||
settings.highlight.enable = true;
|
||||
};
|
||||
performance.combinePlugins.standalonePlugins = [
|
||||
"nvim-treesitter"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -23,6 +23,7 @@ vim.opt.termguicolors = true
|
|||
vim.opt.undofile = true
|
||||
vim.opt.undolevels = 10000
|
||||
vim.opt.updatetime = 300
|
||||
vim.opt.foldlevel = 99
|
||||
vim.opt_local.spell = true
|
||||
vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling
|
||||
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local isn = ls.indent_snippet_node
|
||||
local t = ls.text_node
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local d = ls.dynamic_node
|
||||
local r = ls.restore_node
|
||||
local events = require("luasnip.util.events")
|
||||
local ai = require("luasnip.nodes.absolute_indexer")
|
||||
local extras = require("luasnip.extras")
|
||||
local l = extras.lambda
|
||||
local rep = extras.rep
|
||||
local p = extras.partial
|
||||
local m = extras.match
|
||||
local n = extras.nonempty
|
||||
local dl = extras.dynamic_lambda
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
local conds = require("luasnip.extras.expand_conditions")
|
||||
local postfix = require("luasnip.extras.postfix").postfix
|
||||
local types = require("luasnip.util.types")
|
||||
local parse = require("luasnip.util.parser").parse_snippet
|
||||
local ms = ls.multi_snippet
|
||||
local k = require("luasnip.nodes.key_indexer").new_key
|
||||
|
||||
local def_template = [[
|
||||
def {fname}({args}) do
|
||||
{final}
|
||||
end
|
||||
]]
|
||||
|
||||
local def = s(
|
||||
"def",
|
||||
fmt(def_template, {
|
||||
fname = i(1, "fname"),
|
||||
args = i(2),
|
||||
final = i(3),
|
||||
}, { priority = 1001 })
|
||||
)
|
||||
|
||||
return {
|
||||
def,
|
||||
}
|
||||
71
modules/programs/nvim/snippets/elixir.snippets
Normal file
71
modules/programs/nvim/snippets/elixir.snippets
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
snippet defmodule "Define a new module"
|
||||
defmodule ${1} do
|
||||
${2}
|
||||
end
|
||||
|
||||
snippet def "Define a function"
|
||||
def ${1} do
|
||||
${2}
|
||||
end
|
||||
|
||||
snippet defw "Define a function with guard"
|
||||
def ${1}(${2}) when ${3} do
|
||||
${4}
|
||||
end
|
||||
|
||||
snippet defa "Define a function with arguments"
|
||||
def ${1}(${2}) do
|
||||
${3}
|
||||
end
|
||||
|
||||
snippet defp "Define a private function"
|
||||
defp ${1} do
|
||||
${2}
|
||||
end
|
||||
|
||||
snippet defpw "Define a private function with guard"
|
||||
defp ${1}(${2}) when ${3} do
|
||||
${4}
|
||||
end
|
||||
|
||||
snippet defpa "Define a private function with arguments"
|
||||
defp ${1}(${2}) do
|
||||
${3}
|
||||
end
|
||||
|
||||
snippet defmacro "Define a macro"
|
||||
defmacro ${1}(${2}) do
|
||||
${3}
|
||||
end
|
||||
|
||||
snippet defmacrow "Define a macro with guard"
|
||||
defmacro ${1}(${2}) when ${3} do
|
||||
${4}
|
||||
end
|
||||
|
||||
snippet quote "Quote block"
|
||||
quote do
|
||||
${1}
|
||||
end
|
||||
|
||||
snippet quoteb "Quote block with bind_quoted"
|
||||
quote bind_quoted: [${1}] do
|
||||
${2}
|
||||
end
|
||||
|
||||
snippet do "Do block"
|
||||
do
|
||||
${1}
|
||||
end
|
||||
|
||||
snippet if "If block"
|
||||
if ${1} do
|
||||
${2}
|
||||
end
|
||||
|
||||
snippet ife "If-Else block"
|
||||
if ${1} do
|
||||
${2}
|
||||
else
|
||||
${3}
|
||||
end
|
||||
7
modules/programs/nvim/snippets/snippets.snippets
Normal file
7
modules/programs/nvim/snippets/snippets.snippets
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
snippet snip
|
||||
snippet ${1:trigger} "${2:description}"
|
||||
${0:${VISUAL}}
|
||||
snippet v
|
||||
{VISUAL}
|
||||
snippet $
|
||||
${${1:1}:${0:text}}
|
||||
|
|
@ -152,14 +152,6 @@ in
|
|||
# add waybar as a status bar
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar.overrideAttrs (old: {
|
||||
patches = old.patches or [ ] ++ [
|
||||
(pkgs.fetchpatch {
|
||||
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/waybar/-/raw/0306af03fcb6de6aee1e288f42b0bf1b223513bd/a544f4b2cdcf632f1a4424b89f6e3d85ef5aaa85.patch";
|
||||
sha256 = "sha256-S/1oUj9Aj6BElNTsDY8CTcKtS1j7Gl54JFgCywH05pg=";
|
||||
})
|
||||
];
|
||||
});
|
||||
|
||||
# start using systemd service
|
||||
systemd = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue