Skip to content

Extension: Neotree

Henrik Lissner edited this page May 22, 2021 · 1 revision

This extension modifies neotree to:

  • Look like Atom's sidebar (and uses a minimalistic icon set by default).
  • Displays folder/file labels in variable-pitch (rather than a monospace font), which is easier to read and takes up less horizontal space.
  • Adds more settings for you to customize neotree with (to control line height, icon size, etc).

Requirements

  • This requires the [all-the-icons] package and its fonts to be installed.

    Run M-x all-the-icons-install-fonts to install its fonts.

  • Note: this disables neo-vc-integration because the two are incompatible.

Installation

Once the doom-themes plugin is installed, you need only run doom-themes-neotree-config:

(with-eval-after-load 'doom-themes
  (doom-themes-neotree-config))

Options

  • doom-themes-neotree-enable-file-icons (default: t)
  • doom-themes-neotree-enable-folder-icons (default: t)
  • doom-themes-neotree-open-chevron-icons (default: t)
  • doom-themes-neotree-closed-chevron-icons (default: t)
  • doom-themes-neotree-file-icons determines what style of icons to use:
    • t: use the wide range of [all-the-icons] file type icons.
    • 'simple: use a minimialistic set of file icons (most akin to Atom's default iconset).
    • nil: only use the folder icon for directories. No icons for files.
  • Customize what icon is used for what type of files/folders with:
    • doom-themes-neotree-file-rules
    • doom-themes-neotree-dir-rules
  • Customize the icons with:
    • doom-neotree-enable-type-colors (default: t): if non-nil, and doom-neotree-file-icons is simple, then color files/folders by category (hidden, media, documentation, data or build file). See doom-neotree-file-face-re-alist to configure this, and what face to assign each file type.
    • doom-neotree-project-size (default: 1.4) The :height to display the project icons (at the top) at.
    • doom-neotree-folder-size (default: 1.05) The :height to display folder icons at.
    • doom-neotree-chevron-size (default: 0.8) The :height to display chevron icons at.
    • doom-neotree-line-spacing (default: 2): line-spacing to use in the neotree buffer.
    • doom-neotree-enable-variable-pitch (default: t): if non-nil, file/folder labels will have the variable-pitch face applied to them.
  • These faces can be customized:
    • doom-themes-neotree-dir-face: face for folders
    • doom-themes-neotree-file-face: face for files
    • If doom-themes-neotree-enable-type-colors is non-nil, file and folder entries will be colored with these faces, depending on their "type":
      • doom-themes-neotree-hidden-file-face (dotfiles, *.o, *.pyc, *.elc, etc)
      • doom-themes-neotree-text-file-face (READMEs, LICENSEs, org, md, etc.)
      • doom-themes-neotree-media-file-face (images, video, audio, archives, etc.)
      • doom-themes-neotree-data-file-face (json, xml, toml, yaml, etc.)
Clone this wiki locally