diff --git a/files/.config/configstore/update-notifier-npm.json b/files/.config/configstore/update-notifier-npm.json index e4539e4..cd470ef 100644 --- a/files/.config/configstore/update-notifier-npm.json +++ b/files/.config/configstore/update-notifier-npm.json @@ -1,4 +1,10 @@ { "optOut": false, - "lastUpdateCheck": 1619802461034 + "lastUpdateCheck": 1620514416532, + "update": { + "latest": "7.12.0", + "current": "6.14.12", + "type": "major", + "name": "npm" + } } \ No newline at end of file diff --git a/files/.config/nvim/fnl/init.fnl b/files/.config/nvim/fnl/init.fnl index b6e0d3b..dd64433 100644 --- a/files/.config/nvim/fnl/init.fnl +++ b/files/.config/nvim/fnl/init.fnl @@ -23,47 +23,44 @@ (vim.cmd "filetype plugin indent on") (vim.cmd "syntax on") -(set vim.o.showmode false) -(set vim.o.foldmethod "marker") -(set vim.o.undodir (.. vim.env.HOME "/.vim/undo-dir")) -(set vim.o.undofile true) -(set vim.o.shortmess (.. vim.o.shortmess "c")) ; Don't give completion messages like 'match 1 of 2' or 'The only match' -(set vim.o.hidden true) -(set vim.o.encoding "utf-8") -(set vim.o.number false) -(set vim.o.relativenumber false) -(set vim.o.compatible false) -(set vim.o.cursorline true) -(set vim.o.incsearch true) -(set vim.o.hlsearch true) -(set vim.o.inccommand "nosplit") -(set vim.o.signcolumn "yes") -(set vim.o.shiftwidth 2) -(set vim.o.tabstop 2) -(set vim.o.backspace "indent,eol,start") -(set vim.o.autoindent true) -(set vim.o.smartindent true) -(set vim.o.expandtab true) -(set vim.o.wrap false) -(set vim.o.completeopt "longest,menuone,noselect") -(set vim.o.laststatus 2) -(set vim.o.showmode true) -(set vim.o.splitbelow true) -(set vim.o.splitright true) -(set vim.o.mouse "a") -(set vim.o.shell "bash") -(set vim.o.background "dark") +(se foldmethod "marker") +(se showmode false) +(se undodir (.. vim.env.HOME "/.vim/undo-dir")) +(se undofile true) +(se shortmess (.. vim.o.shortmess "c")) ; Don't give completion messages like 'match 1 of 2' or 'The only match' +(se hidden true) +(se encoding "utf-8") +(se number false) +(se relativenumber false) +(se compatible false) +(se cursorline true) +(se incsearch true) +(se hlsearch true) +(se inccommand "nosplit") +(se signcolumn "yes") +(se shiftwidth 2) +(se tabstop 2) +(se backspace "indent,eol,start") +(se autoindent true) +(se smartindent true) +(se expandtab true) +(se wrap false) +(se completeopt "longest,menuone,noselect") +(se laststatus 2) +(se showmode true) +(se splitbelow true) +(se splitright true) +(se mouse "a") +(se shell "bash") +(se background "dark") (when (vim.fn.has "termguicolors") - (set vim.o.termguicolors true)) - -(when (not (vim.fn.has "gui_running")) - (set vim.o.t_Co 256)) + (se termguicolors true)) (vim.cmd "colorscheme gruvbox") (vim-let &t_ut "") -(vim.cmd "autocmd! BufReadPost *.hs :set shiftwidth=2)") +(vim.cmd "autocmd! BufReadPost *.hs :set shiftwidth=2") (vim.cmd "autocmd! FileType vim setlocal foldmethod=marker") ;Disables automatic commenting on newline) diff --git a/files/.config/nvim/fnl/macros.fnl b/files/.config/nvim/fnl/macros.fnl index eeac506..20499ad 100644 --- a/files/.config/nvim/fnl/macros.fnl +++ b/files/.config/nvim/fnl/macros.fnl @@ -1,59 +1,87 @@ {:augroup - (fn [name ...] - `(do - (nvim.ex.augroup ,(tostring name)) - (nvim.ex.autocmd_) - ,... - (nvim.ex.augroup :END))) - - :autocmd - (fn [...] - `(nvim.ex.autocmd ,...)) - - :_: - (fn [name ...] - `((. nvim.ex ,(tostring name)) ,...)) + (fn [name ...] + `(do + (nvim.ex.augroup ,(tostring name)) + (nvim.ex.autocmd_) + ,... + (nvim.ex.augroup :END))) - :viml->fn - (fn [name] - `(.. "lua require('" *module-name* "')['" ,(tostring name) "']()")) - - :dbg - (fn [x] - `(let [view# (. (require "aniseed.fennel") :view)] - (print (.. `,(tostring x) " => " (view# ,x))) - ,x)) - - :dbg-call - (fn [x ...] - `(do - (a.println ,...) - (,x ,...))) - - :pkg - (fn [name mappings ...] - `(if (~= nil (. packer_plugins `,(tostring name))) - (let ,mappings ,...) - (print (.. "plugin disabled " `,(tostring name))))) - - :vim-let - (fn [field value] - (let [text (.. "let " `,(tostring field) "=\"" value "\"")] - `(vim.cmd ,text))) - - :each-pair - (fn [args ...] - (let [[l# r# d#] args] - `(let [data# ,d#] - (for [i# 1 (a.count data#) 2] - (let [,l# (. data# i#) - ,r# (. data# (+ i# 1))] - ,...)))))} + :autocmd + (fn [...] + `(nvim.ex.autocmd ,...)) + :_: + (fn [name ...] + `((. nvim.ex ,(tostring name)) ,...)) + :viml->fn + (fn [name] + `(.. "lua require('" *module-name* "')['" ,(tostring name) "']()")) + + :dbg + (fn [x] + `(let [view# (. (require "aniseed.fennel") :view)] + (print (.. `,(tostring x) " => " (view# ,x))) + ,x)) + + :dbg-call + (fn [x ...] + `(do + (a.println ,...) + (,x ,...))) + + :pkg + (fn [name mappings ...] + `(if (~= nil (. packer_plugins `,(tostring name))) + (let ,mappings ,...) + (print (.. "plugin disabled " `,(tostring name))))) + + :vim-let + (fn [field value] + (let [text (.. "let " `,(tostring field) "=\"" value "\"")] + `(vim.cmd ,text))) + + :each-pair + (fn [args ...] + (let [[l# r# d#] args] + `(let [data# ,d#] + (for [i# 1 (a.count data#) 2] + (let [,l# (. data# i#) + ,r# (. data# (+ i# 1))] + ,...))))) + + :use-macro + (fn [...] + (let [a (require "aniseed.core") + fennel (require "aniseed.fennel") + args [...] + use-statements []] + (for [i 1 (a.count args) 2] + (let [name (. args i) + block (. args (+ i 1))] + (a.assoc block 1 name) + (when (. block :mod) + (a.assoc block :config `#(require ,(. block :mod)))) + (a.assoc block :mod nil) + (table.insert use-statements block))) - - - + (let [use-sym (gensym)] + `(let [packer# (require "packer")] + (packer#.startup + (fn [,use-sym] + ,(unpack + (icollect [_# v# (ipairs use-statements)] + `(,use-sym ,v#))))))))) + :se + (fn [name value] + (let [str-name (tostring name) + (info-ok scope) (pcall #(. (vim.api.nvim_get_option_info str-name) :scope))] + (if info-ok + (match scope + :global `(tset vim.o ,str-name ,value) + :win `(tset vim.wo ,str-name ,value) + :buf `(tset vim.bo ,str-name ,value) + _ (print (.. "option " str-name " has unhandled scope " scope))) + (print (.. "Unknown vim-option: " str-name)))))} diff --git a/files/.config/nvim/fnl/plugins.fnl b/files/.config/nvim/fnl/plugins.fnl index 06785ae..f6d8d6f 100644 --- a/files/.config/nvim/fnl/plugins.fnl +++ b/files/.config/nvim/fnl/plugins.fnl @@ -1,8 +1,10 @@ (module plugins - {require {utils utils}}) + {require {utils utils} + require-macros [macros]}) -(utils.use +(use-macro :nvim-telescope/telescope.nvim {:mod "plugins.telescope" + :cmd ["Telescope"] :requires [:nvim-lua/popup.nvim :nvim-lua/plenary.nvim]} :p00f/nvim-ts-rainbow {} diff --git a/files/.config/nvim/fnl/plugins/telescope.fnl b/files/.config/nvim/fnl/plugins/telescope.fnl index 8115efe..6f51087 100644 --- a/files/.config/nvim/fnl/plugins/telescope.fnl +++ b/files/.config/nvim/fnl/plugins/telescope.fnl @@ -3,6 +3,8 @@ telescope telescope actions telescope.actions}}) +(print "initializing telescope") + (telescope.setup {}) (utils.keymap :n : ":Telescope find_files") diff --git a/files/.config/nvim/fnl/utils.fnl b/files/.config/nvim/fnl/utils.fnl index 334aa51..7e7a7ae 100644 --- a/files/.config/nvim/fnl/utils.fnl +++ b/files/.config/nvim/fnl/utils.fnl @@ -3,7 +3,7 @@ fennel aniseed.fennel nvim aniseed.nvim} require-macros [macros]}) - + (defn plugin-installed? [name] (~= nil (. packer_plugins name))) @@ -42,6 +42,12 @@ (nvim.buf_del_keymap 0 mode from) (nvim.del_keymap mode from))) +(defn pairs->tuples [xs] + (let [result []] + (each-pair [l r xs] + (table.insert result (values l r))) + result)) + (defn- safe-require-plugin-config [name] (xpcall #(require name)