mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-28 03:20:08 +02:00
null-ls: init with prettier and flake8 (#31)
This commit is contained in:
parent
f12a79bda6
commit
5cb317a5cb
4 changed files with 128 additions and 0 deletions
46
plugins/null-ls/helpers.nix
Normal file
46
plugins/null-ls/helpers.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
|
||||
{
|
||||
mkServer = {
|
||||
name,
|
||||
sourceType,
|
||||
description ? "Enable ${name} source, for null-ls.",
|
||||
packages ? [],
|
||||
... }:
|
||||
# returns a module
|
||||
{ pkgs, config, lib, ... }@args:
|
||||
with lib;
|
||||
let
|
||||
helpers = import ../helpers.nix args;
|
||||
cfg = config.programs.nixvim.plugins.null-ls.sources.${sourceType}.${name};
|
||||
in
|
||||
{
|
||||
options.programs.nixvim.plugins.null-ls.sources.${sourceType}.${name} = {
|
||||
enable = mkEnableOption description;
|
||||
|
||||
# TODO: withArgs can exist outside of the module in a generalized manner
|
||||
withArgs = mkOption {
|
||||
default = null;
|
||||
type = with types; nullOr str;
|
||||
description = ''Raw Lua code to be called with the with function'';
|
||||
# Not sure that it makes sense to have the same example for all servers
|
||||
# example = ''
|
||||
# '\'{ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }'\'
|
||||
# '';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.nixvim = {
|
||||
extraPackages = packages;
|
||||
|
||||
# Add source to list of sources
|
||||
plugins.null-ls.sourcesItems = let
|
||||
sourceItem = "${sourceType}.${name}";
|
||||
withArgs = if (isNull cfg.withArgs) then sourceItem else "${sourceItem}.with ${cfg.withArgs}";
|
||||
finalString = ''require("null-ls").builtins.${withArgs}'';
|
||||
in [ (helpers.mkRaw finalString) ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue