Compare commits

13 Commits

Author SHA1 Message Date
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
a81f0a2041 go: add gopls 2023-10-26 14:52:30 +02:00
8555092095 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7131f3c223a2d799568e4b278380cd9dac2b8579' (2023-10-04)
  → 'github:NixOS/nixpkgs/75a52265bda7fd25e06e3a67dee3f0354e73243c' (2023-10-25)
2023-10-26 14:48:34 +02:00
b9f6e59d12 flake: update 2023-10-04 20:59:16 +02:00
871a8b4a8c enable zls (zig language server) 2023-07-10 10:41:56 +02:00
d26fa59d72 shorten keybind expressions 2023-07-10 10:30:17 +02:00
2544f1130f don't call lsp setup twice, clieanup global opt setting 2023-07-09 17:23:18 +02:00
44eaabc43c lua_ls: fix vim global not found 2023-07-09 12:01:44 +02:00
aa745901c6 don't display diagnostics by default 2023-07-08 17:15:22 +02:00
6ebd6e83c6 don\'t display diagnostics by default 2023-07-08 17:11:09 +02:00
6 changed files with 152 additions and 75 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
result

1
.nixd.json Normal file
View File

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

11
flake.lock generated
View File

@@ -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": {

View File

@@ -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);
};
}

View File

@@ -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
];
};
};

View File

@@ -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
})