This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / astronvim / flake-module.nix
2.6 kB 86 lines
1{ inputs , ... }: 2{ 3 perSystem = { system, lib, pkgs, ... }: let 4 nvim-appname = "lassvim"; 5 6 lsp-packages = with pkgs; [ 7 nodejs # copilot 8 terraform-ls 9 nodePackages.pyright 10 11 # based on ./suggested-pkgs.json 12 gopls 13 golangci-lint 14 nodePackages.bash-language-server 15 taplo-lsp 16 marksman 17 selene 18 rust-analyzer 19 yaml-language-server 20 nil 21 shellcheck 22 shfmt 23 ruff 24 ruff-lsp 25 nixfmt-rfc-style 26 terraform-ls 27 clang-tools 28 nodePackages.prettier 29 stylua 30 # based on https://github.com/ray-x/go.nvim#go-binaries-install-and-update 31 go 32 gofumpt 33 gomodifytags 34 gotools 35 delve 36 golines 37 gomodifytags 38 gotests 39 iferr 40 impl 41 reftools 42 ginkgo 43 richgo 44 govulncheck 45 46 #ocaml-ng.ocamlPackages_5_0.ocaml-lsp 47 #ocaml-ng.ocamlPackages_5_0.ocamlformat 48 # does not build yet on aarch64 49 ] ++ lib.optional (pkgs.stdenv.hostPlatform.system == "x86_64-linux") pkgs.deno 50 ++ lib.optional (!pkgs.stdenv.hostPlatform.isDarwin) sumneko-lua-language-server; 51 52 lspEnv = pkgs.buildEnv { 53 name = "lspEnv"; 54 paths = lsp-packages; 55 }; 56 57 treesitter-grammars = pkgs.runCommand "treesitter-grammars" { } ( 58 lib.concatMapStringsSep "\n" (grammar: '' 59 mkdir -p $out 60 ln -s $(readlink -f ${grammar}/parser/*.so) $out/${lib.last (builtins.split "-" grammar.name)}.so 61 '') pkgs.vimPlugins.nvim-treesitter.withAllGrammars.dependencies 62 ); 63 64 in { 65 packages.vim = pkgs.writeShellScriptBin "vim" '' 66 set -efux 67 unset VIMINIT 68 export PATH=${lspEnv}/bin:$PATH 69 export NVIM_APPNAME=${nvim-appname} 70 71 XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config} 72 XDG_DATA_HOME=''${XDG_DATA_HOME:-$HOME/.local/share} 73 74 mkdir -p "$XDG_CONFIG_HOME/$NVIM_APPNAME" "$XDG_DATA_HOME" 75 chmod -R u+w "$XDG_CONFIG_HOME/$NVIM_APPNAME" 76 rm -rf "$XDG_CONFIG_HOME/$NVIM_APPNAME" 77 cp -arfT '${./config}'/ "$XDG_CONFIG_HOME/$NVIM_APPNAME" 78 chmod -R u+w "$XDG_CONFIG_HOME/$NVIM_APPNAME" 79 ${pkgs.neovim}/bin/nvim --headless -c 'quitall' # install plugins 80 mkdir -p "$XDG_DATA_HOME/$NVIM_APPNAME/lib/" "$XDG_DATA_HOME/$NVIM_APPNAME/site/" 81 ln -sfT "${pkgs.vimPlugins.telescope-fzf-native-nvim}/build/libfzf.so" "$XDG_DATA_HOME/$NVIM_APPNAME/lib/libfzf.so" 82 ln -sfT "${treesitter-grammars}" "$XDG_DATA_HOME/$NVIM_APPNAME/site/parser" 83 exec ${pkgs.neovim}/bin/nvim "$@" 84 ''; 85 }; 86}