Trouble developing module

Hello,
I have developed a home-manager module for my neovim

{ config, lib, pkgs, ...}:
let 
    cfg = config.dotfiles.home-manager.nvim;
in
{
    options.dotfiles.home-manager.nvim= {
        enable = lib.mkEnableOption "Enable nvim module";
        };
    };

    config = lib.mkIf cfg.enable {
        programs.neovim = {
            enable = true;
            defaultEditor = true;
            viAlias = true;
            vimAlias = true;

            extraLuaConfig = (builtins.concatStringsSep "\n" [
               (builtins.readFile ./settings.lua)
            ]);

            extraPackages = with pkgs; [
                #some language servers
                ccls
                lua-language-server
                nil
            ];

            plugins = with pkgs.vimPlugins; [
                rainbow

                kanagawa-nvim
                palenight-vim
                tokyonight-nvim
                onehalf

                nvim-web-devicons
                {
                    plugin = lualine-nvim;
                    type = "lua";
                    config = builtins.readFile ./lualine.lua;
                }
            
                {
                    plugin = nvim-lspconfig;
                    type = "lua";
                    config = builtins.readFile ./lsp.lua;
                }

                vim-gitgutter
                vim-css-color

                {
                    plugin = (nvim-treesitter.withPlugins (p: [
                        p.tree-sitter-nix
                        p.tree-sitter-c
                        p.tree-sitter-cpp
                        p.tree-sitter-lua
                        p.tree-sitter-vim
                        p.tree-sitter-python
                        p.tree-sitter-bash
                        p.tree-sitter-markdown
                    ]));

                    type = "lua";
                    config = builtins.readFile ./treesitter.lua;
                }
           ];
        };
    };
}

now, what i want to do is add an option like lspconfig that adds lsp configs like this one

 require('lspconfig').ccls.setup {
     on_attach = on_attach,
     capabilities = capabilities,
}

And I want to use this option in other flake.nix files like this one:

{
    description = "";

    inputs = {
        nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
        dotfiles.url = "github:Azeved00/.files";
	};

    outputs = { self, ... } @ inputs: 
    let
        pkgs = import inputs.nixpkgs { inherit system; };
        name = "";
        system = "x86_64-linux";
    in {
        imports = [ inputs.dotfiles.homeManagerModules.neovim ];

        dotfiles.home-manager.nvim = {
            enable = false;
            lsps = "
            require('lspconfig').rust_analyzer.setup {
                 on_attach = on_attach,
                 capabilities = capabilities,
            }";
        };

        devShells."${system}".default = pkgs.mkShell {
            inherit name;

            buildInputs = with pkgs; [
                cargo
                rustc
                rust-analyzer
            ];

            shellHook = ''
                export NIX_SHELL_NAME="${name}" 
                echo -ne "\033]0;${name}\007"

                alias build='cargo build'
                alias run='cargo run'
                alias test='cargo test'
                alias dtest='cargo test -- --show-output'
                alias doc='cargo doc'
                alias odoc='cargo doc --open'

                echo 'rustc is @ version ${pkgs.rustc}'
                echo 'cargo is @ version ${pkgs.cargo}'
                reload
            '';

        };
    };
}

Is this possible? if yes how?

Thank you for any and all help!!