Init lazyvim
This commit is contained in:
138
flake.nix
138
flake.nix
@@ -3,28 +3,16 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
groovyls.url = "github:miknikif/groovyls";
|
||||
groovyls.inputs.nixpkgs.follows = "nixpkgs";
|
||||
npm-groovy-lint.url = "github:miknikif/npm-groovy-lint";
|
||||
npm-groovy-lint.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
outputs = inputs @ {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
groovyls,
|
||||
npm-groovy-lint,
|
||||
...
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
inherit
|
||||
(import ./overlays.nix {
|
||||
inherit inputs;
|
||||
})
|
||||
overlays
|
||||
;
|
||||
};
|
||||
|
||||
recursiveMerge = attrList: let
|
||||
@@ -41,35 +29,24 @@
|
||||
f [] attrList;
|
||||
in rec {
|
||||
dependencies = with pkgs; [
|
||||
nil # nix lsp
|
||||
ripgrep
|
||||
zsh # terminal requires it
|
||||
fd
|
||||
git
|
||||
curl # needed to fetch titles from urls
|
||||
zk # lsp for markdown notes
|
||||
terraform-ls # terraform lsp
|
||||
tflint # terraform linter
|
||||
shellcheck # sh scripts check
|
||||
proselint # ditto
|
||||
luaformatter # ditto for lua
|
||||
lua-language-server
|
||||
prisma-engines # ditto for schema.prisma files
|
||||
nodePackages.prettier # ditto
|
||||
nodePackages.bash-language-server # bash lsp
|
||||
nodePackages.vscode-json-languageserver # json lsp
|
||||
pkgs.npm-groovy-lint # groovy lsp
|
||||
python310Packages.python-lsp-server # todo: is specifying 310 an issue?
|
||||
alejandra # nix formatter alternative
|
||||
statix # linter for nix
|
||||
vale # linter for prose
|
||||
jdk11 # for groovy
|
||||
groovy
|
||||
pkgs.groovyls # groovy lsp
|
||||
go # go itself
|
||||
golangci-lint # go lint
|
||||
golangci-lint-langserver # go lint
|
||||
gopls # google go lsp
|
||||
packer # hcl formatter
|
||||
lazygit
|
||||
wget
|
||||
cargo
|
||||
python310
|
||||
python310Packages.pip
|
||||
php82
|
||||
php82Packages.composer
|
||||
go
|
||||
ruby
|
||||
luarocks
|
||||
nodejs
|
||||
zulu #java11
|
||||
fish
|
||||
fzf
|
||||
];
|
||||
neovim-augmented = recursiveMerge [
|
||||
pkgs.neovim-unwrapped
|
||||
@@ -88,91 +65,16 @@
|
||||
customRC =
|
||||
''
|
||||
lua << EOF
|
||||
package.path = "${self}/?.lua;" .. package.path
|
||||
groovyls_cmd = { "${pkgs.jdk11}/bin/java", "-jar", "${pkgs.groovyls}/groovyls-all.jar" }
|
||||
groovy_lsp_settings = { groovy = { classpath = { "${pkgs.groovy}/lib" } } }
|
||||
package.path = "${self}/lua/?.lua;" .. package.path
|
||||
''
|
||||
+ pkgs.lib.readFile ./init.lua
|
||||
+ ''
|
||||
EOF
|
||||
'';
|
||||
packages.myPlugins = with pkgs.vimPlugins; {
|
||||
start = with pkgs.vimPlugins; [
|
||||
# Common dependencies of other plugins
|
||||
popup-nvim # dependency
|
||||
plenary-nvim # dependency of some other plugins
|
||||
|
||||
nvim-treesitter # syntax highlight
|
||||
crates-nvim # inline intelligence for Cargo.toml
|
||||
nvim-lspconfig # LSP for intilligent coding
|
||||
null-ls-nvim # formatting and linting via lsp system
|
||||
lspsaga-nvim
|
||||
trouble-nvim # navigate all warnings and errors in quickfix-like window
|
||||
fidget-nvim # show lsp status in bottom right but not status line
|
||||
neodev-nvim # help for neovim lua api
|
||||
lsp-format-nvim
|
||||
SchemaStore-nvim # json schemas
|
||||
# vim-fugitive # git control
|
||||
|
||||
# UI
|
||||
onedarkpro-nvim # colorscheme
|
||||
todo-comments-nvim # highlight TODO comments
|
||||
ir_black # colorscheme for basic terminals
|
||||
telescope-nvim # da best popup fuzzy finder
|
||||
telescope-fzy-native-nvim # with fzy gives better results
|
||||
telescope-frecency-nvim # and frecency comes in handy too
|
||||
nvim-colorizer-lua # color over CSS like #00ff00
|
||||
nvim-web-devicons # makes things pretty; used by many plugins below
|
||||
nvim-tree-lua # file navigator
|
||||
gitsigns-nvim # git status in gutter
|
||||
symbols-outline-nvim # navigate the current file better
|
||||
lualine-nvim # nice status bar at bottom
|
||||
# vim-tpipeline # combine tmux and vim statusbars into a single one
|
||||
vim-bbye # fix bdelete buffer stuff needed with bufferline
|
||||
bufferline-nvim
|
||||
indent-blankline-nvim # visual indent
|
||||
toggleterm-nvim # better terminal management
|
||||
nvim-treesitter.withAllGrammars # better code coloring
|
||||
# playground # treesitter playground
|
||||
nvim-treesitter-textobjects # jump around and select based on syntax (class, function, etc.)
|
||||
nvim-treesitter-context # keep current block header (func defn or whatever) on first line
|
||||
lf-vim
|
||||
|
||||
# Autocompletion
|
||||
nvim-cmp # generic autocompleter
|
||||
cmp-nvim-lsp # use lsp as source for completions
|
||||
cmp-nvim-lua # makes vim config editing better with completions
|
||||
cmp-buffer # any text in open buffers
|
||||
cmp-path # complete paths
|
||||
cmp-cmdline # completing in :commands
|
||||
cmp-emoji # complete :emojis:
|
||||
cmp-nvim-lsp-signature-help # help complete function call by showing args
|
||||
cmp-npm # complete node packages in package.json
|
||||
nvim-autopairs # balances parens as you type
|
||||
nvim-ts-autotag # balance or rename html
|
||||
vim-emoji # TODO: redundant now?
|
||||
luasnip # snippets driver
|
||||
cmp_luasnip # snippets completion
|
||||
friendly-snippets # actual library of snippets used by luasnip
|
||||
zk-nvim # lsp for a folder of notes for searching/linking/etc
|
||||
true-zen-nvim # distraction free, width constrained writing mode
|
||||
|
||||
undotree # better vim file edit history
|
||||
comment-nvim # code commenter
|
||||
nvim-surround # .... updated lua-based alternative to tpope's surround
|
||||
nui-nvim # UI Component Library for Neovim
|
||||
gitsigns-nvim # git file changes
|
||||
project-nvim
|
||||
vim-tmux-navigator # navigate vim and tmux panes together
|
||||
impatient-nvim # speeds startup times by caching lua bytecode
|
||||
which-key-nvim # WhichKey is a lua plugin for Neovim 0.5 that displays a popup with possible key bindings of the command you started typing
|
||||
diffview-nvim # git diff viewer
|
||||
];
|
||||
opt = with pkgs.vimPlugins; [
|
||||
# grammar check
|
||||
vim-grammarous
|
||||
];
|
||||
};
|
||||
# packages.myPlugins = with pkgs.vimPlugins; {
|
||||
# start = with pkgs.vimPlugins; [];
|
||||
# opt = with pkgs.vimPlugins; [];
|
||||
# };
|
||||
};
|
||||
};
|
||||
apps.pwnvim = flake-utils.lib.mkApp {
|
||||
|
||||
Reference in New Issue
Block a user