summaryrefslogtreecommitdiff
path: root/fnl/util.fnl
blob: ba859dfbd3db78efa596ae6bf00a322889024f99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
;; Utility functions.
(module util {autoload {a aniseed.core
                        nvim aniseed.nvim
                        packer packer
                        plugins plugins}})

(def- path (.. (vim.fn.stdpath :data) :/site/pack/packer/start))

(defn- num-plugins [] (var i 0)
       (each [_ _ (pairs plugins.plugins)]
         (set i (+ i 1))) i)

(defn- num-installed-plugins [] (length (vim.fn.readdir path)))

(defn- install []
       (packer.startup (fn [use]
                         (each [plugin opts (pairs plugins.plugins)]
                           (use (a.assoc opts 1 plugin))))))

(defn load-plugins [] (install)
      (let [num-installed-plugins (num-installed-plugins)
            num-plugins (num-plugins)]
        (if (not= num-installed-plugins num-plugins)
            (packer.sync))) (require :config))

(defn load-plugin [name]
      (let [(ok? val-or-err) (pcall require name)]
        (if ok?
            val-or-err
            (vim.notify (.. "Could not load config: " val-or-err)
                        vim.log.levels.WARN))))