home/neovim: Add pyls-black

Black’s integrated vim plugin does some virtualenv wizardry that does
not work on nixos.
restic-rest-server
Simon Bruder 2020-11-08 12:17:22 +01:00
parent 3191c9119f
commit 5fb1304dae
No known key found for this signature in database
GPG Key ID: 6F03E0000CC5B62F
1 changed files with 39 additions and 3 deletions

View File

@ -30,6 +30,41 @@ let
sha256 = "1ss065b2psalli46bs3v13fhaplqydh13bg3jg3zr98wbdn70cws"; sha256 = "1ss065b2psalli46bs3v13fhaplqydh13bg3jg3zr98wbdn70cws";
}; };
}; };
pyls-black = pkgs.python3Packages.buildPythonPackage rec {
pname = "pyls-black";
version = "0.4.6";
src = pkgs.python3Packages.fetchPypi {
inherit pname version;
sha256 = "0qsnjrpqhws7ajwg5y01fcpn1y6jc89ql61rpaknwqq5srg0ww1k";
};
propagatedBuildInputs = with pkgs.python3Packages; [
black
toml
];
# circular dependency
doCheck = false;
postPatch = ''
sed -i 's/python-language-server; //' setup.cfg
'';
};
pyls = (pkgs.python3Packages.python-language-server.override {
providers = [
# everything except autopep8 and yapf (conflicts with black)
"mccabe"
"pycodestyle"
"pydocstyle"
"pyflakes"
"pylint"
"rope"
];
}).overrideAttrs (oldAttrs: oldAttrs // {
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
pyls-black
];
});
in in
{ {
programs.neovim = { programs.neovim = {
@ -119,7 +154,7 @@ in
let g:LanguageClient_serverCommands = { let g:LanguageClient_serverCommands = {
\ 'rust': ['rustup', 'run', 'stable', 'rls'], \ 'rust': ['rustup', 'run', 'stable', 'rls'],
\ 'go': ['${pkgs.gopls}/bin/gopls'], \ 'go': ['${pkgs.gopls}/bin/gopls'],
\ 'python': ['${pkgs.python3Packages.python-language-server}/bin/pyls'], \ 'python': ['${pyls}/bin/pyls'],
\ 'typescript': ['${pkgs.nodePackages.javascript-typescript-langserver}/bin/javascript-typescript-stdio'], \ 'typescript': ['${pkgs.nodePackages.javascript-typescript-langserver}/bin/javascript-typescript-stdio'],
\ 'javascript': ['${pkgs.nodePackages.javascript-typescript-langserver}/bin/javascript-typescript-stdio'], \ 'javascript': ['${pkgs.nodePackages.javascript-typescript-langserver}/bin/javascript-typescript-stdio'],
\ 'haskell': ['${pkgs.haskellPackages.haskell-language-server}/bin/haskell-language-server', '--lsp'], \ 'haskell': ['${pkgs.haskellPackages.haskell-language-server}/bin/haskell-language-server', '--lsp'],
@ -134,7 +169,9 @@ in
nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<CR> nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<CR>
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR> nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR> nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
set formatexpr=LanguageClient#textDocument_rangeFormatting_sync() nnoremap <buffer> <silent> <Leader>f :call LanguageClient#textDocument_formatting()<CR>
" disable since it breaks most code
"set formatexpr=LanguageClient#textDocument_rangeFormatting_sync()
endif endif
endfunction endfunction
@ -226,7 +263,6 @@ in
rainbow_csv rainbow_csv
vim-openscad vim-openscad
]; ];
# TODO: add psf/black
}; };
xdg.configFile = { xdg.configFile = {