mini.icons

repository·main·Indexed 19 days ago

https://github.com/nvim-mini/mini.icons

A high-performance icon provider for Neovim that provides glyphs and highlighting for filetypes, extensions, paths, OS, and LSP kinds. It is designed to be lightweight, cacheable, and easily integrated into other plugins, including a mocking mechanism for nvim-web-devicons.

Tokens
798
Snippets
2
Records
4
Agent score
14%

What's inside mini.icons

  1. Integrate mini.icons with other plugins

    main

    If you are a plugin author or want to improve compatibility with existing plugins, mini.icons provides several integration methods:

    • Mocking nvim-web-devicons: To make plugins that depend on nvim-tree/nvim-web-devicons work with mini.icons, use :h MiniIcons.mock_nvim_web_devicons().
    • LSP Kind Tweaking: To include icons in LSP steps (e.g., for use with mini.completion), use :h MiniIcons.tweak_lsp_kind().
    • Plugin Authors: See :h MiniIcons-in-other-plugins for detailed integration instructions.
  2. Install mini.icons

    main

    You can install mini.icons as part of the mini.nvim library (recommended) or as a standalone plugin. After installation, you must call require('mini.icons').setup() to enable its functionality.

    Installation via vim.pack (Neovim 0.12+)

    Standalone Main branch:

    vim.pack.add({ 'https://github.com/nvim-mini/mini.icons' })

    Standalone Stable branch:

    vim.pack.add({
      { src = 'https://github.com/nvim-mini/mini.icons', version = 'stable' },
    })

    Installation via mini.deps (Neovim < 0.12)

    Standalone Main branch:

    add('nvim-mini/mini.icons')

    Standalone Stable branch:

    add({ source = 'nvim-mini/mini.icons', checkout = 'stable' })

    Installation via lazy.nvim

    Standalone Main branch:

    { 'nvim-mini/mini.icons', version = false },

    Standalone Stable branch:

    { 'nvim-mini/mini.icons', version = '*' },

    Windows Note

    If you encounter errors regarding long file paths on Windows, run:

    git config --system core.longpaths true

    Then reinstall the plugin.

    require('mini.icons').setup()
  3. Configure mini.icons

    main

    The configuration for mini.icons allows you to set the icon style and customize icons for various categories.

    Available configuration keys:

    • style: Set to 'glyph' (default) for icon glyphs or 'ascii' for a non-glyph fallback if your terminal/font doesn't support Nerd Fonts.
    • default: Default icons for all categories.
    • directory: Icons for directories.
    • extension: Icons for specific file extensions.
    • file: Icons for files.
    • filetype: Icons for specific filetypes.
    • lsp: Icons for LSP kind values.
    • os: Icons for operating systems.
    • use_file_extension: A function function(ext, file) return boolean end to control which extensions are considered during file resolution.
    require('mini.icons').setup({
      style = 'glyph',
      default   = {},
      directory = {},
      extension = {},
      file      = {},
      filetype  = {},
      lsp       = {},
      os        = {},
      use_file_extension = function(ext, file) return true end,
    })
  4. Get icons with MiniIcons.get()

    main

    The primary way to retrieve icons is through the MiniIcons.get() method. It provides icons and their associated highlighting for several categories:

    • filetype (the main supported category)
    • file/directory path
    • extension
    • os (operating system)
    • lsp (LSP kind values)

    You can override category defaults within the configuration.