6 Commits

Author SHA1 Message Date
36d278d0a2 flake/overlay: remove pkgs 2024-01-27 19:56:13 +01:00
6db8579d0b get packages back 2024-01-27 19:52:01 +01:00
8f2b1b05e9 flake/overlay: remove pkgs 2024-01-27 19:44:40 +01:00
10b64505cb flake/overlay: remove pkgs 2024-01-27 19:44:04 +01:00
81a8a3fb5d flake/overlay: remove pkgs 2024-01-27 19:41:10 +01:00
237d5e6a66 flake: add overlay 2024-01-27 19:10:17 +01:00
5 changed files with 102 additions and 136 deletions

3
.gitignore vendored
View File

@@ -1,4 +1 @@
result result
.ccls-cache/
hello.c
compile_commands.json

15
flake.lock generated
View File

@@ -2,18 +2,17 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1764494334, "lastModified": 1698266953,
"narHash": "sha256-x2xCEXUlU4Ap56+t5HaoReOQ/bV/bIQ5rzTn/m+V3HQ=", "narHash": "sha256-jf72t7pC8+8h8fUslUYbWTX5rKsRwOzRMX8jJsGqDXA=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d542db745310b6929708d9abea513f3ff19b1341", "rev": "75a52265bda7fd25e06e3a67dee3f0354e73243c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "id": "nixpkgs",
"ref": "nixos-25.11", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "type": "indirect"
"type": "github"
} }
}, },
"root": { "root": {

View File

@@ -2,59 +2,42 @@
description = "A very basic flake"; description = "A very basic flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs.url = "nixpkgs/nixpkgs-unstable";
}; };
outputs = outputs = {
{ self self,
, nixpkgs nixpkgs,
, }: let
}:
let
supportedSystems = ["x86_64-linux" "aarch64-linux"]; supportedSystems = ["x86_64-linux" "aarch64-linux"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems; forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
in additionalDeps = pkgs: [
{ pkgs.alejandra
packages = forAllSystems (system: pkgs.ccls
let pkgs.gopls
pkgs.luaformatter
pkgs.nixd
pkgs.pyright
pkgs.rust-analyzer
pkgs.sumneko-lua-language-server
pkgs.svls
pkgs.texlab
pkgs.tree-sitter
pkgs.verible
pkgs.zls
];
in {
packages = forAllSystems (system: let
pkgs = nixpkgsFor.${system}; pkgs = nixpkgsFor.${system};
neovim = import ./nvim-lsp.nix { inherit pkgs; }; in {
in nvim = import ./nvim-lsp.nix {inherit pkgs;};
{
nvim = pkgs.symlinkJoin {
name = "nvim";
paths = with pkgs;
[
alejandra
ccls
gopls
luaformatter
nixd
nixfmt-rfc-style
pyright
rust-analyzer
lua-language-server
svls
texlab
tree-sitter
tinymist
verible
yaml-language-server
zls
viu
chafa
ueberzugpp
]
++ [ neovim ];
};
}); });
devShells = forAllSystems (system: devShells = forAllSystems (system: let
let
pkgs = nixpkgsFor.${system}; pkgs = nixpkgsFor.${system};
in vim = self.packages.${system};
{ in {
default = pkgs.mkShell { default = pkgs.mkShell {
nativeBuildInputs = [ nativeBuildInputs = [
pkgs.alejandra pkgs.alejandra
@@ -62,29 +45,28 @@
pkgs.gopls pkgs.gopls
pkgs.luaformatter pkgs.luaformatter
pkgs.nixd pkgs.nixd
pkgs.nixfmt-rfc-style
pkgs.pyright pkgs.pyright
pkgs.rust-analyzer pkgs.rust-analyzer
pkgs.lua-language-server pkgs.sumneko-lua-language-server
pkgs.svls pkgs.svls
pkgs.texlab pkgs.texlab
pkgs.tree-sitter pkgs.tree-sitter
pkgs.verible pkgs.verible
pkgs.zls pkgs.zls
(import ./nvim-lsp.nix { inherit pkgs; }) vim
]; ];
}; };
}); });
overlays = forAllSystems (system: overlays = forAllSystems (system: let
let
pkgs = nixpkgsFor.${system}; pkgs = nixpkgsFor.${system};
in in {
{
overlay = final: prev: { overlay = final: prev: {
nvim = self.packages.${system}.nvim; inherit (self.packages.${system}) nvim;
inherit additionalDeps;
}; };
}); });
defaultPackage = forAllSystems (system: self.packages.${system}.nvim); defaultPackage = forAllSystems (system: self.packages.${system}.nvim);
}; };
} }

View File

@@ -1,4 +1,4 @@
{pkgs}: let {pkgs ? import <nixpkgs> {}}: let
neovim = pkgs.neovim.override { neovim = pkgs.neovim.override {
configure = { configure = {
customRC = '' customRC = ''
@@ -19,6 +19,7 @@
parsers.python parsers.python
parsers.query parsers.query
parsers.rust parsers.rust
parsers.verilog
parsers.vimdoc parsers.vimdoc
parsers.zig parsers.zig
])) ]))
@@ -43,7 +44,21 @@
vim-slime vim-slime
vim-snippets vim-snippets
zig-vim zig-vim
nvim-web-devicons ];
nativeBuildInputs = [
pkgs.alejandra
pkgs.ccls
pkgs.gopls
pkgs.luaformatter
pkgs.nixd
pkgs.pyright
pkgs.rust-analyzer
pkgs.sumneko-lua-language-server
pkgs.svls
pkgs.texlab
pkgs.tree-sitter
pkgs.verible
pkgs.zls
]; ];
}; };
}; };

View File

@@ -32,9 +32,11 @@ require 'nvim-treesitter.configs'.setup {
indent = { enable = false, disable = {} }, indent = { enable = false, disable = {} },
rainbow = { rainbow = {
enable = true, enable = true,
extended_mode = true, extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
max_file_lines = 1000, max_file_lines = 1000, -- Do not enable for files with more than 1000 lines, int
colors = { '#ff0000', '#0051a0', '#ffa500', '#ffff00', '#008000', '#8003f2' } colors = {
'#ff0000', '#ffa500', '#ffff00', '#008000', '#0051a0', '#8003f2'
} -- table of hex strings
} }
} }
@@ -182,42 +184,15 @@ cmp.setup({
} }
}) })
local servers = { 'pyright', 'rust_analyzer', 'ccls', 'texlab', 'zls', 'gopls', 'yamlls' } local servers = { 'pyright', 'rust_analyzer', 'ccls', 'nixd', 'texlab', 'zls', 'gopls' }
local capabilities = require('cmp_nvim_lsp').default_capabilities() local capabilities = require('cmp_nvim_lsp').default_capabilities()
for _, lsp in pairs(servers) do for _, lsp in pairs(servers) do
vim.lsp.config(lsp, { require('lspconfig')[lsp].setup {
capabilities = capabilities capabilities = capabilities
}) }
vim.lsp.enable(lsp)
end end
vim.lsp.config('nixd', { require('lspconfig').lua_ls.setup({
cmd = { "nixd" },
settings = {
nixd = {
nixpkgs = {
expr = 'import "${flake.inputs.nixpkgs}" { }',
},
formatting = {
command = { "nixpkgs-fmt" },
},
options = {
nixos = {
expr =
'(let pkgs = import "${inputs.nixpkgs}" { }; in (pkgs.lib.evalModules { modules = (import "${inputs.nixpkgs}/nixos/modules/module-list.nix") ++ [ ({...}: { nixpkgs.hostPlatform = builtins.currentSystem;} ) ] ; })).options',
},
home_manager = {
expr =
'(let pkgs = import "${inputs.nixpkgs}" { }; lib = import "${inputs.home-manager}/modules/lib/stdlib-extended.nix" pkgs.lib; in (lib.evalModules { modules = (import "${inputs.home-manager}/modules/modules.nix") { inherit lib pkgs; check = false; }; })).options',
},
},
},
},
})
vim.lsp.enable('nixd');
vim.lsp.config('lua_ls', {
capabilities = capabilities, capabilities = capabilities,
single_file_support = true, single_file_support = true,
settings = { settings = {
@@ -241,13 +216,11 @@ vim.lsp.config('lua_ls', {
}, },
}, },
}) })
vim.lsp.enable('lua_ls');
vim.lsp.config('verible', { require('lspconfig').verible.setup({
capabilities = capabilities, capabilities = capabilities,
root_dir = function() return vim.fn.getcwd() end root_dir = function() return vim.loop.cwd() end
}) })
vim.lsp.enable('verible');
if vim.fn.exists('+undofile') ~= 0 then if vim.fn.exists('+undofile') ~= 0 then
local undo_dir = vim.env.HOME .. '/.config/nvim/undo' local undo_dir = vim.env.HOME .. '/.config/nvim/undo'