OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
main @ 137 LINES
 
[ HISTORY ]  [ UP ]
 

# modules/plugins/vale/default.nix
{
  config,
  pkgs,
  lib,
  ...
}: let
  inherit (lib.options) mkOption mkEnableOption;
  inherit (lib.modules) mkIf mkMerge;
  inherit (lib.types) package enum str;

  languages = [
    "auto"
    "ar"
    "ast-ES"
    "be-BY"
    "br-FR"
    "ca-ES"
    "ca-ES-valencia"
    "da-DK"
    "de"
    "de-AT"
    "de-CH"
    "de-DE"
    "de-DE-x-simple-language"
    "el-GR"
    "en"
    "en-AU"
    "en-CA"
    "en-GB"
    "en-NZ"
    "en-US"
    "en-ZA"
    "eo"
    "es"
    "es-AR"
    "fa"
    "fr"
    "ga-IE"
    "gl-ES"
    "it"
    "ja-JP"
    "km-KH"
    "nl"
    "nl-BE"
    "pl-PL"
    "pt"
    "pt-AO"
    "pt-BR"
    "pt-MZ"
    "pt-PT"
    "ro-RO"
    "ru-RU"
    "sk-SK"
    "sl-SI"
    "sv"
    "ta-IN"
    "tl-PH"
    "uk-UA"
    "zh-CN"
  ];

  cfg = config.vim.languages.markdown;
in {
  options.vim.languages.markdown = {
    vale = {
      enable = mkEnableOption "Vale linting support";
      package = mkOption {
        type = package;
        default = pkgs.vale.withStyles (styles: [
          styles.proselint
          styles.microsoft
          styles.write-good
          styles.readability
          styles.alex
        ]);
        description = "Vale package to use";
      };
    };
    ltex = {
      enable = mkEnableOption "Enable ltex-ls";
      package = mkOption {
        type = package;
        default = pkgs.ltex-ls-plus;
      };
      language = mkOption {
        type = enum languages;
        default = "en";
      };
      modelPath = mkOption {
        type = str;
        default = "~/.config/nvf/models/ngrams/";
      };
    };
  };

  config = mkMerge [
    (mkIf cfg.vale.enable {
      vim.lsp.null-ls = {
        enable = true;
        sources.vale-lint =
          # lua
          ''
            table.insert(
              ls_sources,
              null_ls.builtins.diagnostics.vale.with({
                command = "${cfg.vale.package}/bin/vale",
                diagnostics_format = "#{m} [#{c}]"
              })
            )
          '';
      };
    })
    (mkIf cfg.ltex.enable {
      vim.lsp.lspconfig.enable = true;
      vim.lsp.lspconfig.sources.ltex-lsp =
        # lua
        ''
          lspconfig.ltex.setup{
            cmd = {"${cfg.ltex.package}/bin/ltex-ls-plus"},
            capabilities = capabilities;
            on_attach = default_on_attach;
            flags = { debounce_text_changes = 300 },
            settings = {
              ltex = {
                language = "${cfg.ltex.language}",
                additionalRules = {
                  languageModel = "${cfg.ltex.modelPath}",
                },
              },
            },
          }
        '';
    })
  ];
}

# modules/plugins/vale/default.nix
{
  config,
  pkgs,
  lib,
  ...
}: let
  inherit (lib.options) mkOption mkEnableOpt
ion;
  inherit (lib.modules) mkIf mkMerge;
  inherit (lib.types) package enum str;

  languages = [
    "auto"
    "ar"
    "ast-ES"
    "be-BY"
    "br-FR"
    "ca-ES"
    "ca-ES-valencia"
    "da-DK"
    "de"
    "de-AT"
    "de-CH"
    "de-DE"
    "de-DE-x-simple-language"
    "el-GR"
    "en"
    "en-AU"
    "en-CA"
    "en-GB"
    "en-NZ"
    "en-US"
    "en-ZA"
    "eo"
    "es"
    "es-AR"
    "fa"
    "fr"
    "ga-IE"
    "gl-ES"
    "it"
    "ja-JP"
    "km-KH"
    "nl"
    "nl-BE"
    "pl-PL"
    "pt"
    "pt-AO"
    "pt-BR"
    "pt-MZ"
    "pt-PT"
    "ro-RO"
    "ru-RU"
    "sk-SK"
    "sl-SI"
    "sv"
    "ta-IN"
    "tl-PH"
    "uk-UA"
    "zh-CN"
  ];

  cfg = config.vim.languages.markdown;
in {
  options.vim.languages.markdown = {
    vale = {
      enable = mkEnableOption "Vale linting 
support";
      package = mkOption {
        type = package;
        default = pkgs.vale.withStyles (styl
es: [
          styles.proselint
          styles.microsoft
          styles.write-good
          styles.readability
          styles.alex
        ]);
        description = "Vale package to use";
      };
    };
    ltex = {
      enable = mkEnableOption "Enable ltex-l
s";
      package = mkOption {
        type = package;
        default = pkgs.ltex-ls-plus;
      };
      language = mkOption {
        type = enum languages;
        default = "en";
      };
      modelPath = mkOption {
        type = str;
        default = "~/.config/nvf/models/ngra
ms/";
      };
    };
  };

  config = mkMerge [
    (mkIf cfg.vale.enable {
      vim.lsp.null-ls = {
        enable = true;
        sources.vale-lint =
          # lua
          ''
            table.insert(
              ls_sources,
              null_ls.builtins.diagnostics.v
ale.with({
                command = "${cfg.vale.packag
e}/bin/vale",
                diagnostics_format = "#{m} [
#{c}]"
              })
            )
          '';
      };
    })
    (mkIf cfg.ltex.enable {
      vim.lsp.lspconfig.enable = true;
      vim.lsp.lspconfig.sources.ltex-lsp =
        # lua
        ''
          lspconfig.ltex.setup{
            cmd = {"${cfg.ltex.package}/bin/
ltex-ls-plus"},
            capabilities = capabilities;
            on_attach = default_on_attach;
            flags = { debounce_text_changes 
= 300 },
            settings = {
              ltex = {
                language = "${cfg.ltex.langu
age}",
                additionalRules = {
                  languageModel = "${cfg.lte
x.modelPath}",
                },
              },
            },
          }
        '';
    })
  ];
}
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET