1

Update nixvim to lazy.nvim migration

This commit is contained in:
2024-06-02 03:29:03 +02:00
parent ba650bf89f
commit cfda5847e1
6 changed files with 1122 additions and 1430 deletions

View File

@ -468,12 +468,8 @@ rec {
# p.matplotlib # p.matplotlib
# p.pillow # for ranger # p.pillow # for ranger
# p.pygments # for emacs # p.pygments # for emacs
# flake8 # Linter
# For nvim CHADtree # black
pyyaml
std2
pynvim
pynvim-pp
])) ]))
jetbrains.clion jetbrains.clion
jetbrains.rust-rover jetbrains.rust-rover

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
-- Hide inline diagnostics and show border -- Hide inline diagnostics and show border
vim.diagnostic.config({ vim.diagnostic.config({
virtual_text = false, virtual_text = false,
float = { border = "rounded" } float = { border = "rounded" },
}) })
-- Allow navigating popupmenu completion with Up/Down -- Allow navigating popupmenu completion with Up/Down
vim.api.nvim_set_keymap('c', '<Down>', 'v:lua.get_wildmenu_key("<right>", "<down>")', { expr = true }) vim.api.nvim_set_keymap("c", "<Down>", 'v:lua.get_wildmenu_key("<right>", "<down>")', { expr = true })
vim.api.nvim_set_keymap('c', '<Up>', 'v:lua.get_wildmenu_key("<left>", "<up>")', { expr = true }) vim.api.nvim_set_keymap("c", "<Up>", 'v:lua.get_wildmenu_key("<left>", "<up>")', { expr = true })
function _G.get_wildmenu_key(key_wildmenu, key_regular) function _G.get_wildmenu_key(key_wildmenu, key_regular)
return vim.fn.wildmenumode() ~= 0 and key_wildmenu or key_regular return vim.fn.wildmenumode() ~= 0 and key_wildmenu or key_regular
end end

View File

@ -4,21 +4,21 @@ local o = vim.o
-- Neovide -- Neovide
if g.neovide then if g.neovide then
-- require("notify").notify("Running in NeoVide") -- require("notify").notify("Running in NeoVide")
g.neovide_cursor_animate_command_line = true g.neovide_cursor_animate_command_line = true
g.neovide_cursor_animate_in_insert_mode = true g.neovide_cursor_animate_in_insert_mode = true
g.neovide_fullscreen = false -- g.neovide_fullscreen = false
g.neovide_hide_mouse_when_typing = false g.neovide_hide_mouse_when_typing = true
g.neovide_padding_top = 0 g.neovide_padding_top = 0
g.neovide_padding_bottom = 0 g.neovide_padding_bottom = 0
g.neovide_padding_right = 0 g.neovide_padding_right = 0
g.neovide_padding_left = 0 g.neovide_padding_left = 0
g.neovide_refresh_rate = 144 g.neovide_refresh_rate = 144
g.neovide_theme = 'light' -- g.neovide_theme = "light"
-- Neovide Fonts -- Neovide Fonts
o.guifont = "JetBrainsMono Nerd Font:h13:Medium" o.guifont = "JetBrainsMono Nerd Font:h13:Medium"
else else
-- require("notify").notify("Not running in NeoVide") -- require("notify").notify("Not running in NeoVide")
end end

View File

@ -3,486 +3,491 @@
mylib, mylib,
... ...
}: [ }: [
[ # No Leader
# No Leader {
{ mode = "n";
mode = "n"; key = "<C-s>";
key = "<C-s>"; action = "<cmd>w<CR>";
action = "<cmd>w<CR>"; options.desc = "Save current buffer";
options.desc = "Save current buffer"; }
} {
{ mode = "n";
mode = "n"; key = "<C-S-s>";
key = "<C-S-s>"; action = "<cmd>wa<CR>";
action = "<cmd>wa<CR>"; options.desc = "Save all buffers";
options.desc = "Save all buffers"; }
} {
{ mode = "v";
mode = "v"; key = "<";
key = "<"; action = "<gv";
action = "<gv"; options.desc = "Outdent";
options.desc = "Outdent"; }
} {
{ mode = "v";
mode = "v"; key = ">";
key = ">"; action = ">gv";
action = ">gv"; options.desc = "Indent";
options.desc = "Indent"; }
} {
{ mode = "n";
mode = "n"; key = "<";
key = "<"; action = "v<<Esc>";
action = "v<<Esc>"; options.desc = "Outdent";
options.desc = "Outdent"; }
} {
{ mode = "n";
mode = "n"; key = ">";
key = ">"; action = "v><Esc>";
action = "v><Esc>"; options.desc = "Indent";
options.desc = "Indent"; }
} {
{ mode = "n";
mode = "n"; key = "<C-d>";
key = "<C-d>"; action = "<C-d>zz";
action = "<C-d>zz"; options.desc = "Jump down";
options.desc = "Jump down"; }
} {
{ mode = "n";
mode = "n"; key = "<C-u>";
key = "<C-u>"; action = "<C-u>zz";
action = "<C-u>zz"; options.desc = "Jump up";
options.desc = "Jump up"; }
} {
{ mode = "n";
mode = "n"; key = "n";
key = "n"; action = "nzzzv";
action = "nzzzv"; options.desc = "Next match";
options.desc = "Next match"; }
} {
{ mode = "n";
mode = "n"; key = "N";
key = "N"; action = "Nzzzv";
action = "Nzzzv"; options.desc = "Previous match";
options.desc = "Previous match"; }
} {
{ mode = "i";
mode = "i"; key = "<Tab>";
key = "<Tab>"; action = "<cmd>lua require('intellitab').indent()<CR>";
action = "<cmd>lua require('intellitab').indent()<CR>"; options.desc = "Indent";
options.desc = "Indent"; }
} {
{ mode = "i";
mode = "i"; key = "<C-BS>";
key = "<C-BS>"; action = "<C-w>";
action = "<C-w>"; options.desc = "Delete previous word";
options.desc = "Delete previous word"; }
} {
{ mode = "i";
mode = "i"; key = "<M-BS>";
key = "<M-BS>"; action = "<C-w>";
action = "<C-w>"; options.desc = "Delete previous word";
options.desc = "Delete previous word"; }
} {
{ mode = "i";
mode = "i"; key = "<C-S-v>";
key = "<C-S-v>"; action = "<Esc>\"+pi";
action = "<Esc>\"+pi"; options.desc = "Paste from clipboard";
options.desc = "Paste from clipboard"; }
} {
{ mode = "i";
mode = "i"; key = "<C-v>";
key = "<C-v>"; action = "<Esc>\"+pi";
action = "<Esc>\"+pi"; options.desc = "Paste from clipboard";
options.desc = "Paste from clipboard"; }
} {
{ mode = "v";
mode = "v"; key = "<C-S-c>";
key = "<C-S-c>"; action = "\"+y";
action = "\"+y"; options.desc = "Copy to clipboard";
options.desc = "Copy to clipboard"; }
} {
{ mode = "n";
mode = "n"; key = "<C-h>";
key = "<C-h>"; action = "<cmd>nohlsearch<CR>";
action = "<cmd>nohlsearch<CR>"; options.desc = "Clear search highlights";
options.desc = "Clear search highlights"; }
} {
{ mode = "n";
mode = "n"; key = "K";
key = "K"; action = "<cmd>lua vim.lsp.buf.hover()<CR>";
action = "<cmd>lua vim.lsp.buf.hover()<CR>"; options.desc = "Show LSP hover";
options.desc = "Show LSP hover"; }
}
# General <leader> # General <leader>
{ {
mode = "n"; mode = "n";
key = "<leader>qq"; key = "<leader>qq";
action = "<cmd>quitall<CR>"; action = "<cmd>quitall<CR>";
options.desc = "Quit"; options.desc = "Quit";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>q!"; key = "<leader>q!";
action = "<cmd>quitall!<CR>"; action = "<cmd>quitall!<CR>";
options.desc = "Forceful quit"; options.desc = "Forceful quit";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>L"; key = "<leader>L";
action = "<cmd>Lazy<CR>"; action = "<cmd>Lazy<CR>";
options.desc = "Show Lazy"; options.desc = "Show Lazy";
} }
{ {
mode = "n"; mode = "n";
key = "<leader><Space>"; key = "<leader><Space>";
action = "<cmd>Telescope buffers<CR>"; action = "<cmd>Telescope buffers<CR>";
options.desc = "Show open buffers"; options.desc = "Show open buffers";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>S"; key = "<leader>S";
action = "<cmd>wa<CR>"; action = "<cmd>wa<CR>";
options.desc = "Save all buffers"; options.desc = "Save all buffers";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>f"; key = "<leader>f";
action = "<cmd>Telescope find_files<CR>"; action = "<cmd>Telescope find_files<CR>";
options.desc = "Find file"; options.desc = "Find file";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>o"; key = "<leader>o";
action = "<cmd>Telescope vim_options<CR>"; action = "<cmd>Telescope vim_options<CR>";
options.desc = "Show Vim options"; options.desc = "Show Vim options";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>u"; key = "<leader>u";
action = "<cmd>Telescope undo<CR>"; action = "<cmd>Telescope undo<CR>";
options.desc = "Show undo history"; options.desc = "Show undo history";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>/"; key = "<leader>/";
action = "<cmd>Telescope current_buffer_fuzzy_find<CR>"; action = "<cmd>Telescope current_buffer_fuzzy_find<CR>";
options.desc = "Find in current buffer"; options.desc = "Find in current buffer";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>n"; key = "<leader>n";
action = "<cmd>Telescope notify<CR>"; action = "<cmd>Telescope notify<CR>";
options.desc = "Show notify history"; options.desc = "Show notify history";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>s"; key = "<leader>s";
action = "<cmd>Telescope live_grep<CR>"; action = "<cmd>Telescope live_grep<CR>";
options.desc = "Find in working directory"; options.desc = "Find in working directory";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>r"; key = "<leader>r";
action = "<cmd>Telescope resume<CR>"; action = "<cmd>Telescope resume<CR>";
options.desc = "Show last telescope picker"; options.desc = "Show last telescope picker";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>?"; key = "<leader>?";
action = "<cmd>Telescope keymaps<CR>"; action = "<cmd>Telescope keymaps<CR>";
options.desc = "Show keymaps"; options.desc = "Show keymaps";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>:"; key = "<leader>:";
action = "<cmd>Telescope commands<CR>"; action = "<cmd>Telescope commands<CR>";
options.desc = "Execute command"; options.desc = "Execute command";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>M"; key = "<leader>M";
action = "<cmd>Telescope marks<CR>"; action = "<cmd>Telescope marks<CR>";
options.desc = "Show marks"; options.desc = "Show marks";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>J"; key = "<leader>J";
action = "<cmd>Telescope jumplist<CR>"; action = "<cmd>Telescope jumplist<CR>";
options.desc = "Show jumplist"; options.desc = "Show jumplist";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>m"; key = "<leader>m";
action = "<cmd>Telescope man_pages<CR>"; action = "<cmd>Telescope man_pages<CR>";
options.desc = "Show manpages"; options.desc = "Show manpages";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>h"; key = "<leader>h";
action = "<cmd>Telescope help_tags<CR>"; action = "<cmd>Telescope help_tags<CR>";
options.desc = "Show help tags"; options.desc = "Show help tags";
} }
# Buffers <leader>b # Quit <leader>q
{ {
mode = "n"; mode = "n";
key = "<leader>b"; key = "<leader>q";
action = "+buffers"; action = "+quit";
} }
{
mode = "n";
key = "<leader>bb";
action = "<cmd>Telescope buffers<CR>";
options.desc = "Show open buffers";
}
{
mode = "n";
key = "<leader>bn";
action = "<cmd>bnext<CR>";
options.desc = "Goto next buffer";
}
{
mode = "n";
key = "<leader>bp";
action = "<cmd>bprevious<CR>";
options.desc = "Goto previous buffer";
}
{
mode = "n";
key = "<leader>bd";
action = "<cmd>Bdelete<CR>";
options.desc = "Close current buffer";
}
# Windows <leader>w # Buffers <leader>b
{ {
mode = "n"; mode = "n";
key = "<leader>w"; key = "<leader>b";
action = "+windows"; action = "+buffers";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>ws"; key = "<leader>bb";
action = "<C-w>s"; action = "<cmd>Telescope buffers<CR>";
options.desc = "Split window horizontally"; options.desc = "Show open buffers";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>wv"; key = "<leader>bn";
action = "<C-w>v"; action = "<cmd>bnext<CR>";
options.desc = "Split window vertically"; options.desc = "Goto next buffer";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>wd"; key = "<leader>bp";
action = "<C-w>c"; action = "<cmd>bprevious<CR>";
options.desc = "Close current window"; options.desc = "Goto previous buffer";
} }
# { {
# mode = "n"; mode = "n";
# key = "<leader>wh"; key = "<leader>bd";
# action = "<C-W>s"; action = "<cmd>Bdelete<CR>";
# options.desc = "Split window horizontally"; options.desc = "Close current buffer";
# } }
{
mode = "n";
key = "<leader>wh";
action = "<C-w>h";
options.desc = "Goto left window";
}
{
mode = "n";
key = "<leader>wl";
action = "<C-w>l";
options.desc = "Goto right window";
}
{
mode = "n";
key = "<leader>wj";
action = "<C-w>j";
options.desc = "Goto bottom window";
}
{
mode = "n";
key = "<leader>wk";
action = "<C-w>k";
options.desc = "Goto top window";
}
{
mode = "n";
key = "<leader>ww";
action = "<C-w>p";
options.desc = "Goto other window";
}
# Toggles <leader>t # Windows <leader>w
{ {
mode = "n"; mode = "n";
key = "<leader>t"; key = "<leader>w";
action = "+toggle"; action = "+windows";
} }
# { {
# mode = "n"; mode = "n";
# key = "<leader>tt"; key = "<leader>ws";
# action = "<cmd>Neotree action=show toggle=true<CR>"; action = "<C-w>s";
# options.desc = "Toggle NeoTree"; options.desc = "Split window horizontally";
# } }
{ {
mode = "n"; mode = "n";
key = "<leader>tt"; key = "<leader>wv";
action = "<cmd>CHADopen --nofocus<CR>"; action = "<C-w>v";
options.desc = "Toggle CHADtree"; options.desc = "Split window vertically";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>tn"; key = "<leader>wd";
action = "<cmd>Navbuddy<CR>"; action = "<C-w>c";
options.desc = "Toggle NavBuddy"; options.desc = "Close current window";
} }
{ # {
mode = "n"; # mode = "n";
key = "<leader>td"; # key = "<leader>wh";
action = "<cmd>TroubleToggle focus=false<CR>"; # action = "<C-W>s";
options.desc = "Toggle Trouble"; # options.desc = "Split window horizontally";
} # }
# { {
# mode = "n"; mode = "n";
# key = "<leader>tg"; key = "<leader>wh";
# action = "<cmd>LazyGit<CR>"; action = "<C-w>h";
# } options.desc = "Goto left window";
# { }
# mode = "n"; {
# key = "<leader>tp"; mode = "n";
# action = "<cmd>TroubleToggle<CR>"; key = "<leader>wl";
# } action = "<C-w>l";
options.desc = "Goto right window";
}
{
mode = "n";
key = "<leader>wj";
action = "<C-w>j";
options.desc = "Goto bottom window";
}
{
mode = "n";
key = "<leader>wk";
action = "<C-w>k";
options.desc = "Goto top window";
}
{
mode = "n";
key = "<leader>ww";
action = "<C-w>p";
options.desc = "Goto other window";
}
# Git <leader>g # Toggles <leader>t
{ {
mode = "n"; mode = "n";
key = "<leader>g"; key = "<leader>t";
action = "+git"; action = "+toggle";
} }
{ # {
mode = "n"; # mode = "n";
key = "<leader>gg"; # key = "<leader>tt";
action = "<cmd>LazyGit<CR>"; # action = "<cmd>Neotree action=show toggle=true<CR>";
options.desc = "Show LazyGit"; # options.desc = "Toggle NeoTree";
} # }
{ {
mode = "n"; mode = "n";
key = "<leader>gm"; key = "<leader>tt";
action = "<cmd>GitMessenger<CR>"; action = "<cmd>CHADopen --nofocus<CR>";
options.desc = "Show GitMessenger"; options.desc = "Toggle CHADtree";
} }
# { {
# mode = "n"; mode = "n";
# key = "<leader>gs"; key = "<leader>tn";
# action = "<cmd>Git status<CR>"; action = "<cmd>Navbuddy<CR>";
# } options.desc = "Toggle NavBuddy";
{ }
mode = "n"; {
key = "<leader>gs"; mode = "n";
action = "<cmd>Telescope git_status<CR>"; key = "<leader>td";
options.desc = "Show Git status"; action = "<cmd>TroubleToggle focus=false<CR>";
} options.desc = "Toggle Trouble";
{ }
mode = "n"; # {
key = "<leader>gc"; # mode = "n";
action = "<cmd>Telescope git_commits<CR>"; # key = "<leader>tg";
options.desc = "Show Git log"; # action = "<cmd>LazyGit<CR>";
} # }
{ # {
mode = "n"; # mode = "n";
key = "<leader>gb"; # key = "<leader>tp";
action = "<cmd>Telescope git_branches<CR>"; # action = "<cmd>TroubleToggle<CR>";
options.desc = "Show Git branches"; # }
}
{
mode = "n";
key = "<leader>gf";
action = "<cmd>Telescope git_bcommits<CR>";
options.desc = "Show Git log for current file";
}
# LSP <leader>l # Git <leader>g
{ {
mode = "n"; mode = "n";
key = "<leader>l"; key = "<leader>g";
action = "+lsp"; action = "+git";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>lr"; key = "<leader>gg";
action = "<cmd>Telescope lsp_references<CR>"; action = "<cmd>LazyGit<CR>";
options.desc = "Goto references"; options.desc = "Show LazyGit";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>ld"; key = "<leader>gm";
action = "<cmd>Telescope lsp_definitions<CR>"; action = "<cmd>GitMessenger<CR>";
options.desc = "Goto definition"; options.desc = "Show GitMessenger";
} }
{ # {
mode = "n"; # mode = "n";
key = "<leader>li"; # key = "<leader>gs";
action = "<cmd>Telescope lsp_implementations<CR>"; # action = "<cmd>Git status<CR>";
options.desc = "Goto implementation"; # }
} {
{ mode = "n";
mode = "n"; key = "<leader>gs";
key = "<leader>lt"; action = "<cmd>Telescope git_status<CR>";
action = "<cmd>Telescope lsp_type_definitions<CR>"; options.desc = "Show Git status";
options.desc = "Goto type definition"; }
} {
{ mode = "n";
mode = "n"; key = "<leader>gc";
key = "<leader>lI"; action = "<cmd>Telescope git_commits<CR>";
action = "<cmd>Telescope lsp_incoming_calls<CR>"; options.desc = "Show Git log";
options.desc = "Show incoming calls"; }
} {
{ mode = "n";
mode = "n"; key = "<leader>gb";
key = "<leader>lO"; action = "<cmd>Telescope git_branches<CR>";
action = "<cmd>Telescope lsp_outgoing_calls<CR>"; options.desc = "Show Git branches";
options.desc = "Show outgoing calls"; }
} {
mode = "n";
key = "<leader>gf";
action = "<cmd>Telescope git_bcommits<CR>";
options.desc = "Show Git log for current file";
}
# Code <leader>c # LSP <leader>l
{ {
mode = "n"; mode = "n";
key = "<leader>c"; key = "<leader>l";
action = "+code"; action = "+lsp";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cf"; key = "<leader>lr";
action = "<cmd>lua require('conform').format()<CR>"; action = "<cmd>Telescope lsp_references<CR>";
options.desc = "Format current buffer"; options.desc = "Goto references";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cd"; key = "<leader>ld";
action = "<cmd>Telescope diagnostics<CR>"; action = "<cmd>Telescope lsp_definitions<CR>";
options.desc = "Show diagnostics"; options.desc = "Goto definition";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cr"; key = "<leader>li";
action = "<cmd>lua vim.lsp.buf.rename()<CR>"; action = "<cmd>Telescope lsp_implementations<CR>";
options.desc = "Rename LSP symbol"; options.desc = "Goto implementation";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>ca"; key = "<leader>lt";
action = "<cmd>lua vim.lsp.buf.code_action()<CR>"; action = "<cmd>Telescope lsp_type_definitions<CR>";
options.desc = "Show LSP code actions"; options.desc = "Goto type definition";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>cD"; key = "<leader>lI";
action = "<cmd>lua vim.diagnostic.open_float()<CR>"; action = "<cmd>Telescope lsp_incoming_calls<CR>";
options.desc = "Show LSP line diagnostics"; options.desc = "Show incoming calls";
} }
] {
mode = "n";
key = "<leader>lO";
action = "<cmd>Telescope lsp_outgoing_calls<CR>";
options.desc = "Show outgoing calls";
}
# Code <leader>c
{
mode = "n";
key = "<leader>c";
action = "+code";
}
{
mode = "n";
key = "<leader>cf";
action = "<cmd>lua require('conform').format()<CR>";
options.desc = "Format current buffer";
}
{
mode = "n";
key = "<leader>cd";
action = "<cmd>Telescope diagnostics<CR>";
options.desc = "Show diagnostics";
}
{
mode = "n";
key = "<leader>cr";
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
options.desc = "Rename LSP symbol";
}
{
mode = "n";
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
options.desc = "Show LSP code actions";
}
{
mode = "n";
key = "<leader>cD";
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
options.desc = "Show LSP line diagnostics";
}
] ]

View File

@ -4,6 +4,16 @@
pkgs, pkgs,
... ...
}: [ }: [
{
name = "clangd-extensions";
pkg = pkgs.vimPlugins.clangd_extensions-nvim;
config = ''
function(_, opts)
require("clangd_extensions").setup(opts)
end
'';
}
{ {
name = "conform"; name = "conform";
pkg = pkgs.vimPlugins.conform-nvim; pkg = pkgs.vimPlugins.conform-nvim;
@ -31,6 +41,12 @@
}; };
} }
{
name = "haskell-tools";
pkg = pkgs.vimPlugins.haskell-tools-nvim;
# Don't call setup!
}
{ {
name = "lint"; name = "lint";
pkg = pkgs.vimPlugins.nvim-lint; pkg = pkgs.vimPlugins.nvim-lint;
@ -66,25 +82,29 @@
{ {
name = "lspconfig"; name = "lspconfig";
pkg = pkgs.vimPlugins.nvim-lspconfig; pkg = pkgs.vimPlugins.nvim-lspconfig;
dependencies = [
{
name = "neodev";
pkg = pkgs.vimPlugins.neodev-nvim;
config = ''
function(_, opts)
require("neodev").setup(opts)
end
'';
}
];
lazy = false; lazy = false;
config = let config = let
servers = mylib.generators.toLuaObject [ servers = mylib.generators.toLuaObject [
{name = "clangd";} {name = "clangd";}
{name = "clojure_lsp";} {name = "clojure_lsp";}
{name = "cmake";} {name = "cmake";}
{name = "lua-ls";} {name = "lua_ls";}
{name = "nil_ls";} {name = "nil_ls";}
{name = "pyright";} {name = "pyright";}
{name = "rust_analyzer";} # {name = "rust_analyzer";} # Don't set up when using rustaceanvim
{name = "texlab";} {name = "texlab";}
# {name = "hls";} # Don't set up when using haskell-tools
{
name = "hls";
cmd = [
"haskell-language-server-wrapper"
"--lsp"
];
}
]; ];
in '' in ''
function(_, opts) function(_, opts)
@ -121,17 +141,94 @@
} }
{ {
name = "rustaceanvim";
pkg = pkgs.vimPlugins.rustaceanvim;
# Don't call setup!
}
(let
nvim-plugintree = pkgs.vimPlugins.nvim-treesitter.withPlugins (
p:
with p; [
bash
bibtex
c
clojure
cmake
cpp
csv
disassembly
dockerfile
dot
doxygen
fish
gitignore
haskell
haskell_persistent
html
ini
java
javascript
json
julia
kotlin
lua
make
markdown
markdown_inline
nasm
nix
objdump
org
passwd
perl
printf
python
r
regex
requirements
ruby
rust
scala
scss
sql
toml
typescript
verilog
xml
yaml
]
);
treesitter-parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = nvim-plugintree.dependencies;
};
in {
name = "treesitter"; name = "treesitter";
pkg = pkgs.vimPlugins.nvim-treesitter.withAllGrammars; pkg = pkgs.vimPlugins.nvim-treesitter;
lazy = false; lazy = false;
config = '' config = ''
function(_, opts) function(_, opts)
vim.opt.runtimepath:append("${nvim-plugintree}")
vim.opt.runtimepath:append("${treesitter-parsers}")
require("nvim-treesitter.configs").setup(opts) require("nvim-treesitter.configs").setup(opts)
end end
''; '';
opts = { opts = {
highlight.enable = true; auto_install = false;
indent.enable = true; ensure_installed = [];
parser_install_dir = "${treesitter-parsers}";
indent = {
enable = true;
# disable = ["python" "yaml"];
};
highlight = {
enable = true;
# disable = ["yaml"];
additional_vim_regex_highlighting = false;
};
# TODO: Doesn't work # TODO: Doesn't work
incremental_selection = { incremental_selection = {
@ -144,5 +241,5 @@
}; };
}; };
}; };
} })
] ]