65 lines
1.2 KiB
Nix
65 lines
1.2 KiB
Nix
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
|
|
{
|
|
programs.neovim = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
ripgrep
|
|
fd
|
|
tree-sitter
|
|
];
|
|
|
|
# Minimal LSP setup - expand as needed
|
|
plugins = with pkgs.vimPlugins; [
|
|
# essentials
|
|
nvim-lspconfig
|
|
nvim-cmp
|
|
cmp-nvim-lsp
|
|
luasnip
|
|
friendly-snippets
|
|
|
|
# ui improvements
|
|
telescope-nvim
|
|
telescope-fzf-native-nvim
|
|
lualine-nvim
|
|
nvim-web-devicons
|
|
nvim-tree-lua
|
|
|
|
# treesitter
|
|
nvim-treesitter
|
|
nvim-treesitter-context
|
|
|
|
# git integration
|
|
gitsigns-nvim
|
|
vim-fugitive
|
|
];
|
|
|
|
# Basic init.lua configuration
|
|
extraConfig = ''
|
|
lua << EOF
|
|
-- Basic settings
|
|
vim.opt.number = true
|
|
vim.opt.relativenumber = true
|
|
vim.opt.expandtab = true
|
|
vim.opt.shiftwidth = 2
|
|
vim.opt.tabstop = 2
|
|
vim.opt.smartindent = true
|
|
|
|
-- LSP
|
|
local lspconfig = require('lspconfig')
|
|
|
|
-- Python
|
|
lspconfig.pyright.setup{}
|
|
|
|
-- Rust
|
|
lspconfig.rust_analyzer.setup{}
|
|
|
|
-- Node/JavaScript
|
|
lspconfig.ts_ls.setup{}
|
|
EOF
|
|
'';
|
|
};
|
|
}
|