Skip to content

A Neovim rewrite of the vscode-gremlins extension, designed to reveal unwanted or invisible characters in your code.

License

Notifications You must be signed in to change notification settings

Cyan903/gremlins.nvim

Repository files navigation

gremlins.nvim

code-size last-commit license

A Neovim rewrite of the vscode-gremlins extension, designed to reveal unwanted or invisible characters in your code.

Quickstart with lazy.nvim

return {
    "Cyan903/gremlins.nvim",

    opts = {},

    config = function(_, opts)
        local gremlins = require("gremlins")

        -- Open popup.
        vim.keymap.set("n", "<leader>gs", gremlins.select, { desc = "Gremlins select." })

        -- Create quickfix list.
        vim.keymap.set("n", "<leader>gc", gremlins.qflist, { desc = "Gremlins quickfix." })

        -- Jump to next gremlin.
        vim.keymap.set("n", "<leader>gj", gremlins.next, { desc = "Gremlins next." })

        -- Jump to previous gremlin.
        vim.keymap.set("n", "<leader>gk", gremlins.prev, { desc = "Gremlins previous." })

        gremlins.setup(opts)
    end,
}

Configuration

The default configuration is recommended, but custom parameters can be provided through the setup function. Gremlins with a custom file type will only appear in the specified file type. You can view the default config in config.lua.

require("gremlins").setup {
    icon = "😈",
    gremlins = {
        -- NOTE: Gremlins can simply be strings.
        "2013",

        -- NOTE: Or be more descriptive with a specified filetype.
        {
            name = "2013",
            description = "en dash",
            filetype = "markdown",
        },

        -- NOTE: Multiple filetypes are supported.
        {
            name = "2013",
            description = "en dash",
            filetype = { "markdown", "go" },
        },
    }
}

API

.setup() must be called before the API can be used.

-- Open `vim.ui.select` with a list of gremlins in the current file.
require("gremlins").select()

-- Create and open a quickfix list of gremlins in the current file.
require("gremlins").qflist()

-- Jump to previous gremlin in file.
require("gremlins").next()

-- Jump to previous gremlin in file.
require("gremlins").prev()

License

MIT

About

A Neovim rewrite of the vscode-gremlins extension, designed to reveal unwanted or invisible characters in your code.

Topics

Resources

License

Stars

Watchers

Forks