Compare commits
13 Commits
custom_col
...
9652f4cb75
| Author | SHA1 | Date | |
|---|---|---|---|
| 9652f4cb75 | |||
| df0441425f | |||
| 6347d51dc2 | |||
| 3c95acb92e | |||
| a81f0a2041 | |||
| 8555092095 | |||
| b9f6e59d12 | |||
| 871a8b4a8c | |||
| d26fa59d72 | |||
| 2544f1130f | |||
| 44eaabc43c | |||
| aa745901c6 | |||
| 6ebd6e83c6 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
result
|
||||
1
.nixd.json
Normal file
1
.nixd.json
Normal file
@@ -0,0 +1 @@
|
||||
{"formatting":{"command":"alejandra"}}
|
||||
11
flake.lock
generated
11
flake.lock
generated
@@ -2,18 +2,17 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1688646010,
|
||||
"narHash": "sha256-kCeza5eKI2NEi8k0EoeZfv3lN1r1Vwx+L/VA6I8tmG4=",
|
||||
"lastModified": 1698266953,
|
||||
"narHash": "sha256-jf72t7pC8+8h8fUslUYbWTX5rKsRwOzRMX8jJsGqDXA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5daaa32204e9c46b05cd709218b7ba733d07e80c",
|
||||
"rev": "75a52265bda7fd25e06e3a67dee3f0354e73243c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
|
||||
52
flake.nix
52
flake.nix
@@ -2,31 +2,47 @@
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
}: let
|
||||
supportedSystems = ["x86_64-linux" "aarch64-linux"];
|
||||
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
||||
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;})
|
||||
];
|
||||
};
|
||||
packages = forAllSystems (system: let
|
||||
pkgs = nixpkgsFor.${system};
|
||||
in {
|
||||
nvim = 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.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;})
|
||||
];
|
||||
};
|
||||
});
|
||||
|
||||
defaultPackage = forAllSystems (system: self.packages.${system}.nvim);
|
||||
};
|
||||
}
|
||||
|
||||
89
nvim-lsp.nix
89
nvim-lsp.nix
@@ -7,42 +7,59 @@
|
||||
EOF
|
||||
'';
|
||||
|
||||
packages.myPlugins.start = with pkgs.vimPlugins; [
|
||||
(nvim-treesitter.withPlugins (parsers: [
|
||||
parsers.c
|
||||
parsers.cpp
|
||||
parsers.json
|
||||
parsers.latex
|
||||
parsers.lua
|
||||
parsers.nix
|
||||
parsers.python
|
||||
parsers.query
|
||||
parsers.rust
|
||||
parsers.verilog
|
||||
parsers.vimdoc
|
||||
parsers.zig
|
||||
]))
|
||||
cmp-buffer
|
||||
cmp-cmdline
|
||||
cmp-nvim-lsp
|
||||
cmp-nvim-ultisnips
|
||||
cmp-path
|
||||
colorizer
|
||||
fugitive
|
||||
fzf-lua
|
||||
gruvbox
|
||||
nvim-cmp
|
||||
nvim-lspconfig
|
||||
nvim-ts-rainbow
|
||||
repeat
|
||||
targets-vim
|
||||
UltiSnips
|
||||
vim-addon-nix
|
||||
vim-signify
|
||||
vim-slime
|
||||
vim-snippets
|
||||
zig-vim
|
||||
];
|
||||
packages.myPlugins.start = with pkgs.vimPlugins;
|
||||
[
|
||||
(nvim-treesitter.withPlugins (parsers: [
|
||||
parsers.c
|
||||
parsers.cpp
|
||||
parsers.go
|
||||
parsers.json
|
||||
parsers.latex
|
||||
parsers.lua
|
||||
parsers.nix
|
||||
parsers.python
|
||||
parsers.query
|
||||
parsers.rust
|
||||
parsers.verilog
|
||||
parsers.vimdoc
|
||||
parsers.zig
|
||||
]))
|
||||
cmp-buffer
|
||||
cmp-cmdline
|
||||
cmp-nvim-lsp
|
||||
cmp-nvim-ultisnips
|
||||
cmp-path
|
||||
colorizer
|
||||
fugitive
|
||||
fzf-lua
|
||||
gruvbox
|
||||
nvim-cmp
|
||||
nvim-lspconfig
|
||||
nvim-ts-rainbow
|
||||
repeat
|
||||
targets-vim
|
||||
UltiSnips
|
||||
vim-addon-nix
|
||||
vim-signify
|
||||
vim-slime
|
||||
vim-snippets
|
||||
zig-vim
|
||||
]
|
||||
++ [
|
||||
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
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
73
vimrc.lua
73
vimrc.lua
@@ -1,22 +1,30 @@
|
||||
-- Basic settings
|
||||
vim.g.loaded_matchparen = true
|
||||
vim.g.netrw_liststyle = 3
|
||||
vim.go.background = 'dark'
|
||||
vim.go.belloff = 'all'
|
||||
vim.go.breakindent = true
|
||||
vim.go.hlsearch = false
|
||||
vim.go.laststatus = 0
|
||||
vim.go.lazyredraw = true
|
||||
vim.go.showcmd = true
|
||||
vim.go.synmaxcol = 800
|
||||
vim.go.syntax = 'on'
|
||||
vim.go.termguicolors = true
|
||||
vim.go.titleold = vim.fn.getcwd()
|
||||
vim.go.title = true
|
||||
vim.go.wildmenu = true
|
||||
vim.go.wrap = true
|
||||
vim.wo.number = true
|
||||
|
||||
local glob_opts = {
|
||||
background = 'dark',
|
||||
belloff = 'all',
|
||||
breakindent = true,
|
||||
hlsearch = false,
|
||||
laststatus = 0,
|
||||
lazyredraw = true,
|
||||
showcmd = true,
|
||||
synmaxcol = 800,
|
||||
syntax = 'on',
|
||||
termguicolors = true,
|
||||
titleold = vim.fn.getcwd(),
|
||||
title = true,
|
||||
wildmenu = true,
|
||||
wrap = true,
|
||||
}
|
||||
|
||||
for option, value in pairs(glob_opts) do
|
||||
vim.go[option] = value
|
||||
end
|
||||
|
||||
|
||||
vim.cmd([[colorscheme gruvbox]])
|
||||
|
||||
require 'nvim-treesitter.configs'.setup {
|
||||
@@ -99,6 +107,19 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
||||
end
|
||||
})
|
||||
|
||||
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)
|
||||
|
||||
-- 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)
|
||||
|
||||
-- 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)
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
local cmp = require 'cmp'
|
||||
@@ -163,7 +184,7 @@ cmp.setup({
|
||||
}
|
||||
})
|
||||
|
||||
local servers = { 'pyright', 'rust_analyzer', 'ccls', 'lua_ls', 'nixd', 'texlab', 'verible' }
|
||||
local servers = { 'pyright', 'rust_analyzer', 'ccls', 'nixd', 'texlab', 'zls', 'gopls' }
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
for _, lsp in pairs(servers) do
|
||||
require('lspconfig')[lsp].setup {
|
||||
@@ -172,10 +193,32 @@ for _, lsp in pairs(servers) do
|
||||
end
|
||||
|
||||
require('lspconfig').lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
single_file_support = true,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
runtime = {
|
||||
version = 'LuaJIT',
|
||||
path = vim.split(package.path, ';'),
|
||||
},
|
||||
workspace = {
|
||||
library = {
|
||||
[vim.fn.expand('$VIMRUNTIME/lua')] = true,
|
||||
[vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
|
||||
},
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require('lspconfig').verible.setup({
|
||||
capabilities = capabilities,
|
||||
root_dir = function() return vim.loop.cwd() end
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user