1
0
Fork 0
nix-flake-base/languages/dhall/default.nix
2025-09-04 20:02:48 -05:00

52 lines
1.4 KiB
Nix

# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
#
# SPDX-License-Identifier: LGPL-3.0-or-later
{ module-name, ... }:
{ flake-parts-lib, lib, ... }:
{
options.perSystem = flake-parts-lib.mkPerSystemOption (
{ config, pkgs, ... }:
{
options.languages.${module-name} = {
enable = lib.mkEnableOption "Dhall";
package = lib.mkOption {
description = ''
Package for Dhall.
'';
type = lib.types.package;
default = pkgs.ghc;
};
};
config = lib.mkIf config.languages.${module-name}.enable ({
editors.helix.languages = {
language = [
{
name = "dhall";
language-servers = [
"dhall-lsp-server"
]
++ (lib.optionals config.languages.en-us.enable [ "typos" ]);
formatter = {
command = "${config.treefmt.build.wrapper}/bin/treefmt";
args = [
"--stdin"
"%{buffer_name}"
"--quiet"
];
};
auto-format = true;
}
];
language-server.dhall-lsp-server = {
};
language-server.haskell-language-server = {
command = "${pkgs.dhall-lsp-server}/bin/dhall-lsp-server";
};
};
treefmt.programs.dhall.enable = true;
});
}
);
}