Compare commits
18 Commits
e3c064d3a9
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
878c87430f
|
|||
|
0147f451a8
|
|||
|
c4084faeff
|
|||
|
6df3b346eb
|
|||
|
779475f024
|
|||
|
a595413b88
|
|||
|
e205831fd9
|
|||
|
34fc2804d7
|
|||
|
b23265403c
|
|||
|
8245a48cc7
|
|||
|
3d82bad6ee
|
|||
|
6e26ec33fa
|
|||
|
b9c3cd2e1a
|
|||
|
a09a34997c
|
|||
|
127047caeb
|
|||
|
60acbede4d
|
|||
|
9f36693f90
|
|||
|
8fdf9bd08c
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,4 @@
|
||||
result
|
||||
.ccls-cache/
|
||||
hello.c
|
||||
compile_commands.json
|
||||
|
||||
15
flake.lock
generated
15
flake.lock
generated
@@ -2,17 +2,18 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1718606988,
|
||||
"narHash": "sha256-pmjP5ePc1jz+Okona3HxD7AYT0wbrCwm9bXAlj08nDM=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1764494334,
|
||||
"narHash": "sha256-x2xCEXUlU4Ap56+t5HaoReOQ/bV/bIQ5rzTn/m+V3HQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "38d3352a65ac9d621b0cd3074d3bef27199ff78f",
|
||||
"rev": "d542db745310b6929708d9abea513f3ff19b1341",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"type": "indirect"
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
|
||||
146
flake.nix
146
flake.nix
@@ -2,73 +2,89 @@
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
};
|
||||
|
||||
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
|
||||
pyright
|
||||
rust-analyzer
|
||||
sumneko-lua-language-server
|
||||
svls
|
||||
texlab
|
||||
tree-sitter
|
||||
verible
|
||||
zls
|
||||
]
|
||||
++ [neovim];
|
||||
};
|
||||
});
|
||||
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.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;})
|
||||
];
|
||||
};
|
||||
});
|
||||
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);
|
||||
};
|
||||
overlays = forAllSystems (system:
|
||||
let
|
||||
pkgs = nixpkgsFor.${system};
|
||||
in
|
||||
{
|
||||
overlay = final: prev: {
|
||||
nvim = self.packages.${system}.nvim;
|
||||
};
|
||||
});
|
||||
defaultPackage = forAllSystems (system: self.packages.${system}.nvim);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
parsers.python
|
||||
parsers.query
|
||||
parsers.rust
|
||||
parsers.verilog
|
||||
parsers.vimdoc
|
||||
parsers.zig
|
||||
]))
|
||||
@@ -44,6 +43,7 @@
|
||||
vim-slime
|
||||
vim-snippets
|
||||
zig-vim
|
||||
nvim-web-devicons
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
43
vimrc.lua
43
vimrc.lua
@@ -34,7 +34,7 @@ require 'nvim-treesitter.configs'.setup {
|
||||
enable = true,
|
||||
extended_mode = true,
|
||||
max_file_lines = 1000,
|
||||
colors = { '#ff0000', '#0051a0' ,'#ffa500', '#ffff00', '#008000', '#8003f2' }
|
||||
colors = { '#ff0000', '#0051a0', '#ffa500', '#ffff00', '#008000', '#8003f2' }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,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 = {
|
||||
@@ -214,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'
|
||||
|
||||
Reference in New Issue
Block a user