Skip to content

none-ls: override default tool configuration #60

Description

@practicalli-johnny

Add a configuration file that allows none-ls (formerly null-ls) default tool configurations.

Example:

  • use a JSONC configuration to provide personal rules use by the markdownlint tool for markdown file type
-- ---------------------------------------------------------
-- Configure format & lint tools
--
-- Ensure tools are installed via Mason
-- Pass configuration files to each tool
-- ---------------------------------------------------------

-- if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE

---@type LazySpec
return {
  -- use mason-lspconfig to configure LSP installations
  -- use mason-null-ls to configure Formatters/Linter installation for null-ls sources
  {
    "jay-babu/mason-null-ls.nvim",
    -- overrides `require("mason-null-ls").setup(...)`
    opts = function(_, opts)
      -- add more things to the ensure_installed table protecting against community packs modifying it
      opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, {
        "markdownlint",
        -- add more arguments for adding more null-ls sources
      })
      opts.handlers = {
        markdownlint = function(source_name, methods)
          local null_ls = require "null-ls"
          null_ls.register(null_ls.builtins.diagnostics.markdownlint.with {
            -- extra_args = { "--config", "~/.config/markdownlint.yaml" },
            extra_args = { "--config", "~/.config/markdown-lint.jsonc" },
          })
        end,
      }
    end,
  },
}

Metadata

Metadata

Labels

No labels
No labels

Fields

No fields configured for Feature.

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions