Commit
This commit is contained in:
1
_ref/den
Submodule
1
_ref/den
Submodule
Submodule _ref/den added at fb189d3e83
1
_ref/nix-wrapper-modules
Submodule
1
_ref/nix-wrapper-modules
Submodule
Submodule _ref/nix-wrapper-modules added at abb9fe7e20
79
flake.lock
generated
79
flake.lock
generated
@@ -362,6 +362,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_10": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768564909,
|
||||||
|
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770841267,
|
"lastModified": 1770841267,
|
||||||
@@ -565,7 +581,8 @@
|
|||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"noctalia": "noctalia",
|
"noctalia": "noctalia",
|
||||||
"nvf": "nvf",
|
"nvf": "nvf",
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix",
|
||||||
|
"vicinae-extensions": "vicinae-extensions"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
@@ -601,6 +618,66 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vicinae": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"vicinae-extensions",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"vicinae-extensions",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768856963,
|
||||||
|
"narHash": "sha256-u5bWDuwk6oieTnvm1YjNotcYK8iJSddH5+S68+X4TSc=",
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "vicinae",
|
||||||
|
"rev": "934bc0ad47be6dbd6498a0dac655c4613fd0ab27",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "vicinae",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vicinae-extensions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_10",
|
||||||
|
"systems": "systems_2",
|
||||||
|
"vicinae": "vicinae"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772537696,
|
||||||
|
"narHash": "sha256-nLMXPAt7+ZPjnh7f3JDpbLCY2BKQlD7kWzWI4qu1ITk=",
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "extensions",
|
||||||
|
"rev": "6a32c2678359e611bd8c75469c66aae24ed5563f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "extensions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"xwayland-satellite-stable": {
|
"xwayland-satellite-stable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
nvf.url = "github:notashelf/nvf";
|
nvf.url = "github:notashelf/nvf";
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
|
#vicinae.url = "github:vicinaehq/vicinae";
|
||||||
|
vicinae-extensions.url = "github:vicinaehq/extensions";
|
||||||
|
|
||||||
lux-pkgs.url = "git+ssh://gitea@orion/kiri/lux-pkgs";
|
lux-pkgs.url = "git+ssh://gitea@orion/kiri/lux-pkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
1
hm-out
Symbolic link
1
hm-out
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/nix/store/d1zhmp8szw0q777gq0mx9b2c3455l78c-home-manager-generation
|
||||||
@@ -1,53 +1,73 @@
|
|||||||
{ ... }:
|
{ inputs, ... }:
|
||||||
{
|
{
|
||||||
lux.vicinae = {
|
lux.vicinae = {
|
||||||
homeManager = {
|
homeManager =
|
||||||
programs.vicinae = {
|
{ pkgs, ... }:
|
||||||
enable = true;
|
{
|
||||||
systemd.enable = true;
|
programs.vicinae = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
kanagawa-wave = {
|
kanagawa-wave = {
|
||||||
meta = {
|
meta = {
|
||||||
version = 1;
|
version = 1;
|
||||||
name = "Kanagawa Wave";
|
name = "Kanagawa Wave";
|
||||||
description = "A dark theme inspired by the colors of the famous painting by Katsushika Hokusai.";
|
description = "A dark theme inspired by the colors of the famous painting by Katsushika Hokusai.";
|
||||||
variant = "dark";
|
variant = "dark";
|
||||||
inherits = "vicinae-dark";
|
inherits = "vicinae-dark";
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
core = {
|
|
||||||
background = "#1F1F28";
|
|
||||||
foreground = "#DCD7BA";
|
|
||||||
secondary_background = "#16161D";
|
|
||||||
border = "#2A2A37";
|
|
||||||
accent = "#7E9CD8";
|
|
||||||
};
|
};
|
||||||
accents = {
|
colors = {
|
||||||
blue = "#7E9CD8";
|
core = {
|
||||||
green = "#98BB6C";
|
background = "#1F1F28";
|
||||||
magenta = "#D27E99";
|
foreground = "#DCD7BA";
|
||||||
orange = "#FFA066";
|
secondary_background = "#16161D";
|
||||||
purple = "#957FB8";
|
border = "#2A2A37";
|
||||||
red = "#E82424";
|
accent = "#7E9CD8";
|
||||||
yellow = "#E6C384";
|
};
|
||||||
cyan = "#7AA89F";
|
accents = {
|
||||||
};
|
blue = "#7E9CD8";
|
||||||
input = {
|
green = "#98BB6C";
|
||||||
border_focus = "colors.core.accent";
|
magenta = "#D27E99";
|
||||||
|
orange = "#FFA066";
|
||||||
|
purple = "#957FB8";
|
||||||
|
red = "#E82424";
|
||||||
|
yellow = "#E6C384";
|
||||||
|
cyan = "#7AA89F";
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
border_focus = "colors.core.accent";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
theme = {
|
||||||
|
light.name = "kanagawa-wave";
|
||||||
|
dark.name = "kanagawa-wave";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extensions = with inputs.vicinae-extensions.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||||
|
agenda
|
||||||
|
#bluetooth
|
||||||
|
brotab
|
||||||
|
#dbus
|
||||||
|
fuzzy-files
|
||||||
|
github
|
||||||
|
it-tools
|
||||||
|
niri
|
||||||
|
nix
|
||||||
|
podman
|
||||||
|
process-manager
|
||||||
|
pulseaudio
|
||||||
|
simple-bookmarks
|
||||||
|
ssh
|
||||||
|
#systemd
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
|
||||||
theme = {
|
|
||||||
light.name = "kanagawa-wave";
|
|
||||||
dark.name = "kanagawa-wave";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
defaultApplicationPackages = with pkgs; [
|
defaultApplicationPackages = with pkgs; [
|
||||||
sioyek
|
sioyek
|
||||||
|
imv
|
||||||
vivaldi
|
vivaldi
|
||||||
neovim
|
neovim
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -20,9 +20,17 @@
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Configure sops-nix secret
|
||||||
|
sops.secrets.gemini-api-key-neovim = {};
|
||||||
|
|
||||||
wrappers.neovim = {
|
wrappers.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
# Inject the API key into the Neovim environment only
|
||||||
|
env = {
|
||||||
|
GEMINI_API_KEY = "$(cat ${config.sops.secrets.gemini-api-key-neovim.path})";
|
||||||
|
};
|
||||||
|
|
||||||
# 1. Point to your existing Lua config directory
|
# 1. Point to your existing Lua config directory
|
||||||
settings.config_directory = ./lua-config;
|
settings.config_directory = ./lua-config;
|
||||||
|
|
||||||
@@ -74,10 +82,8 @@
|
|||||||
data = with pkgs.vimPlugins; [
|
data = with pkgs.vimPlugins; [
|
||||||
nvim-treesitter.withAllGrammars
|
nvim-treesitter.withAllGrammars
|
||||||
nvim-treesitter-textobjects
|
nvim-treesitter-textobjects
|
||||||
nvim-treesitter-context
|
|
||||||
trouble-nvim
|
trouble-nvim
|
||||||
guess-indent-nvim
|
guess-indent-nvim
|
||||||
gitsigns-nvim
|
|
||||||
which-key-nvim
|
which-key-nvim
|
||||||
telescope-nvim
|
telescope-nvim
|
||||||
telescope-fzf-native-nvim
|
telescope-fzf-native-nvim
|
||||||
@@ -86,20 +92,18 @@
|
|||||||
blink-cmp
|
blink-cmp
|
||||||
luasnip
|
luasnip
|
||||||
friendly-snippets
|
friendly-snippets
|
||||||
todo-comments-nvim
|
|
||||||
mini-nvim
|
mini-nvim
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
lazydev-nvim
|
lazydev-nvim
|
||||||
nvim-autopairs
|
|
||||||
indent-blankline-nvim
|
|
||||||
nvim-lint
|
|
||||||
render-markdown-nvim
|
|
||||||
colorful-menu-nvim
|
colorful-menu-nvim
|
||||||
lualine-nvim
|
lualine-nvim
|
||||||
bufferline-nvim
|
|
||||||
zen-mode-nvim
|
zen-mode-nvim
|
||||||
kanagawa-nvim
|
kanagawa-nvim
|
||||||
project-nvim
|
project-nvim
|
||||||
|
typst-preview-nvim
|
||||||
|
direnv-vim
|
||||||
|
codecompanion-nvim
|
||||||
|
copilot-lua
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
require("options")
|
require("options")
|
||||||
require("plugins.ui")
|
|
||||||
require("plugins.editor")
|
|
||||||
require("plugins.coding")
|
|
||||||
require("plugins.lsp")
|
require("plugins.lsp")
|
||||||
|
require("plugins.completion")
|
||||||
|
require("plugins.formatting")
|
||||||
|
require("plugins.treesitter")
|
||||||
|
require("plugins.telescope")
|
||||||
|
require("plugins.ui")
|
||||||
|
require("plugins.core")
|
||||||
|
require("plugins.ai")
|
||||||
|
|||||||
72
modules/dev/neovim/lua-config/lua/plugins/ai.lua
Normal file
72
modules/dev/neovim/lua-config/lua/plugins/ai.lua
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"copilot.lua",
|
||||||
|
cmd = "Copilot",
|
||||||
|
event = "InsertEnter",
|
||||||
|
after = function()
|
||||||
|
require("copilot").setup({
|
||||||
|
-- Disable inline suggestions, let CodeCompanion (or blink) handle interactions
|
||||||
|
suggestion = { enabled = false },
|
||||||
|
panel = { enabled = false },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"codecompanion.nvim",
|
||||||
|
cmd = { "CodeCompanion", "CodeCompanionChat", "CodeCompanionActions" },
|
||||||
|
keys = {
|
||||||
|
{ "<leader>aa", "<cmd>CodeCompanionChat Toggle<cr>", mode = { "n", "v" }, desc = "[A]I [A]ssistant" },
|
||||||
|
{ "<leader>ac", "<cmd>CodeCompanionActions<cr>", mode = { "n", "v" }, desc = "[A]I [C]ode Actions" },
|
||||||
|
},
|
||||||
|
after = function()
|
||||||
|
require("codecompanion").setup({
|
||||||
|
-- Set Gemini as the default strategy
|
||||||
|
strategies = {
|
||||||
|
chat = {
|
||||||
|
adapter = "gemini",
|
||||||
|
},
|
||||||
|
inline = {
|
||||||
|
adapter = "gemini",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Configure all available adapters
|
||||||
|
adapters = {
|
||||||
|
copilot = function()
|
||||||
|
return require("codecompanion.adapters").extend("copilot", {
|
||||||
|
schema = {
|
||||||
|
model = {
|
||||||
|
default = "claude-3.5-sonnet", -- Good default for Copilot chat
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
gemini = function()
|
||||||
|
return require("codecompanion.adapters").extend("gemini", {
|
||||||
|
env = {
|
||||||
|
api_key = "GEMINI_API_KEY",
|
||||||
|
},
|
||||||
|
schema = {
|
||||||
|
model = {
|
||||||
|
default = "gemini-3.1-pro-preview",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
gemini_cli = function()
|
||||||
|
return require("codecompanion.adapters").extend("gemini_cli", {
|
||||||
|
-- Pass the model as a CLI argument
|
||||||
|
args = {
|
||||||
|
"--model",
|
||||||
|
"gemini-3.1-pro-preview",
|
||||||
|
},
|
||||||
|
-- Set authentication to use standard Google Login
|
||||||
|
env = {
|
||||||
|
auth_method = "oauth-personal",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -1,227 +0,0 @@
|
|||||||
require("lz.n").load({
|
|
||||||
-- {
|
|
||||||
-- "nvim-treesitter-context",
|
|
||||||
-- event = "BufReadPost",
|
|
||||||
-- after = function()
|
|
||||||
-- require("treesitter-context").setup({
|
|
||||||
-- enable = true,
|
|
||||||
-- max_lines = 3, -- How many lines the window should span
|
|
||||||
-- })
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
{
|
|
||||||
"nvim-lint",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
after = function()
|
|
||||||
local lint = require("lint")
|
|
||||||
|
|
||||||
-- Create autocommand which carries out the actual linting
|
|
||||||
-- on the specified events.
|
|
||||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
|
||||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
|
||||||
group = lint_augroup,
|
|
||||||
callback = function()
|
|
||||||
-- Only run the linter in buffers that you can modify in order to
|
|
||||||
-- avoid superfluous noise, notably within the handy LSP pop-ups that
|
|
||||||
-- describe the hovered symbol using Markdown.
|
|
||||||
if vim.bo.modifiable then
|
|
||||||
lint.try_lint()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-autopairs",
|
|
||||||
event = "InsertEnter",
|
|
||||||
after = function()
|
|
||||||
require("nvim-autopairs").setup({
|
|
||||||
check_ts = true,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-treesitter",
|
|
||||||
dep_of = "render-markdown.nvim",
|
|
||||||
-- cmd = { "" },
|
|
||||||
event = "DeferredUIEnter",
|
|
||||||
-- ft = "",
|
|
||||||
-- keys = "",
|
|
||||||
-- colorscheme = "",
|
|
||||||
load = function(name)
|
|
||||||
vim.cmd.packadd(name)
|
|
||||||
end,
|
|
||||||
after = function()
|
|
||||||
-- [[ Configure Treesitter ]]
|
|
||||||
-- See `:help nvim-treesitter`
|
|
||||||
require("nvim-treesitter.configs").setup({
|
|
||||||
highlight = { enable = true },
|
|
||||||
indent = { enable = true },
|
|
||||||
incremental_selection = {
|
|
||||||
enable = true,
|
|
||||||
keymaps = {
|
|
||||||
init_selection = "<c-space>",
|
|
||||||
node_incremental = "<c-space>",
|
|
||||||
scope_incremental = "<c-s>",
|
|
||||||
node_decremental = "<M-space>",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"conform.nvim",
|
|
||||||
event = "BufWritePre",
|
|
||||||
cmd = "ConformInfo",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>f",
|
|
||||||
function()
|
|
||||||
require("conform").format({ async = true, lsp_format = "fallback" })
|
|
||||||
end,
|
|
||||||
mode = "",
|
|
||||||
desc = "[F]ormat buffer",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
after = function()
|
|
||||||
require("conform").setup({
|
|
||||||
notify_on_error = true,
|
|
||||||
format_on_save = function(bufnr)
|
|
||||||
-- Disable "format_on_save lsp_fallback" for languages that don't
|
|
||||||
-- have a well standardized coding style. You can add additional
|
|
||||||
-- languages here or re-enable it for the disabled ones.
|
|
||||||
local disable_filetypes = { c = true, cpp = true }
|
|
||||||
if disable_filetypes[vim.bo[bufnr].filetype] then
|
|
||||||
return nil
|
|
||||||
else
|
|
||||||
return {
|
|
||||||
timeout_ms = 500,
|
|
||||||
lsp_format = "fallback",
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
formatters_by_ft = {
|
|
||||||
lua = { "stylua" },
|
|
||||||
-- Conform can also run multiple formatters sequentially
|
|
||||||
python = { "isort", "black" },
|
|
||||||
--
|
|
||||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
|
||||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
},
|
|
||||||
formatters = {
|
|
||||||
stylua = {
|
|
||||||
prepend_args = { "--indent-type", "Spaces", "--indent-width", "2" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"friendly-snippets",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"luasnip",
|
|
||||||
before = function()
|
|
||||||
require("lz.n").trigger_load("friendly-snippets")
|
|
||||||
end,
|
|
||||||
after = function()
|
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
-- lazydev makes your lsp way better in your config without needing extra lsp configuration.
|
|
||||||
"lazydev.nvim",
|
|
||||||
cmd = "LazyDev",
|
|
||||||
ft = "lua",
|
|
||||||
after = function()
|
|
||||||
require("lazydev").setup({
|
|
||||||
library = {
|
|
||||||
{ words = { "nixCats", "settings" }, path = "nix-info" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"blink.cmp",
|
|
||||||
before = function()
|
|
||||||
-- Trigger lazydev so it's ready for blink source
|
|
||||||
require("lz.n").trigger_load({ "lazydev.nvim", "luasnip" })
|
|
||||||
end,
|
|
||||||
after = function()
|
|
||||||
require("blink.cmp").setup({
|
|
||||||
keymap = {
|
|
||||||
preset = "default",
|
|
||||||
|
|
||||||
-- [Up/Down]
|
|
||||||
["<C-j>"] = { "select_next", "fallback" },
|
|
||||||
["<C-k>"] = { "select_prev", "fallback" }, -- Overrides Signature Help
|
|
||||||
|
|
||||||
-- [Insert Suggestion]
|
|
||||||
["<tab>"] = { "select_and_accept", "fallback" },
|
|
||||||
|
|
||||||
-- [Remap Signature Help]
|
|
||||||
-- Since we took <C-k>, let's move signature help to <C-g> (optional)
|
|
||||||
["<C-g>"] = { "show_signature", "hide_signature", "fallback" },
|
|
||||||
},
|
|
||||||
|
|
||||||
appearance = {
|
|
||||||
nerd_font_variant = "mono",
|
|
||||||
},
|
|
||||||
|
|
||||||
completion = {
|
|
||||||
-- By default, you may press `<c-space>` to show the documentation.
|
|
||||||
-- Optionally, set `auto_show = true` to show the documentation after a delay.
|
|
||||||
documentation = {
|
|
||||||
auto_show = true,
|
|
||||||
auto_show_delay_ms = 500,
|
|
||||||
},
|
|
||||||
menu = {
|
|
||||||
draw = {
|
|
||||||
columns = { { "kind_icon" }, { "label", gap = 1 } },
|
|
||||||
components = {
|
|
||||||
label = {
|
|
||||||
text = function(ctx)
|
|
||||||
return require("colorful-menu").blink_components_text(ctx)
|
|
||||||
end,
|
|
||||||
highlight = function(ctx)
|
|
||||||
return require("colorful-menu").blink_components_highlight(ctx)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
cmdline = {
|
|
||||||
completion = {
|
|
||||||
menu = {
|
|
||||||
auto_show = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
keymap = { preset = "inherit" },
|
|
||||||
},
|
|
||||||
|
|
||||||
sources = {
|
|
||||||
default = {
|
|
||||||
"lsp",
|
|
||||||
"path",
|
|
||||||
"snippets",
|
|
||||||
"lazydev",
|
|
||||||
},
|
|
||||||
providers = {
|
|
||||||
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
snippets = { preset = "luasnip" },
|
|
||||||
|
|
||||||
fuzzy = { implementation = "prefer_rust_with_warning" },
|
|
||||||
|
|
||||||
-- Shows a signature help window while you type arguments for a function
|
|
||||||
signature = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
104
modules/dev/neovim/lua-config/lua/plugins/completion.lua
Normal file
104
modules/dev/neovim/lua-config/lua/plugins/completion.lua
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"friendly-snippets",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"luasnip",
|
||||||
|
before = function()
|
||||||
|
require("lz.n").trigger_load("friendly-snippets")
|
||||||
|
end,
|
||||||
|
after = function()
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
-- Load custom lua snippets
|
||||||
|
require("luasnip.loaders.from_lua").load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"colorful-menu.nvim",
|
||||||
|
after = function()
|
||||||
|
require("colorful-menu").setup({})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"blink.cmp",
|
||||||
|
event = { "InsertEnter", "CmdlineEnter" },
|
||||||
|
before = function()
|
||||||
|
-- Trigger lazydev so it's ready for blink source
|
||||||
|
require("lz.n").trigger_load({ "lazydev.nvim", "luasnip", "colorful-menu.nvim" })
|
||||||
|
end,
|
||||||
|
after = function()
|
||||||
|
require("blink.cmp").setup({
|
||||||
|
keymap = {
|
||||||
|
preset = "default",
|
||||||
|
|
||||||
|
-- [Up/Down]
|
||||||
|
["<C-j>"] = { "select_next", "fallback" },
|
||||||
|
["<C-k>"] = { "select_prev", "fallback" }, -- Overrides Signature Help
|
||||||
|
|
||||||
|
-- [Insert Suggestion]
|
||||||
|
["<tab>"] = { "select_and_accept", "fallback" },
|
||||||
|
|
||||||
|
-- [Remap Signature Help]
|
||||||
|
-- Since we took <C-k>, let's move signature help to <C-g> (optional)
|
||||||
|
["<C-g>"] = { "show_signature", "hide_signature", "fallback" },
|
||||||
|
},
|
||||||
|
|
||||||
|
appearance = {
|
||||||
|
nerd_font_variant = "mono",
|
||||||
|
},
|
||||||
|
|
||||||
|
completion = {
|
||||||
|
documentation = {
|
||||||
|
auto_show = true,
|
||||||
|
auto_show_delay_ms = 500,
|
||||||
|
},
|
||||||
|
menu = {
|
||||||
|
draw = {
|
||||||
|
columns = { { "kind_icon" }, { "label", gap = 1 } },
|
||||||
|
components = {
|
||||||
|
label = {
|
||||||
|
text = function(ctx)
|
||||||
|
return require("colorful-menu").blink_components_text(ctx)
|
||||||
|
end,
|
||||||
|
highlight = function(ctx)
|
||||||
|
return require("colorful-menu").blink_components_highlight(ctx)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
cmdline = {
|
||||||
|
completion = {
|
||||||
|
menu = {
|
||||||
|
auto_show = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keymap = { preset = "inherit" },
|
||||||
|
},
|
||||||
|
|
||||||
|
sources = {
|
||||||
|
default = {
|
||||||
|
"lsp",
|
||||||
|
"path",
|
||||||
|
"snippets",
|
||||||
|
"lazydev",
|
||||||
|
},
|
||||||
|
providers = {
|
||||||
|
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
snippets = { preset = "luasnip" },
|
||||||
|
|
||||||
|
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||||
|
|
||||||
|
signature = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
65
modules/dev/neovim/lua-config/lua/plugins/core.lua
Normal file
65
modules/dev/neovim/lua-config/lua/plugins/core.lua
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"mini.nvim",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
after = function()
|
||||||
|
-- Better Around/Inside textobjects
|
||||||
|
require("mini.ai").setup({ n_lines = 500 })
|
||||||
|
|
||||||
|
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
||||||
|
require("mini.surround").setup()
|
||||||
|
|
||||||
|
-- Auto-pairs (replaces nvim-autopairs)
|
||||||
|
require("mini.pairs").setup()
|
||||||
|
|
||||||
|
local files = require("mini.files")
|
||||||
|
files.setup()
|
||||||
|
vim.keymap.set("n", "<leader>e", function()
|
||||||
|
if not files.close() then
|
||||||
|
files.open(vim.api.nvim_buf_get_name(0))
|
||||||
|
end
|
||||||
|
end, { desc = "File [E]xplorer" })
|
||||||
|
|
||||||
|
local icons = require("mini.icons")
|
||||||
|
icons.setup()
|
||||||
|
icons.mock_nvim_web_devicons()
|
||||||
|
|
||||||
|
local hipatterns = require("mini.hipatterns")
|
||||||
|
hipatterns.setup({
|
||||||
|
highlighters = {
|
||||||
|
-- Highlight hex color strings (#rrggbb) using that color
|
||||||
|
hex_color = hipatterns.gen_highlighter.hex_color(),
|
||||||
|
-- Highlight TODOs, FIXMEs, etc. (replaces todo-comments.nvim)
|
||||||
|
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
|
||||||
|
hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
|
||||||
|
todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
|
||||||
|
note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local indentscope = require("mini.indentscope")
|
||||||
|
indentscope.setup({
|
||||||
|
symbol = "│",
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = { "help", "alpha", "dashboard", "neo-tree", "Trouble", "lazy", "mason" },
|
||||||
|
callback = function()
|
||||||
|
vim.b.miniindentscope_disable = true
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"guess-indent.nvim",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
after = function()
|
||||||
|
require("guess-indent").setup({})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direnv.vim",
|
||||||
|
event = "BufEnter",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
@@ -1,240 +0,0 @@
|
|||||||
require("lz.n").load({
|
|
||||||
{
|
|
||||||
"project.nvim",
|
|
||||||
name = "project-nvim",
|
|
||||||
event = { "VimEnter" }, -- Load early to set root correctly
|
|
||||||
after = function()
|
|
||||||
require("project").setup({
|
|
||||||
-- 1. Automagically change directory to project root
|
|
||||||
manual_mode = false,
|
|
||||||
|
|
||||||
-- Methods to detect the root directory
|
|
||||||
detection_methods = { "lsp", "pattern" },
|
|
||||||
|
|
||||||
-- Files/folders that indicate a root
|
|
||||||
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "flake.nix" },
|
|
||||||
|
|
||||||
-- Show hidden files in telescope
|
|
||||||
show_hidden = true,
|
|
||||||
|
|
||||||
-- When the project scope changes, change the directory
|
|
||||||
scope_chdir = "global",
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"guess-indent.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
after = function()
|
|
||||||
require("guess-indent").setup({})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gitsigns.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
after = function()
|
|
||||||
require("gitsigns").setup({
|
|
||||||
signs = {
|
|
||||||
add = { text = "▎" },
|
|
||||||
change = { text = "▎" },
|
|
||||||
delete = { text = "" },
|
|
||||||
topdelete = { text = "" },
|
|
||||||
changedelete = { text = "▎" },
|
|
||||||
},
|
|
||||||
on_attach = function(bufnr)
|
|
||||||
local gitsigns = require("gitsigns")
|
|
||||||
|
|
||||||
local function map(mode, l, r, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
opts.buffer = bufnr
|
|
||||||
vim.keymap.set(mode, l, r, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Navigation
|
|
||||||
map("n", "]c", function()
|
|
||||||
if vim.wo.diff then
|
|
||||||
vim.cmd.normal({ "]c", bang = true })
|
|
||||||
else
|
|
||||||
gitsigns.nav_hunk("next")
|
|
||||||
end
|
|
||||||
end, { desc = "Jump to next git [c]hange" })
|
|
||||||
|
|
||||||
map("n", "[c", function()
|
|
||||||
if vim.wo.diff then
|
|
||||||
vim.cmd.normal({ "[c", bang = true })
|
|
||||||
else
|
|
||||||
gitsigns.nav_hunk("prev")
|
|
||||||
end
|
|
||||||
end, { desc = "Jump to previous git [c]hange" })
|
|
||||||
|
|
||||||
-- Actions
|
|
||||||
-- visual mode
|
|
||||||
map("v", "<leader>hs", function()
|
|
||||||
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
||||||
end, { desc = "git [s]tage hunk" })
|
|
||||||
map("v", "<leader>hr", function()
|
|
||||||
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
||||||
end, { desc = "git [r]eset hunk" })
|
|
||||||
-- normal mode
|
|
||||||
map("n", "<leader>hs", gitsigns.stage_hunk, { desc = "git [s]tage hunk" })
|
|
||||||
map("n", "<leader>hr", gitsigns.reset_hunk, { desc = "git [r]eset hunk" })
|
|
||||||
map("n", "<leader>hS", gitsigns.stage_buffer, { desc = "git [S]tage buffer" })
|
|
||||||
map("n", "<leader>hu", gitsigns.stage_hunk, { desc = "git [u]ndo stage hunk" })
|
|
||||||
map("n", "<leader>hR", gitsigns.reset_buffer, { desc = "git [R]eset buffer" })
|
|
||||||
map("n", "<leader>hp", gitsigns.preview_hunk, { desc = "git [p]review hunk" })
|
|
||||||
map("n", "<leader>hb", gitsigns.blame_line, { desc = "git [b]lame line" })
|
|
||||||
map("n", "<leader>hd", gitsigns.diffthis, { desc = "git [d]iff against index" })
|
|
||||||
map("n", "<leader>hD", function()
|
|
||||||
gitsigns.diffthis("@")
|
|
||||||
end, { desc = "git [D]iff against last commit" })
|
|
||||||
-- Toggles
|
|
||||||
map("n", "<leader>tb", gitsigns.toggle_current_line_blame, { desc = "[T]oggle git show [b]lame line" })
|
|
||||||
map("n", "<leader>tD", gitsigns.preview_hunk_inline, { desc = "[T]oggle git show [D]eleted" })
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"telescope.nvim",
|
|
||||||
event = "VimEnter",
|
|
||||||
after = function()
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
|
|
||||||
require("telescope").setup({
|
|
||||||
defaults = {
|
|
||||||
path_display = { "truncate" },
|
|
||||||
layout_strategy = "horizontal",
|
|
||||||
layout_config = {
|
|
||||||
prompt_position = "top",
|
|
||||||
},
|
|
||||||
sorting_strategy = "ascending",
|
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
["<C-k>"] = actions.move_selection_previous, -- Move up with Ctrl-k
|
|
||||||
["<C-j>"] = actions.move_selection_next, -- Move down with Ctrl-j
|
|
||||||
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, -- Send to quickfix
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
extensions = {
|
|
||||||
["ui-select"] = {
|
|
||||||
require("telescope.themes").get_dropdown(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Enable Telescope extensions if they are installed
|
|
||||||
pcall(require("telescope").load_extension, "projects")
|
|
||||||
pcall(require("telescope").load_extension, "fzf")
|
|
||||||
pcall(require("telescope").load_extension, "ui-select")
|
|
||||||
|
|
||||||
-- See `:help telescope.builtin`
|
|
||||||
local builtin = require("telescope.builtin")
|
|
||||||
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
|
|
||||||
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
|
|
||||||
vim.keymap.set("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
|
|
||||||
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
|
|
||||||
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
|
|
||||||
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
|
|
||||||
vim.keymap.set("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
|
|
||||||
vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
|
|
||||||
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
|
||||||
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
|
|
||||||
vim.keymap.set("n", "<leader>sp", function()
|
|
||||||
require("telescope").extensions.projects.projects({})
|
|
||||||
end, { desc = "[S]earch [P]rojects" })
|
|
||||||
|
|
||||||
-- Slightly advanced example of overriding default behavior and theme
|
|
||||||
vim.keymap.set("n", "<leader>/", function()
|
|
||||||
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
|
||||||
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
|
||||||
winblend = 10,
|
|
||||||
previewer = false,
|
|
||||||
}))
|
|
||||||
end, { desc = "[/] Fuzzily search in current buffer" })
|
|
||||||
|
|
||||||
-- It's also possible to pass additional configuration options.
|
|
||||||
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
|
||||||
vim.keymap.set("n", "<leader>s/", function()
|
|
||||||
builtin.live_grep({
|
|
||||||
grep_open_files = true,
|
|
||||||
prompt_title = "Live Grep in Open Files",
|
|
||||||
})
|
|
||||||
end, { desc = "[S]earch [/] in Open Files" })
|
|
||||||
|
|
||||||
-- Shortcut for searching your Neovim configuration files
|
|
||||||
vim.keymap.set("n", "<leader>sn", function()
|
|
||||||
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
|
||||||
end, { desc = "[S]earch [N]eovim files" })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"trouble.nvim",
|
|
||||||
cmd = "Trouble",
|
|
||||||
keys = {
|
|
||||||
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
|
|
||||||
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
|
|
||||||
},
|
|
||||||
after = function()
|
|
||||||
require("trouble").setup({
|
|
||||||
focus = true,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"todo-comments.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
keys = {
|
|
||||||
{ "<leader>st", "<cmd>TodoTelescope<cr>", desc = "[S]earch [T]odos" },
|
|
||||||
{ "<leader>xt", "<cmd>TodoTrouble<cr>", desc = "Todo (Trouble)" },
|
|
||||||
},
|
|
||||||
after = function()
|
|
||||||
require("todo-comments").setup({
|
|
||||||
signs = false,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mini.nvim",
|
|
||||||
after = function()
|
|
||||||
-- Better Around/Inside textobjects
|
|
||||||
require("mini.ai").setup({ n_lines = 500 })
|
|
||||||
|
|
||||||
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
|
||||||
require("mini.surround").setup()
|
|
||||||
|
|
||||||
local files = require("mini.files")
|
|
||||||
files.setup()
|
|
||||||
vim.keymap.set("n", "<leader>e", function()
|
|
||||||
if not files.close() then
|
|
||||||
files.open(vim.api.nvim_buf_get_name(0))
|
|
||||||
end
|
|
||||||
end, { desc = "File [E]xplorer" })
|
|
||||||
|
|
||||||
local icons = require("mini.icons")
|
|
||||||
icons.setup()
|
|
||||||
icons.mock_nvim_web_devicons()
|
|
||||||
|
|
||||||
local hipatterns = require("mini.hipatterns")
|
|
||||||
hipatterns.setup({
|
|
||||||
highlighters = {
|
|
||||||
-- Highlight hex color strings (#rrggbb) using that color
|
|
||||||
hex_color = hipatterns.gen_highlighter.hex_color(),
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
local indentscope = require("mini.indentscope")
|
|
||||||
indentscope.setup({
|
|
||||||
symbol = "│",
|
|
||||||
-- draw = { animation = indentscope.gen_animation.linear({}) },
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
|
||||||
pattern = { "help", "alpha", "dashboard", "neo-tree", "Trouble", "lazy", "mason" },
|
|
||||||
callback = function()
|
|
||||||
vim.b.miniindentscope_disable = true
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
49
modules/dev/neovim/lua-config/lua/plugins/formatting.lua
Normal file
49
modules/dev/neovim/lua-config/lua/plugins/formatting.lua
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"conform.nvim",
|
||||||
|
event = "BufWritePre",
|
||||||
|
cmd = "ConformInfo",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>f",
|
||||||
|
function()
|
||||||
|
require("conform").format({ async = true, lsp_format = "fallback" })
|
||||||
|
end,
|
||||||
|
mode = "",
|
||||||
|
desc = "[F]ormat buffer",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
after = function()
|
||||||
|
require("conform").setup({
|
||||||
|
notify_on_error = true,
|
||||||
|
format_on_save = function(bufnr)
|
||||||
|
-- Disable "format_on_save lsp_fallback" for languages that don't
|
||||||
|
-- have a well standardized coding style. You can add additional
|
||||||
|
-- languages here or re-enable it for the disabled ones.
|
||||||
|
local disable_filetypes = { c = true, cpp = true }
|
||||||
|
if disable_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
return nil
|
||||||
|
else
|
||||||
|
return {
|
||||||
|
timeout_ms = 500,
|
||||||
|
lsp_format = "fallback",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
formatters_by_ft = {
|
||||||
|
lua = { "stylua" },
|
||||||
|
-- Conform can also run multiple formatters sequentially
|
||||||
|
python = { "isort", "black" },
|
||||||
|
--
|
||||||
|
-- You can use 'stop_after_first' to run the first available formatter from the list
|
||||||
|
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||||
|
},
|
||||||
|
formatters = {
|
||||||
|
stylua = {
|
||||||
|
prepend_args = { "--indent-type", "Spaces", "--indent-width", "2" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -1,7 +1,37 @@
|
|||||||
require("lz.n").load({
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"typst-preview.nvim",
|
||||||
|
ft = "typst",
|
||||||
|
after = function()
|
||||||
|
-- Setup typst-preview
|
||||||
|
require("typst-preview").setup({
|
||||||
|
-- Optionally configure things here
|
||||||
|
dependencies_bin = {
|
||||||
|
-- For example, use tinymist as the LSP if that's what you are running
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>tp", "<cmd>TypstPreviewToggle<cr>", { desc = "[T]ypst [P]review Toggle" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lazydev.nvim",
|
||||||
|
cmd = "LazyDev",
|
||||||
|
ft = "lua",
|
||||||
|
after = function()
|
||||||
|
require("lazydev").setup({
|
||||||
|
library = {
|
||||||
|
{ words = { "nixCats", "settings" }, path = "nix-info" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"nvim-lspconfig",
|
"nvim-lspconfig",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
before = function()
|
||||||
|
require("lz.n").trigger_load("lazydev.nvim")
|
||||||
|
end,
|
||||||
after = function()
|
after = function()
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
||||||
@@ -15,18 +45,19 @@ require("lz.n").load({
|
|||||||
vim.keymap.set(mode, keys, func, { buffer = bufnr, desc = "LSP: " .. desc })
|
vim.keymap.set(mode, keys, func, { buffer = bufnr, desc = "LSP: " .. desc })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Mappings (Standard LSP functions from lsp-defaults) [cite: 20-23]
|
-- Standard LSP functions
|
||||||
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
|
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
|
||||||
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
|
map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" })
|
||||||
map("grD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
||||||
|
map("K", vim.lsp.buf.hover, "Hover Documentation")
|
||||||
|
|
||||||
-- Telescope Mappings
|
-- Telescope Mappings
|
||||||
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
|
||||||
map("gri", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
||||||
map("grd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
|
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
||||||
map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
|
map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
|
||||||
map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
|
map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
|
||||||
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
|
map("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
|
||||||
|
|
||||||
-- Highlight references (Document Highlight)
|
-- Highlight references (Document Highlight)
|
||||||
if client and client:supports_method("textDocument/documentHighlight", bufnr) then
|
if client and client:supports_method("textDocument/documentHighlight", bufnr) then
|
||||||
@@ -130,24 +161,6 @@ require("lz.n").load({
|
|||||||
vim.lsp.enable("rust_analyzer")
|
vim.lsp.enable("rust_analyzer")
|
||||||
|
|
||||||
-- Python
|
-- Python
|
||||||
-- vim.lsp.config("basedpyright", {
|
|
||||||
-- settings = {
|
|
||||||
-- basedpyright = {
|
|
||||||
-- analysis = {
|
|
||||||
-- autoSearchPaths = true,
|
|
||||||
-- useLibraryCodeForTypes = true,
|
|
||||||
-- diagnosticMode = "openFilesOnly",
|
|
||||||
-- typeCheckingMode = "recommended",
|
|
||||||
-- inlayHints = {
|
|
||||||
-- variableTypes = true,
|
|
||||||
-- callArgumentNames = true,
|
|
||||||
-- functionReturnTypes = true,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- })
|
|
||||||
-- vim.lsp.enable("basedpyright")
|
|
||||||
vim.lsp.enable("ty")
|
vim.lsp.enable("ty")
|
||||||
vim.lsp.enable("ruff")
|
vim.lsp.enable("ruff")
|
||||||
|
|
||||||
@@ -163,4 +176,17 @@ require("lz.n").load({
|
|||||||
vim.lsp.enable("tinymist")
|
vim.lsp.enable("tinymist")
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"trouble.nvim",
|
||||||
|
cmd = "Trouble",
|
||||||
|
keys = {
|
||||||
|
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
|
||||||
|
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
|
||||||
|
},
|
||||||
|
after = function()
|
||||||
|
require("trouble").setup({
|
||||||
|
focus = true,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
101
modules/dev/neovim/lua-config/lua/plugins/telescope.lua
Normal file
101
modules/dev/neovim/lua-config/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"project.nvim",
|
||||||
|
event = { "VimEnter" }, -- Load early to set root correctly
|
||||||
|
after = function()
|
||||||
|
require("project").setup({
|
||||||
|
-- 1. Automagically change directory to project root
|
||||||
|
manual_mode = false,
|
||||||
|
|
||||||
|
-- LSP detection
|
||||||
|
lsp = { enabled = true },
|
||||||
|
|
||||||
|
-- Files/folders that indicate a root
|
||||||
|
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "flake.nix" },
|
||||||
|
|
||||||
|
-- Show hidden files in telescope
|
||||||
|
show_hidden = true,
|
||||||
|
|
||||||
|
-- When the project scope changes, change the directory
|
||||||
|
scope_chdir = "global",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"telescope.nvim",
|
||||||
|
event = "VimEnter",
|
||||||
|
before = function()
|
||||||
|
require("lz.n").trigger_load("project.nvim")
|
||||||
|
end,
|
||||||
|
after = function()
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
|
||||||
|
require("telescope").setup({
|
||||||
|
defaults = {
|
||||||
|
path_display = { "truncate" },
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = {
|
||||||
|
prompt_position = "top",
|
||||||
|
},
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-k>"] = actions.move_selection_previous, -- Move up with Ctrl-k
|
||||||
|
["<C-j>"] = actions.move_selection_next, -- Move down with Ctrl-j
|
||||||
|
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, -- Send to quickfix
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
require("telescope.themes").get_dropdown(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Enable Telescope extensions if they are installed
|
||||||
|
pcall(require("telescope").load_extension, "projects")
|
||||||
|
pcall(require("telescope").load_extension, "fzf")
|
||||||
|
pcall(require("telescope").load_extension, "ui-select")
|
||||||
|
|
||||||
|
-- See `:help telescope.builtin`
|
||||||
|
local builtin = require("telescope.builtin")
|
||||||
|
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
|
||||||
|
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
|
||||||
|
vim.keymap.set("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
|
||||||
|
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
|
||||||
|
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
|
||||||
|
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
|
||||||
|
vim.keymap.set("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
|
||||||
|
vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
|
||||||
|
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||||
|
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
|
||||||
|
vim.keymap.set("n", "<leader>sp", function()
|
||||||
|
require("telescope").extensions.projects.projects({})
|
||||||
|
end, { desc = "[S]earch [P]rojects" })
|
||||||
|
|
||||||
|
-- Slightly advanced example of overriding default behavior and theme
|
||||||
|
vim.keymap.set("n", "<leader>/", function()
|
||||||
|
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
||||||
|
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
||||||
|
winblend = 10,
|
||||||
|
previewer = false,
|
||||||
|
}))
|
||||||
|
end, { desc = "[/] Fuzzily search in current buffer" })
|
||||||
|
|
||||||
|
-- It's also possible to pass additional configuration options.
|
||||||
|
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
||||||
|
vim.keymap.set("n", "<leader>s/", function()
|
||||||
|
builtin.live_grep({
|
||||||
|
grep_open_files = true,
|
||||||
|
prompt_title = "Live Grep in Open Files",
|
||||||
|
})
|
||||||
|
end, { desc = "[S]earch [/] in Open Files" })
|
||||||
|
|
||||||
|
-- Shortcut for searching your Neovim configuration files
|
||||||
|
vim.keymap.set("n", "<leader>sn", function()
|
||||||
|
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
||||||
|
end, { desc = "[S]earch [N]eovim files" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
26
modules/dev/neovim/lua-config/lua/plugins/treesitter.lua
Normal file
26
modules/dev/neovim/lua-config/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
require("lz.n").load({
|
||||||
|
{
|
||||||
|
"nvim-treesitter",
|
||||||
|
event = "DeferredUIEnter",
|
||||||
|
load = function(name)
|
||||||
|
vim.cmd.packadd(name)
|
||||||
|
end,
|
||||||
|
after = function()
|
||||||
|
-- [[ Configure Treesitter ]]
|
||||||
|
-- See `:help nvim-treesitter`
|
||||||
|
require("nvim-treesitter.configs").setup({
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<c-space>",
|
||||||
|
node_incremental = "<c-space>",
|
||||||
|
scope_incremental = "<c-s>",
|
||||||
|
node_decremental = "<M-space>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
1
modules/dev/neovim/lua-config/lua/plugins/typst.lua
Normal file
1
modules/dev/neovim/lua-config/lua/plugins/typst.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
require("lz.n").load({})
|
||||||
@@ -1,51 +1,4 @@
|
|||||||
require("lz.n").load({
|
require("lz.n").load({
|
||||||
-- {
|
|
||||||
-- "catppuccin-nvim",
|
|
||||||
-- event = "VimEnter",
|
|
||||||
-- after = function()
|
|
||||||
-- require("catppuccin").setup({
|
|
||||||
-- flavour = "mocha",
|
|
||||||
-- term_colors = true,
|
|
||||||
-- dim_inactive = {
|
|
||||||
-- enabled = true,
|
|
||||||
-- shade = "dark",
|
|
||||||
-- percentage = 0.15,
|
|
||||||
-- },
|
|
||||||
-- integrations = {
|
|
||||||
-- gitsigns = true,
|
|
||||||
-- telescope = true,
|
|
||||||
-- treesitter = true,
|
|
||||||
-- treesitter_context = true,
|
|
||||||
-- markdown = true,
|
|
||||||
-- which_key = true,
|
|
||||||
-- blink_cmp = {
|
|
||||||
-- style = "bordered",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
--
|
|
||||||
-- native_lsp = {
|
|
||||||
-- enabled = true,
|
|
||||||
-- virtual_text = {
|
|
||||||
-- errors = { "italic" },
|
|
||||||
-- hints = { "italic" },
|
|
||||||
-- warnings = { "italic" },
|
|
||||||
-- information = { "italic" },
|
|
||||||
-- },
|
|
||||||
-- underlines = {
|
|
||||||
-- errors = { "underline" },
|
|
||||||
-- hints = { "underline" },
|
|
||||||
-- warnings = { "underline" },
|
|
||||||
-- information = { "underline" },
|
|
||||||
-- },
|
|
||||||
-- inlay_hints = {
|
|
||||||
-- background = true,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- vim.cmd.colorscheme("catppuccin")
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
{
|
{
|
||||||
"theme-loader",
|
"theme-loader",
|
||||||
event = "VimEnter",
|
event = "VimEnter",
|
||||||
@@ -62,62 +15,6 @@ require("lz.n").load({
|
|||||||
|
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"colorful-menu.nvim",
|
|
||||||
after = function()
|
|
||||||
require("colorful-menu").setup({})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indent-blankline.nvim",
|
|
||||||
event = "User FileOpened",
|
|
||||||
after = function()
|
|
||||||
require("ibl").setup({
|
|
||||||
indent = { char = "|" },
|
|
||||||
scope = {
|
|
||||||
enabled = false,
|
|
||||||
show_start = false,
|
|
||||||
show_end = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"render-markdown.nvim",
|
|
||||||
before = function()
|
|
||||||
require("lz.n").trigger_load({ "nvim-treesitter", "mini.nvim" })
|
|
||||||
end,
|
|
||||||
after = function()
|
|
||||||
require("render-markdown").setup({})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"which-key.nvim",
|
|
||||||
event = "VimEnter",
|
|
||||||
before = function()
|
|
||||||
require("lz.n").trigger_load("nvim-web-devicons")
|
|
||||||
end,
|
|
||||||
after = function()
|
|
||||||
require("which-key").setup({
|
|
||||||
preset = "modern",
|
|
||||||
delay = 200,
|
|
||||||
icons = {
|
|
||||||
-- set icon mappings to true if you have a Nerd Font
|
|
||||||
mappings = true,
|
|
||||||
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
|
||||||
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
|
|
||||||
keys = {},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Document existing key chains
|
|
||||||
spec = {
|
|
||||||
{ "<leader>s", group = "[S]earch" },
|
|
||||||
{ "<leader>t", group = "[T]oggle" },
|
|
||||||
{ "<leader>h", group = "Git [H]unk", mode = { "n", "v" } },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"lualine.nvim",
|
"lualine.nvim",
|
||||||
event = "VimEnter",
|
event = "VimEnter",
|
||||||
@@ -141,54 +38,9 @@ require("lz.n").load({
|
|||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bufferline.nvim",
|
|
||||||
enabled = false,
|
|
||||||
event = "VimEnter",
|
|
||||||
after = function()
|
|
||||||
require("bufferline").setup({
|
|
||||||
options = {
|
|
||||||
mode = "buffers",
|
|
||||||
numbers = "none",
|
|
||||||
|
|
||||||
separator_style = "thick",
|
|
||||||
|
|
||||||
-- Integrations
|
|
||||||
diagnostics = "nvim_lsp",
|
|
||||||
diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
|
||||||
local icon = level:match("error") and " " or " "
|
|
||||||
return " " .. icon .. count
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- Visuals
|
|
||||||
show_buffer_close_icons = false,
|
|
||||||
show_close_icon = false,
|
|
||||||
color_icons = true,
|
|
||||||
show_tab_indicators = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
highlights = {
|
|
||||||
fill = {
|
|
||||||
bg = "NONE", -- Makes the empty space transparent/blended
|
|
||||||
},
|
|
||||||
background = {
|
|
||||||
bg = "NONE", -- Makes inactive buffers transparent/blended
|
|
||||||
},
|
|
||||||
-- Optional: Fix separators if they look "cut off"
|
|
||||||
separator = {
|
|
||||||
fg = { attribute = "bg", highlight = "Normal" },
|
|
||||||
bg = "NONE",
|
|
||||||
},
|
|
||||||
separator_visible = {
|
|
||||||
fg = { attribute = "bg", highlight = "Normal" },
|
|
||||||
bg = "NONE",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"zen-mode.nvim",
|
"zen-mode.nvim",
|
||||||
|
cmd = "ZenMode",
|
||||||
after = function()
|
after = function()
|
||||||
require("zen-mode").setup({
|
require("zen-mode").setup({
|
||||||
window = {
|
window = {
|
||||||
@@ -199,4 +51,31 @@ require("lz.n").load({
|
|||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
})
|
{
|
||||||
|
"which-key.nvim",
|
||||||
|
event = "VimEnter",
|
||||||
|
before = function()
|
||||||
|
require("lz.n").trigger_load("mini.nvim")
|
||||||
|
end,
|
||||||
|
after = function()
|
||||||
|
require("which-key").setup({
|
||||||
|
preset = "modern",
|
||||||
|
delay = 200,
|
||||||
|
icons = {
|
||||||
|
-- set icon mappings to true if you have a Nerd Font
|
||||||
|
mappings = true,
|
||||||
|
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
||||||
|
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||||
|
keys = {},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Document existing key chains
|
||||||
|
spec = {
|
||||||
|
{ "<leader>s", group = "[S]earch" },
|
||||||
|
{ "<leader>t", group = "[T]oggle" },
|
||||||
|
{ "<leader>h", group = "Git [H]unk", mode = { "n", "v" } },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
91
modules/dev/neovim/lua-config/snippets/nix.lua
Normal file
91
modules/dev/neovim/lua-config/snippets/nix.lua
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
local ls = require("luasnip")
|
||||||
|
local s = ls.snippet
|
||||||
|
local t = ls.text_node
|
||||||
|
local i = ls.insert_node
|
||||||
|
|
||||||
|
return {
|
||||||
|
-- Full lux module (both nixos and homeManager)
|
||||||
|
s("luxmod", {
|
||||||
|
t({
|
||||||
|
"{ inputs, ... }:",
|
||||||
|
"{",
|
||||||
|
" lux."
|
||||||
|
}),
|
||||||
|
i(1, "moduleName"),
|
||||||
|
t({
|
||||||
|
" = {",
|
||||||
|
" nixos = { config, lib, pkgs, ... }: {",
|
||||||
|
" "
|
||||||
|
}),
|
||||||
|
i(2),
|
||||||
|
t({
|
||||||
|
"",
|
||||||
|
" };",
|
||||||
|
"",
|
||||||
|
" homeManager = { config, lib, pkgs, ... }: {",
|
||||||
|
" "
|
||||||
|
}),
|
||||||
|
i(3),
|
||||||
|
t({
|
||||||
|
"",
|
||||||
|
" };",
|
||||||
|
" };",
|
||||||
|
"}",
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- lux nixos only module
|
||||||
|
s("luxnixos", {
|
||||||
|
t({
|
||||||
|
"{ inputs, ... }:",
|
||||||
|
"{",
|
||||||
|
" lux."
|
||||||
|
}),
|
||||||
|
i(1, "moduleName"),
|
||||||
|
t({
|
||||||
|
".nixos = { config, lib, pkgs, ... }: {",
|
||||||
|
" "
|
||||||
|
}),
|
||||||
|
i(0),
|
||||||
|
t({
|
||||||
|
"",
|
||||||
|
" };",
|
||||||
|
"}",
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- lux homeManager only module
|
||||||
|
s("luxhm", {
|
||||||
|
t({
|
||||||
|
"{ inputs, ... }:",
|
||||||
|
"{",
|
||||||
|
" lux."
|
||||||
|
}),
|
||||||
|
i(1, "moduleName"),
|
||||||
|
t({
|
||||||
|
".homeManager = { config, lib, pkgs, ... }: {",
|
||||||
|
" "
|
||||||
|
}),
|
||||||
|
i(0),
|
||||||
|
t({
|
||||||
|
"",
|
||||||
|
" };",
|
||||||
|
"}",
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- den inline aspect
|
||||||
|
s("denaspect", {
|
||||||
|
t({
|
||||||
|
"(",
|
||||||
|
" { host, user, ... }: {",
|
||||||
|
" "
|
||||||
|
}),
|
||||||
|
i(0),
|
||||||
|
t({
|
||||||
|
"",
|
||||||
|
" }",
|
||||||
|
")"
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}
|
||||||
@@ -49,6 +49,7 @@
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.imv.enable = true;
|
||||||
programs.sioyek.enable = true;
|
programs.sioyek.enable = true;
|
||||||
|
|
||||||
programs.television = {
|
programs.television = {
|
||||||
@@ -130,6 +131,17 @@
|
|||||||
iosevka
|
iosevka
|
||||||
jetbrains-mono
|
jetbrains-mono
|
||||||
fira-code
|
fira-code
|
||||||
|
|
||||||
|
# Fonts for typst tasteful pairings
|
||||||
|
roboto
|
||||||
|
fira
|
||||||
|
merriweather
|
||||||
|
ibm-plex
|
||||||
|
lexend
|
||||||
|
literata
|
||||||
|
montserrat
|
||||||
|
source-sans-pro
|
||||||
|
source-serif-pro
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ university-calendar-url: ENC[AES256_GCM,data:oGP1BdF3YxdRRr061LaC4HaaiPXoyZq7ZAL
|
|||||||
ssh-config-orion: ENC[AES256_GCM,data:VEe6VSnrpySOdEJ+Sxcc2K6bL/eh/3PjAUNLBjvG7ceJcVnvdA==,iv:yJEhPQ3rYcCn+V7mzC8bPFjkW2GYDArjDJDI8vC1D70=,tag:n49AfsnZZgPuKO8MtAzVtg==,type:str]
|
ssh-config-orion: ENC[AES256_GCM,data:VEe6VSnrpySOdEJ+Sxcc2K6bL/eh/3PjAUNLBjvG7ceJcVnvdA==,iv:yJEhPQ3rYcCn+V7mzC8bPFjkW2GYDArjDJDI8vC1D70=,tag:n49AfsnZZgPuKO8MtAzVtg==,type:str]
|
||||||
orion-ip: ENC[AES256_GCM,data:S6fpCWnD8dvchvrHlEo=,iv:72+oRxHUEJ7imJ+sWjGbG+TUrSqYL8hbyHl3ChwFYwA=,tag:Rj6msje87+Ve+M6kcZd4Jw==,type:str]
|
orion-ip: ENC[AES256_GCM,data:S6fpCWnD8dvchvrHlEo=,iv:72+oRxHUEJ7imJ+sWjGbG+TUrSqYL8hbyHl3ChwFYwA=,tag:Rj6msje87+Ve+M6kcZd4Jw==,type:str]
|
||||||
hashed-password-kiri: ENC[AES256_GCM,data:xubN5stH4RPlHYl+Jzcu2BCepz3Hra3TxjiSspktzjgpEWrU79h3NbcPMrYC0MSjsv3oaWio/S7nBV3Tes3WBlI9EC9vq+6tyTVPynUqpB7c9CvvYSmqc9bAHOnIOBb+gP2RR6JB395UoQ==,iv:uN83RNTfCJdBDhFhywV5NbVBp4xcptqzoKVAoAnaiQk=,tag:x9yufiPdSJwBADT6QymExA==,type:str]
|
hashed-password-kiri: ENC[AES256_GCM,data:xubN5stH4RPlHYl+Jzcu2BCepz3Hra3TxjiSspktzjgpEWrU79h3NbcPMrYC0MSjsv3oaWio/S7nBV3Tes3WBlI9EC9vq+6tyTVPynUqpB7c9CvvYSmqc9bAHOnIOBb+gP2RR6JB395UoQ==,iv:uN83RNTfCJdBDhFhywV5NbVBp4xcptqzoKVAoAnaiQk=,tag:x9yufiPdSJwBADT6QymExA==,type:str]
|
||||||
|
gemini-api-key-neovim: ENC[AES256_GCM,data:B8FeFt45FsU3aagyLDKXiwmx0mRrsw4C8RQ3EWXwZ+YfWLMvwJad,iv:1HqBD6vc07Ke/PMYXfHqFrWDGw/UMjiiBjLRN33/xHI=,tag:czcrYGbJFi41rYtIPM4qTQ==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age122w85pqj508ukv0rd388mahecgfckmpgnsgz0zcyec37ljae2epsdnvxpl
|
- recipient: age122w85pqj508ukv0rd388mahecgfckmpgnsgz0zcyec37ljae2epsdnvxpl
|
||||||
@@ -32,7 +33,7 @@ sops:
|
|||||||
YlZ4VGIzaE5kQ3ZSczI2Wk5IU1UvOXcKqkj/OYP37+60Gr2xJmPE9O7HB7LCu4Tp
|
YlZ4VGIzaE5kQ3ZSczI2Wk5IU1UvOXcKqkj/OYP37+60Gr2xJmPE9O7HB7LCu4Tp
|
||||||
AvvoMQLkkvVJ30Y03pfEzIMnvJHKREy9zDOScfqUflDk79mcDaDhvg==
|
AvvoMQLkkvVJ30Y03pfEzIMnvJHKREy9zDOScfqUflDk79mcDaDhvg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-03-01T17:21:02Z"
|
lastmodified: "2026-03-03T17:11:55Z"
|
||||||
mac: ENC[AES256_GCM,data:O3SPxEu8M7au3NF2jZvqqzj4yK44dH7ccb04n59tZmx5lDQfa6nRTJUrlEnwRPUMYmta1WyYZDSje+Yf9hNLSj9ARKMx9Ot/gfBRISOdDQ5FyeHNEU8aq8/HeRkf2CHJYqbNi8wn27IKrMXOG6TktNUXaqb8v4POo3K0qbJ5Z6s=,iv:Aw4G8VXbr48yWWqVhUa5KQ61y1o6ST8VHRECc9s0f5U=,tag:EP218k82eh7itHYO+iNTwQ==,type:str]
|
mac: ENC[AES256_GCM,data:nDtf2GgJr8SNKo/At41gUpvKyhst6zlBshKcmtiwD+5G0tv78nDvIPR6VAegaSRiHpu1jNVj8hZTaT5jMUYsQ85Kkbz4vr3kYU+nucTRNIDQLnLL+z8qRguO3/fG0OuIQvZACc4rzwINR4+FsS6dlNdpzk1V5NpRLxwfhO0WRHM=,iv:yIdccdCNOYP04iV7v2X7HVjDb5NnTbwshtlSYXZt4KQ=,tag:ObSvx6t0/b7sl1RcdqcCeA==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.12.1
|
version: 3.12.1
|
||||||
|
|||||||
Reference in New Issue
Block a user