122 lines
5.6 KiB
Nix
122 lines
5.6 KiB
Nix
{ lib, ... }:
|
|
{
|
|
# Import all your configuration modules here
|
|
imports = [
|
|
./mini.nix
|
|
./undotree.nix
|
|
./treesitter-textobjects.nix
|
|
./treesitter-context.nix
|
|
./treesitter.nix
|
|
./lsp-format.nix
|
|
./lsp.nix
|
|
./dap.nix
|
|
./dap-ui.nix
|
|
./dap-virtual-text.nix
|
|
./competitest.nix
|
|
./bufferline.nix
|
|
./ts-comments.nix
|
|
./flash.nix
|
|
./ts-autotag.nix
|
|
./lualine.nix
|
|
./noice.nix
|
|
./catppuccin.nix
|
|
./trouble.nix
|
|
];
|
|
opts = {
|
|
number = true;
|
|
relativenumber = true;
|
|
shiftwidth = 2;
|
|
smartindent = false;
|
|
cindent = true;
|
|
scrolloff = 5;
|
|
};
|
|
globals = {
|
|
mapleader = " ";
|
|
};
|
|
diagnostic.settings =
|
|
let
|
|
diagnostic = {
|
|
error = " ";
|
|
warning = " ";
|
|
hint = " ";
|
|
info = " ";
|
|
};
|
|
in
|
|
{
|
|
virtual_lines = {
|
|
current_line = true;
|
|
};
|
|
virtual_text = {
|
|
source = "if_many";
|
|
prefix = lib.nixvim.mkRaw ''
|
|
function (diagnostic, index, total)
|
|
if diagnostic.severity == vim.diagnostic.severity.ERROR then
|
|
return "${diagnostic.error}"
|
|
end
|
|
if diagnostic.severity == vim.diagnostic.severity.WARN then
|
|
return "${diagnostic.warning}"
|
|
end
|
|
if diagnostic.severity == vim.diagnostic.severity.HINT then
|
|
return "${diagnostic.hint}"
|
|
end
|
|
if diagnostic.severity == vim.diagnostic.severity.INFO then
|
|
return "${diagnostic.info}"
|
|
end
|
|
end
|
|
'';
|
|
};
|
|
update_in_insert = true;
|
|
severity_sort = true;
|
|
signs = {
|
|
text = lib.nixvim.utils.toRawKeys {
|
|
"vim.diagnostic.severity.ERROR" = diagnostic.error;
|
|
"vim.diagnostic.severity.WARN" = diagnostic.warning;
|
|
"vim.diagnostic.severity.HINT" = diagnostic.hint;
|
|
"vim.diagnostic.severity.INFO" = diagnostic.info;
|
|
};
|
|
};
|
|
};
|
|
extraConfigLua = ''
|
|
vim.keymap.set("n", "<leader>pb", ":Pick buffers<CR>", {desc = "Pick buffers"})
|
|
vim.keymap.set("n", "<leader>pd", ":Pick diagnostic<CR>", {desc = "Pick diagnostic"})
|
|
vim.keymap.set("n", "<leader>pe", ":Pick explorer<CR>", {desc = "Pick explorer"})
|
|
vim.keymap.set("n", "<leader>pf", ":Pick files<CR>", {desc = "Pick files"})
|
|
vim.keymap.set("n", "<leader>pg", ":Pick grep_live<CR>", {desc = "Pick grep live"})
|
|
vim.keymap.set("n", "<leader>ph", ":Pick git_hunks<CR>", {desc = "Pick git hunks"})
|
|
vim.keymap.set("n", "<leader>pl", ":Pick lsp<CR>", {desc = "Pick lsp"})
|
|
vim.keymap.set("n", "<leader>pm", ":Pick marks<CR>", {desc = "Pick marks"})
|
|
vim.keymap.set({"n", "v"}, "<leader>de", function() require("dapui").eval() end, {desc = "Debug eval"})
|
|
vim.keymap.set("n", "<F5>", function() require("dap").continue() end, {desc = "Debug continue"})
|
|
vim.keymap.set("n", "<F10>", function() require("dap").step_over() end, {desc = "Debug step over"})
|
|
vim.keymap.set("n", "<F11>", function() require("dap").step_into() end, {desc = "Debug step into"})
|
|
vim.keymap.set("n", "<F12>", function() require("dap").step_out() end, {desc = "Debug step out"})
|
|
vim.keymap.set("n", "<leader>db", function() require("dap").toggle_breakpoint() end, {desc = "Debug toggle breakpoint"})
|
|
vim.keymap.set("n", "<leader>dB", function() require("dap").set_breakpoint() end, {desc = "Debug set breakpoint"})
|
|
vim.keymap.set("n", "<leader>dc", function() require("dap").set_breakpoint(vim.fn.input('Condition: ')) end, {desc = "Debug set conditional breakpoint"})
|
|
vim.keymap.set("n", "<leader>dl", function() require("dap").set_breakpoint(nil, nil, vim.fn.input('Log point message:')) end, {desc = "Debug set logpoint"})
|
|
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end, {desc = "Debug repl open"})
|
|
vim.keymap.set("n", "<leader>dp", function() require("dap").run_last() end, {desc = "Debug run last"})
|
|
vim.keymap.set("n", "<leader>dC", function () dapui.close() require("dap").terminate() end, {desc = "Close Dap-UI"})
|
|
vim.keymap.set("n", "<leader>a", "<cmd>lua vim.lsp.buf.code_action()<CR>", {desc = "Apply code action"})
|
|
vim.keymap.set("n", "<leader>u", "<cmd>UndotreeToggle<CR>", {desc = "Toggle undo tree"})
|
|
vim.keymap.set('n', '<Leader>mc', MiniMap.close, {desc = "Map close"})
|
|
vim.keymap.set('n', '<Leader>mf', MiniMap.toggle_focus, {desc = "Map toggle focus"})
|
|
vim.keymap.set('n', '<Leader>mo', MiniMap.open, {desc = "Map open"})
|
|
vim.keymap.set('n', '<Leader>mr', MiniMap.refresh, {desc = "Map refresh"})
|
|
vim.keymap.set('n', '<Leader>ms', MiniMap.toggle_side, {desc = "Map toggle side"})
|
|
vim.keymap.set('n', '<Leader>mt', MiniMap.toggle, {desc = "Map toggle"})
|
|
vim.keymap.set('n', '<Leader>ct', ":CompetiTest run<CR>", {desc = "Competitest run"})
|
|
vim.keymap.set('n', '<Leader>crt', ":CompetiTest receive testcases<CR>", {desc = "Receive testcases"})
|
|
vim.keymap.set('n', '<Leader>crp', ":CompetiTest receive problem<CR>", {desc = "Receive problem"})
|
|
vim.keymap.set('n', '<Leader>crc', ":CompetiTest receive contest<CR>", {desc = "Receive contest"})
|
|
vim.keymap.set('n', '<Leader>ca', ":CompetiTest add_testcase<CR>", {desc = "Competitest add testcase"})
|
|
vim.keymap.set('n', '<Leader>ce', ":CompetiTest edit_testcase<CR>", {desc = "Competitest edit testcase"})
|
|
vim.keymap.set('n', '<Leader>cd', ":CompetiTest delete_testcase<CR>", {desc = "Competitest delete testcase"})
|
|
|
|
local imap_expr = function(lhs, rhs)
|
|
vim.keymap.set('i', lhs, rhs, { expr = true })
|
|
end
|
|
imap_expr('<Tab>', [[pumvisible() ? "\<C-n>" : "\<Tab>"]])
|
|
imap_expr('<S-Tab>', [[pumvisible() ? "\<C-p>" : "\<S-Tab>"]])
|
|
'';
|
|
}
|