Compare commits

36 Commits

Author SHA1 Message Date
878c87430f nvim/lsp: fix server not beeing enabled; remove tinymist 2025-12-01 14:12:20 +01:00
0147f451a8 meta: format 2025-12-01 14:11:58 +01:00
c4084faeff nvim/lsp: switch to native LSP configuration built-in 2025-12-01 10:32:29 +01:00
6df3b346eb nvim-ts: remove verilog parser 2025-12-01 01:42:13 +01:00
779475f024 nixpkgs: 25.05 -> 25.11 2025-12-01 01:40:56 +01:00
a595413b88 add: viu, chaffa, ueberzugpp 2025-08-29 13:18:17 +02:00
e205831fd9 add nvim-web-devicons 2025-08-29 13:09:29 +02:00
34fc2804d7 flake: update 2025-08-25 18:15:01 +02:00
b23265403c update 24.11 -> 25.05; typst_lsp -> tinymst 2025-05-24 11:11:17 +02:00
8245a48cc7 add nixfmt to runtime pkgs 2025-01-10 18:03:29 +01:00
3d82bad6ee pkgs: add nixfmt-rfc-style 2025-01-08 18:32:17 +01:00
6e26ec33fa gitignore: update 2024-12-03 23:15:07 +01:00
b9c3cd2e1a gitignore: update 2024-12-03 23:14:02 +01:00
a09a34997c lsp: add typist_lsp 2024-12-03 22:33:03 +01:00
127047caeb lsp: add yaml-lsp-server 2024-12-03 22:24:57 +01:00
60acbede4d switch nixpkgs to 24.11 2024-12-03 22:09:52 +01:00
9f36693f90 lua -> vim.loop.cwd() -> vim.fn.getcwd() 2024-09-25 16:42:15 +02:00
8fdf9bd08c flake: update 2024-09-25 16:39:17 +02:00
e3c064d3a9 flake: update 2024-06-19 10:12:55 +02:00
8754d5b79d flake: update 2024-05-31 11:44:03 +02:00
ba6b926cc4 flake: update 2024-04-12 17:28:34 +02:00
201161972e packages: re-enable nixd 2024-04-12 17:26:46 +02:00
2b10f5cb32 nvim-lsp: remove implicit pkgs definition 2024-03-16 22:09:08 +01:00
c055bd2a2f flake: add bundled package, remove nixd over unresolved CVE 2024-03-16 19:06:45 +01:00
f042e08ecd Revert "flake: add arm64-linux target"
This reverts commit 13bed01615.
2024-03-16 17:12:06 +01:00
13bed01615 flake: add arm64-linux target 2024-03-16 15:32:53 +01:00
3f9559992a lua: format 2024-03-16 15:22:08 +01:00
9332c56c01 nvim-lsp: remove nativeBuildInputs 2024-03-16 15:09:45 +01:00
a9bc0c8a7a flake: update 2024-03-16 14:20:14 +01:00
5bba266c6e flake: add symlink for needed packages in overlay 2024-03-16 14:13:23 +01:00
dce3a89665 nvim-ts-rainbow -> rainbow-delimiters-nvim 2023-12-21 22:45:36 +01:00
b660608fb3 plugin: add editorconfig-nvim 2023-10-31 21:20:26 +01:00
9652f4cb75 repo: add gitignore 2023-10-27 01:40:00 +02:00
df0441425f nixd: add config 2023-10-27 01:39:32 +02:00
6347d51dc2 lsp_servers: move packages from flake.nix to nvim-lsp.nix 2023-10-27 01:39:05 +02:00
3c95acb92e flake: update configuration, add proper outputs and arm64 target 2023-10-27 01:38:31 +02:00
6 changed files with 140 additions and 50 deletions

4
.gitignore vendored Normal file
View File

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

1
.nixd.json Normal file
View File

@@ -0,0 +1 @@
{"formatting":{"command":"alejandra"}}

12
flake.lock generated
View File

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

106
flake.nix
View File

@@ -2,31 +2,89 @@
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
};
outputs = {
self,
nixpkgs,
}: let
pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs;
in {
nvim = pkgs.mkShell {
nativeBuildInputs = [
pkgs.alejandra
pkgs.ccls
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
(import ./nvim-lsp.nix {inherit pkgs;})
];
outputs =
{ self
, nixpkgs
,
}:
let
supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
in
{
packages = forAllSystems (system:
let
pkgs = nixpkgsFor.${system};
neovim = import ./nvim-lsp.nix { inherit pkgs; };
in
{
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:
let
pkgs = nixpkgsFor.${system};
in
{
default = pkgs.mkShell {
nativeBuildInputs = [
pkgs.alejandra
pkgs.ccls
pkgs.gopls
pkgs.luaformatter
pkgs.nixd
pkgs.nixfmt-rfc-style
pkgs.pyright
pkgs.rust-analyzer
pkgs.lua-language-server
pkgs.svls
pkgs.texlab
pkgs.tree-sitter
pkgs.verible
pkgs.zls
(import ./nvim-lsp.nix { inherit pkgs; })
];
};
});
overlays = forAllSystems (system:
let
pkgs = nixpkgsFor.${system};
in
{
overlay = final: prev: {
nvim = self.packages.${system}.nvim;
};
});
defaultPackage = forAllSystems (system: self.packages.${system}.nvim);
};
};
}

View File

@@ -1,4 +1,4 @@
{pkgs ? import <nixpkgs> {}}: let
{pkgs}: let
neovim = pkgs.neovim.override {
configure = {
customRC = ''
@@ -11,7 +11,7 @@
(nvim-treesitter.withPlugins (parsers: [
parsers.c
parsers.cpp
parsers.go
parsers.go
parsers.json
parsers.latex
parsers.lua
@@ -19,7 +19,6 @@
parsers.python
parsers.query
parsers.rust
parsers.verilog
parsers.vimdoc
parsers.zig
]))
@@ -29,13 +28,13 @@
cmp-nvim-ultisnips
cmp-path
colorizer
editorconfig-nvim
fugitive
fzf-lua
gopls
gruvbox
nvim-cmp
nvim-lspconfig
nvim-ts-rainbow
rainbow-delimiters-nvim
repeat
targets-vim
UltiSnips
@@ -44,6 +43,7 @@
vim-slime
vim-snippets
zig-vim
nvim-web-devicons
];
};
};

View File

@@ -32,11 +32,9 @@ require 'nvim-treesitter.configs'.setup {
indent = { enable = false, disable = {} },
rainbow = {
enable = true,
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
max_file_lines = 1000, -- Do not enable for files with more than 1000 lines, int
colors = {
'#ff0000', '#ffa500', '#ffff00', '#008000', '#0051a0', '#8003f2'
} -- table of hex strings
extended_mode = true,
max_file_lines = 1000,
colors = { '#ff0000', '#0051a0', '#ffa500', '#ffff00', '#008000', '#8003f2' }
}
}
@@ -107,18 +105,18 @@ vim.api.nvim_create_autocmd('LspAttach', {
end
})
vim.diagnostic.config({ virtual_text = false}) -- Turn off inline diagnostics
vim.diagnostic.config({ virtual_text = false }) -- Turn off inline diagnostics
-- Show all diagnostics on current line in floating window
vim.api.nvim_set_keymap( 'n', '<Leader>d', ':lua vim.diagnostic.open_float()<CR>', opts)
vim.api.nvim_set_keymap('n', '<Leader>d', ':lua vim.diagnostic.open_float()<CR>', opts)
-- Go to next diagnostic (if there are multiple on the same line, only shows
-- one at a time in the floating window)
vim.api.nvim_set_keymap( 'n', '<Leader>n', ':lua vim.diagnostic.goto_next()<CR>', opts)
vim.api.nvim_set_keymap('n', '<Leader>n', ':lua vim.diagnostic.goto_next()<CR>', opts)
-- Go to prev diagnostic (if there are multiple on the same line, only shows
-- one at a time in the floating window)
vim.api.nvim_set_keymap( 'n', '<Leader>p', ':lua vim.diagnostic.goto_prev()<CR>', opts)
vim.api.nvim_set_keymap('n', '<Leader>p', ':lua vim.diagnostic.goto_prev()<CR>', opts)
-- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches
@@ -184,15 +182,42 @@ cmp.setup({
}
})
local servers = { 'pyright', 'rust_analyzer', 'ccls', 'nixd', 'texlab', 'zls', 'gopls' }
local servers = { 'pyright', 'rust_analyzer', 'ccls', 'texlab', 'zls', 'gopls', 'yamlls' }
local capabilities = require('cmp_nvim_lsp').default_capabilities()
for _, lsp in pairs(servers) do
require('lspconfig')[lsp].setup {
vim.lsp.config(lsp, {
capabilities = capabilities
}
})
vim.lsp.enable(lsp)
end
require('lspconfig').lua_ls.setup({
vim.lsp.config('nixd', {
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,
single_file_support = true,
settings = {
@@ -216,11 +241,13 @@ require('lspconfig').lua_ls.setup({
},
},
})
vim.lsp.enable('lua_ls');
require('lspconfig').verible.setup({
vim.lsp.config('verible', {
capabilities = capabilities,
root_dir = function() return vim.loop.cwd() end
root_dir = function() return vim.fn.getcwd() end
})
vim.lsp.enable('verible');
if vim.fn.exists('+undofile') ~= 0 then
local undo_dir = vim.env.HOME .. '/.config/nvim/undo'