summaryrefslogtreecommitdiff
path: root/elpa/all-the-icons-20220325.1238/all-the-icons.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-05-11 09:23:58 -0400
committermattkae <mattkae@protonmail.com>2022-05-11 09:23:58 -0400
commit3f4a0d5370ae6c34afe180df96add3b8522f4af1 (patch)
treeae901409e02bde8ee278475f8cf6818f8f680a60 /elpa/all-the-icons-20220325.1238/all-the-icons.el
initial commit
Diffstat (limited to 'elpa/all-the-icons-20220325.1238/all-the-icons.el')
-rw-r--r--elpa/all-the-icons-20220325.1238/all-the-icons.el1189
1 files changed, 1189 insertions, 0 deletions
diff --git a/elpa/all-the-icons-20220325.1238/all-the-icons.el b/elpa/all-the-icons-20220325.1238/all-the-icons.el
new file mode 100644
index 0000000..999246e
--- /dev/null
+++ b/elpa/all-the-icons-20220325.1238/all-the-icons.el
@@ -0,0 +1,1189 @@
+;;; all-the-icons.el --- A library for inserting Developer icons -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Dominic Charlesworth <dgc336@gmail.com>
+
+;; Author: Dominic Charlesworth <dgc336@gmail.com>
+;; Version: 5.0.0
+;; Package-Requires: ((emacs "24.3"))
+;; URL: https://github.com/domtronn/all-the-icons.el
+;; Keywords: convenient, lisp
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License
+;; as published by the Free Software Foundation; either version 3
+;; of the License, or (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This package is a utility for using and formatting various Icon
+;; fonts within Emacs. Icon Fonts allow you to propertize and format
+;; icons the same way you would normal text. This enables things such
+;; as better scaling of and anti aliasing of the icons.
+
+;; This package was inspired by
+
+;; - `mode-icons' for Emacs, found at https://github.com/ryuslash/mode-icons
+;; - `file-icons' for Atom, found at https://atom.io/packages/file-icons
+
+;; Currently, this package provides an interface to the following Icon Fonts
+
+;; - Atom File Icons, found at https://atom.io/packages/file-icons
+;; - FontAwesome Icons, found at http://fontawesome.io/
+;; - GitHub Octicons, found at http://octicons.github.com
+;; - Material Design Icons, found at http://google.github.io/material-design-icons/
+;; - Weather Icons, found at https://erikflowers.github.io/weather-icons/
+;; - AllTheIcons, a custom Icon Font maintained as part of this package
+
+;; Requests for new icons will be accepted and added to the AllTheIcons Icon Font
+
+;;; Usage:
+
+;; The simplest usage for this package is to use the following functions;
+
+;; `all-the-icons-icon-for-buffer'
+;; `all-the-icons-icon-for-dir'
+;; `all-the-icons-icon-for-file'
+;; `all-the-icons-icon-for-mode'
+;; `all-the-icons-icon-for-url'
+
+;; Which can be used to get a formatted icon for the current buffer, a
+;; file name, a major mode, or an URL respectively. e.g.
+
+;; (insert (all-the-icons-icon-for-file "foo.js"))
+
+;; Inserts a JavaScript icon formatted like this
+
+;; #("some-icon" 0 1 (display (raise -0.24)
+;; face (:family "dev-icons" :height 1.08 :foreground "#FFD446")))
+
+;; You can also insert icons directly using the individual icon family
+;; functions
+
+;; `all-the-icons-alltheicon' // Custom font with fewest icons
+;; `all-the-icons-devicon' // Developer Icons
+;; `all-the-icons-faicon' // Font Awesome Icons
+;; `all-the-icons-fileicon' // File Icons from the Atom File Icons package
+;; `all-the-icons-octicon' // GitHub Octicons
+;; `all-the-icons-material' // Material Design Icons
+;; `all-the-icons-wicon' // Weather Icons
+
+;; You can call these functions with the icon name you want to insert, e.g.
+
+;; (all-the-icons-octicon "file-binary") // GitHub Octicon for Binary File
+;; (all-the-icons-faicon "cogs") // FontAwesome icon for cogs
+;; (all-the-icons-wicon "tornado") // Weather Icon for tornado
+
+;; A list of all the icon names for the different font families can be
+;; found in the data directory, or by inspecting the alist variables.
+;; All the alist variables are prefixed with `all-the-icons-data/'
+
+;;; Code:
+(require 'cl-lib)
+
+(require 'data-alltheicons "./data/data-alltheicons")
+(require 'data-faicons "./data/data-faicons")
+(require 'data-fileicons "./data/data-fileicons")
+(require 'data-octicons "./data/data-octicons")
+(require 'data-weathericons "./data/data-weathericons")
+(require 'data-material "./data/data-material")
+
+(require 'all-the-icons-faces)
+
+(defvar web-mode-content-type) ;silence byte-compiler warning
+;;; Custom Variables
+(defgroup all-the-icons nil
+ "Manage how All The Icons formats icons."
+ :prefix "all-the-icons-"
+ :group 'appearance
+ :group 'convenience)
+
+(defcustom all-the-icons-color-icons t
+ "Whether or not to include a foreground colour when formatting the icon."
+ :group 'all-the-icons
+ :type 'boolean)
+
+(defcustom all-the-icons-scale-factor 1.2
+ "The base Scale Factor for the `height' face property of an icon."
+ :group 'all-the-icons
+ :type 'number)
+
+(defcustom all-the-icons-default-adjust -0.2
+ "The default adjustment to be made to the `raise' display property of an icon."
+ :group 'all-the-icons
+ :type 'number)
+
+(defvar all-the-icons-font-families '() "List of defined icon font families.")
+(defvar all-the-icons-font-names '() "List of defined font file names this package was built with.")
+
+(defvar all-the-icons-extension-icon-alist
+ '(
+ ("fish" all-the-icons-alltheicon "terminal" :face all-the-icons-lpink)
+ ("zsh" all-the-icons-alltheicon "terminal" :face all-the-icons-lcyan)
+ ("sh" all-the-icons-alltheicon "terminal" :face all-the-icons-purple)
+ ;; Meta
+ ("tags" all-the-icons-octicon "tag" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue)
+ ("log" all-the-icons-octicon "bug" :height 1.0 :v-adjust 0.0 :face all-the-icons-maroon)
+ ;; Config
+ ("node" all-the-icons-alltheicon "nodejs" :height 1.0 :face all-the-icons-green)
+ ("babelrc" all-the-icons-fileicon "babel" :face all-the-icons-yellow)
+ ("bashrc" all-the-icons-alltheicon "script" :height 0.9 :face all-the-icons-dpink)
+ ("bowerrc" all-the-icons-alltheicon "bower" :height 1.0 :v-adjust 0.0 :face all-the-icons-silver)
+ ("ini" all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-yellow)
+ ("eslintignore" all-the-icons-fileicon "eslint" :height 0.9 :face all-the-icons-purple)
+ ("eslint" all-the-icons-fileicon "eslint" :height 0.9 :face all-the-icons-lpurple)
+ ("git" all-the-icons-alltheicon "git" :height 1.0 :face all-the-icons-lred)
+ ("mk" all-the-icons-fileicon "gnu" :face all-the-icons-dorange)
+ ("cmake" all-the-icons-fileicon "cmake" :face all-the-icons-red)
+ ("dockerignore" all-the-icons-fileicon "dockerfile" :height 1.2 :face all-the-icons-dblue)
+ ("xml" all-the-icons-faicon "file-code-o" :height 0.95 :face all-the-icons-lorange)
+ ("json" all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-yellow)
+ ("cson" all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-yellow)
+ ("yml" all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-dyellow)
+ ("yaml" all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-dyellow)
+ ;; ?
+ ("pkg" all-the-icons-octicon "package" :v-adjust 0.0 :face all-the-icons-dsilver)
+ ("rpm" all-the-icons-octicon "package" :v-adjust 0.0 :face all-the-icons-dsilver)
+ ("elc" all-the-icons-octicon "file-binary" :v-adjust 0.0 :face all-the-icons-dsilver)
+ ("gz" all-the-icons-octicon "file-binary" :v-adjust 0.0 :face all-the-icons-lmaroon)
+ ("zip" all-the-icons-octicon "file-zip" :v-adjust 0.0 :face all-the-icons-lmaroon)
+ ("7z" all-the-icons-octicon "file-zip" :v-adjust 0.0 :face all-the-icons-lmaroon)
+ ("dat" all-the-icons-faicon "bar-chart" :face all-the-icons-cyan :height 0.9)
+ ("dmg" all-the-icons-octicon "tools" :v-adjust 0.0 :face all-the-icons-lsilver)
+ ("dll" all-the-icons-faicon "cogs" :face all-the-icons-silver)
+ ("ds_store" all-the-icons-faicon "cogs" :face all-the-icons-silver)
+ ;; Source Codes
+ ("scpt" all-the-icons-fileicon "apple" :face all-the-icons-pink)
+ ("aup" all-the-icons-fileicon "audacity" :face all-the-icons-yellow)
+ ("elm" all-the-icons-fileicon "elm" :face all-the-icons-blue)
+ ("erl" all-the-icons-alltheicon "erlang" :face all-the-icons-red :v-adjust -0.1 :height 0.9)
+ ("hrl" all-the-icons-alltheicon "erlang" :face all-the-icons-dred :v-adjust -0.1 :height 0.9)
+ ("eex" all-the-icons-alltheicon "elixir" :face all-the-icons-lorange :v-adjust -0.1 :height 0.9)
+ ("leex" all-the-icons-alltheicon "elixir" :face all-the-icons-lorange :v-adjust -0.1 :height 0.9)
+ ("heex" all-the-icons-alltheicon "elixir" :face all-the-icons-lorange :v-adjust -0.1 :height 0.9)
+ ("ex" all-the-icons-alltheicon "elixir" :face all-the-icons-lpurple :v-adjust -0.1 :height 0.9)
+ ("exs" all-the-icons-alltheicon "elixir" :face all-the-icons-lred :v-adjust -0.1 :height 0.9)
+ ("java" all-the-icons-alltheicon "java" :height 1.0 :face all-the-icons-purple)
+ ("gradle" all-the-icons-fileicon "gradle" :height 1.0 :face all-the-icons-silver)
+ ("ebuild" all-the-icons-fileicon "gentoo" :face all-the-icons-cyan)
+ ("eclass" all-the-icons-fileicon "gentoo" :face all-the-icons-blue)
+ ("go" all-the-icons-fileicon "go" :height 1.0 :face all-the-icons-blue)
+ ("jl" all-the-icons-fileicon "julia" :face all-the-icons-purple :v-adjust 0.0)
+ ("magik" all-the-icons-faicon "magic" :face all-the-icons-blue)
+ ("matlab" all-the-icons-fileicon "matlab" :face all-the-icons-orange)
+ ("nix" all-the-icons-fileicon "nix" :face all-the-icons-blue)
+ ("pl" all-the-icons-alltheicon "perl" :face all-the-icons-lorange)
+ ("pm" all-the-icons-alltheicon "perl" :face all-the-icons-lorange)
+ ("pl6" all-the-icons-fileicon "raku" :face all-the-icons-cyan)
+ ("pm6" all-the-icons-fileicon "raku" :face all-the-icons-pink)
+ ("pod" all-the-icons-alltheicon "perldocs" :height 1.2 :face all-the-icons-lgreen)
+ ("php" all-the-icons-fileicon "php" :face all-the-icons-lsilver)
+ ("pony" all-the-icons-fileicon "pony" :face all-the-icons-maroon)
+ ("ps1" all-the-icons-fileicon "powershell" :face all-the-icons-blue)
+ ("pro" all-the-icons-alltheicon "prolog" :height 1.1 :face all-the-icons-lmaroon)
+ ("proog" all-the-icons-alltheicon "prolog" :height 1.1 :face all-the-icons-lmaroon)
+ ("py" all-the-icons-alltheicon "python" :height 1.0 :face all-the-icons-dblue)
+ ("idr" all-the-icons-fileicon "idris" :face all-the-icons-red)
+ ("ipynb" all-the-icons-fileicon "jupyter" :height 1.0 :face all-the-icons-dorange)
+ ("gem" all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ ("raku" all-the-icons-fileicon "raku" :face all-the-icons-cyan)
+ ("rakumod" all-the-icons-fileicon "raku" :face all-the-icons-pink)
+ ("rb" all-the-icons-octicon "ruby" :v-adjust 0.0 :face all-the-icons-lred)
+ ("rs" all-the-icons-alltheicon "rust" :height 1.2 :face all-the-icons-maroon)
+ ("rlib" all-the-icons-alltheicon "rust" :height 1.2 :face all-the-icons-dmaroon)
+ ("r" all-the-icons-fileicon "R" :face all-the-icons-lblue)
+ ("rd" all-the-icons-fileicon "R" :face all-the-icons-lblue)
+ ("rdx" all-the-icons-fileicon "R" :face all-the-icons-lblue)
+ ("rsx" all-the-icons-fileicon "R" :face all-the-icons-lblue)
+ ;; There seems to be a a bug with this font icon which does not
+ ;; let you propertise it without it reverting to being a lower
+ ;; case phi
+ ("c" all-the-icons-alltheicon "c-line" :face all-the-icons-blue)
+ ("h" all-the-icons-alltheicon "c-line" :face all-the-icons-purple)
+ ("m" all-the-icons-fileicon "apple" :v-adjust 0.0 :height 1.0)
+ ("mm" all-the-icons-fileicon "apple" :v-adjust 0.0 :height 1.0)
+ ;;
+ ("cc" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-blue)
+ ("cpp" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-blue)
+ ("cxx" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-blue)
+ ("hh" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-purple)
+ ("hpp" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-purple)
+ ("hxx" all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-purple)
+ ;; Lisps
+ ("cl" all-the-icons-fileicon "clisp" :face all-the-icons-lorange)
+ ("l" all-the-icons-fileicon "lisp" :face all-the-icons-orange)
+ ("lisp" all-the-icons-fileicon "lisp" :face all-the-icons-orange)
+ ("hy" all-the-icons-fileicon "hy" :face all-the-icons-blue)
+ ("el" all-the-icons-fileicon "elisp" :height 1.0 :v-adjust -0.2 :face all-the-icons-purple)
+ ("clj" all-the-icons-alltheicon "clojure-line" :height 1.0 :face all-the-icons-blue :v-adjust 0.0)
+ ("cljc" all-the-icons-alltheicon "clojure-line" :height 1.0 :face all-the-icons-blue :v-adjust 0.0)
+ ("cljs" all-the-icons-fileicon "cljs" :height 1.0 :face all-the-icons-dblue :v-adjust 0.0)
+ ("coffee" all-the-icons-alltheicon "coffeescript" :height 1.0 :face all-the-icons-maroon)
+ ("iced" all-the-icons-alltheicon "coffeescript" :height 1.0 :face all-the-icons-lmaroon)
+ ("dart" all-the-icons-fileicon "dart" :height 1.0 :face all-the-icons-blue :v-adjust 0.0)
+ ("rkt" all-the-icons-fileicon "racket" :height 1.2 :face all-the-icons-red)
+ ("scrbl" all-the-icons-fileicon "racket" :height 1.2 :face all-the-icons-blue)
+ ;; Stylesheeting
+ ("css" all-the-icons-alltheicon "css3" :face all-the-icons-yellow)
+ ("scss" all-the-icons-alltheicon "sass" :face all-the-icons-pink)
+ ("sass" all-the-icons-alltheicon "sass" :face all-the-icons-dpink)
+ ("less" all-the-icons-alltheicon "less" :height 0.8 :face all-the-icons-dyellow)
+ ("postcss" all-the-icons-fileicon "postcss" :face all-the-icons-dred)
+ ("sss" all-the-icons-fileicon "postcss" :face all-the-icons-dred)
+ ("styl" all-the-icons-alltheicon "stylus" :face all-the-icons-lgreen)
+ ("csv" all-the-icons-octicon "graph" :v-adjust 0.0 :face all-the-icons-dblue)
+ ;; haskell
+ ("hs" all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ ("chs" all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ ("lhs" all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ ("hsc" all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ ;; Web modes
+ ("inky-haml" all-the-icons-fileicon "haml" :face all-the-icons-lyellow)
+ ("haml" all-the-icons-fileicon "haml" :face all-the-icons-lyellow)
+ ("htm" all-the-icons-alltheicon "html5" :face all-the-icons-orange)
+ ("html" all-the-icons-alltheicon "html5" :face all-the-icons-orange)
+ ("inky-er" all-the-icons-alltheicon "html5" :face all-the-icons-lred)
+ ("inky-erb" all-the-icons-alltheicon "html5" :face all-the-icons-lred)
+ ("erb" all-the-icons-alltheicon "html5" :face all-the-icons-lred)
+ ("hbs" all-the-icons-fileicon "moustache" :face all-the-icons-green)
+ ("inky-slim" all-the-icons-octicon "dashboard" :v-adjust 0.0 :face all-the-icons-yellow)
+ ("slim" all-the-icons-octicon "dashboard" :v-adjust 0.0 :face all-the-icons-yellow)
+ ("jade" all-the-icons-fileicon "jade" :face all-the-icons-red)
+ ("pug" all-the-icons-fileicon "pug-alt" :face all-the-icons-red)
+ ;; Javascript
+ ("d3js" all-the-icons-alltheicon "d3" :height 0.8 :face all-the-icons-lgreen)
+ ("re" all-the-icons-fileicon "reason" :height 1.0 :face all-the-icons-red-alt)
+ ("rei" all-the-icons-fileicon "reason" :height 1.0 :face all-the-icons-dred)
+ ("ml" all-the-icons-fileicon "ocaml" :height 1.0 :face all-the-icons-lpink)
+ ("mli" all-the-icons-fileicon "ocaml" :height 1.0 :face all-the-icons-dpink)
+ ("react" all-the-icons-alltheicon "react" :height 1.1 :face all-the-icons-lblue)
+ ("ts" all-the-icons-fileicon "typescript" :height 1.0 :v-adjust -0.1 :face all-the-icons-blue-alt)
+ ("js" all-the-icons-alltheicon "javascript" :height 1.0 :v-adjust 0.0 :face all-the-icons-yellow)
+ ("es" all-the-icons-alltheicon "javascript" :height 1.0 :v-adjust 0.0 :face all-the-icons-yellow)
+ ("jsx" all-the-icons-fileicon "jsx-2" :height 1.0 :v-adjust -0.1 :face all-the-icons-cyan-alt)
+ ("tsx" all-the-icons-fileicon "tsx" :height 1.0 :v-adjust -0.1 :face all-the-icons-cyan-alt)
+ ("njs" all-the-icons-alltheicon "nodejs" :height 1.2 :face all-the-icons-lgreen)
+ ("vue" all-the-icons-fileicon "vue" :face all-the-icons-lgreen)
+
+ ("sbt" all-the-icons-fileicon "sbt" :face all-the-icons-red)
+ ("scala" all-the-icons-alltheicon "scala" :face all-the-icons-red)
+ ("scm" all-the-icons-fileicon "scheme" :height 1.2 :face all-the-icons-red)
+ ("swift" all-the-icons-alltheicon "swift" :height 1.0 :v-adjust -0.1 :face all-the-icons-green)
+
+ ("tcl" all-the-icons-fileicon "tcl" :height 1.0 :face all-the-icons-dred)
+
+ ("tf" all-the-icons-fileicon "terraform" :height 1.0 :face all-the-icons-purple-alt)
+ ("tfvars" all-the-icons-fileicon "terraform" :height 1.0 :face all-the-icons-purple-alt)
+ ("tfstate" all-the-icons-fileicon "terraform" :height 1.0 :face all-the-icons-purple-alt)
+
+ ("asm" all-the-icons-fileicon "assembly" :height 1.0 :face all-the-icons-blue)
+ ;; Verilog(-AMS) and SystemVerilog(-AMS)
+ ("v" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ("vams" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ("sv" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ("sva" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ("svh" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ("svams" all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ ;; VHDL(-AMS)
+ ("vhd" all-the-icons-fileicon "vhdl" :face all-the-icons-blue)
+ ("vhdl" all-the-icons-fileicon "vhdl" :face all-the-icons-blue)
+ ("vhms" all-the-icons-fileicon "vhdl" :face all-the-icons-blue)
+ ;; Cabal
+ ("cabal" all-the-icons-fileicon "cabal" :face all-the-icons-lblue)
+ ;; Kotlin
+ ("kt" all-the-icons-fileicon "kotlin" :face all-the-icons-orange)
+ ("kts" all-the-icons-fileicon "kotlin" :face all-the-icons-orange)
+ ;; Nimrod
+ ("nim" all-the-icons-fileicon "nimrod" :face all-the-icons-yellow)
+ ("nims" all-the-icons-fileicon "nimrod" :face all-the-icons-yellow)
+ ;; SQL
+ ("sql" all-the-icons-octicon "database" :face all-the-icons-silver)
+ ;; Styles
+ ("styles" all-the-icons-material "style" :face all-the-icons-red)
+ ;; Lua
+ ("lua" all-the-icons-fileicon "lua" :face all-the-icons-dblue)
+ ;; ASCII doc
+ ("adoc" all-the-icons-fileicon "asciidoc" :face all-the-icons-lblue)
+ ("asciidoc" all-the-icons-fileicon "asciidoc" :face all-the-icons-lblue)
+ ;; Puppet
+ ("pp" all-the-icons-fileicon "puppet" :face all-the-icons-yellow)
+ ;; Jinja
+ ("j2" all-the-icons-fileicon "jinja" :face all-the-icons-silver)
+ ("jinja2" all-the-icons-fileicon "jinja" :face all-the-icons-silver)
+ ;; Docker
+ ("dockerfile" all-the-icons-fileicon "dockerfile" :face all-the-icons-cyan)
+ ;; Vagrant
+ ("vagrantfile" all-the-icons-fileicon "vagrant" :face all-the-icons-blue)
+ ;; GLSL
+ ("glsl" all-the-icons-fileicon "vertex-shader" :face all-the-icons-blue)
+ ("vert" all-the-icons-fileicon "vertex-shader" :face all-the-icons-blue)
+ ("tesc" all-the-icons-fileicon "vertex-shader" :face all-the-icons-purple)
+ ("tese" all-the-icons-fileicon "vertex-shader" :face all-the-icons-dpurple)
+ ("geom" all-the-icons-fileicon "vertex-shader" :face all-the-icons-green)
+ ("frag" all-the-icons-fileicon "vertex-shader" :face all-the-icons-red)
+ ("comp" all-the-icons-fileicon "vertex-shader" :face all-the-icons-dblue)
+ ;; CUDA
+ ("cu" all-the-icons-fileicon "nvidia" :face all-the-icons-green)
+ ("cuh" all-the-icons-fileicon "nvidia" :face all-the-icons-green)
+ ;; Fortran
+ ("f90" all-the-icons-fileicon "fortran" :face all-the-icons-purple)
+ ;; C#
+ ("cs" all-the-icons-alltheicon "csharp-line" :face all-the-icons-dblue)
+ ("csx" all-the-icons-alltheicon "csharp-line" :face all-the-icons-dblue)
+ ;; F#
+ ("fs" all-the-icons-fileicon "fsharp" :face all-the-icons-blue-alt)
+ ("fsi" all-the-icons-fileicon "fsharp" :face all-the-icons-blue-alt)
+ ("fsx" all-the-icons-fileicon "fsharp" :face all-the-icons-blue-alt)
+ ("fsscript" all-the-icons-fileicon "fsharp" :face all-the-icons-blue-alt)
+ ;; zig
+ ("zig" all-the-icons-fileicon "zig" :face all-the-icons-orange)
+ ;; File Types
+ ("ico" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-blue)
+ ("png" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-orange)
+ ("gif" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-green)
+ ("jpeg" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-dblue)
+ ("jpg" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-dblue)
+ ("webp" all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-dblue)
+ ;; Audio
+ ("mp3" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("wav" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("m4a" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("ogg" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("flac" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("opus" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("au" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("aif" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("aifc" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("aiff" all-the-icons-faicon "volume-up" :face all-the-icons-dred)
+ ("svg" all-the-icons-alltheicon "svg" :height 0.9 :face all-the-icons-lgreen)
+ ;; Video
+ ("mov" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("mp4" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("ogv" all-the-icons-faicon "film" :face all-the-icons-dblue)
+ ("mpg" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("mpeg" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("flv" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("ogv" all-the-icons-faicon "film" :face all-the-icons-dblue)
+ ("mkv" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ("webm" all-the-icons-faicon "film" :face all-the-icons-blue)
+ ;; Fonts
+ ("ttf" all-the-icons-fileicon "font" :v-adjust 0.0 :face all-the-icons-dcyan)
+ ("woff" all-the-icons-fileicon "font" :v-adjust 0.0 :face all-the-icons-cyan)
+ ("woff2" all-the-icons-fileicon "font" :v-adjust 0.0 :face all-the-icons-cyan)
+ ;; Doc
+ ("pdf" all-the-icons-octicon "file-pdf" :v-adjust 0.0 :face all-the-icons-dred)
+ ("text" all-the-icons-octicon "file-text" :v-adjust 0.0 :face all-the-icons-cyan)
+ ("txt" all-the-icons-octicon "file-text" :v-adjust 0.0 :face all-the-icons-cyan)
+ ("doc" all-the-icons-fileicon "word" :face all-the-icons-blue)
+ ("docx" all-the-icons-fileicon "word" :face all-the-icons-blue)
+ ("docm" all-the-icons-fileicon "word" :face all-the-icons-blue)
+ ("texi" all-the-icons-fileicon "tex" :face all-the-icons-lred)
+ ("tex" all-the-icons-fileicon "tex" :face all-the-icons-lred)
+ ("md" all-the-icons-octicon "markdown" :v-adjust 0.0 :face all-the-icons-lblue)
+ ("bib" all-the-icons-fileicon "bib" :face all-the-icons-maroon)
+ ("org" all-the-icons-fileicon "org" :face all-the-icons-lgreen)
+ ("pps" all-the-icons-fileicon "powerpoint" :face all-the-icons-orange)
+ ("ppt" all-the-icons-fileicon "powerpoint" :face all-the-icons-orange)
+ ("pptsx" all-the-icons-fileicon "powerpoint" :face all-the-icons-orange)
+ ("ppttx" all-the-icons-fileicon "powerpoint" :face all-the-icons-orange)
+ ("knt" all-the-icons-fileicon "powerpoint" :face all-the-icons-cyan)
+ ("xlsx" all-the-icons-fileicon "excel" :face all-the-icons-dgreen)
+ ("xlsm" all-the-icons-fileicon "excel" :face all-the-icons-dgreen)
+ ("xlsb" all-the-icons-fileicon "excel" :face all-the-icons-dgreen)
+ ("xltx" all-the-icons-fileicon "excel" :face all-the-icons-dgreen)
+ ("xltm" all-the-icons-fileicon "excel" :face all-the-icons-dgreen)
+ ("ly" all-the-icons-faicon "music" :face all-the-icons-green)
+ ;;
+ ("key" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-lblue)
+ ("pem" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-orange)
+ ("p12" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-dorange)
+ ("crt" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-lblue)
+ ("pub" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-blue)
+ ("gpg" all-the-icons-octicon "key" :v-adjust 0.0 :face all-the-icons-lblue)
+ ("cache" all-the-icons-octicon "database" :height 1.0 :v-adjust 0.0 :face all-the-icons-green)))
+
+
+(define-obsolete-variable-alias 'all-the-icons-icon-alist
+ 'all-the-icons-regexp-icon-alist
+ "5.0.0"
+ "`all-the-icons-icon-alist' has been split to
+`all-the-icons-extension-icon-alist' and `all-the-icons-regexp-icon-alist'
+for performance sake.")
+
+(defvar all-the-icons-regexp-icon-alist
+ '(
+ ;;
+ ("^TAGS$" all-the-icons-octicon "tag" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue)
+ ("^TODO$" all-the-icons-octicon "checklist" :v-adjust 0.0 :face all-the-icons-lyellow)
+ ("^LICENSE$" all-the-icons-octicon "book" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue)
+ ("^readme" all-the-icons-octicon "book" :height 1.0 :v-adjust 0.0 :face all-the-icons-lcyan)
+
+ ;; Config
+ ("^bower.json$" all-the-icons-alltheicon "bower" :height 1.0 :v-adjust 0.0 :face all-the-icons-lorange)
+ ("nginx$" all-the-icons-fileicon "nginx" :height 0.9 :face all-the-icons-dgreen)
+ ("apache$" all-the-icons-alltheicon "apache" :height 0.9 :face all-the-icons-dgreen)
+ ("^Makefile$" all-the-icons-fileicon "gnu" :face all-the-icons-dorange)
+ ("^CMakeLists.txt$" all-the-icons-fileicon "cmake" :face all-the-icons-red)
+ ("^CMakeCache.txt$" all-the-icons-fileicon "cmake" :face all-the-icons-blue)
+
+ ("^\\.?Dockerfile" all-the-icons-fileicon "dockerfile" :face all-the-icons-blue)
+ ("^Brewfile$" all-the-icons-faicon "beer" :face all-the-icons-lsilver)
+ ("\\.npmignore$" all-the-icons-fileicon "npm" :face all-the-icons-dred)
+ ("^package.json$" all-the-icons-fileicon "npm" :face all-the-icons-red)
+ ("^package.lock.json$" all-the-icons-fileicon "npm" :face all-the-icons-dred)
+ ("^yarn\\.lock" all-the-icons-fileicon "yarn" :face all-the-icons-blue-alt)
+
+ ;; ;; AWS
+ ("^stack.*.json$" all-the-icons-alltheicon "aws" :face all-the-icons-orange)
+
+
+ ("^serverless\\.yml$" all-the-icons-faicon "bolt" :v-adjust 0.0 :face all-the-icons-yellow)
+
+ ;; lock files
+ ("~$" all-the-icons-octicon "lock" :v-adjust 0.0 :face all-the-icons-maroon)
+
+ ;; Source Codes
+ ("^mix.lock$" all-the-icons-alltheicon "elixir" :face all-the-icons-lyellow :v-adjust -0.1 :height 0.9)
+
+ ("^Gemfile\\(\\.lock\\)?$" all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ ("_?test\\.rb$" all-the-icons-fileicon "test-ruby" :height 1.0 :v-adjust 0.0 :face all-the-icons-red)
+ ("_?test_helper\\.rb$" all-the-icons-fileicon "test-ruby" :height 1.0 :v-adjust 0.0 :face all-the-icons-dred)
+ ("_?spec\\.rb$" all-the-icons-fileicon "test-ruby" :height 1.0 :v-adjust 0.0 :face all-the-icons-red)
+ ("_?spec_helper\\.rb$" all-the-icons-fileicon "test-ruby" :height 1.0 :v-adjust 0.0 :face all-the-icons-dred)
+
+ ("-?spec\\.ts$" all-the-icons-fileicon "test-typescript" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue)
+ ("-?test\\.ts$" all-the-icons-fileicon "test-typescript" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue)
+ ("-?spec\\.js$" all-the-icons-fileicon "test-js" :height 1.0 :v-adjust 0.0 :face all-the-icons-lpurple)
+ ("-?test\\.js$" all-the-icons-fileicon "test-js" :height 1.0 :v-adjust 0.0 :face all-the-icons-lpurple)
+ ("-?spec\\.jsx$" all-the-icons-fileicon "test-react" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue-alt)
+ ("-?test\\.jsx$" all-the-icons-fileicon "test-react" :height 1.0 :v-adjust 0.0 :face all-the-icons-blue-alt)
+
+ ;; Git
+ ("^MERGE_" all-the-icons-octicon "git-merge" :v-adjust 0.0 :face all-the-icons-red)
+ ("^COMMIT_EDITMSG" all-the-icons-octicon "git-commit" :v-adjust 0.0 :face all-the-icons-red)
+
+ ;; Stylesheeting
+ ("stylelint" all-the-icons-fileicon "stylelint" :face all-the-icons-lyellow)
+ ;; JavaScript
+ ("^gulpfile" all-the-icons-alltheicon "gulp" :height 1.0 :face all-the-icons-lred)
+ ("^gruntfile" all-the-icons-alltheicon "grunt" :height 1.0 :v-adjust -0.1 :face all-the-icons-lyellow)
+ ("^webpack" all-the-icons-fileicon "webpack" :face all-the-icons-lblue)
+
+ ("bookmark" all-the-icons-octicon "bookmark" :height 1.1 :v-adjust 0.0 :face all-the-icons-lpink)
+
+ ("^\\*scratch\\*$" all-the-icons-faicon "sticky-note" :face all-the-icons-lyellow)
+ ("^\\*scratch.*" all-the-icons-faicon "sticky-note" :face all-the-icons-yellow)
+ ("^\\*new-tab\\*$" all-the-icons-material "star" :face all-the-icons-cyan)
+
+ ("^\\." all-the-icons-octicon "gear" :v-adjust 0.0)
+ ))
+
+(defvar all-the-icons-default-file-icon
+ '(all-the-icons-faicon "file-o" :v-adjust 0.0 :face all-the-icons-dsilver))
+
+(defvar all-the-icons-dir-icon-alist
+ '(
+ ("trash" all-the-icons-faicon "trash-o" :height 1.2 :v-adjust -0.1)
+ ("dropbox" all-the-icons-faicon "dropbox" :height 1.0 :v-adjust -0.1)
+ ("google[ _-]drive" all-the-icons-alltheicon "google-drive" :height 1.0 :v-adjust -0.1)
+ ("^atom$" all-the-icons-alltheicon "atom" :height 1.2 :v-adjust -0.1)
+ ("documents" all-the-icons-faicon "book" :height 1.0 :v-adjust -0.1)
+ ("download" all-the-icons-faicon "cloud-download" :height 0.9 :v-adjust -0.1)
+ ("desktop" all-the-icons-octicon "device-desktop" :height 1.0 :v-adjust -0.1)
+ ("pictures" all-the-icons-faicon "picture-o" :height 0.9 :v-adjust -0.2)
+ ("photos" all-the-icons-faicon "camera-retro" :height 1.0 :v-adjust -0.1)
+ ("music" all-the-icons-faicon "music" :height 1.0 :v-adjust -0.1)
+ ("movies" all-the-icons-faicon "film" :height 0.9 :v-adjust -0.1)
+ ("code" all-the-icons-octicon "code" :height 1.1 :v-adjust -0.1)
+ ("workspace" all-the-icons-octicon "code" :height 1.1 :v-adjust -0.1)
+ ("test" all-the-icons-fileicon "test-dir" :height 0.9)
+ ("\\.git" all-the-icons-alltheicon "git" :height 1.0)
+ (".?" all-the-icons-octicon "file-directory" :height 1.0 :v-adjust -0.1)
+ ))
+
+(defvar all-the-icons-weather-icon-alist
+ '(
+ ("tornado" all-the-icons-wicon "tornado")
+ ("hurricane" all-the-icons-wicon "hurricane")
+ ("thunderstorms" all-the-icons-wicon "thunderstorm")
+ ("sunny" all-the-icons-wicon "day-sunny")
+ ("rain.*snow" all-the-icons-wicon "rain-mix")
+ ("rain.*hail" all-the-icons-wicon "rain-mix")
+ ("sleet" all-the-icons-wicon "sleet")
+ ("hail" all-the-icons-wicon "hail")
+ ("drizzle" all-the-icons-wicon "sprinkle")
+ ("rain" all-the-icons-wicon "showers" :height 1.1 :v-adjust 0.0)
+ ("showers" all-the-icons-wicon "showers")
+ ("blowing.*snow" all-the-icons-wicon "snow-wind")
+ ("snow" all-the-icons-wicon "snow")
+ ("dust" all-the-icons-wicon "dust")
+ ("fog" all-the-icons-wicon "fog")
+ ("haze" all-the-icons-wicon "day-haze")
+ ("smoky" all-the-icons-wicon "smoke")
+ ("blustery" all-the-icons-wicon "cloudy-windy")
+ ("windy" all-the-icons-wicon "cloudy-gusts")
+ ("cold" all-the-icons-wicon "snowflake-cold")
+ ("partly.*cloudy.*night" all-the-icons-wicon "night-alt-partly-cloudy")
+ ("partly.*cloudy" all-the-icons-wicon "day-cloudy-high")
+ ("cloudy.*night" all-the-icons-wicon "night-alt-cloudy")
+ ("cxloudy.*day" all-the-icons-wicon "day-cloudy")
+ ("cloudy" all-the-icons-wicon "cloudy")
+ ("clear.*night" all-the-icons-wicon "night-clear")
+ ("fair.*night" all-the-icons-wicon "stars")
+ ("fair.*day" all-the-icons-wicon "horizon")
+ ("hot" all-the-icons-wicon "hot")
+ ("not.*available" all-the-icons-wicon "na")
+ ))
+
+(defvar all-the-icons-mode-icon-alist
+ '(
+ (emacs-lisp-mode all-the-icons-fileicon "elisp" :height 1.0 :v-adjust -0.1 :face all-the-icons-purple)
+ (circe-server-mode all-the-icons-faicon "commenting-o" :height 1.0 :v-adjust 0.0)
+ (circe-channel-mode all-the-icons-faicon "commenting-o" :height 1.0 :v-adjust 0.0)
+ (erc-mode all-the-icons-faicon "commenting-o" :height 1.0 :v-adjust 0.0)
+ (inferior-emacs-lisp-mode all-the-icons-fileicon "elisp" :height 1.0 :v-adjust -0.1 :face all-the-icons-lblue)
+ (dired-mode all-the-icons-octicon "file-directory" :v-adjust 0.0)
+ (lisp-interaction-mode all-the-icons-fileicon "lisp" :v-adjust -0.1 :face all-the-icons-orange)
+ (sly-mrepl-mode all-the-icons-fileicon "clisp" :v-adjust -0.1 :face all-the-icons-orange)
+ (slime-repl-mode all-the-icons-fileicon "clisp" :v-adjust -0.1 :face all-the-icons-orange)
+ (org-mode all-the-icons-fileicon "org" :v-adjust 0.0 :face all-the-icons-lgreen)
+ (typescript-mode all-the-icons-fileicon "typescript" :v-adjust -0.1 :face all-the-icons-blue-alt)
+ (typescript-tsx-mode all-the-icons-fileicon "tsx" :v-adjust -0.1 :face all-the-icons-cyan-alt)
+ (js-mode all-the-icons-alltheicon "javascript" :v-adjust -0.1 :face all-the-icons-yellow)
+ (js-jsx-mode all-the-icons-alltheicon "javascript" :v-adjust -0.1 :face all-the-icons-yellow)
+ (js2-mode all-the-icons-alltheicon "javascript" :v-adjust -0.1 :face all-the-icons-yellow)
+ (js3-mode all-the-icons-alltheicon "javascript" :v-adjust -0.1 :face all-the-icons-yellow)
+ (rjsx-mode all-the-icons-fileicon "jsx-2" :v-adjust -0.1 :face all-the-icons-cyan-alt)
+ (term-mode all-the-icons-octicon "terminal" :v-adjust 0.2)
+ (vterm-mode all-the-icons-octicon "terminal" :v-adjust 0.2)
+ (eshell-mode all-the-icons-octicon "terminal" :v-adjust 0.0 :face all-the-icons-purple)
+ (magit-refs-mode all-the-icons-octicon "git-branch" :v-adjust 0.0 :face all-the-icons-red)
+ (magit-process-mode all-the-icons-octicon "mark-github" :v-adjust 0.0)
+ (magit-diff-mode all-the-icons-octicon "git-compare" :v-adjust 0.0 :face all-the-icons-lblue)
+ (ediff-mode all-the-icons-octicon "git-compare" :v-adjust 0.0 :Face all-the-icons-red)
+ (comint-mode all-the-icons-faicon "terminal" :v-adjust 0.0 :face all-the-icons-lblue)
+ (eww-mode all-the-icons-faicon "firefox" :v-adjust -0.1 :face all-the-icons-red)
+ (org-agenda-mode all-the-icons-octicon "checklist" :v-adjust 0.0 :face all-the-icons-lgreen)
+ (cfw:calendar-mode all-the-icons-octicon "calendar" :v-adjust 0.0)
+ (ibuffer-mode all-the-icons-faicon "files-o" :v-adjust 0.0 :face all-the-icons-dsilver)
+ (messages-buffer-mode all-the-icons-faicon "file-o" :v-adjust 0.0 :face all-the-icons-dsilver)
+ (help-mode all-the-icons-faicon "info" :v-adjust -0.1 :face all-the-icons-purple)
+ (benchmark-init/tree-mode all-the-icons-octicon "dashboard" :v-adjust 0.0)
+ (jenkins-mode all-the-icons-fileicon "jenkins" :face all-the-icons-blue)
+ (magit-popup-mode all-the-icons-alltheicon "git" :face all-the-icons-red)
+ (magit-status-mode all-the-icons-alltheicon "git" :face all-the-icons-lred)
+ (magit-log-mode all-the-icons-alltheicon "git" :face all-the-icons-green)
+ (mu4e-compose-mode all-the-icons-octicon "pencil" :v-adjust 0.0)
+ (mu4e-headers-mode all-the-icons-octicon "mail" :v-adjust 0.0)
+ (mu4e-main-mode all-the-icons-octicon "mail" :v-adjust 0.0)
+ (mu4e-view-mode all-the-icons-octicon "mail-read" :v-adjust 0.0)
+ (package-menu-mode all-the-icons-faicon "archive" :height 1.0 :v-adjust 0.0 :face all-the-icons-silver)
+ (paradox-menu-mode all-the-icons-faicon "archive" :height 1.0 :v-adjust 0.0 :face all-the-icons-silver)
+ (Custom-mode all-the-icons-octicon "settings" :v-adjust -0.1)
+
+ ;; Special matcher for Web Mode based on the `web-mode-content-type' of the current buffer
+ (web-mode all-the-icons--web-mode-icon)
+
+ (fundamental-mode all-the-icons-fileicon "elisp" :height 1.0 :v-adjust -0.1 :face all-the-icons-dsilver)
+ (special-mode all-the-icons-fileicon "elisp" :height 1.0 :v-adjust -0.1 :face all-the-icons-yellow)
+ (text-mode all-the-icons-octicon "file-text" :v-adjust 0.0 :face all-the-icons-cyan)
+ (enh-ruby-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-lred)
+ (ruby-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-lred)
+ (inf-ruby-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ (projectile-rails-compilation-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ (rspec-compilation-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ (rake-compilation-mode all-the-icons-alltheicon "ruby-alt" :face all-the-icons-red)
+ (sh-mode all-the-icons-alltheicon "terminal" :face all-the-icons-purple)
+ (shell-mode all-the-icons-alltheicon "terminal" :face all-the-icons-purple)
+ (fish-mode all-the-icons-alltheicon "terminal" :face all-the-icons-lpink)
+ (nginx-mode all-the-icons-fileicon "nginx" :height 0.9 :face all-the-icons-dgreen)
+ (apache-mode all-the-icons-alltheicon "apache" :height 0.9 :face all-the-icons-dgreen)
+ (makefile-mode all-the-icons-fileicon "gnu" :face all-the-icons-dorange)
+ (cmake-mode all-the-icons-fileicon "cmake" :face all-the-icons-red)
+ (dockerfile-mode all-the-icons-fileicon "dockerfile" :face all-the-icons-blue)
+ (docker-compose-mode all-the-icons-fileicon "dockerfile" :face all-the-icons-lblue)
+ (nxml-mode all-the-icons-faicon "file-code-o" :height 0.95 :face all-the-icons-lorange)
+ (json-mode all-the-icons-octicon "settings" :face all-the-icons-yellow)
+ (yaml-mode all-the-icons-octicon "settings" :v-adjust 0.0 :face all-the-icons-dyellow)
+ (elisp-byte-code-mode all-the-icons-octicon "file-binary" :v-adjust 0.0 :face all-the-icons-dsilver)
+ (archive-mode all-the-icons-octicon "file-zip" :v-adjust 0.0 :face all-the-icons-lmaroon)
+ (elm-mode all-the-icons-fileicon "elm" :face all-the-icons-blue)
+ (erlang-mode all-the-icons-alltheicon "erlang" :face all-the-icons-red :v-adjust -0.1 :height 0.9)
+ (elixir-mode all-the-icons-alltheicon "elixir" :face all-the-icons-lorange :v-adjust -0.1 :height 0.9)
+ (java-mode all-the-icons-alltheicon "java" :height 1.0 :face all-the-icons-purple)
+ (go-mode all-the-icons-fileicon "go" :height 1.0 :face all-the-icons-blue)
+ (matlab-mode all-the-icons-fileicon "matlab" :face all-the-icons-orange)
+ (nix-mode all-the-icons-fileicon "nix" :face all-the-icons-blue)
+ (perl-mode all-the-icons-alltheicon "perl" :face all-the-icons-lorange)
+ (cperl-mode all-the-icons-alltheicon "perl" :face all-the-icons-lorange)
+ (php-mode all-the-icons-fileicon "php" :face all-the-icons-lsilver)
+ (prolog-mode all-the-icons-alltheicon "prolog" :height 1.1 :face all-the-icons-lmaroon)
+ (python-mode all-the-icons-alltheicon "python" :height 1.0 :face all-the-icons-dblue)
+ (inferior-python-mode all-the-icons-alltheicon "python" :height 1.0 :face all-the-icons-dblue)
+ (racket-mode all-the-icons-fileicon "racket" :height 1.2 :face all-the-icons-red)
+ (rust-mode all-the-icons-alltheicon "rust" :height 1.2 :face all-the-icons-maroon)
+ (scala-mode all-the-icons-alltheicon "scala" :face all-the-icons-red)
+ (scheme-mode all-the-icons-fileicon "scheme" :height 1.2 :face all-the-icons-red)
+ (swift-mode all-the-icons-alltheicon "swift" :height 1.0 :v-adjust -0.1 :face all-the-icons-green)
+ (c-mode all-the-icons-alltheicon "c-line" :face all-the-icons-blue)
+ (c++-mode all-the-icons-alltheicon "cplusplus-line" :v-adjust -0.2 :face all-the-icons-blue)
+ (csharp-mode all-the-icons-alltheicon "csharp-line" :face all-the-icons-dblue)
+ (clojure-mode all-the-icons-alltheicon "clojure" :height 1.0 :face all-the-icons-blue)
+ (cider-repl-mode all-the-icons-alltheicon "clojure" :height 1.0 :face all-the-icons-green)
+ (clojurescript-mode all-the-icons-fileicon "cljs" :height 1.0 :face all-the-icons-dblue)
+ (coffee-mode all-the-icons-alltheicon "coffeescript" :height 1.0 :face all-the-icons-maroon)
+ (lisp-mode all-the-icons-fileicon "lisp" :face all-the-icons-orange)
+ (css-mode all-the-icons-alltheicon "css3" :face all-the-icons-yellow)
+ (scss-mode all-the-icons-alltheicon "sass" :face all-the-icons-pink)
+ (sass-mode all-the-icons-alltheicon "sass" :face all-the-icons-dpink)
+ (less-css-mode all-the-icons-alltheicon "less" :height 0.8 :face all-the-icons-dyellow)
+ (stylus-mode all-the-icons-alltheicon "stylus" :face all-the-icons-lgreen)
+ (csv-mode all-the-icons-octicon "graph" :v-adjust 0.0 :face all-the-icons-dblue)
+ (haskell-mode all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ (haskell-c2hs-mode all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ (literate-haskell-mode all-the-icons-alltheicon "haskell" :height 1.0 :face all-the-icons-red)
+ (haml-mode all-the-icons-fileicon "haml" :face all-the-icons-lyellow)
+ (html-mode all-the-icons-alltheicon "html5" :face all-the-icons-orange)
+ (rhtml-mode all-the-icons-alltheicon "html5" :face all-the-icons-lred)
+ (mustache-mode all-the-icons-fileicon "moustache" :face all-the-icons-green)
+ (slim-mode all-the-icons-octicon "dashboard" :v-adjust 0.0 :face all-the-icons-yellow)
+ (jade-mode all-the-icons-fileicon "jade" :face all-the-icons-red)
+ (pug-mode all-the-icons-fileicon "pug" :face all-the-icons-red)
+ (react-mode all-the-icons-alltheicon "react" :height 1.1 :face all-the-icons-lblue)
+ (image-mode all-the-icons-octicon "file-media" :v-adjust 0.0 :face all-the-icons-blue)
+ (texinfo-mode all-the-icons-fileicon "tex" :face all-the-icons-lred)
+ (markdown-mode all-the-icons-octicon "markdown" :v-adjust 0.0 :face all-the-icons-lblue)
+ (bibtex-mode all-the-icons-fileicon "bib" :face all-the-icons-maroon)
+ (org-mode all-the-icons-fileicon "org" :face all-the-icons-lgreen)
+ (compilation-mode all-the-icons-faicon "cogs" :v-adjust 0.0 :height 1.0)
+ (objc-mode all-the-icons-faicon "apple" :v-adjust 0.0 :height 1.0)
+ (tuareg-mode all-the-icons-fileicon "ocaml" :v-adjust 0.0 :height 1.0)
+ (purescript-mode all-the-icons-fileicon "purescript" :v-adjust 0.0 :height 1.0)
+ (verilog-mode all-the-icons-fileicon "verilog" :height 1.0 :v-adjust -0.2 :face all-the-icons-red)
+ (vhdl-mode all-the-icons-fileicon "vhdl" :face all-the-icons-blue)
+ (haskell-cabal-mode all-the-icons-fileicon "cabal" :face all-the-icons-lblue)
+ (kotlin-mode all-the-icons-fileicon "kotlin" :face all-the-icons-orange)
+ (nim-mode all-the-icons-fileicon "nimrod" :face all-the-icons-yellow)
+ (sql-mode all-the-icons-octicon "database" :face all-the-icons-silver)
+ (lua-mode all-the-icons-fileicon "lua" :face all-the-icons-dblue)
+ (adoc-mode all-the-icons-fileicon "asciidoc" :face all-the-icons-lblue)
+ (puppet-mode all-the-icons-fileicon "puppet" :face all-the-icons-yellow)
+ (jinja2-mode all-the-icons-fileicon "jinja" :face all-the-icons-silver)
+ (powershell-mode all-the-icons-fileicon "powershell" :face all-the-icons-blue)
+ (tex-mode all-the-icons-fileicon "tex" :face all-the-icons-lred)
+ (latex-mode all-the-icons-fileicon "tex" :face all-the-icons-lred)
+ (dart-mode all-the-icons-fileicon "dart" :height 1.0 :face all-the-icons-blue)
+ (fsharp-mode all-the-icons-fileicon "fsharp" :height 1.0 :face all-the-icons-blue)
+ (asm-mode all-the-icons-fileicon "assembly" :height 1.0 :face all-the-icons-blue)
+ (nasm-mode all-the-icons-fileicon "assembly" :height 1.0 :face all-the-icons-blue)
+ (tcl-mode all-the-icons-fileicon "tcl" :height 1.0 :face all-the-icons-dred)
+ (cuda-mode all-the-icons-fileicon "nvidia" :face all-the-icons-green)
+ (f90-mode all-the-icons-fileicon "fortran" :face all-the-icons-purple)
+ (hy-mode all-the-icons-fileicon "hy" :face all-the-icons-blue)
+ (glsl-mode all-the-icons-fileicon "vertex-shader" :face all-the-icons-green)
+ (zig-mode all-the-icons-fileicon "zig" :face all-the-icons-orange)
+ (pdf-view-mode all-the-icons-octicon "file-pdf" :v-adjust 0.0 :face all-the-icons-dred)
+ (elfeed-search-mode all-the-icons-faicon "rss-square" :face all-the-icons-orange)
+ (elfeed-show-mode all-the-icons-faicon "rss" :face all-the-icons-orange)
+ (lilypond-mode all-the-icons-faicon "music" :face all-the-icons-green)
+ (magik-session-mode all-the-icons-alltheicon "terminal" :face all-the-icons-blue)
+ (magik-cb-mode all-the-icons-faicon "book" :face all-the-icons-blue)))
+
+(defvar all-the-icons-url-alist
+ '(
+ ;; Social media and communities
+ ("^\\(https?://\\)?\\(www\\.\\)?del\\.icio\\.us" all-the-icons-faicon "delicious")
+ ("^\\(https?://\\)?\\(www\\.\\)?behance\\.net" all-the-icons-faicon "behance")
+ ("^\\(https?://\\)?\\(www\\.\\)?dribbble\\.com" all-the-icons-faicon "dribbble")
+ ("^\\(https?://\\)?\\(www\\.\\)?facebook\\.com" all-the-icons-faicon "facebook-official")
+ ("^\\(https?://\\)?\\(www\\.\\)?glide\\.me" all-the-icons-faicon "glide-g")
+ ("^\\(https?://\\)?\\(www\\.\\)?plus\\.google\\.com" all-the-icons-faicon "google-plus")
+ ("linkedin\\.com" all-the-icons-faicon "linkedin")
+ ("^\\(https?://\\)?\\(www\\.\\)?ok\\.ru" all-the-icons-faicon "odnoklassniki")
+ ("^\\(https?://\\)?\\(www\\.\\)?reddit\\.com" all-the-icons-faicon "reddit-alien")
+ ("^\\(https?://\\)?\\(www\\.\\)?slack\\.com" all-the-icons-faicon "slack")
+ ("^\\(https?://\\)?\\(www\\.\\)?snapchat\\.com" all-the-icons-faicon "snapchat-ghost")
+ ("^\\(https?://\\)?\\(www\\.\\)?weibo\\.com" all-the-icons-faicon "weibo")
+ ("^\\(https?://\\)?\\(www\\.\\)?twitter\\.com" all-the-icons-faicon "twitter")
+ ;; Blogging
+ ("joomla\\.org" all-the-icons-faicon "joomla")
+ ("^\\(https?://\\)?\\(www\\.\\)?medium\\.com" all-the-icons-faicon "medium")
+ ("tumblr\\.com" all-the-icons-faicon "tumblr")
+ ("^wordpress\\.com" all-the-icons-faicon "wordpress")
+ ;; Programming
+ ("^\\(https?://\\)?\\(www\\.\\)?bitbucket\\.org" all-the-icons-faicon "bitbucket")
+ ("^\\(https?://\\)?\\(www\\.\\)?codepen\\.io" all-the-icons-faicon "codepen")
+ ("^\\(https?://\\)?\\(www\\.\\)?codiepie\\.com" all-the-icons-faicon "codiepie")
+ ("^\\(https?://\\)?\\(www\\.\\)?gist\\.github\\.com" all-the-icons-octicon "gist")
+ ("^\\(https?://\\)?\\(www\\.\\)?github\\.com" all-the-icons-octicon "mark-github")
+ ("^\\(https?://\\)?\\(www\\.\\)?gitlab\\.com" all-the-icons-faicon "gitlab")
+ ("^\\(https?://\\)?\\(www\\.\\)?news\\.ycombinator\\.com" all-the-icons-faicon "hacker-news")
+ ("^\\(https?://\\)?\\(www\\.\\)?jsfiddle\\.net" all-the-icons-faicon "jsfiddle")
+ ("^\\(https?://\\)?\\(www\\.\\)?maxcdn\\.com" all-the-icons-faicon "maxcdn")
+ ("^\\(https?://\\)?\\(www\\.\\)?stackoverflow\\.com" all-the-icons-faicon "stack-overflow")
+ ;; Video
+ ("^\\(https?://\\)?\\(www\\.\\)?twitch\\.tv" all-the-icons-faicon "twitch")
+ ("^\\(https?://\\)?\\(www\\.\\)?vimeo\\.com" all-the-icons-faicon "vimeo")
+ ("^\\(https?://\\)?\\(www\\.\\)?youtube\\.com" all-the-icons-faicon "youtube")
+ ("^\\(https?://\\)?\\(www\\.\\)?youtu\\.be" all-the-icons-faicon "youtube")
+ ("^\\(https?://\\)?\\(www\\.\\)?vine\\.co" all-the-icons-faicon "vine")
+ ;; Sound
+ ("^\\(https?://\\)?\\(www\\.\\)?last\\.fm" all-the-icons-faicon "lastfm")
+ ("^\\(https?://\\)?\\(www\\.\\)?mixcloud\\.com" all-the-icons-faicon "mixcloud")
+ ("^\\(https?://\\)?\\(www\\.\\)?soundcloud\\.com" all-the-icons-faicon "soundcloud")
+ ("spotify\\.com" all-the-icons-faicon "spotify")
+ ;; Shopping
+ ("^\\(https?://\\)?\\(www\\.\\)?amazon\\." all-the-icons-faicon "amazon")
+ ("^\\(https?://\\)?\\(www\\.\\)?opencart\\.com" all-the-icons-faicon "opencart")
+ ("^\\(https?://\\)?\\(www\\.\\)?paypal\\.com" all-the-icons-faicon "paypal")
+ ("^\\(https?://\\)?\\(www\\.\\)?shirtsinbulk\\.com" all-the-icons-faicon "shitsinbulk")
+ ;; Images
+ ("^\\(https?://\\)?\\(www\\.\\)?500px\\.com" all-the-icons-faicon "500px")
+ ("^\\(https?://\\)?\\(www\\.\\)?deviantart\\.com" all-the-icons-faicon "deviantart")
+ ("^\\(https?://\\)?\\(www\\.\\)?flickr\\.com" all-the-icons-faicon "flickr")
+ ("^\\(https?://\\)?\\(www\\.\\)?instagram\\.com" all-the-icons-faicon "instagram")
+ ("^\\(https?://\\)?\\(www\\.\\)?pinterest\\." all-the-icons-faicon "pinterest")
+ ;; Information and books
+ ("^\\(https?://\\)?\\(www\\.\\)?digg\\.com" all-the-icons-faicon "digg")
+ ("^\\(https?://\\)?\\(www\\.\\)?foursquare\\.com" all-the-icons-faicon "foursquare")
+ ("^\\(https?://\\)?\\(www\\.\\)?getpocket\\.com" all-the-icons-faicon "get-pocket")
+ ("^\\(https?://\\)?\\(www\\.\\)?scribd\\.com" all-the-icons-faicon "scribd")
+ ("^\\(https?://\\)?\\(www\\.\\)?slideshare\\.net" all-the-icons-faicon "slideshare")
+ ("stackexchange\\.com" all-the-icons-faicon "stack-exchange")
+ ("^\\(https?://\\)?\\(www\\.\\)?stumbleupon\\.com" all-the-icons-faicon "stumbleupon")
+ ("^\\(https?://\\)?\\(www\\.\\)?tripadvisor\\." all-the-icons-faicon "tripadvisor")
+ ("^\\(https?://\\)?\\(www\\.\\)?yelp\\." all-the-icons-faicon "yelp")
+
+ ("wikipedia\\.org" all-the-icons-faicon "wikipedia-w")
+ ;; Various companies and tools
+ ("^\\(https?://\\)?\\(www\\.\\)?angel\\.co" all-the-icons-faicon "angellist")
+ ("^\\(https?://\\)?\\(www\\.\\)?apple\\.com" all-the-icons-faicon "apple")
+ ("^\\(https?://\\)?\\(www\\.\\)?buysellads\\.com" all-the-icons-faicon "buysellads")
+ ("^\\(https?://\\)?\\(www\\.\\)?connectdevelop\\.com" all-the-icons-faicon "connectdevelop")
+ ("^\\(https?://\\)?\\(www\\.\\)?dashcube\\.com" all-the-icons-faicon "dashcube")
+ ("^\\(https?://\\)?\\(www\\.\\)?dropbox\\.com" all-the-icons-faicon "dropbox")
+ ("^\\(https?://\\)?\\(www\\.\\)?enviragallery\\.com" all-the-icons-faicon "envira")
+ ("^\\(https?://\\)?\\(www\\.\\)?fortawesome\\.com" all-the-icons-faicon "fort-awesome")
+ ("^\\(https?://\\)?\\(www\\.\\)?forumbee\\.com" all-the-icons-faicon "forumbee")
+ ("^\\(https?://\\)?\\(www\\.\\)?gratipay\\.com" all-the-icons-faicon "gratipay")
+ ("^\\(https?://\\)?\\(www\\.\\)?modx\\.com" all-the-icons-faicon "modx")
+ ("^\\(https?://\\)?\\(www\\.\\)?pagelines\\.com" all-the-icons-faicon "pagelines")
+ ("^\\(https?://\\)?\\(www\\.\\)?producthunt\\.com" all-the-icons-faicon "product-hunt")
+ ("sellsy\\.com" all-the-icons-faicon "sellsy")
+ ("^\\(https?://\\)?\\(www\\.\\)?simplybuilt\\.com" all-the-icons-faicon "simplybuilt")
+ ("^\\(https?://\\)?\\(www\\.\\)?skyatlas\\.com" all-the-icons-faicon "skyatlas")
+ ("^\\(https?://\\)?\\(www\\.\\)?skype\\.com" all-the-icons-faicon "skype")
+ ("steampowered\\.com" all-the-icons-faicon "steam")
+ ("^\\(https?://\\)?\\(www\\.\\)?themeisle\\.com" all-the-icons-faicon "themeisle")
+ ("^\\(https?://\\)?\\(www\\.\\)?trello\\.com" all-the-icons-faicon "trello")
+ ("^\\(https?://\\)?\\(www\\.\\)?whatsapp\\.com" all-the-icons-faicon "whatsapp")
+ ("^\\(https?://\\)?\\(www\\.\\)?ycombinator\\.com" all-the-icons-faicon "y-combinator")
+ ("yahoo\\.com" all-the-icons-faicon "yahoo")
+ ("^\\(https?://\\)?\\(www\\.\\)?yoast\\.com" all-the-icons-faicon "yoast")
+ ;; Catch all
+ ("android" all-the-icons-faicon "android")
+ ("creativecommons" all-the-icons-faicon "creative-commons")
+ ("forums?" all-the-icons-octicon "comment-discussion")
+ ("\\.pdf$" all-the-icons-octicon "file-pdf" :v-adjust 0.0 :face all-the-icons-dred)
+ ("google" all-the-icons-faicon "google")
+ ("\\.rss" all-the-icons-faicon "rss")
+ ))
+
+;; ====================
+;; Functions Start
+;; ====================
+
+(defun all-the-icons-auto-mode-match? (&optional file)
+ "Whether or not FILE's `major-mode' match against its `auto-mode-alist'."
+ (let* ((file (or file (buffer-file-name) (buffer-name)))
+ (auto-mode (all-the-icons-match-to-alist file auto-mode-alist)))
+ (eq major-mode auto-mode)))
+
+(defun all-the-icons-match-to-alist (file alist)
+ "Match FILE against an entry in ALIST using `string-match'."
+ (cdr (cl-find-if (lambda (it) (string-match (car it) file)) alist)))
+
+(defun all-the-icons-dir-is-submodule (dir)
+ "Checker whether or not DIR is a git submodule."
+ (let* ((gitmodule-dir (locate-dominating-file dir ".gitmodules"))
+ (modules-file (expand-file-name (format "%s.gitmodules" gitmodule-dir)))
+ (module-search (format "submodule \".*?%s\"" (file-name-base dir))))
+
+ (when (and gitmodule-dir (file-exists-p (format "%s/.git" dir)))
+ (with-temp-buffer
+ (insert-file-contents modules-file)
+ (search-forward-regexp module-search (point-max) t)))))
+
+;; Icon functions
+(defun all-the-icons-icon-for-dir-with-chevron (dir &optional chevron padding)
+ "Format an icon for DIR with CHEVRON similar to tree based directories.
+
+If PADDING is provided, it will prepend and separate the chevron
+and directory with PADDING.
+
+Produces different symbols by inspecting DIR to distinguish
+symlinks and git repositories which do not depend on the
+directory contents"
+ (let ((icon (all-the-icons-icon-for-dir dir))
+ (chevron (if chevron (all-the-icons-octicon (format "chevron-%s" chevron) :height 0.8 :v-adjust -0.1) ""))
+ (padding (or padding "\t")))
+ (format "%s%s%s%s%s" padding chevron padding icon padding)))
+
+(defun all-the-icons-icon-for-buffer ()
+ "Get the formatted icon for the current buffer.
+
+This function prioritises the use of the buffers file extension to
+discern the icon when its `major-mode' matches its auto mode,
+otherwise it will use the buffers `major-mode' to decide its
+icon."
+ (all-the-icons--icon-info-for-buffer))
+
+(defun all-the-icons-icon-family-for-buffer ()
+ "Get the icon font family for the current buffer."
+ (all-the-icons--icon-info-for-buffer "family"))
+
+(defun all-the-icons--web-mode-icon (&rest arg-overrides) "Get icon for a `web-mode' buffer with ARG-OVERRIDES." (all-the-icons--web-mode nil arg-overrides))
+(defun all-the-icons--web-mode-icon-family () "Get icon family for a `web-mode' buffer." (all-the-icons--web-mode t))
+(defun all-the-icons--web-mode (&optional family arg-overrides)
+ "Return icon or FAMILY for `web-mode' based on `web-mode-content-type'.
+Providing ARG-OVERRIDES will modify the creation of the icon."
+ (let ((non-nil-args (cl-reduce (lambda (acc it) (if it (append acc (list it)) acc)) arg-overrides :initial-value '())))
+ (cond
+ ((equal web-mode-content-type "jsx")
+ (if family (all-the-icons-fileicon-family) (apply 'all-the-icons-fileicon (append '("jsx-2") non-nil-args))))
+ ((equal web-mode-content-type "javascript")
+ (if family (all-the-icons-alltheicon-family) (apply 'all-the-icons-alltheicon (append '("javascript") non-nil-args))))
+ ((equal web-mode-content-type "json")
+ (if family (all-the-icons-alltheicon-family) (apply 'all-the-icons-alltheicon (append '("less") non-nil-args))))
+ ((equal web-mode-content-type "xml")
+ (if family (all-the-icons-faicon-family) (apply 'all-the-icons-faicon (append '("file-code-o") non-nil-args))))
+ ((equal web-mode-content-type "css")
+ (if family (all-the-icons-alltheicon-family) (apply 'all-the-icons-alltheicon (append '("css3") non-nil-args))))
+ (t
+ (if family (all-the-icons-alltheicon-family) (apply 'all-the-icons-alltheicon (append '("html5") non-nil-args)))))))
+
+;; Icon Functions
+
+;;;###autoload
+(defun all-the-icons-icon-for-dir (dir &rest arg-overrides)
+ "Get the formatted icon for DIR.
+ARG-OVERRIDES should be a plist containining `:height',
+`:v-adjust' or `:face' properties like in the normal icon
+inserting functions.
+
+Note: You want chevron, please use `all-the-icons-icon-for-dir-with-chevron'."
+ (let* ((dirname (file-name-base (directory-file-name dir)))
+ (path (expand-file-name dir))
+ (icon (all-the-icons-match-to-alist dirname all-the-icons-dir-icon-alist))
+ (args (cdr icon)))
+ (when arg-overrides (setq args (append `(,(car args)) arg-overrides (cdr args))))
+ (cond
+ ((file-remote-p path)
+ (apply #'all-the-icons-octicon "terminal" (cdr args)))
+ ((file-symlink-p path)
+ (apply #'all-the-icons-octicon "file-symlink-directory" (cdr args)))
+ ((all-the-icons-dir-is-submodule path)
+ (apply #'all-the-icons-octicon "file-submodule" (cdr args)))
+ ((file-exists-p (format "%s/.git" path))
+ (apply #'all-the-icons-octicon "repo" (cdr args)))
+ (t (apply (car icon) args)))))
+
+;;;###autoload
+(defun all-the-icons-icon-for-file (file &rest arg-overrides)
+ "Get the formatted icon for FILE.
+ARG-OVERRIDES should be a plist containining `:height',
+`:v-adjust' or `:face' properties like in the normal icon
+inserting functions."
+ (let* ((ext (file-name-extension file))
+ (icon (or (all-the-icons-match-to-alist file all-the-icons-regexp-icon-alist)
+ (and ext
+ (cdr (assoc (downcase ext)
+ all-the-icons-extension-icon-alist)))
+ all-the-icons-default-file-icon))
+ (args (cdr icon)))
+ (when arg-overrides (setq args (append `(,(car args)) arg-overrides (cdr args))))
+ (apply (car icon) args)))
+
+;;;###autoload
+(defun all-the-icons-icon-for-mode (mode &rest arg-overrides)
+ "Get the formatted icon for MODE.
+ARG-OVERRIDES should be a plist containining `:height',
+`:v-adjust' or `:face' properties like in the normal icon
+inserting functions."
+ (let* ((icon (cdr (or (assoc mode all-the-icons-mode-icon-alist)
+ (assoc (get mode 'derived-mode-parent) all-the-icons-mode-icon-alist))))
+ (args (cdr icon)))
+ (when arg-overrides (setq args (append `(,(car args)) arg-overrides (cdr args))))
+ (if icon (apply (car icon) args) mode)))
+
+;;;###autoload
+(defun all-the-icons-icon-for-url (url &rest arg-overrides)
+ "Get the formatted icon for URL.
+If an icon for URL isn't found in `all-the-icons-url-alist', a globe is used.
+ARG-OVERRIDES should be a plist containining `:height',
+`:v-adjust' or `:face' properties like in the normal icon
+inserting functions."
+ (let* ((icon (all-the-icons-match-to-alist url all-the-icons-url-alist))
+ (args (cdr icon)))
+ (unless icon
+ (setq icon '(all-the-icons-faicon "globe"))
+ (setq args (cdr icon)))
+ (when arg-overrides (setq args (append `(,(car args)) arg-overrides (cdr args))))
+ (apply (car icon) args)))
+
+(defcustom all-the-icons--cache-limit 2048
+ "Maximum cache size for functions cached by `all-the-icons-cache'."
+ :type 'integer)
+
+(defun all-the-icons-cache (func)
+ "Set a cache for FUNC. Does not work on interactive functions."
+ (unless (get func 'all-the-icons--cached)
+ (let ((cache (make-hash-table :test #'equal
+ :size all-the-icons--cache-limit))
+ (orig-fn (symbol-function func)))
+ (fset func
+ (lambda (&rest args)
+ (or (gethash args cache)
+ (progn
+ (when (> (hash-table-count cache)
+ all-the-icons--cache-limit)
+ (clrhash cache))
+ (puthash args (apply orig-fn args) cache)))))))
+
+ (put func 'all-the-icons--cached t))
+
+(all-the-icons-cache #'all-the-icons-icon-for-dir)
+(all-the-icons-cache #'all-the-icons-icon-for-file)
+(all-the-icons-cache #'all-the-icons-icon-for-mode)
+(all-the-icons-cache #'all-the-icons-icon-for-url)
+
+;; Family Face Functions
+(defun all-the-icons-icon-family-for-file (file)
+ "Get the icons font family for FILE."
+ (let ((icon (all-the-icons-match-to-alist file all-the-icons-regexp-icon-alist)))
+ (funcall (intern (format "%s-family" (car icon))))))
+
+(defun all-the-icons-icon-family-for-mode (mode)
+ "Get the icons font family for MODE."
+ (let ((icon (cdr (assoc mode all-the-icons-mode-icon-alist))))
+ (if icon (funcall (intern (format "%s-family" (car icon)))) nil)))
+
+(defun all-the-icons-icon-family (icon)
+ "Get a propertized ICON family programmatically."
+ (plist-get (get-text-property 0 'face icon) :family))
+
+(all-the-icons-cache #'all-the-icons-icon-family-for-file)
+(all-the-icons-cache #'all-the-icons-icon-family-for-mode)
+(all-the-icons-cache #'all-the-icons-icon-family)
+
+(defun all-the-icons--icon-info-for-buffer (&optional f)
+ "Get icon info for the current buffer.
+
+When F is provided, the info function is calculated with the format
+`all-the-icons-icon-%s-for-file' or `all-the-icons-icon-%s-for-mode'."
+ (let* ((base-f (concat "all-the-icons-icon" (when f (format "-%s" f))))
+ (file-f (intern (concat base-f "-for-file")))
+ (mode-f (intern (concat base-f "-for-mode"))))
+ (if (and (buffer-file-name)
+ (all-the-icons-auto-mode-match?))
+ (funcall file-f (file-name-nondirectory (buffer-file-name)))
+ (funcall mode-f major-mode))))
+
+;; Weather icons
+(defun all-the-icons-icon-for-weather (weather)
+ "Get an icon for a WEATHER status."
+ (let ((icon (all-the-icons-match-to-alist weather all-the-icons-weather-icon-alist)))
+ (if icon (apply (car icon) (cdr icon)) weather)))
+
+;; Definitions
+
+(eval-and-compile
+ (defun all-the-icons--function-name (name)
+ "Get the symbol for an icon function name for icon set NAME."
+ (intern (concat "all-the-icons-" (downcase (symbol-name name)))))
+
+ (defun all-the-icons--family-name (name)
+ "Get the symbol for an icon family function for icon set NAME."
+ (intern (concat "all-the-icons-" (downcase (symbol-name name)) "-family")))
+
+ (defun all-the-icons--data-name (name)
+ "Get the symbol for an icon family function for icon set NAME."
+ (intern (concat "all-the-icons-" (downcase (symbol-name name)) "-data")))
+
+ (defun all-the-icons--insert-function-name (name)
+ "Get the symbol for an icon insert function for icon set NAME."
+ (intern (concat "all-the-icons-insert-" (downcase (symbol-name name)))))
+
+ (defun all-the-icons--family-scale-factor (family)
+ (intern (concat "all-the-icons-" (symbol-name family) "-scale-factor")))
+
+ (defun all-the-icons--family-adjust (family)
+ (intern (concat "all-the-icons-default-" (symbol-name family) "-adjust"))))
+
+;; Icon insertion functions
+
+(defun all-the-icons--read-candidates ()
+ "Helper to build a list of candidates for all families."
+ (cl-reduce 'append (mapcar (lambda (it) (all-the-icons--read-candidates-for-family it t)) all-the-icons-font-families)))
+
+(defun all-the-icons--read-candidates-for-family (family &optional show-family)
+ "Helper to build read candidates for FAMILY.
+If SHOW-FAMILY is non-nil, displays the icons family in the candidate string."
+ (let ((data (funcall (all-the-icons--data-name family)))
+ (icon-f (all-the-icons--function-name family)))
+ (mapcar
+ (lambda (it)
+ (let* ((icon-name (car it))
+ (icon-name-head (substring icon-name 0 1))
+ (icon-name-tail (substring icon-name 1))
+
+ (icon-display (propertize icon-name-head 'display (format "%s\t%s" (funcall icon-f icon-name) icon-name-head)))
+ (icon-family (if show-family (format "\t[%s]" family) ""))
+
+ (candidate-name (format "%s%s%s" icon-display icon-name-tail icon-family))
+ (candidate-icon (funcall (all-the-icons--function-name family) icon-name)))
+
+ (cons candidate-name candidate-icon)))
+ data)))
+
+;;;###autoload
+(defun all-the-icons-install-fonts (&optional pfx)
+ "Helper function to download and install the latests fonts based on OS.
+When PFX is non-nil, ignore the prompt and just install"
+ (interactive "P")
+ (when (or pfx (yes-or-no-p "This will download and install fonts, are you sure you want to do this?"))
+ (let* ((url-format "https://raw.githubusercontent.com/domtronn/all-the-icons.el/master/fonts/%s")
+ (font-dest (cond
+ ;; Default Linux install directories
+ ((member system-type '(gnu gnu/linux gnu/kfreebsd))
+ (concat (or (getenv "XDG_DATA_HOME")
+ (concat (getenv "HOME") "/.local/share"))
+ "/fonts/"))
+ ;; Default MacOS install directory
+ ((eq system-type 'darwin)
+ (concat (getenv "HOME") "/Library/Fonts/"))))
+ (known-dest? (stringp font-dest))
+ (font-dest (or font-dest (read-directory-name "Font installation directory: " "~/"))))
+
+ (unless (file-directory-p font-dest) (mkdir font-dest t))
+
+ (mapc (lambda (font)
+ (url-copy-file (format url-format font) (expand-file-name font font-dest) t))
+ all-the-icons-font-names)
+ (when known-dest?
+ (message "Fonts downloaded, updating font cache... <fc-cache -f -v> ")
+ (shell-command-to-string (format "fc-cache -f -v")))
+ (message "%s Successfully %s `all-the-icons' fonts to `%s'!"
+ (all-the-icons-wicon "stars" :v-adjust 0.0)
+ (if known-dest? "installed" "downloaded")
+ font-dest))))
+
+;;;###autoload
+(defun all-the-icons-insert (&optional arg family)
+ "Interactive icon insertion function.
+When Prefix ARG is non-nil, insert the propertized icon.
+When FAMILY is non-nil, limit the candidates to the icon set matching it."
+ (interactive "P")
+ (let* ((standard-output (current-buffer))
+ (candidates (if family
+ (all-the-icons--read-candidates-for-family family)
+ (all-the-icons--read-candidates)))
+ (prompt (if family
+ (format "%s Icon: " (funcall (all-the-icons--family-name family)))
+ "Icon : "))
+
+ (selection (completing-read prompt candidates nil t))
+ (result (cdr (assoc selection candidates))))
+
+ (if arg (prin1 result) (insert result))))
+
+;; Debug Helpers
+
+(defun all-the-icons-insert-icons-for (family &optional height duration)
+ "Insert all of the available icons associated with FAMILY.
+If a HEIGHT is provided it will render the icons at this height.
+This is useful both to see the icons more clearly and to test
+different height rendering. If DURATION is provided, it will
+pause for DURATION seconds between printing each character."
+ (let* ((data-f (all-the-icons--data-name family))
+ (insert-f (all-the-icons--function-name family))
+
+ (height (or height 2.0))
+ (data (funcall data-f)))
+ (mapc
+ (lambda (it)
+ (insert (format "%s - %s\n" (funcall insert-f (car it) :height height) (car it)))
+ (when duration (sit-for duration 0)))
+ data)))
+
+(defmacro all-the-icons-define-icon (name alist family &optional font-name)
+ "Macro to generate functions for inserting icons for icon set NAME.
+
+NAME defines is the name of the iconset and will produce a
+function of the for `all-the-icons-NAME'.
+
+ALIST is the alist containing maps between icon names and the
+UniCode for the character. All of these can be found in the data
+directory of this package.
+
+FAMILY is the font family to use for the icons.
+FONT-NAME is the name of the .ttf file providing the font, defaults to FAMILY."
+ `(progn
+ (add-to-list 'all-the-icons-font-families (quote ,name))
+ (add-to-list 'all-the-icons-font-names (quote ,(downcase (format "%s.ttf" (or font-name family)))))
+ (defcustom ,(all-the-icons--family-scale-factor name) 1.0
+ ,(format "The additional `height' face property Scale Factor for %s icons."
+ (symbol-name name))
+ :group 'all-the-icons
+ :type 'number)
+ (defcustom ,(all-the-icons--family-adjust name) 0.0
+ ,(format "The additional `raise' display property adjustment for %s icons."
+ (symbol-name name))
+ :group 'all-the-icons
+ :type 'number)
+ (defun ,(all-the-icons--family-name name) () ,family)
+ (defun ,(all-the-icons--data-name name) () ,alist)
+ (defun ,(all-the-icons--function-name name) (icon-name &rest args)
+ (let ((icon (cdr (assoc icon-name ,alist)))
+ (other-face (when all-the-icons-color-icons (plist-get args :face)))
+ (height (* all-the-icons-scale-factor
+ ,(all-the-icons--family-scale-factor name)
+ (or (plist-get args :height) 1.0)))
+ (v-adjust (* all-the-icons-scale-factor ,(all-the-icons--family-scale-factor name)
+ (+ (or (plist-get args :v-adjust) all-the-icons-default-adjust)
+ ,(all-the-icons--family-adjust name))))
+ (family ,family))
+ (unless icon
+ (error (format "Unable to find icon with name `%s' in icon set `%s'" icon-name (quote ,name))))
+ (let ((face (if other-face
+ `(:family ,family :height ,height :inherit ,other-face)
+ `(:family ,family :height ,height))))
+ (propertize icon
+ 'face face ;so that this works without `font-lock-mode' enabled
+ 'font-lock-face face ;so that `font-lock-mode' leaves this alone
+ 'display `(raise ,v-adjust)
+ 'rear-nonsticky t))))
+ (defun ,(all-the-icons--insert-function-name name) (&optional arg)
+ ,(format "Insert a %s icon at point." family)
+ (interactive "P")
+ (all-the-icons-insert arg (quote ,name)))))
+
+(define-obsolete-function-alias 'define-icon 'all-the-icons-define-icon "4.0.0")
+
+(all-the-icons-define-icon alltheicon all-the-icons-data/alltheicons-alist "all-the-icons")
+(all-the-icons-define-icon fileicon all-the-icons-data/file-icon-alist "file-icons")
+(all-the-icons-define-icon faicon all-the-icons-data/fa-icon-alist "FontAwesome")
+(all-the-icons-define-icon octicon all-the-icons-data/octicons-alist "github-octicons" "octicons")
+(all-the-icons-define-icon wicon all-the-icons-data/weather-icons-alist "Weather Icons" "weathericons")
+(all-the-icons-define-icon material all-the-icons-data/material-icons-alist "Material Icons" "material-design-icons")
+
+(provide 'all-the-icons)
+
+;;; all-the-icons.el ends here