68 lines
1.5 KiB
Nix
68 lines
1.5 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
programs.neovim = {
|
|
enable = true;
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
catppuccin-nvim
|
|
tokyonight-nvim
|
|
nvim-lspconfig
|
|
nvim-cmp
|
|
cmp-nvim-lsp
|
|
cmp-buffer
|
|
cmp-path
|
|
plenary-nvim
|
|
telescope-nvim
|
|
(nvim-treesitter.withAllGrammars)
|
|
vim-nix
|
|
];
|
|
|
|
extraLuaConfig = ''
|
|
vim.cmd("colorscheme tokyonight")
|
|
-- Basic settings
|
|
vim.o.number = true
|
|
vim.o.relativenumber = true
|
|
|
|
-- =========================
|
|
-- LSP (Neovim 0.11+ way)
|
|
-- =========================
|
|
|
|
-- Add cmp capabilities
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
|
|
vim.lsp.config("nil_ls", {
|
|
capabilities = capabilities,
|
|
})
|
|
|
|
vim.lsp.enable("nil_ls")
|
|
|
|
-- =========================
|
|
-- nvim-cmp
|
|
-- =========================
|
|
|
|
local cmp = require("cmp")
|
|
|
|
cmp.setup({
|
|
mapping = cmp.mapping.preset.insert({
|
|
["<C-Space>"] = cmp.mapping.complete(),
|
|
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
|
}),
|
|
sources = {
|
|
{ name = "nvim_lsp" },
|
|
{ name = "buffer" },
|
|
{ name = "path" },
|
|
}
|
|
})
|
|
|
|
-- =========================
|
|
-- Telescope
|
|
-- =========================
|
|
|
|
local builtin = require("telescope.builtin")
|
|
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
|
|
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
|
'';
|
|
};
|
|
}
|