{ config, lib, pkgs, ... }: let inherit (lib.meta) getExe; inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; cfg = config.vim.lsp.presets.harper; filetypes = [ # "asciidoc" "c" "clojure" "cmake" "cpp" "cs" "daml" "dart" "gitcommit" "go" "haskell" "html" "ink" "java" "javascript" "javascriptreact" "kotlin" "lhaskell" "lua" "mail" "markdown" "nix" "php" "python" "ruby" "rust" ]; in { options.vim.lsp.presets.harper = { enable = mkLspPresetEnableOption "harper" "Harper" filetypes; }; config = mkIf cfg.enable { vim.lsp.servers.harper = { enable = true; cmd = [(getExe pkgs.harper) "--stdio"]; root_markers = [".git" ".harper-dictionary.txt"]; inherit filetypes; }; }; }