Compare commits
7 Commits
023007dc79
...
7153e2d3e3
| Author | SHA1 | Date | |
|---|---|---|---|
| 7153e2d3e3 | |||
| 24b1438410 | |||
| 3d62cc10d3 | |||
| f92f4e8362 | |||
| 60fe1fd579 | |||
| 575d797b5c | |||
| b492aeb371 |
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
homedir = "${config.xdg.dataHome}/gnupg";
|
homedir = "${config.xdg.dataHome}/gnupg";
|
||||||
@@ -15,6 +16,9 @@
|
|||||||
pinentry = {
|
pinentry = {
|
||||||
package = pkgs.pinentry-gnome3;
|
package = pkgs.pinentry-gnome3;
|
||||||
};
|
};
|
||||||
sshKeys = ["CD848796822630B280FC6DFA55F24A20040F22B5"];
|
sshKeys = [
|
||||||
|
"CD848796822630B280FC6DFA55F24A20040F22B5"
|
||||||
|
"B8FBDFBD7F42C444C17E086E0EE2E34FB43A7187"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ let
|
|||||||
typescript
|
typescript
|
||||||
typescript-language-server
|
typescript-language-server
|
||||||
|
|
||||||
|
rustc
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
rustfmt
|
rustfmt
|
||||||
|
|
||||||
|
|||||||
@@ -171,13 +171,25 @@ require("lz.n").load({
|
|||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
end,
|
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" }, path = (nixCats.nixCatsPath or "") .. "/lua" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"blink.cmp",
|
"blink.cmp",
|
||||||
before = function()
|
before = function()
|
||||||
-- Trigger lazydev so it's ready for blink source
|
-- Trigger lazydev so it's ready for blink source
|
||||||
require("lz.n").trigger_load({ "lazydev.nvim", "luasnip" })
|
require("lz.n").trigger_load({ "lazydev.nvim", "luasnip" })
|
||||||
end,
|
end,
|
||||||
event = "VimEnter",
|
|
||||||
after = function()
|
after = function()
|
||||||
require("blink.cmp").setup({
|
require("blink.cmp").setup({
|
||||||
keymap = {
|
keymap = {
|
||||||
|
|||||||
@@ -1,187 +1,172 @@
|
|||||||
require("lz.n").load({
|
require("lz.n").load({
|
||||||
{
|
{
|
||||||
{
|
"nvim-lspconfig",
|
||||||
-- lazydev makes your lsp way better in your config without needing extra lsp configuration.
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
"lazydev.nvim",
|
after = function()
|
||||||
cmd = "LazyDev",
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
ft = "lua",
|
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
||||||
after = function()
|
callback = function(args)
|
||||||
require("lazydev").setup({
|
-- Get the client and buffer from the event arguments [cite: 119]
|
||||||
library = {
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||||
{ words = { "nixCats" }, path = (nixCats.nixCatsPath or "") .. "/lua" },
|
local bufnr = args.buf
|
||||||
|
|
||||||
|
local map = function(keys, func, desc, mode)
|
||||||
|
mode = mode or "n"
|
||||||
|
vim.keymap.set(mode, keys, func, { buffer = bufnr, desc = "LSP: " .. desc })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Mappings (Standard LSP functions from lsp-defaults) [cite: 20-23]
|
||||||
|
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
|
||||||
|
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
|
||||||
|
map("grD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
||||||
|
|
||||||
|
-- Telescope Mappings
|
||||||
|
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
||||||
|
map("gri", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
||||||
|
map("grd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
|
||||||
|
map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
|
||||||
|
map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
|
||||||
|
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
|
||||||
|
|
||||||
|
-- Highlight references (Document Highlight)
|
||||||
|
if client and client:supports_method("textDocument/documentHighlight", bufnr) then
|
||||||
|
local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
|
||||||
|
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
||||||
|
buffer = bufnr,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.document_highlight,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
|
||||||
|
buffer = bufnr,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.clear_references,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("LspDetach", {
|
||||||
|
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
|
||||||
|
callback = function(event)
|
||||||
|
vim.lsp.buf.clear_references()
|
||||||
|
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event.buf })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Inlay Hints
|
||||||
|
if client and client:supports_method("textDocument/inlayHint", bufnr) then
|
||||||
|
map("<leader>th", function()
|
||||||
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }))
|
||||||
|
end, "[T]oggle Inlay [H]ints")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- 1. Setup Diagnostics (Visuals)
|
||||||
|
vim.diagnostic.config({
|
||||||
|
severity_sort = true,
|
||||||
|
-- underline = { severity = vim.diagnostic.severity.ERROR },
|
||||||
|
signs = {
|
||||||
|
text = {
|
||||||
|
[vim.diagnostic.severity.ERROR] = " ",
|
||||||
|
[vim.diagnostic.severity.WARN] = " ",
|
||||||
|
[vim.diagnostic.severity.INFO] = " ",
|
||||||
|
[vim.diagnostic.severity.HINT] = " ",
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
end,
|
virtual_text = {
|
||||||
},
|
source = "if_many",
|
||||||
{
|
spacing = 4,
|
||||||
"nvim-lspconfig",
|
prefix = "●",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
format = function(diagnostic)
|
||||||
after = function()
|
local diagnostic_message = {
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
[vim.diagnostic.severity.ERROR] = diagnostic.message,
|
||||||
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
[vim.diagnostic.severity.WARN] = diagnostic.message,
|
||||||
callback = function(args)
|
[vim.diagnostic.severity.INFO] = diagnostic.message,
|
||||||
-- Get the client and buffer from the event arguments [cite: 119]
|
[vim.diagnostic.severity.HINT] = diagnostic.message,
|
||||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
}
|
||||||
local bufnr = args.buf
|
return diagnostic_message[diagnostic.severity]
|
||||||
|
|
||||||
local map = function(keys, func, desc, mode)
|
|
||||||
mode = mode or "n"
|
|
||||||
vim.keymap.set(mode, keys, func, { buffer = bufnr, desc = "LSP: " .. desc })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Mappings (Standard LSP functions from lsp-defaults) [cite: 20-23]
|
|
||||||
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
|
|
||||||
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
|
|
||||||
map("grD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
|
||||||
|
|
||||||
-- Telescope Mappings
|
|
||||||
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
|
||||||
map("gri", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
|
||||||
map("grd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
|
|
||||||
map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
|
|
||||||
map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
|
|
||||||
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
|
|
||||||
|
|
||||||
-- Highlight references (Document Highlight)
|
|
||||||
if client and client:supports_method("textDocument/documentHighlight", bufnr) then
|
|
||||||
local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
|
|
||||||
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
|
||||||
buffer = bufnr,
|
|
||||||
group = highlight_augroup,
|
|
||||||
callback = vim.lsp.buf.document_highlight,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
|
|
||||||
buffer = bufnr,
|
|
||||||
group = highlight_augroup,
|
|
||||||
callback = vim.lsp.buf.clear_references,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("LspDetach", {
|
|
||||||
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
|
|
||||||
callback = function(event)
|
|
||||||
vim.lsp.buf.clear_references()
|
|
||||||
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event.buf })
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Inlay Hints
|
|
||||||
if client and client:supports_method("textDocument/inlayHint", bufnr) then
|
|
||||||
map("<leader>th", function()
|
|
||||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }))
|
|
||||||
end, "[T]oggle Inlay [H]ints")
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
|
})
|
||||||
|
|
||||||
-- 1. Setup Diagnostics (Visuals)
|
vim.lsp.config("lua_ls", {
|
||||||
vim.diagnostic.config({
|
settings = {
|
||||||
severity_sort = true,
|
Lua = {
|
||||||
-- underline = { severity = vim.diagnostic.severity.ERROR },
|
runtime = { version = "LuaJIT" },
|
||||||
signs = {
|
signatureHelp = { enabled = true },
|
||||||
text = {
|
diagnostics = { globals = { "nixCats", "vim" } },
|
||||||
[vim.diagnostic.severity.ERROR] = " ",
|
telemetry = { enabled = false },
|
||||||
[vim.diagnostic.severity.WARN] = " ",
|
completion = { callSnippet = "Replace" },
|
||||||
[vim.diagnostic.severity.INFO] = " ",
|
},
|
||||||
[vim.diagnostic.severity.HINT] = " ",
|
},
|
||||||
|
})
|
||||||
|
vim.lsp.enable("lua_ls")
|
||||||
|
|
||||||
|
-- Nix
|
||||||
|
vim.lsp.config("nixd", {
|
||||||
|
settings = {
|
||||||
|
nixd = {
|
||||||
|
nixpkgs = { expr = nixCats.extra("nixdExtras.nixpkgs") },
|
||||||
|
options = {
|
||||||
|
nixos = { expr = nixCats.extra("nixdExtras.nixos_options") },
|
||||||
|
["home-manager"] = { expr = nixCats.extra("nixdExtras.home_manager_options") },
|
||||||
},
|
},
|
||||||
|
formatting = { command = { "nixfmt" } },
|
||||||
},
|
},
|
||||||
virtual_text = {
|
},
|
||||||
source = "if_many",
|
})
|
||||||
spacing = 4,
|
vim.lsp.enable("nixd")
|
||||||
prefix = "●",
|
|
||||||
format = function(diagnostic)
|
|
||||||
local diagnostic_message = {
|
|
||||||
[vim.diagnostic.severity.ERROR] = diagnostic.message,
|
|
||||||
[vim.diagnostic.severity.WARN] = diagnostic.message,
|
|
||||||
[vim.diagnostic.severity.INFO] = diagnostic.message,
|
|
||||||
[vim.diagnostic.severity.HINT] = diagnostic.message,
|
|
||||||
}
|
|
||||||
return diagnostic_message[diagnostic.severity]
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.lsp.config("lua_ls", {
|
-- Dafny
|
||||||
settings = {
|
vim.lsp.enable("dafny")
|
||||||
Lua = {
|
|
||||||
runtime = { version = "LuaJIT" },
|
|
||||||
signatureHelp = { enabled = true },
|
|
||||||
diagnostics = { globals = { "nixCats", "vim" } },
|
|
||||||
telemetry = { enabled = false },
|
|
||||||
completion = { callSnippet = "Replace" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.lsp.enable("lua_ls")
|
|
||||||
|
|
||||||
-- Nix
|
-- TypeScript/JS
|
||||||
vim.lsp.config("nixd", {
|
vim.lsp.enable("ts_ls")
|
||||||
settings = {
|
|
||||||
nixd = {
|
|
||||||
nixpkgs = { expr = nixCats.extra("nixdExtras.nixpkgs") },
|
|
||||||
options = {
|
|
||||||
nixos = { expr = nixCats.extra("nixdExtras.nixos_options") },
|
|
||||||
["home-manager"] = { expr = nixCats.extra("nixdExtras.home_manager_options") },
|
|
||||||
},
|
|
||||||
formatting = { command = { "nixfmt" } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.lsp.enable("nixd")
|
|
||||||
|
|
||||||
-- Dafny
|
-- Rust
|
||||||
vim.lsp.enable("dafny")
|
vim.lsp.enable("rust_analyzer")
|
||||||
|
|
||||||
-- TypeScript/JS
|
-- Python
|
||||||
vim.lsp.enable("ts_ls")
|
vim.lsp.config("basedpyright", {
|
||||||
|
settings = {
|
||||||
-- Rust
|
basedpyright = {
|
||||||
vim.lsp.enable("rust_analyzer")
|
analysis = {
|
||||||
|
autoSearchPaths = true,
|
||||||
-- Python
|
useLibraryCodeForTypes = true,
|
||||||
vim.lsp.config("basedpyright", {
|
diagnosticMode = "openFilesOnly",
|
||||||
settings = {
|
typeCheckingMode = "standard",
|
||||||
basedpyright = {
|
inlayHints = {
|
||||||
analysis = {
|
variableTypes = true,
|
||||||
autoSearchPaths = true,
|
callArgumentNames = true,
|
||||||
useLibraryCodeForTypes = true,
|
functionReturnTypes = true,
|
||||||
diagnosticMode = "openFilesOnly",
|
|
||||||
typeCheckingMode = "standard",
|
|
||||||
inlayHints = {
|
|
||||||
variableTypes = true,
|
|
||||||
callArgumentNames = true,
|
|
||||||
functionReturnTypes = true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
vim.lsp.enable("basedpyright")
|
})
|
||||||
|
vim.lsp.enable("basedpyright")
|
||||||
|
|
||||||
vim.lsp.enable("astro")
|
vim.lsp.enable("astro")
|
||||||
|
|
||||||
vim.lsp.config("tinymist", {
|
vim.lsp.config("tinymist", {
|
||||||
settings = {
|
settings = {
|
||||||
tinymist = {
|
tinymist = {
|
||||||
formatterMode = "typstyle",
|
formatterMode = "typstyle",
|
||||||
},
|
|
||||||
},
|
},
|
||||||
})
|
},
|
||||||
vim.lsp.enable("tinymist")
|
})
|
||||||
|
vim.lsp.enable("tinymist")
|
||||||
|
|
||||||
-- vim.lsp.config("ltex_plus", {
|
vim.lsp.config("ltex_plus", {
|
||||||
-- settings = {
|
settings = {
|
||||||
-- ltex = {
|
ltex = {
|
||||||
-- language = "nl",
|
language = "nl",
|
||||||
-- },
|
},
|
||||||
-- },
|
},
|
||||||
-- })
|
})
|
||||||
-- vim.lsp.enable("ltex_plus")
|
vim.lsp.enable("ltex_plus")
|
||||||
|
|
||||||
vim.lsp.enable("harper_ls")
|
vim.lsp.enable("harper_ls")
|
||||||
end,
|
end,
|
||||||
},
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
|
matchBlocks = {
|
||||||
|
"github-work" = {
|
||||||
|
hostname = "github.com";
|
||||||
|
user = "git";
|
||||||
|
identityFile = "/home/kiri/.ssh/github-work.pub";
|
||||||
|
identitiesOnly = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
includes = [
|
includes = [
|
||||||
config.sops.secrets.ssh_config_orion.path
|
config.sops.secrets.ssh_config_orion.path
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
time_format = "%H:%M"
|
time_format = "%H:%M"
|
||||||
default_list = "personal"
|
default_list = "personal"
|
||||||
default_due = 0
|
default_due = 0
|
||||||
default_command = "list --sort due"
|
default_command = "list --sort priority,due"
|
||||||
humanize = True
|
humanize = True
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user