mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-08 00:04:33 +02:00
* barbar: package option * Base16: package option * gruvbox: package option * nord: package option * one: package option * onedark: package option * tokyonight: package option * nvim-cmp: package option * coq: package option * lspkind: package option * helpers: added package option to mkPlugin * fugitive: package option * gitgutter: package option * gitsigns: package option * neogit: package option * ledger: package option * nix: package option * plantuml-syntax: package option * treesitter-context: package option + formatting * treesitter-refactor: package option + formatting * treesitter: package option * zig: package option * null-ls: package option * null-ls/servers: package option * lsp-lines: package option * lspsaga: package option * trouble: package option * luasnip: added description for package option * airline: package option * lightline: package option * lualine: package option * telescope: package option * telescope/frecency: package option * telescope/fzf-native: package option * telescope/media-files: package option * comment-nvim: package option * vim-commentary: package option * dashboard: package option * easyescape: package option * emmet: package option * endwise: package option * floaterm: package option * goyo: package option * intellitab: package option * mark-radar: package option * notify: package option * nvim-autopairs: package option * nvim-tree: package option * project-nvim: package option * specs: package option * startify: package option * surround: package option * undotree: package option
66 lines
1.6 KiB
Nix
66 lines
1.6 KiB
Nix
{ pkgs, config, lib, inputs, ... }@args:
|
|
let
|
|
helpers = import ./helpers.nix args;
|
|
serverData = {
|
|
code_actions = {
|
|
gitsigns = { };
|
|
};
|
|
completion = { };
|
|
diagnostics = {
|
|
flake8 = {
|
|
package = pkgs.python3Packages.flake8;
|
|
};
|
|
shellcheck = {
|
|
package = pkgs.shellcheck;
|
|
};
|
|
};
|
|
formatting = {
|
|
phpcbf = {
|
|
package = pkgs.phpPackages.phpcbf;
|
|
};
|
|
alejandra = {
|
|
package = pkgs.alejandra;
|
|
};
|
|
nixfmt = {
|
|
package = pkgs.nixfmt;
|
|
};
|
|
prettier = {
|
|
package = pkgs.nodePackages.prettier;
|
|
};
|
|
black = {
|
|
package = pkgs.python3Packages.black;
|
|
};
|
|
beautysh = {
|
|
package = inputs.beautysh.packages.${pkgs.system}.beautysh-python38;
|
|
};
|
|
fourmolu = {
|
|
package = pkgs.haskellPackages.fourmolu;
|
|
};
|
|
fnlfmt = {
|
|
package = pkgs.fnlfmt;
|
|
};
|
|
};
|
|
};
|
|
# Format the servers to be an array of attrs like the following example
|
|
# [{
|
|
# name = "prettier";
|
|
# sourceType = "formatting";
|
|
# packages = [...];
|
|
# }]
|
|
serverDataFormatted = lib.mapAttrsToList
|
|
(sourceType: sourceSet:
|
|
lib.mapAttrsToList (name: attrs: attrs // { inherit sourceType name; }) sourceSet
|
|
)
|
|
serverData;
|
|
dataFlattened = lib.flatten serverDataFormatted;
|
|
in
|
|
{
|
|
imports = lib.lists.map (helpers.mkServer) dataFlattened;
|
|
|
|
config = let
|
|
cfg = config.plugins.null-ls;
|
|
in
|
|
lib.mkIf cfg.enable {
|
|
plugins.gitsigns.enable = lib.mkIf (cfg.sources.code_actions.gitsigns.enable) true;
|
|
};
|
|
}
|