diff options
Diffstat (limited to 'fnl')
37 files changed, 905 insertions, 1044 deletions
diff --git a/fnl/config/alpha.fnl b/fnl/config/alpha.fnl index 82124ff..8265ff0 100644 --- a/fnl/config/alpha.fnl +++ b/fnl/config/alpha.fnl @@ -1,6 +1,5 @@ ;; A customizable greeter. -(module config.alpha - {autoload {util util}}) +(module config.alpha {autoload {util util}}) (def- ascii-art [" ##############..... ############## " " ##############......############## " @@ -25,8 +24,7 @@ (let [dashboard (require :alpha.themes.dashboard)] (set dashboard.section.header.val ascii-art) (set dashboard.section.buttons.val - [(dashboard.button :f " Find file" - ":Telescope file_browser <CR>") + [(dashboard.button :f " Find file" ":Telescope file_browser <CR>") (dashboard.button :e " New file" ":ene <BAR> startinsert <CR>") (dashboard.button :p " Find project" ":Telescope projects <CR>") (dashboard.button :r " Recently used files" diff --git a/fnl/config/autocmd.fnl b/fnl/config/autocmd.fnl index a3b58d1..d344015 100644 --- a/fnl/config/autocmd.fnl +++ b/fnl/config/autocmd.fnl @@ -1,11 +1,7 @@ ;; Autocommands for nvim. -(module config.autocmd - {autoload {nvim aniseed.nvim - a aniseed.core - util util}}) +(module config.autocmd {autoload {nvim aniseed.nvim a aniseed.core util util}}) -(defn- autocmd [event opts] - (nvim.create_autocmd event opts)) +(defn- autocmd [event opts] (nvim.create_autocmd event opts)) (autocmd :User {:pattern :AlphaReady @@ -19,22 +15,15 @@ :command "nnoremap <silent> <buffer> q :close<CR>"}) (autocmd :TextYankPost - {:callback (lambda [] (vim.highlight.on_yank {:timeout 200}))}) + {:callback (lambda [] + (vim.highlight.on_yank {:timeout 200}))}) -(autocmd :BufWinEnter - {:command "setlocal formatoptions-=cro"}) +(autocmd :BufWinEnter {:command "setlocal formatoptions-=cro"}) -(autocmd :FileType - {:pattern "qf" - :command "set nobuflisted"}) +(autocmd :FileType {:pattern :qf :command "set nobuflisted"}) -(autocmd :FileType - {:pattern [:gitcommit :markdown] - :command "setlocal wrap"}) +(autocmd :FileType {:pattern [:gitcommit :markdown] :command "setlocal wrap"}) -(autocmd :FileType - {:pattern [:gitcommit :markdown] - :command "setlocal spell"}) +(autocmd :FileType {:pattern [:gitcommit :markdown] :command "setlocal spell"}) -(autocmd :VimResized - {:command "tabdo wincmd ="}) +(autocmd :VimResized {:command "tabdo wincmd ="}) diff --git a/fnl/config/autopairs.fnl b/fnl/config/autopairs.fnl index 6e6e164..2b175fa 100644 --- a/fnl/config/autopairs.fnl +++ b/fnl/config/autopairs.fnl @@ -1,22 +1,21 @@ ;; Autopairs for brackets and quote symbols. -(module config.autopairs - {autoload {util util}}) +(module config.autopairs {autoload {util util}}) (let [npairs (util.load-plugin :nvim-autopairs)] - (npairs.setup - {:check_ts true - :ts_config {:lua [:string :source] - :javascript [:string :template_string] - :java false} - :disable_filetype [:TelescopePrompt :spectre_panel] - :fast_warp {:map :<M-e> - :chars ["{" "[" "(" "\"" "'"] - :pattern (string.gsub "[%'%\"%)%>%]%)%}%,]" "%s+" "") - :check_comma true - :highlight :PmenuSel - :highlight_grey :LineNr - :offset 0 - :end_key "$" - :keys :qwertyuiopzxcvbnmasdfghjkl - :highlight :PmenuSel - :highlight_grey :LineNr}})) + (npairs.setup {:check_ts true + :ts_config {:lua [:string :source] + :javascript [:string :template_string] + :java false} + :disable_filetype [:TelescopePrompt :spectre_panel] + :fast_warp {:map :<M-e> + :chars ["{" "[" "(" "\"" "'"] + :pattern (string.gsub "[%'%\"%)%>%]%)%}%,]" "%s+" + "") + :check_comma true + :highlight :PmenuSel + :highlight_grey :LineNr + :offset 0 + :end_key "$" + :keys :qwertyuiopzxcvbnmasdfghjkl + :highlight :PmenuSel + :highlight_grey :LineNr}})) diff --git a/fnl/config/better-escape.fnl b/fnl/config/better-escape.fnl index 360bfe2..93ec0a9 100644 --- a/fnl/config/better-escape.fnl +++ b/fnl/config/better-escape.fnl @@ -1,10 +1,8 @@ ;; Better escape without nasty delay -(module config.better-escape - {autoload {util util}}) +(module config.better-escape {autoload {util util}}) (let [better-escape (util.load-plugin :better_escape)] - (better-escape.setup - {:mapping [:jk :jj] - :timeout vim.o.timeoutlen - :clear_empty_lines false - :keys :<Esc>})) + (better-escape.setup {:mapping [:jk :jj] + :timeout vim.o.timeoutlen + :clear_empty_lines false + :keys :<Esc>})) diff --git a/fnl/config/bufferline.fnl b/fnl/config/bufferline.fnl index 3e2c86b..def604f 100644 --- a/fnl/config/bufferline.fnl +++ b/fnl/config/bufferline.fnl @@ -1,33 +1,31 @@ ;; Topbar that displays open buffers. -(module config.bufferline - {autoload {util util}}) +(module config.bufferline {autoload {util util}}) -(def- options - {:numbers :none - :close_command "Bdelete! %d" - :right_mouse_command nil - :left_mouse_command nil - :middle_mouse_command nil - :indicator_icon "" - :buffer_close_icon "" - :modified_icon "●" - :close_icon "" - :left_trunc_marker "<" - :right_trunc_marker ">" - :max_name_length 30 - :max_prefix_length 30 - :tab_size 21 - :diagnostics false - :diagnostics_update_in_insert false - :offsets [{:filetype :NvimTree :text "" :padding 0}] - :show_buffer_icons false - :show_buffer_close_icons false - :show_close_icon false - :show_tab_indicators false - :persist_buffer_sort true - :separator_style :thin - :enforce_regular_tabs true - :always_show_bufferline true}) +(def- options {:numbers :none + :close_command "Bdelete! %d" + :right_mouse_command nil + :left_mouse_command nil + :middle_mouse_command nil + :indicator_icon "" + :buffer_close_icon "" + :modified_icon "●" + :close_icon "" + :left_trunc_marker "<" + :right_trunc_marker ">" + :max_name_length 30 + :max_prefix_length 30 + :tab_size 21 + :diagnostics false + :diagnostics_update_in_insert false + :offsets [{:filetype :NvimTree :text "" :padding 0}] + :show_buffer_icons false + :show_buffer_close_icons false + :show_close_icon false + :show_tab_indicators false + :persist_buffer_sort true + :separator_style :thin + :enforce_regular_tabs true + :always_show_bufferline true}) (def- default-bg-tabline {:attribute :bg :highlight :TabLine}) @@ -38,34 +36,34 @@ (def- default-fg-normal {:attribute :fg :highlight :Normal}) (def- highlights - {:fill {:guifg {:attribute :fg :highlight "#ff0000"} - :guibg default-bg-tabline} - :background {:guifg default-fg-tabline :guibg default-bg-tabline} - :buffer_visible {:guifg default-fg-tabline :guibg default-bg-tabline} - :close_button {:guifg default-fg-tabline :guibg default-bg-tabline} - :close_button_visible {:guifg default-fg-tabline - :guibg default-bg-tabline} - :tab_selected {:guifg default-fg-normal :guibg default-bg-normal} - :tab {:guifg default-fg-tabline :guibg default-bg-tabline} - :tab_close {:guifg {:attribute :fg :highlight :TabLineSel} - :guibg default-bg-normal} - :duplicate_selected {:guifg {:attribute :fg :highlight :TabLineSel} - :guibg {:attribute :bg :highlight :TabLineSel} - :gui :italic} - :duplicate_visible {:guifg default-fg-tabline - :guibg default-bg-tabline - :gui :italic} - :duplicate {:guifg default-fg-tabline - :guibg default-bg-tabline - :gui :italic} - :modified {:guifg default-fg-tabline :guibg default-bg-tabline} - :modified_selected {:guifg default-fg-normal :guibg default-bg-normal} - :modified_visible {:guifg default-fg-tabline :guibg default-bg-tabline} - :separator {:guifg default-bg-tabline :guibg default-bg-tabline} - :separator_selected {:guifg default-bg-normal :guibg default-bg-normal} - :indicator_selected {:guifg {:attribute :fg - :highlight :LspDiagnosticsDefaultHint} - :guibg default-bg-normal}}) + {:fill {:guifg {:attribute :fg :highlight "#ff0000"} + :guibg default-bg-tabline} + :background {:guifg default-fg-tabline :guibg default-bg-tabline} + :buffer_visible {:guifg default-fg-tabline :guibg default-bg-tabline} + :close_button {:guifg default-fg-tabline :guibg default-bg-tabline} + :close_button_visible {:guifg default-fg-tabline + :guibg default-bg-tabline} + :tab_selected {:guifg default-fg-normal :guibg default-bg-normal} + :tab {:guifg default-fg-tabline :guibg default-bg-tabline} + :tab_close {:guifg {:attribute :fg :highlight :TabLineSel} + :guibg default-bg-normal} + :duplicate_selected {:guifg {:attribute :fg :highlight :TabLineSel} + :guibg {:attribute :bg :highlight :TabLineSel} + :gui :italic} + :duplicate_visible {:guifg default-fg-tabline + :guibg default-bg-tabline + :gui :italic} + :duplicate {:guifg default-fg-tabline + :guibg default-bg-tabline + :gui :italic} + :modified {:guifg default-fg-tabline :guibg default-bg-tabline} + :modified_selected {:guifg default-fg-normal :guibg default-bg-normal} + :modified_visible {:guifg default-fg-tabline :guibg default-bg-tabline} + :separator {:guifg default-bg-tabline :guibg default-bg-tabline} + :separator_selected {:guifg default-bg-normal :guibg default-bg-normal} + :indicator_selected {:guifg {:attribute :fg + :highlight :LspDiagnosticsDefaultHint} + :guibg default-bg-normal}}) (let [bufferline (util.load-plugin :bufferline)] - (bufferline.setup {:options options :highlights highlights})) + (bufferline.setup {: options : highlights})) diff --git a/fnl/config/cmp.fnl b/fnl/config/cmp.fnl index 591dfe6..8b37c1c 100644 --- a/fnl/config/cmp.fnl +++ b/fnl/config/cmp.fnl @@ -1,7 +1,5 @@ ;; Configuration for completion plugin. -(module config.cmp - {autoload {nvim aniseed.nvim - util util}}) +(module config.cmp {autoload {nvim aniseed.nvim util util}}) (let [cmp (util.load-plugin :cmp) lspkind (util.load-plugin :lspkind) @@ -9,40 +7,40 @@ luasnip-vscode (require :luasnip/loaders/from_vscode)] (luasnip-vscode.lazy_load) (lspkind.init) - (cmp.setup { - :snippet {:expand (fn [args] - (luasnip.lsp_expand args.body))} - :mapping (cmp.mapping.preset.insert { - :<C-k> (cmp.mapping.select_prev_item) - :<C-j> (cmp.mapping.select_next_item) - :<C-b> (cmp.mapping (cmp.mapping.scroll_docs -1) - [:i :c]) - :<C-f> (cmp.mapping (cmp.mapping.scroll_docs 1) [:i :c]) - :<C-space> (cmp.mapping (cmp.mapping.complete) [:i :c]) - :<C-e> (cmp.mapping {:i (cmp.mapping.abort) - :c (cmp.mapping.close)}) - :<CR> (cmp.mapping.confirm {:select true}) - :<CR> (cmp.mapping.confirm {:select true})}) - :sources [{:name :nvim_lsp} - {:name :nvim_lua} - {:name :luasnip} - {:name :buffer :keyword_length 4} - {:name :path :keyword_length 6}] - :formatting {:format (lspkind.cmp_format {:with_text true - :menu {:buffer "" - :nvim_lsp "" - :nvim_lua "" - :path "" - :luasnip ""}})} - :window { - :documentation {:border ["╭" - "─" - "╮" - "│" - "╯" - "─" - "╰" - "│"]}} - :confirm_opts {:behavior cmp.ConfirmBehavior.Replace - :select false} - :experimental {:ghost_text false :native_menu false}})) + (cmp.setup {:snippet {:expand (fn [args] + (luasnip.lsp_expand args.body))} + :mapping (cmp.mapping.preset.insert {:<C-k> (cmp.mapping.select_prev_item) + :<C-j> (cmp.mapping.select_next_item) + :<C-b> (cmp.mapping (cmp.mapping.scroll_docs -1) + [:i :c]) + :<C-f> (cmp.mapping (cmp.mapping.scroll_docs 1) + [:i :c]) + :<C-space> (cmp.mapping (cmp.mapping.complete) + [:i + :c]) + :<C-e> (cmp.mapping {:i (cmp.mapping.abort) + :c (cmp.mapping.close)}) + :<CR> (cmp.mapping.confirm {:select true}) + :<CR> (cmp.mapping.confirm {:select true})}) + :sources [{:name :nvim_lsp} + {:name :nvim_lua} + {:name :luasnip} + {:name :buffer :keyword_length 4} + {:name :path :keyword_length 6}] + :formatting {:format (lspkind.cmp_format {:with_text true + :menu {:buffer "" + :nvim_lsp "" + :nvim_lua "" + :path "" + :luasnip ""}})} + :window {:documentation {:border ["╭" + "─" + "╮" + "│" + "╯" + "─" + "╰" + "│"]}} + :confirm_opts {:behavior cmp.ConfirmBehavior.Replace + :select false} + :experimental {:ghost_text false :native_menu false}})) diff --git a/fnl/config/colorizer.fnl b/fnl/config/colorizer.fnl index 7118388..4d0b381 100644 --- a/fnl/config/colorizer.fnl +++ b/fnl/config/colorizer.fnl @@ -1,6 +1,5 @@ ;; Enables colorization of color codes in source files. -(module config.colorizer - {autoload {util util}}) +(module config.colorizer {autoload {util util}}) (let [colorizer (util.load-plugin :colorizer)] (colorizer.setup)) diff --git a/fnl/config/colorscheme.fnl b/fnl/config/colorscheme.fnl index 5bd19eb..2cadc02 100644 --- a/fnl/config/colorscheme.fnl +++ b/fnl/config/colorscheme.fnl @@ -1,6 +1,5 @@ ;; Load neovim colorscheme. -(module config.colorscheme - {autoload {util util}}) +(module config.colorscheme {autoload {util util}}) (local colorscheme :no-clown-fiesta) diff --git a/fnl/config/comment.fnl b/fnl/config/comment.fnl index 92df966..78eaa7d 100644 --- a/fnl/config/comment.fnl +++ b/fnl/config/comment.fnl @@ -1,28 +1,22 @@ ;; Language aware commenting. -(module config.comment - {autoload {util util}}) +(module config.comment {autoload {util util}}) -(defn- get-type [ctx U] - (if (= ctx.ctype U.ctype.line) - :__default - :__multiline)) +(defn- get-type [ctx U] (if (= ctx.ctype U.ctype.line) :__default :__multiline)) -(defn- get-location [ctx U] - (let [utils (require :ts_context_commentstring.utils)] - (if (= ctx.ctype U.ctype.block) - (utils.get_cursor_location) - (or (= ctx.cmotion U.cmotion.v) (= ctx.cmotion U.cmotion.V)) - (utils.get_visual_start_location) - nil))) +(defn- get-location [ctx U] (let [utils (require :ts_context_commentstring.utils)] + (if (= ctx.ctype U.ctype.block) + (utils.get_cursor_location) + (or (= ctx.cmotion U.cmotion.v) + (= ctx.cmotion U.cmotion.V)) + (utils.get_visual_start_location) + nil))) (defn- pre-hook [ctx] - (let [U (require :Comment.utils) - internal (require :ts_context_commentstring.internal)] - (internal.calculate_commentstring - {:key (get-type ctx U) - :location (get-location ctx U)}))) + (let [U (require :Comment.utils) + internal (require :ts_context_commentstring.internal)] + (internal.calculate_commentstring {:key (get-type ctx U) + :location (get-location ctx U)}))) (let [nvim-comment (util.load-plugin :Comment)] - (nvim-comment.setup - {:pre_hook (fn [ctx] - (pre-hook ctx))})) + (nvim-comment.setup {:pre_hook (fn [ctx] + (pre-hook ctx))})) diff --git a/fnl/config/gitsigns.fnl b/fnl/config/gitsigns.fnl index adf8305..07b9157 100644 --- a/fnl/config/gitsigns.fnl +++ b/fnl/config/gitsigns.fnl @@ -1,52 +1,48 @@ ;; Add git signs to source files. -(module config.gitsigns - {autoload {util util}}) +(module config.gitsigns {autoload {util util}}) -(def- signs - {:add - {:hl :GitSignsAdd - :text "▎" - :numhl :GitSignsAddNr - :linehl :GitSignsAddLn} - :change {:hl :GitSignsChange - :text "▎" - :numhl :GitSignsChangeNr - :linehl :GitSignsChangeLn} - :delete {:hl :GitSignsDelete - :text "契" - :numhl :GitSignsDeleteNr - :linehl :GitSignsDeleteLn} - :topdelete {:hl :GitSignsDelete - :text "契" - :numhl :GitSignsDeleteNr - :linehl :GitSignsDeleteLn} - :changedelete {:hl :GitSignsChange - :text "▎" - :numhl :GitSignsChangeNr - :linehl :GitSignsChangeLn}}) +(def- signs {:add {:hl :GitSignsAdd + :text "▎" + :numhl :GitSignsAddNr + :linehl :GitSignsAddLn} + :change {:hl :GitSignsChange + :text "▎" + :numhl :GitSignsChangeNr + :linehl :GitSignsChangeLn} + :delete {:hl :GitSignsDelete + :text "契" + :numhl :GitSignsDeleteNr + :linehl :GitSignsDeleteLn} + :topdelete {:hl :GitSignsDelete + :text "契" + :numhl :GitSignsDeleteNr + :linehl :GitSignsDeleteLn} + :changedelete {:hl :GitSignsChange + :text "▎" + :numhl :GitSignsChangeNr + :linehl :GitSignsChangeLn}}) (let [gitsigns (util.load-plugin :gitsigns)] - (gitsigns.setup - {:signs signs - :signcolumn true - :numhl false - :linehl false - :word_diff false - :watch_gitdir {:interval 1000 :follow_files true} - :attach_to_untracked true - :current_line_blame false - :current_line_blame_opts {:virt_text true - :virt_text_pos :eol - :delay 1000 - :ignore_whitespace false} - :current_line_blame_formatter_opts {:relative_time false} - :sign_priority 6 - :update_debounce 100 - :status_formatter nil - :max_file_length 40000 - :preview_config {:border :single - :style :minimal - :relative :cursor - :row 0 - :col 1} - :yadm {:enable false}})) + (gitsigns.setup {: signs + :signcolumn true + :numhl false + :linehl false + :word_diff false + :watch_gitdir {:interval 1000 :follow_files true} + :attach_to_untracked true + :current_line_blame false + :current_line_blame_opts {:virt_text true + :virt_text_pos :eol + :delay 1000 + :ignore_whitespace false} + :current_line_blame_formatter_opts {:relative_time false} + :sign_priority 6 + :update_debounce 100 + :status_formatter nil + :max_file_length 40000 + :preview_config {:border :single + :style :minimal + :relative :cursor + :row 0 + :col 1} + :yadm {:enable false}})) diff --git a/fnl/config/hop.fnl b/fnl/config/hop.fnl index b4b60a2..f623c0f 100644 --- a/fnl/config/hop.fnl +++ b/fnl/config/hop.fnl @@ -1,7 +1,5 @@ ;; Hopping in text. -(module config.hop - {autoload {util util - nvim aniseed.nvim}}) +(module config.hop {autoload {util util nvim aniseed.nvim}}) (let [hop (util.load-plugin :hop)] (hop.setup {})) diff --git a/fnl/config/impatient.fnl b/fnl/config/impatient.fnl index fda96a4..ab37eb3 100644 --- a/fnl/config/impatient.fnl +++ b/fnl/config/impatient.fnl @@ -1,6 +1,5 @@ ;; Speeds up loading of plugins. -(module config.impatient - {autoload {util util}}) +(module config.impatient {autoload {util util}}) (let [impatient (util.load-plugin :impatient)] (impatient.enable_profile)) diff --git a/fnl/config/init.fnl b/fnl/config/init.fnl index e668c63..e3021af 100644 --- a/fnl/config/init.fnl +++ b/fnl/config/init.fnl @@ -1,25 +1,24 @@ ;; Load all plugin configs. -(module config.init - {require [config.impatient - config.autocmd - config.alpha - config.autopairs - config.better-escape - config.bufferline - config.cmp - config.colorizer - config.colorscheme - config.comment - config.gitsigns - config.hop - config.lualine - config.nvim-tree - config.orgmode - config.project - config.spectre - config.telescope - config.treesitter - config.which-key - config.zen - config.trim - config.lsp]}) +(module config.init {require [config.impatient + config.autocmd + config.alpha + config.autopairs + config.better-escape + config.bufferline + config.cmp + config.colorizer + config.colorscheme + config.comment + config.gitsigns + config.hop + config.lualine + config.nvim-tree + config.orgmode + config.project + config.spectre + config.telescope + config.treesitter + config.which-key + config.zen + config.trim + config.lsp]}) diff --git a/fnl/config/lsp/handlers.fnl b/fnl/config/lsp/handlers.fnl index 34e1ac7..04f8297 100644 --- a/fnl/config/lsp/handlers.fnl +++ b/fnl/config/lsp/handlers.fnl @@ -1,66 +1,60 @@ ;; Handlers for the requests and responses from and to the lsp server. -(module config.lsp.handlers - {autoload {util util - nvim aniseed.nvim}}) +(module config.lsp.handlers {autoload {util util nvim aniseed.nvim}}) -(def- signs - [{:name :DiagnosticSignError :text ""} - {:name :DiagnosticSignWarn :text ""} - {:name :DiagnosticSignHint :text ""} - {:name :DiagnosticSignInfo :text ""}]) +(def- signs [{:name :DiagnosticSignError :text ""} + {:name :DiagnosticSignWarn :text ""} + {:name :DiagnosticSignHint :text ""} + {:name :DiagnosticSignInfo :text ""}]) -(defn- apply-signs [] - (each [_ sign (ipairs signs)] - (vim.fn.sign_define sign.name - {:texthl sign.name - :text sign.text - :numhl ""}))) +(defn- apply-signs [] (each [_ sign (ipairs signs)] + (vim.fn.sign_define sign.name + {:texthl sign.name + :text sign.text + :numhl ""}))) -(def- config - {:virtual_text false - :signs {:active signs} - :update_in_insert true - :underline true - :severity_sort true - :float {:focusable false - :style :minimal - :border :rounded - :source :always - :header "" - :prefix ""}}) +(def- config {:virtual_text false + :signs {:active signs} + :update_in_insert true + :underline true + :severity_sort true + :float {:focusable false + :style :minimal + :border :rounded + :source :always + :header "" + :prefix ""}}) -(defn setup [] - (apply-signs) - (vim.diagnostic.config config) - (set vim.lsp.handlers.textDocument/hover - (vim.lsp.with {:border :rounded})) - (set vim.lsp.handlers.textDocument/signatureHelp - (vim.lsp.with vim.lsp.handlers.signature_help {:border :rounded}))) +(defn setup [] (apply-signs) (vim.diagnostic.config config) + (set vim.lsp.handlers.textDocument/hover + (vim.lsp.with {:border :rounded})) + (set vim.lsp.handlers.textDocument/signatureHelp + (vim.lsp.with vim.lsp.handlers.signature_help {:border :rounded}))) (defn- lsp-keymaps [bufnr] - (let [opts {:noremap true :silent true}] - (nvim.buf_set_keymap bufnr :n :gD - "<cmd>lua vim.lsp.buf.declaration()<CR>" opts) - (nvim.buf_set_keymap bufnr :n :gd - "<cmd>lua vim.lsp.buf.definition()<CR>" opts) - (nvim.buf_set_keymap bufnr :n :K "<cmd>lua vim.lsp.buf.hover()<CR>" - opts) - (nvim.buf_set_keymap bufnr :n :gI - "<cmd>lua vim.lsp.buf.implementation()<CR>" opts) - (nvim.buf_set_keymap bufnr :n :gr - "<cmd>lua vim.lsp.buf.references()<CR>" opts) - (nvim.buf_set_keymap bufnr :n :gl - "<cmd>lua vim.diagnostic.open_float()<CR>" opts) - (nvim.buf_set_keymap bufnr :n :<leader>q - "<cmd>lua vim.diagnostic.setloclist()<CR>" opts))) + (let [opts {:noremap true :silent true}] + (nvim.buf_set_keymap bufnr :n :gD + "<cmd>lua vim.lsp.buf.declaration()<CR>" opts) + (nvim.buf_set_keymap bufnr :n :gd + "<cmd>lua vim.lsp.buf.definition()<CR>" opts) + (nvim.buf_set_keymap bufnr :n :K "<cmd>lua vim.lsp.buf.hover()<CR>" + opts) + (nvim.buf_set_keymap bufnr :n :gI + "<cmd>lua vim.lsp.buf.implementation()<CR>" opts) + (nvim.buf_set_keymap bufnr :n :gr + "<cmd>lua vim.lsp.buf.references()<CR>" opts) + (nvim.buf_set_keymap bufnr :n :gl + "<cmd>lua vim.diagnostic.open_float()<CR>" opts) + (nvim.buf_set_keymap bufnr :n :<leader>q + "<cmd>lua vim.diagnostic.setloclist()<CR>" opts))) -(defn on-attach [client bufnr] - (if (= client.name :html) - (set client.resolved_capabilities.document_formatting false)) - (lsp-keymaps bufnr)) +(defn on-attach [client bufnr] (if (= client.name :html) + (set client.resolved_capabilities.document_formatting + false)) + (lsp-keymaps bufnr)) (defn capabilities [] - (let [capabilities (vim.lsp.protocol.make_client_capabilities)] - (set capabilities.textDocument.completion.completionItem.snippetSupport true) - (let [cmp-nvim-lsp (util.load-plugin :cmp_nvim_lsp)] - (cmp-nvim-lsp.update_capabilities capabilities)))) + (let [capabilities (vim.lsp.protocol.make_client_capabilities)] + (set capabilities.textDocument.completion.completionItem.snippetSupport + true) + (let [cmp-nvim-lsp (util.load-plugin :cmp_nvim_lsp)] + (cmp-nvim-lsp.update_capabilities capabilities)))) diff --git a/fnl/config/lsp/init.fnl b/fnl/config/lsp/init.fnl index 8e23202..5ec20c1 100644 --- a/fnl/config/lsp/init.fnl +++ b/fnl/config/lsp/init.fnl @@ -1,6 +1,5 @@ ;; Loads the LSP functionality. -(module config.lsp.init - {autoload {util util}}) +(module config.lsp.init {autoload {util util}}) (let [_ (util.load-plugin :lspconfig)] (require :config.lsp.lsp-installer) diff --git a/fnl/config/lsp/lsp-installer.fnl b/fnl/config/lsp/lsp-installer.fnl index 42115c0..af9a4e8 100644 --- a/fnl/config/lsp/lsp-installer.fnl +++ b/fnl/config/lsp/lsp-installer.fnl @@ -1,33 +1,30 @@ ;; Loads default handlers and specific language settings. -(module config.lsp.lsp-installer - {autoload {util util}}) +(module config.lsp.lsp-installer {autoload {util util}}) -(def handler-opts - (let [handlers (require :config.lsp.handlers)] - {:on_attach handlers.on-attach - :capabilities (handlers.capabilities)})) +(def handler-opts (let [handlers (require :config.lsp.handlers)] + {:on_attach handlers.on-attach + :capabilities (handlers.capabilities)})) (defn- jsonls-opts [] - (let [jsonls-opts (require :config.lsp.settings.jsonls)] - (vim.tbl_deep_extend :force jsonls-opts handler-opts))) + (let [jsonls-opts (require :config.lsp.settings.jsonls)] + (vim.tbl_deep_extend :force jsonls-opts handler-opts))) (defn- sumneko-lua-opts [] - (let [sumneko-lua (require :config.lsp.settings.sumneko-lua)] - (vim.tbl_deep_extend :force sumneko-lua.opts handler-opts))) + (let [sumneko-lua (require :config.lsp.settings.sumneko-lua)] + (vim.tbl_deep_extend :force sumneko-lua.opts handler-opts))) (defn- pyright-opts [] - (let [pyright (require :config.lsp.settings.pyright)] - (vim.tbl_deep_extend :force pyright.opts handler-opts))) + (let [pyright (require :config.lsp.settings.pyright)] + (vim.tbl_deep_extend :force pyright.opts handler-opts))) (defn- get-server-opts [server] (match server.name - "jsonls" (jsonls-opts) - "pyright" (pyright-opts) - "sumneko_lua" (sumneko-lua-opts) + :jsonls (jsonls-opts) + :pyright (pyright-opts) + :sumneko_lua (sumneko-lua-opts) _ handler-opts)) (let [lsp-installer (util.load-plugin :nvim-lsp-installer)] - (lsp-installer.on_server_ready - (fn [server] - (let [opts (get-server-opts server)] - (server:setup opts))))) + (lsp-installer.on_server_ready (fn [server] + (let [opts (get-server-opts server)] + (server:setup opts))))) diff --git a/fnl/config/lsp/null-ls.fnl b/fnl/config/lsp/null-ls.fnl index 0d24373..b4b75c6 100644 --- a/fnl/config/lsp/null-ls.fnl +++ b/fnl/config/lsp/null-ls.fnl @@ -1,32 +1,27 @@ ;; Adds LSP diagnostics and formatting. -(module config.lsp.null-ls - {autoload {util util}}) +(module config.lsp.null-ls {autoload {util util}}) (let [null-ls (util.load-plugin :null-ls)] (let [formatting null-ls.builtins.formatting diagnostics null-ls.builtins.diagnostics] - (null-ls.setup - {:debug false - :sources [diagnostics.flake8 - diagnostics.golangci_lint - diagnostics.jsonlint - diagnostics.shellcheck - diagnostics.yamllint - (formatting.black.with - {:extra_args [:--fast]}) - formatting.erlfmt - formatting.fnlfmt - formatting.fourmolu - formatting.gofmt - formatting.goimports - formatting.nixfmt - (formatting.prettier.with - {:extra_args - [:--no-semi - :--single-quote - :--jsx-single-quote]}) - formatting.rustfmt - formatting.shfmt - formatting.sqlformat - formatting.stylua - formatting.terraform_fmt]}))) + (null-ls.setup {:debug false + :sources [diagnostics.flake8 + diagnostics.golangci_lint + diagnostics.jsonlint + diagnostics.shellcheck + diagnostics.yamllint + (formatting.black.with {:extra_args [:--fast]}) + formatting.erlfmt + formatting.fnlfmt + formatting.fourmolu + formatting.gofmt + formatting.goimports + formatting.nixfmt + (formatting.prettier.with {:extra_args [:--no-semi + :--single-quote + :--jsx-single-quote]}) + formatting.rustfmt + formatting.shfmt + formatting.sqlformat + formatting.stylua + formatting.terraform_fmt]}))) diff --git a/fnl/config/lsp/settings/jsonls.fnl b/fnl/config/lsp/settings/jsonls.fnl index f8dfdc2..18d9256 100644 --- a/fnl/config/lsp/settings/jsonls.fnl +++ b/fnl/config/lsp/settings/jsonls.fnl @@ -1,17 +1,10 @@ ;; Json schema store catalog language server. -(module config.lsp.settings.jsonls - {autoload {util util}}) +(module config.lsp.settings.jsonls {autoload {util util}}) (let [schemastore (util.load-plugin :schemastore)] - {:init_options - {:providerFormatter false} - :settings - {:json - {:schemas - (schemastore.json.schemas)}} - :setup - {:commands - {:Format - [(fn [] - (vim.lsp.buf.range_formatting - [] [0 0] [(vim.fn.line "$" 0)]))]}}}) + {:init_options {:providerFormatter false} + :settings {:json {:schemas (schemastore.json.schemas)}} + :setup {:commands {:Format [(fn [] + (vim.lsp.buf.range_formatting [] [0 0] + [(vim.fn.line "$" + 0)]))]}}}) diff --git a/fnl/config/lsp/settings/pyright.fnl b/fnl/config/lsp/settings/pyright.fnl index b1fa064..639ecff 100644 --- a/fnl/config/lsp/settings/pyright.fnl +++ b/fnl/config/lsp/settings/pyright.fnl @@ -1,8 +1,4 @@ ;; Config for pyright language server. (module config.lsp.settings.pyright) -(def opts - {:settings - {:python - {:analysis - {:typeCheckingMode :off}}}}) +(def opts {:settings {:python {:analysis {:typeCheckingMode :off}}}}) diff --git a/fnl/config/lsp/settings/sumneko-lua.fnl b/fnl/config/lsp/settings/sumneko-lua.fnl index d40fe9b..0f20f53 100644 --- a/fnl/config/lsp/settings/sumneko-lua.fnl +++ b/fnl/config/lsp/settings/sumneko-lua.fnl @@ -2,28 +2,22 @@ (module config.lsp.settings.sumneko-lua) (def- workspace - {:library {(vim.fn.expand "$VIMRUNTIME/lua") true - (vim.fn.expand "$VIMRUNTIME/lua/vim/lsp") true}}) + {:library {(vim.fn.expand :$VIMRUNTIME/lua) true + (vim.fn.expand :$VIMRUNTIME/lua/vim/lsp) true}}) -(def- diagnostics - {:globals ["vim" - "map" - "filter" - "range" - "reduce" - "head" - "tail" - "nth" - "use" - "describe" - "it" - "dump"]}) +(def- diagnostics {:globals [:vim + :map + :filter + :range + :reduce + :head + :tail + :nth + :use + :describe + :it + :dump]}) -(def- runtime - {:version "LuaJIT" - :path (vim.split package.path ";")}) +(def- runtime {:version :LuaJIT :path (vim.split package.path ";")}) -(def opts - {:settings {:Lua {:diagnostics diagnostics - :workspace workspace - :runtime runtime}}}) +(def opts {:settings {:Lua {: diagnostics : workspace : runtime}}}) diff --git a/fnl/config/lualine.fnl b/fnl/config/lualine.fnl index 1595594..5ab0920 100644 --- a/fnl/config/lualine.fnl +++ b/fnl/config/lualine.fnl @@ -1,53 +1,48 @@ ;; Statusbar. -(module config.lualine - {autoload {util util}}) +(module config.lualine {autoload {util util}}) (defn- hide-in-width [] (> (vim.fn.winwidth 0) 80)) -(def- diagnostics - {1 :diagnostics - :sources [:nvim_diagnostic] - :sections [:error :warn] - :symbols {:error " " :warn " "} - :colored false - :update_in_insert false - :always_visible true}) +(def- diagnostics {1 :diagnostics + :sources [:nvim_diagnostic] + :sections [:error :warn] + :symbols {:error " " :warn " "} + :colored false + :update_in_insert false + :always_visible true}) -(def- diff - {1 :diff - :colored false - :symbols {:added " " :modified " " :removed " "} - :cond hide-in-width}) +(def- diff {1 :diff + :colored false + :symbols {:added " " :modified " " :removed " "} + :cond hide-in-width}) (def- branch {1 "b:gitsigns_head" :icon " " :cond hide-in-width}) (def- filetype {1 :filetype :cond hide_in_width :color {}}) (let [lualine (util.load-plugin :lualine)] - (lualine.setup - {:options - {:icons_enabled true - :theme :auto - :component_separators {:left "" :right ""} - :section_separators {:left "" :right ""} - :disabled_filetypes [:alpha - :dashboard - :NvimTree - :Outline] - :always_divide_middle true} - :sections {:lualine_a [:mode] - :lualine_b [branch :filename] - :lualine_c [diff] - :lualine_x [diagnostics filetype] - :lualine_y {} - :lualine_z [:location :progress :encoding]} - :inactive_sections {:lualine_a [:mode] - :lualine_b [:filename] - :lualine_c {} - :lualine_x {} - :lualine_y {} - :lualine_z [:location - :progress - :encoding]} - :tabline {} - :extensions {}})) + (lualine.setup {:options {:icons_enabled true + :theme :auto + :component_separators {:left "" :right ""} + :section_separators {:left "" :right ""} + :disabled_filetypes [:alpha + :dashboard + :NvimTree + :Outline] + :always_divide_middle true} + :sections {:lualine_a [:mode] + :lualine_b [branch :filename] + :lualine_c [diff] + :lualine_x [diagnostics filetype] + :lualine_y {} + :lualine_z [:location :progress :encoding]} + :inactive_sections {:lualine_a [:mode] + :lualine_b [:filename] + :lualine_c {} + :lualine_x {} + :lualine_y {} + :lualine_z [:location + :progress + :encoding]} + :tabline {} + :extensions {}})) diff --git a/fnl/config/nvim-tree.fnl b/fnl/config/nvim-tree.fnl index de8f316..541ef6a 100644 --- a/fnl/config/nvim-tree.fnl +++ b/fnl/config/nvim-tree.fnl @@ -1,10 +1,7 @@ ;; A vertical sidebar file explorer. -(module config.nvim-tree - {autoload {util util - nvim aniseed.nvim}}) +(module config.nvim-tree {autoload {util util nvim aniseed.nvim}}) -(set nvim.g.nvim_tree_show_icons - { :git 1 :folders 1 :files 1 :folder_arrows 1 }) +(set nvim.g.nvim_tree_show_icons {:git 1 :folders 1 :files 1 :folder_arrows 1}) (set nvim.g.nvim_tree_icons {:default "" @@ -25,72 +22,63 @@ (let [nvim-tree (util.load-plugin :nvim-tree) nvim-tree-config (util.load-plugin :nvim-tree.config)] (let [tree-cb nvim-tree-config.nvim_tree_callback] - (nvim-tree.setup - {:auto_reload_on_write true - :disable_netrw false - :hijack_cursor false - :hijack_netrw true - :hijack_unnamed_buffer_when_opening false - :ignore_buffer_on_setup false - :open_on_setup false - :open_on_tab false - :sort_by :name - :update_cwd true - :view - {:width 30 - :height 30 - :side :left - :preserve_window_proportions false - :number false - :relativenumber false - :signcolumn :yes - :mappings - {:custom_only false - :list [{:key [:l :<CR> :o] - :cb (tree_cb :edit)} - {:key :h - :cb (tree_cb :close_node)} - {:key :v :cb (tree_cb :vsplit)}]}} - :renderer - {:icons - {:webdev_colors false}} - :hijack_directories {:enable true :auto_open true} - :update_focused_file {:enable true - :update_cwd true - :ignore_list {}} - :ignore_ft_on_setup [:startify :dashboard :alpha] - :system_open {:cmd nil :args {}} - :diagnostics {:enable true - :show_on_dirs false - :icons {:hint "" - :info "" - :warning "" - :error ""}} - :filters {:dotfiles false :custom {} :exclude {}} - :git {:enable true :ignore true :timeout 400} - :actions - {:change_dir {:enable true :global false} - :open_file {:quit_on_open false - :resize_window false - :window_picker - {:enable true - :chars :ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 - :exclude - {:filetype - [:notify - :packer - :qf - :diff - :fugitive - :fugitiveblame] - :buftype [:nofile - :terminal - :help]}}}} - :trash {:cmd :trash :require_confirm true} - :log {:enable false - :truncate false - :types {:all false - :config false - :copy_paste false - :git false - :profile false}}}))) + (nvim-tree.setup {:auto_reload_on_write true + :disable_netrw false + :hijack_cursor false + :hijack_netrw true + :hijack_unnamed_buffer_when_opening false + :ignore_buffer_on_setup false + :open_on_setup false + :open_on_tab false + :sort_by :name + :update_cwd true + :view {:width 30 + :height 30 + :side :left + :preserve_window_proportions false + :number false + :relativenumber false + :signcolumn :yes + :mappings {:custom_only false + :list [{:key [:l :<CR> :o] + :cb (tree_cb :edit)} + {:key :h + :cb (tree_cb :close_node)} + {:key :v :cb (tree_cb :vsplit)}]}} + :renderer {:icons {:webdev_colors false}} + :hijack_directories {:enable true :auto_open true} + :update_focused_file {:enable true + :update_cwd true + :ignore_list {}} + :ignore_ft_on_setup [:startify :dashboard :alpha] + :system_open {:cmd nil :args {}} + :diagnostics {:enable true + :show_on_dirs false + :icons {:hint "" + :info "" + :warning "" + :error ""}} + :filters {:dotfiles false :custom {} :exclude {}} + :git {:enable true :ignore true :timeout 400} + :actions {:change_dir {:enable true :global false} + :open_file {:quit_on_open false + :resize_window false + :window_picker {:enable true + :chars :ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 + :exclude {:filetype [:notify + :packer + :qf + :diff + :fugitive + :fugitiveblame] + :buftype [:nofile + :terminal + :help]}}}} + :trash {:cmd :trash :require_confirm true} + :log {:enable false + :truncate false + :types {:all false + :config false + :copy_paste false + :git false + :profile false}}}))) diff --git a/fnl/config/orgmode.fnl b/fnl/config/orgmode.fnl index f428ad1..5913069 100644 --- a/fnl/config/orgmode.fnl +++ b/fnl/config/orgmode.fnl @@ -1,15 +1,13 @@ ;; Orgmode for nvim. -(module config.orgmode - {autoload {util util}}) +(module config.orgmode {autoload {util util}}) (let [orgmode (util.load-plugin :orgmode)] (orgmode.setup_ts_grammar) - (orgmode.setup - {:org_agenda_files ["~/.local/share/org/**/*"] - :org_default_notes_file "~/.local/share/org/refile.org" - :org_agenda_templates - {:t {:description :Task - :template "* TODO %?\n %u"} - :m {:description :Meeting - :template "* MEETING %? :MEETING: :LOGBOOK: CLOCK: %U :END:"} - :n {:description :Note :template "* NOTE %? :NOTE:\n %u"}}})) + (orgmode.setup {:org_agenda_files ["~/.local/share/org/**/*"] + :org_default_notes_file "~/.local/share/org/refile.org" + :org_agenda_templates {:t {:description :Task + :template "* TODO %?\n %u"} + :m {:description :Meeting + :template "* MEETING %? :MEETING: :LOGBOOK: CLOCK: %U :END:"} + :n {:description :Note + :template "* NOTE %? :NOTE:\n %u"}}})) diff --git a/fnl/config/packer.fnl b/fnl/config/packer.fnl index 09c7ca2..bdb0d5e 100644 --- a/fnl/config/packer.fnl +++ b/fnl/config/packer.fnl @@ -1,11 +1,7 @@ ;; Load packer config -(module config.packer - {autoload {util util}}) +(module config.packer {autoload {util util}}) (let [packer (util.load-plugin :packer) packer-util (require :packer.util)] - (packer.init - {:display - {:open_fn - (fn [] - (packer-util.float {:border :rounded}))}})) + (packer.init {:display {:open_fn (fn [] + (packer-util.float {:border :rounded}))}})) diff --git a/fnl/config/project.fnl b/fnl/config/project.fnl index 749604a..7d50fee 100644 --- a/fnl/config/project.fnl +++ b/fnl/config/project.fnl @@ -1,21 +1,19 @@ ;; Provides project management. -(module config.project - {autoload {util util}}) +(module config.project {autoload {util util}}) (let [project (util.load-plugin :project_nvim)] - (project.setup - {:active true - :on_config_done nil - :manual_mode false - :detection_methods [:patterns] - :patterns [:git - :_darcs - :.hg - :.bzr - :.svn - :Makefile - :package.json] - :show_hidden false - :silent_chdir true - :ignore_lsp {} - :datapath (vim.fn.stdpath :data)})) + (project.setup {:active true + :on_config_done nil + :manual_mode false + :detection_methods [:patterns] + :patterns [:git + :_darcs + :.hg + :.bzr + :.svn + :Makefile + :package.json] + :show_hidden false + :silent_chdir true + :ignore_lsp {} + :datapath (vim.fn.stdpath :data)})) diff --git a/fnl/config/spectre.fnl b/fnl/config/spectre.fnl index 804a36f..5529714 100644 --- a/fnl/config/spectre.fnl +++ b/fnl/config/spectre.fnl @@ -1,80 +1,64 @@ ;; Find and replace. -(module config.spectre - {autoload {util util}}) +(module config.spectre {autoload {util util}}) (let [spectre (util.load-plugin :spectre)] - (spectre.setup - {:color_devicons true - :highlight {:ui :String - :search :DiffChange - :replace :DiffDelete} - :mapping - {:toggle_line - {:map :t - :cmd "<cmd>lua require('spectre').toggle_line()<CR>" - :desc "toggle current item"} - :enter_file - {:map :<cr> - :cmd "<cmd>lua require('spectre.actions').select_entry()<CR>" - :desc "goto current file"} - :send_to_qf - {:map :Q - :cmd "<cmd>lua require('spectre.actions').send_to_qf()<CR>" - :desc "send all item to quickfix"} - :replace_cmd - {:map :c - :cmd "<cmd>lua require('spectre.actions').replace_cmd()<CR>" - :desc "input replace vim command"} - :show_option_menu - {:map :o - :cmd "<cmd>lua require('spectre').show_options()<CR>" - :desc "show option"} - :run_replace - {:map :R - :cmd "<cmd>lua require('spectre.actions').run_replace()<CR>" - :desc "replace all"} - :change_view_mode - {:map :m - :cmd "<cmd>lua require('spectre').change_view()<CR>" - :desc "change result view mode"} - :toggle_ignore_case - {:map :I - :cmd "<cmd>lua require('spectre').change_options('ignore-case')<CR>" - :desc "toggle ignore case"} - :toggle_ignore_hidden - {:map :H - :cmd "<cmd>lua require('spectre').change_options('hidden')<CR>" - :desc "toggle search hidden"}} - :find_engine - {:rg - {:cmd :rg - :args [:--color=never - :--no-heading - :--with-filename - :--line-number - :--column] - :options - {:ignore-case - {:value :--ignore-case - :icon "[I]" - :desc "ignore case"} - :hidden {:value :--hidden - :desc "hidden file" - :icon "[H]"}}} - :ag {:cmd :ag - :args [:--vimgrep :-s] - :options {:ignore-case {:value :-i - :icon "[I]" - :desc "ignore case"} - :hidden {:value :--hidden - :desc "hidden file" - :icon "[H]"}}}} - :replace_engine {:sed {:cmd :sed :args nil} - :options {:ignore-case {:value :--ignore-case - :icon "[I]" - :desc "ignore case"}}} - :default {:find {:cmd :rg :options [:ignore-case]} - :replace {:cmd :sed}} - :replace_vim_cmd :cdo - :is_open_target_win true - :is_insert_mode false})) + (spectre.setup {:color_devicons true + :highlight {:ui :String + :search :DiffChange + :replace :DiffDelete} + :mapping {:toggle_line {:map :t + :cmd "<cmd>lua require('spectre').toggle_line()<CR>" + :desc "toggle current item"} + :enter_file {:map :<cr> + :cmd "<cmd>lua require('spectre.actions').select_entry()<CR>" + :desc "goto current file"} + :send_to_qf {:map :Q + :cmd "<cmd>lua require('spectre.actions').send_to_qf()<CR>" + :desc "send all item to quickfix"} + :replace_cmd {:map :c + :cmd "<cmd>lua require('spectre.actions').replace_cmd()<CR>" + :desc "input replace vim command"} + :show_option_menu {:map :o + :cmd "<cmd>lua require('spectre').show_options()<CR>" + :desc "show option"} + :run_replace {:map :R + :cmd "<cmd>lua require('spectre.actions').run_replace()<CR>" + :desc "replace all"} + :change_view_mode {:map :m + :cmd "<cmd>lua require('spectre').change_view()<CR>" + :desc "change result view mode"} + :toggle_ignore_case {:map :I + :cmd "<cmd>lua require('spectre').change_options('ignore-case')<CR>" + :desc "toggle ignore case"} + :toggle_ignore_hidden {:map :H + :cmd "<cmd>lua require('spectre').change_options('hidden')<CR>" + :desc "toggle search hidden"}} + :find_engine {:rg {:cmd :rg + :args [:--color=never + :--no-heading + :--with-filename + :--line-number + :--column] + :options {:ignore-case {:value :--ignore-case + :icon "[I]" + :desc "ignore case"} + :hidden {:value :--hidden + :desc "hidden file" + :icon "[H]"}}} + :ag {:cmd :ag + :args [:--vimgrep :-s] + :options {:ignore-case {:value :-i + :icon "[I]" + :desc "ignore case"} + :hidden {:value :--hidden + :desc "hidden file" + :icon "[H]"}}}} + :replace_engine {:sed {:cmd :sed :args nil} + :options {:ignore-case {:value :--ignore-case + :icon "[I]" + :desc "ignore case"}}} + :default {:find {:cmd :rg :options [:ignore-case]} + :replace {:cmd :sed}} + :replace_vim_cmd :cdo + :is_open_target_win true + :is_insert_mode false})) diff --git a/fnl/config/telescope.fnl b/fnl/config/telescope.fnl index 0babcf8..90a6f71 100644 --- a/fnl/config/telescope.fnl +++ b/fnl/config/telescope.fnl @@ -1,88 +1,83 @@ ;; Telescope a highly extendable fuzzy finder over lists. -(module config.telescope - {autoload {util util}}) +(module config.telescope {autoload {util util}}) (let [telescope (util.load-plugin :telescope)] (let [actions (require :telescope.actions)] - (telescope.setup - {:defaults - {:prompt_prefix " " - :selection_caret " " - :path_display [:smart] - :initial_mode :insert - :selection_strategy :reset - :sorting_strategy :ascending - :layout_strategy :horizontal - :layout_config {:prompt_position :top - :preview_cutoff 120 - :horizontal {:mirror false} - :vertical {:mirror false}} - :vimgrep_arguments [:rg - :--color=never - :--no-heading - :--with-filename - :--line-number - :--column - :--smart-case - :--hidden] - :mappings {:i - {:<C-n> actions.cycle_history_next - :<C-p> actions.cycle_history_prev - :<C-j> actions.move_selection_next - :<C-k> actions.move_selection_previous - :<C-c> actions.close - :<Down> actions.move_selection_next - :<Up> actions.move_selection_previous - :<CR> actions.select_default - :<C-x> actions.select_horizontal - :<C-v> actions.select_vertical - :<C-t> actions.select_tab - :<C-u> actions.preview_scrolling_up - :<C-d> actions.preview_scrolling_down - :<PageUp> actions.results_scrolling_up - :<PageDown> actions.results_scrolling_down - :<Tab> (+ actions.toggle_selection - actions.move_selection_worse) - :<S-Tab> (+ actions.toggle_selection - actions.move_selection_better) - :<C-q> (+ actions.send_to_qflist - actions.open_qflist) - :<M-q> (+ actions.send_selected_to_qflist - actions.open_qflist) - :<C-l> actions.complete_tag - :<C-_> actions.which_key} - :n - {:<esc> actions.close - :<CR> actions.select_default - :<C-x> actions.select_horizontal - :<C-v> actions.select_vertical - :<C-t> actions.select_tab - :<Tab> (+ actions.toggle_selection - actions.move_selection_worse) - :<S-Tab> (+ actions.toggle_selection - actions.move_selection_better) - :<C-q> (+ actions.send_to_qflist - actions.open_qflist) - :<M-q> (+ actions.send_selected_to_qflist - actions.open_qflist) - :j actions.move_selection_next - :k actions.move_selection_previous - :H actions.move_to_top - :M actions.move_to_middle - :L actions.move_to_bottom - :<Down> actions.move_selection_next - :<Up> actions.move_selection_previous - :gg actions.move_to_top - :G actions.move_to_bottom - :<C-u> actions.preview_scrolling_up - :<C-d> actions.preview_scrolling_down - :<PageUp> actions.results_scrolling_up - :<PageDown> actions.results_scrolling_down - :? actions.which_key}}} - :extensions {:fzf {:fuzzy true - :override_generic_sorter true - :override_file_sorter true - :case_mode :smart_case}}}) + (telescope.setup {:defaults {:prompt_prefix " " + :selection_caret " " + :path_display [:smart] + :initial_mode :insert + :selection_strategy :reset + :sorting_strategy :ascending + :layout_strategy :horizontal + :layout_config {:prompt_position :top + :preview_cutoff 120 + :horizontal {:mirror false} + :vertical {:mirror false}} + :vimgrep_arguments [:rg + :--color=never + :--no-heading + :--with-filename + :--line-number + :--column + :--smart-case + :--hidden] + :mappings {:i {:<C-n> actions.cycle_history_next + :<C-p> actions.cycle_history_prev + :<C-j> actions.move_selection_next + :<C-k> actions.move_selection_previous + :<C-c> actions.close + :<Down> actions.move_selection_next + :<Up> actions.move_selection_previous + :<CR> actions.select_default + :<C-x> actions.select_horizontal + :<C-v> actions.select_vertical + :<C-t> actions.select_tab + :<C-u> actions.preview_scrolling_up + :<C-d> actions.preview_scrolling_down + :<PageUp> actions.results_scrolling_up + :<PageDown> actions.results_scrolling_down + :<Tab> (+ actions.toggle_selection + actions.move_selection_worse) + :<S-Tab> (+ actions.toggle_selection + actions.move_selection_better) + :<C-q> (+ actions.send_to_qflist + actions.open_qflist) + :<M-q> (+ actions.send_selected_to_qflist + actions.open_qflist) + :<C-l> actions.complete_tag + :<C-_> actions.which_key} + :n {:<esc> actions.close + :<CR> actions.select_default + :<C-x> actions.select_horizontal + :<C-v> actions.select_vertical + :<C-t> actions.select_tab + :<Tab> (+ actions.toggle_selection + actions.move_selection_worse) + :<S-Tab> (+ actions.toggle_selection + actions.move_selection_better) + :<C-q> (+ actions.send_to_qflist + actions.open_qflist) + :<M-q> (+ actions.send_selected_to_qflist + actions.open_qflist) + :j actions.move_selection_next + :k actions.move_selection_previous + :H actions.move_to_top + :M actions.move_to_middle + :L actions.move_to_bottom + :<Down> actions.move_selection_next + :<Up> actions.move_selection_previous + :gg actions.move_to_top + :G actions.move_to_bottom + :<C-u> actions.preview_scrolling_up + :<C-d> actions.preview_scrolling_down + :<PageUp> actions.results_scrolling_up + :<PageDown> actions.results_scrolling_down + :? actions.which_key}}} + :extensions {:fzf {:fuzzy true + :override_generic_sorter true + :override_file_sorter true + :case_mode :smart_case}}}) (telescope.load_extension :fzf) (telescope.load_extension :file_browser) (telescope.load_extension :projects))) diff --git a/fnl/config/treesitter.fnl b/fnl/config/treesitter.fnl index ebb2a33..cdc8a7a 100644 --- a/fnl/config/treesitter.fnl +++ b/fnl/config/treesitter.fnl @@ -1,35 +1,34 @@ ;; Treesitter is a tool for building syntax trees for source files. ;; In the neovim context it helps with better coloring. -(module config.treesitter - {autoload {util util}}) +(module config.treesitter {autoload {util util}}) (let [treesitter (util.load-plugin :nvim-treesitter.configs)] - (treesitter.setup - {:ensure_installed [:c - :rust - :lua - :hcl - :org - :haskell - :python - :fennel - :make - :go - :ocaml - :erlang - :vim - :yaml - :html - :toml - :dockerfile - :markdown - :latex] - :sync_install false - :ignore_install [""] - :autopairs {:enable true} - :highlight {:enable true - :disable [:org] - :additional_vim_regex_highlighting [:org]} - :context_commentstring {:enable true :enable_autocmd false} - :indent {:enable true :disable [:yaml :python :css]} - :playground {:enable true}})) + (treesitter.setup {:ensure_installed [:c + :rust + :lua + :hcl + :org + :haskell + :python + :fennel + :make + :go + :ocaml + :erlang + :vim + :yaml + :html + :toml + :dockerfile + :markdown + :latex] + :sync_install false + :ignore_install [""] + :autopairs {:enable true} + :highlight {:enable true + :disable [:org] + :additional_vim_regex_highlighting [:org]} + :context_commentstring {:enable true + :enable_autocmd false} + :indent {:enable true :disable [:yaml :python :css]} + :playground {:enable true}})) diff --git a/fnl/config/trim.fnl b/fnl/config/trim.fnl index b87d3ef..05b62b6 100644 --- a/fnl/config/trim.fnl +++ b/fnl/config/trim.fnl @@ -1,6 +1,5 @@ ;; Trim whitespaces on save. -(module config.trim - {autoload {util util}}) +(module config.trim {autoload {util util}}) (let [trim (util.load-plugin :trim)] (trim.setup {})) diff --git a/fnl/config/which-key.fnl b/fnl/config/which-key.fnl index 7230308..70080b7 100644 --- a/fnl/config/which-key.fnl +++ b/fnl/config/which-key.fnl @@ -1,130 +1,125 @@ ;; Which-key provides a pop-up meny for some key mappings. -(module config.which-key - {autoload {util util}}) +(module config.which-key {autoload {util util}}) -(def- setup - {:plugins {:marks true - :registers true - :spelling {:enabled true :suggestions 20} - :presets {:operators false - :motions false - :text_objects false - :windows true - :nav true - :z true - :g true}} - :icons {:breadcrumb "»" :separator "" :group "+"} - :popup_mappings {:scroll_down :<c-d> :scroll_up :<c-u>} - :window {:border :rounded - :position :bottom - :margin [1 0 1 0] - :padding [2 2 2 2] - :winblend 0} - :layout {:height {:min 4 :max 25} - :width {:min 20 :max 50} - :spacing 3 - :align :left} - :ignore_missing true - :hidden [:<silent> :<cmd> :<Cmd> :<CR> :call :lua "^:" "^ "] - :show_help true - :triggers :auto - :triggers_blacklist {:i [:j :k] :v [:j :k]}}) +(def- setup {:plugins {:marks true + :registers true + :spelling {:enabled true :suggestions 20} + :presets {:operators false + :motions false + :text_objects false + :windows true + :nav true + :z true + :g true}} + :icons {:breadcrumb "»" :separator "" :group "+"} + :popup_mappings {:scroll_down :<c-d> :scroll_up :<c-u>} + :window {:border :rounded + :position :bottom + :margin [1 0 1 0] + :padding [2 2 2 2] + :winblend 0} + :layout {:height {:min 4 :max 25} + :width {:min 20 :max 50} + :spacing 3 + :align :left} + :ignore_missing true + :hidden [:<silent> :<cmd> :<Cmd> :<CR> :call :lua "^:" "^ "] + :show_help true + :triggers :auto + :triggers_blacklist {:i [:j :k] :v [:j :k]}}) -(def- opts - {:mode :n - :prefix :<leader> - :buffer nil - :silent true - :noremap true - :nowait true}) +(def- opts {:mode :n + :prefix :<leader> + :buffer nil + :silent true + :noremap true + :nowait true}) (def- mappings - {:k ["<cmd>lua require('Comment.api').toggle_current_linewise()<CR>" - :Comment] - :a [:<cmd>Alpha<cr> :Alpha] - :b ["<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<cr>" - :Buffers] - :e [:<cmd>NvimTreeToggle<cr> :Explorer] - :c [:<cmd>Bdelete!<CR> "Close Buffer"] - :n [:<cmd>nohlsearch<CR> "No Highlight"] - :f ["<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>" - "Find files"] - :F ["<cmd>Telescope file_browser<cr>" "Browse files"] - :t ["<cmd>Telescope live_grep theme=ivy<cr>" "Find Text"] - :P ["<cmd>Telescope projects<cr>" :Projects] - :z [:<cmd>ZenMode<cr> "Zen Mode"] - :v [:<cmd>vsplit<cr> "Vertical Split"] - :h [:<cmd>split<cr> "Horizontal Split"] - :p {:name :Packer - :c [:<cmd>PackerCompile<cr> :Compile] - :i [:<cmd>PackerInstall<cr> :Install] - :s [:<cmd>PackerSync<cr> :Sync] - :S [:<cmd>PackerStatus<cr> :Status] - :u [:<cmd>PackerUpdate<cr> :Update]} - :g {:name :Git - :g ["<cmd>lua _LAZYGIT_TOGGLE()<CR>" :Lazygit] - :j ["<cmd>lua require 'gitsigns'.next_hunk()<cr>" "Next Hunk"] - :k ["<cmd>lua require 'gitsigns'.prev_hunk()<cr>" "Prev Hunk"] - :l ["<cmd>lua require 'gitsigns'.blame_line()<cr>" :Blame] - :p ["<cmd>lua require 'gitsigns'.preview_hunk()<cr>" "Preview Hunk"] - :r ["<cmd>lua require 'gitsigns'.reset_hunk()<cr>" "Reset Hunk"] - :R ["<cmd>lua require 'gitsigns'.reset_buffer()<cr>" "Reset Buffer"] - :s ["<cmd>lua require 'gitsigns'.stage_hunk()<cr>" "Stage Hunk"] - :u ["<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>" - "Undo Stage Hunk"] - :o ["<cmd>Telescope git_status<cr>" "Open changed file"] - :b ["<cmd>Telescope git_branches<cr>" "Checkout branch"] - :c ["<cmd>Telescope git_commits<cr>" "Checkout commit"] - :d ["<cmd>Gitsigns diffthis HEAD<cr>" :Diff]} - :l {:name :LSP - :a ["<cmd>lua vim.lsp.buf.code_action()<cr>" "Code Action"] - :d ["<cmd>Telescope lsp_document_diagnostics<cr>" - "Document Diagnostics"] - :w ["<cmd>Telescope lsp_workspace_diagnostics<cr>" - "Workspace Diagnostics"] - :f ["<cmd>lua vim.lsp.buf.formatting()<cr>" :Format] - :i [:<cmd>LspInfo<cr> :Info] - :I [:<cmd>LspInstallInfo<cr> "Installer Info"] - :j ["<cmd>lua vim.lsp.diagnostic.goto_next()<CR>" "Next Diagnostic"] - :k ["<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>" "Prev Diagnostic"] - :l ["<cmd>lua vim.lsp.codelens.run()<cr>" "CodeLens Action"] - :q ["<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>" :Quickfix] - :r ["<cmd>lua vim.lsp.buf.rename()<cr>" :Rename] - :s ["<cmd>Telescope lsp_document_symbols<cr>" "Document Symbols"] - :S ["<cmd>Telescope lsp_dynamic_workspace_symbols<cr>" - "Workspace Symbols"]} - :s {:name :Search - :b ["<cmd>Telescope git_branches<cr>" "Checkout branch"] - :c ["<cmd>Telescope colorscheme<cr>" :Colorscheme] - :h ["<cmd>Telescope help_tags<cr>" "Find Help"] - :M ["<cmd>Telescope man_pages<cr>" "Man Pages"] - :r ["<cmd>Telescope oldfiles<cr>" "Open Recent File"] - :R ["<cmd>Telescope registers<cr>" :Registers] - :k ["<cmd>Telescope keymaps<cr>" :Keymaps] - :C ["<cmd>Telescope commands<cr>" :Commands]} - :o {:name :Orgmode - :a ["<cmd>lua require('orgmode').action('agenda.prompt')" - "Open agenda prompt"] - :c ["<cmd>lua require('orgmode').action('capture.prompt')" - "Open capture prompt"]} - :r {:name :Replace - :r ["<cmd>lua require('spectre').open()<cr>" :Replace] - :w ["<cmd>lua require('spectre').open_visual({select_word=true})<cr>" - "Replace Word"] - :f ["<cmd>lua require('spectre').open_file_search()<cr>" - "Replace Buffer"]} - :T {:name :Treesitter :p [:<cmd>TSPlaygroundToggle<cr> :Playground]}}) + {:k ["<cmd>lua require('Comment.api').toggle_current_linewise()<CR>" + :Comment] + :a [:<cmd>Alpha<cr> :Alpha] + :b ["<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<cr>" + :Buffers] + :e [:<cmd>NvimTreeToggle<cr> :Explorer] + :c [:<cmd>Bdelete!<CR> "Close Buffer"] + :n [:<cmd>nohlsearch<CR> "No Highlight"] + :f ["<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>" + "Find files"] + :F ["<cmd>Telescope file_browser<cr>" "Browse files"] + :t ["<cmd>Telescope live_grep theme=ivy<cr>" "Find Text"] + :P ["<cmd>Telescope projects<cr>" :Projects] + :z [:<cmd>ZenMode<cr> "Zen Mode"] + :v [:<cmd>vsplit<cr> "Vertical Split"] + :h [:<cmd>split<cr> "Horizontal Split"] + :p {:name :Packer + :c [:<cmd>PackerCompile<cr> :Compile] + :i [:<cmd>PackerInstall<cr> :Install] + :s [:<cmd>PackerSync<cr> :Sync] + :S [:<cmd>PackerStatus<cr> :Status] + :u [:<cmd>PackerUpdate<cr> :Update]} + :g {:name :Git + :g ["<cmd>lua _LAZYGIT_TOGGLE()<CR>" :Lazygit] + :j ["<cmd>lua require 'gitsigns'.next_hunk()<cr>" "Next Hunk"] + :k ["<cmd>lua require 'gitsigns'.prev_hunk()<cr>" "Prev Hunk"] + :l ["<cmd>lua require 'gitsigns'.blame_line()<cr>" :Blame] + :p ["<cmd>lua require 'gitsigns'.preview_hunk()<cr>" "Preview Hunk"] + :r ["<cmd>lua require 'gitsigns'.reset_hunk()<cr>" "Reset Hunk"] + :R ["<cmd>lua require 'gitsigns'.reset_buffer()<cr>" "Reset Buffer"] + :s ["<cmd>lua require 'gitsigns'.stage_hunk()<cr>" "Stage Hunk"] + :u ["<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>" + "Undo Stage Hunk"] + :o ["<cmd>Telescope git_status<cr>" "Open changed file"] + :b ["<cmd>Telescope git_branches<cr>" "Checkout branch"] + :c ["<cmd>Telescope git_commits<cr>" "Checkout commit"] + :d ["<cmd>Gitsigns diffthis HEAD<cr>" :Diff]} + :l {:name :LSP + :a ["<cmd>lua vim.lsp.buf.code_action()<cr>" "Code Action"] + :d ["<cmd>Telescope lsp_document_diagnostics<cr>" + "Document Diagnostics"] + :w ["<cmd>Telescope lsp_workspace_diagnostics<cr>" + "Workspace Diagnostics"] + :f ["<cmd>lua vim.lsp.buf.formatting()<cr>" :Format] + :i [:<cmd>LspInfo<cr> :Info] + :I [:<cmd>LspInstallInfo<cr> "Installer Info"] + :j ["<cmd>lua vim.lsp.diagnostic.goto_next()<CR>" "Next Diagnostic"] + :k ["<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>" "Prev Diagnostic"] + :l ["<cmd>lua vim.lsp.codelens.run()<cr>" "CodeLens Action"] + :q ["<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>" :Quickfix] + :r ["<cmd>lua vim.lsp.buf.rename()<cr>" :Rename] + :s ["<cmd>Telescope lsp_document_symbols<cr>" "Document Symbols"] + :S ["<cmd>Telescope lsp_dynamic_workspace_symbols<cr>" + "Workspace Symbols"]} + :s {:name :Search + :b ["<cmd>Telescope git_branches<cr>" "Checkout branch"] + :c ["<cmd>Telescope colorscheme<cr>" :Colorscheme] + :h ["<cmd>Telescope help_tags<cr>" "Find Help"] + :M ["<cmd>Telescope man_pages<cr>" "Man Pages"] + :r ["<cmd>Telescope oldfiles<cr>" "Open Recent File"] + :R ["<cmd>Telescope registers<cr>" :Registers] + :k ["<cmd>Telescope keymaps<cr>" :Keymaps] + :C ["<cmd>Telescope commands<cr>" :Commands]} + :o {:name :Orgmode + :a ["<cmd>lua require('orgmode').action('agenda.prompt')" + "Open agenda prompt"] + :c ["<cmd>lua require('orgmode').action('capture.prompt')" + "Open capture prompt"]} + :r {:name :Replace + :r ["<cmd>lua require('spectre').open()<cr>" :Replace] + :w ["<cmd>lua require('spectre').open_visual({select_word=true})<cr>" + "Replace Word"] + :f ["<cmd>lua require('spectre').open_file_search()<cr>" + "Replace Buffer"]} + :T {:name :Treesitter :p [:<cmd>TSPlaygroundToggle<cr> :Playground]}}) -(def- vopts - {:mode :v - :prefix :<leader> - :buffer nil - :silent true - :noremap true - :nowait true}) +(def- vopts {:mode :v + :prefix :<leader> + :buffer nil + :silent true + :noremap true + :nowait true}) -(def- vmappings - {:k ["<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>" +(def- vmappings {:k ["<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>" :Comment]}) (let [which-key (util.load-plugin :which-key)] diff --git a/fnl/config/zen.fnl b/fnl/config/zen.fnl index 6de7f8f..0f05710 100644 --- a/fnl/config/zen.fnl +++ b/fnl/config/zen.fnl @@ -1,17 +1,13 @@ ;; Zen mode. -(module config.zen - {autoload {util util}}) +(module config.zen {autoload {util util}}) (let [zen-mode (util.load-plugin :zen-mode)] - (zen-mode.setup - {:window - {:backdrop 1 - :height 0.8 - :width 0.5 - :options - {:signcolumn :no - :number false - :relativenumber false}} - :plugins {:gitsigns {:enabled false} - :tmux {:enabled true} - :twilight {:enabled true}}})) + (zen-mode.setup {:window {:backdrop 1 + :height 0.8 + :width 0.5 + :options {:signcolumn :no + :number false + :relativenumber false}} + :plugins {:gitsigns {:enabled false} + :tmux {:enabled true} + :twilight {:enabled true}}})) diff --git a/fnl/init.fnl b/fnl/init.fnl index 2255db4..dd6d1b0 100644 --- a/fnl/init.fnl +++ b/fnl/init.fnl @@ -1,8 +1,5 @@ ;; Install, load settings, and load plugin configs. -(module init - {autoload {util util} - require [settings - config.packer]}) +(module init {autoload {util util} require [settings config.packer]}) (util.install) (util.sync) diff --git a/fnl/plugins.fnl b/fnl/plugins.fnl index 6260b43..b2de04e 100644 --- a/fnl/plugins.fnl +++ b/fnl/plugins.fnl @@ -1,66 +1,65 @@ ;; List of plugins (module plugins) -(def plugins - {:wbthomason/packer.nvim {} - ;; Have packer manage itself - :lewis6991/impatient.nvim {} - :Olical/aniseed {} - :nvim-lua/popup.nvim {} - ;; An implementation of the Popup API from vim in Neovim - :nvim-lua/plenary.nvim {} - ;; Useful lua functions used ny lots of plugins - ;; Colorschemes - :aktersnurra/no-clown-fiesta.nvim {} - ;; LSP - :hrsh7th/nvim-cmp {} - ;; The completion plugin - :hrsh7th/cmp-buffer {} - ;; buffer completions - :hrsh7th/cmp-path {} - ;; path completions - :hrsh7th/cmp-cmdline {} - ;; cmdline completions - :saadparwaiz1/cmp_luasnip {} - ;; snippet completions - :onsails/lspkind-nvim {} - :hrsh7th/cmp-nvim-lsp {} - :neovim/nvim-lspconfig {} - :williamboman/nvim-lsp-installer {} - :tamago324/nlsp-settings.nvim {} - :jose-elias-alvarez/null-ls.nvim {} - :b0o/SchemaStore.nvim {} - ;; Snippets - :L3MON4D3/LuaSnip {} - :rafamadriz/friendly-snippets {} - ;; Telescope - :nvim-telescope/telescope.nvim {:requires :nvim-lua/plenary.nvim} - :nvim-telescope/telescope-fzf-native.nvim {:run :make} - :nvim-telescope/telescope-file-browser.nvim {} - ;; Treesitter - :nvim-treesitter/nvim-treesitter {:run ":TSUpdate"} - :JoosepAlviste/nvim-ts-context-commentstring {} - :nvim-treesitter/playground {} - ;; Miscellaneous plugins - :windwp/nvim-autopairs {} - :numToStr/Comment.nvim {} - :lewis6991/gitsigns.nvim {} - :kyazdani42/nvim-web-devicons {} - :kyazdani42/nvim-tree.lua {:requires {1 :kyazdani42/nvim-web-devicons}} - :akinsho/bufferline.nvim {} - :moll/vim-bbye {} - :nvim-lualine/lualine.nvim {:requires {1 :kyazdani42/nvim-web-devicons - :opt true}} - :ahmedkhalf/project.nvim {} - :goolord/alpha-nvim {} - :antoinemadec/FixCursorHold.nvim {} - ;; This is needed to fix lsp doc highlight - :folke/which-key.nvim {} - :folke/zen-mode.nvim {} - :windwp/nvim-spectre {} - :phaazon/hop.nvim {} - :kevinhwang91/nvim-bqf {:event :BufRead} - :norcalli/nvim-colorizer.lua {} - :max397574/better-escape.nvim {} - :nvim-orgmode/orgmode {} - :cappyzawa/trim.nvim {}}) +(def plugins {:wbthomason/packer.nvim {} + ;; Have packer manage itself + :lewis6991/impatient.nvim {} + :Olical/aniseed {} + :nvim-lua/popup.nvim {} + ;; An implementation of the Popup API from vim in Neovim + :nvim-lua/plenary.nvim {} + ;; Useful lua functions used ny lots of plugins + ;; Colorschemes + :aktersnurra/no-clown-fiesta.nvim {} + ;; LSP + :hrsh7th/nvim-cmp {} + ;; The completion plugin + :hrsh7th/cmp-buffer {} + ;; buffer completions + :hrsh7th/cmp-path {} + ;; path completions + :hrsh7th/cmp-cmdline {} + ;; cmdline completions + :saadparwaiz1/cmp_luasnip {} + ;; snippet completions + :onsails/lspkind-nvim {} + :hrsh7th/cmp-nvim-lsp {} + :neovim/nvim-lspconfig {} + :williamboman/nvim-lsp-installer {} + :tamago324/nlsp-settings.nvim {} + :jose-elias-alvarez/null-ls.nvim {} + :b0o/SchemaStore.nvim {} + ;; Snippets + :L3MON4D3/LuaSnip {} + :rafamadriz/friendly-snippets {} + ;; Telescope + :nvim-telescope/telescope.nvim {:requires :nvim-lua/plenary.nvim} + :nvim-telescope/telescope-fzf-native.nvim {:run :make} + :nvim-telescope/telescope-file-browser.nvim {} + ;; Treesitter + :nvim-treesitter/nvim-treesitter {:run ":TSUpdate"} + :JoosepAlviste/nvim-ts-context-commentstring {} + :nvim-treesitter/playground {} + ;; Miscellaneous plugins + :windwp/nvim-autopairs {} + :numToStr/Comment.nvim {} + :lewis6991/gitsigns.nvim {} + :kyazdani42/nvim-web-devicons {} + :kyazdani42/nvim-tree.lua {:requires {1 :kyazdani42/nvim-web-devicons}} + :akinsho/bufferline.nvim {} + :moll/vim-bbye {} + :nvim-lualine/lualine.nvim {:requires {1 :kyazdani42/nvim-web-devicons + :opt true}} + :ahmedkhalf/project.nvim {} + :goolord/alpha-nvim {} + :antoinemadec/FixCursorHold.nvim {} + ;; This is needed to fix lsp doc highlight + :folke/which-key.nvim {} + :folke/zen-mode.nvim {} + :windwp/nvim-spectre {} + :phaazon/hop.nvim {} + :kevinhwang91/nvim-bqf {:event :BufRead} + :norcalli/nvim-colorizer.lua {} + :max397574/better-escape.nvim {} + :nvim-orgmode/orgmode {} + :cappyzawa/trim.nvim {}}) diff --git a/fnl/settings/init.fnl b/fnl/settings/init.fnl index 2b6836f..a6f74fb 100644 --- a/fnl/settings/init.fnl +++ b/fnl/settings/init.fnl @@ -1,4 +1,2 @@ ;; Load nvim settings -(module settings - {require [settings.options - settings.keymaps]}) +(module settings {require [settings.options settings.keymaps]}) diff --git a/fnl/settings/keymaps.fnl b/fnl/settings/keymaps.fnl index bf68c38..52254cd 100644 --- a/fnl/settings/keymaps.fnl +++ b/fnl/settings/keymaps.fnl @@ -1,6 +1,5 @@ ;; Custom keymappings. -(module settings.keymaps - {autoload {nvim aniseed.nvim}}) +(module settings.keymaps {autoload {nvim aniseed.nvim}}) (def- opts {:noremap true :silent true}) (defn- map [mode lhs rhs opt] (nvim.set_keymap mode lhs rhs opt)) diff --git a/fnl/settings/options.fnl b/fnl/settings/options.fnl index c468f16..ec43440 100644 --- a/fnl/settings/options.fnl +++ b/fnl/settings/options.fnl @@ -1,88 +1,85 @@ ;; Sets options in neovim -(module settings.options - {autoload {nvim aniseed.nvim}}) +(module settings.options {autoload {nvim aniseed.nvim}}) -(defn- apply-opts [opts] - (each [k v (pairs opts)] - (tset vim.opt k v))) +(defn- apply-opts [opts] (each [k v (pairs opts)] + (tset vim.opt k v))) -(def- opts - {;; creates a backup file - :backup false - ;; allows neovim to access the system clipboard - :clipboard :unnamedplus - ;; more space in the neovim command line for displaying messages - :cmdheight 2 - ;; mostly just for cmp - :completeopt {:menuone :noselect} - ;; so that `` is visible in markdown files - :conceallevel 0 - ;; the encoding written to a file - :fileencoding :utf-8 - ;; highlight all matches on previous search pattern - :hlsearch true - ;; ignore case in search patterns - :ignorecase true - ;; disable the mouse to be used in neovim - :mouse "" - ;; pop up menu height - :pumheight 10 - ;; we don't need to see things like ;; INSERT ;; anymore - :showmode false - ;; always show tabs - :showtabline 2 - ;; smart case - :smartcase true - ;; make indenting smarter again - :smartindent true - ;; force all horizontal splits to go below current window - :splitbelow true - ;; force all vertical splits to go to the right of current window - :splitright true - ;; creates a swapfile - :swapfile false - ;; set term gui colors (most terminals support this) - :termguicolors true - ;; time to wait for a mapped sequence to complete (in milliseconds) - :timeoutlen 1000 - ;; enable persistent undo - :undofile true - ;; faster completion (4000ms default) - :updatetime 300 - ;; if a file is being edited by another program (or was written - ;; to file while editing with another program), it is not allowed - ;; to be edited - :writebackup false - ;; convert tabs to spaces - :expandtab true - ;; the number of spaces inserted for each indentation - :shiftwidth 2 - ;; insert 2 spaces for a tab - :tabstop 2 - ;; highlight the current line - :cursorline true - ;; set numbered lines - :number true - ;; set relative numbered lines - :relativenumber true - ;; set number column width to 2 {default 4} - :numberwidth 2 - ;; always show the sign column, otherwise it would shift the text - ;; each time - :signcolumn :yes - ;; display lines as one long line - :wrap false - :laststatus 3 - ;; is one of my fav - :scrolloff 8 - :sidescrolloff 8 - ;; the font used in graphical neovim applications - :guifont "monospace:h17"}) +(def- opts {;; creates a backup file + :backup false + ;; allows neovim to access the system clipboard + :clipboard :unnamedplus + ;; more space in the neovim command line for displaying messages + :cmdheight 2 + ;; mostly just for cmp + :completeopt {:menuone :noselect} + ;; so that `` is visible in markdown files + :conceallevel 0 + ;; the encoding written to a file + :fileencoding :utf-8 + ;; highlight all matches on previous search pattern + :hlsearch true + ;; ignore case in search patterns + :ignorecase true + ;; disable the mouse to be used in neovim + :mouse "" + ;; pop up menu height + :pumheight 10 + ;; we don't need to see things like ;; INSERT ;; anymore + :showmode false + ;; always show tabs + :showtabline 2 + ;; smart case + :smartcase true + ;; make indenting smarter again + :smartindent true + ;; force all horizontal splits to go below current window + :splitbelow true + ;; force all vertical splits to go to the right of current window + :splitright true + ;; creates a swapfile + :swapfile false + ;; set term gui colors (most terminals support this) + :termguicolors true + ;; time to wait for a mapped sequence to complete (in milliseconds) + :timeoutlen 1000 + ;; enable persistent undo + :undofile true + ;; faster completion (4000ms default) + :updatetime 300 + ;; if a file is being edited by another program (or was written + ;; to file while editing with another program), it is not allowed + ;; to be edited + :writebackup false + ;; convert tabs to spaces + :expandtab true + ;; the number of spaces inserted for each indentation + :shiftwidth 2 + ;; insert 2 spaces for a tab + :tabstop 2 + ;; highlight the current line + :cursorline true + ;; set numbered lines + :number true + ;; set relative numbered lines + :relativenumber true + ;; set number column width to 2 {default 4} + :numberwidth 2 + ;; always show the sign column, otherwise it would shift the text + ;; each time + :signcolumn :yes + ;; display lines as one long line + :wrap false + :laststatus 3 + ;; is one of my fav + :scrolloff 8 + :sidescrolloff 8 + ;; the font used in graphical neovim applications + :guifont "monospace:h17"}) (apply-opts opts) (nvim.ex.set "whichwrap+=<,>,[,],h,l") -(nvim.ex.set "iskeyword+=-") -(nvim.ex.set "formatoptions-=cro") -(nvim.ex.set "colorcolumn=80") -(nvim.ex.set "shortmess+=c") +(nvim.ex.set :iskeyword+=-) +(nvim.ex.set :formatoptions-=cro) +(nvim.ex.set :colorcolumn=80) +(nvim.ex.set :shortmess+=c) diff --git a/fnl/util.fnl b/fnl/util.fnl index c624f64..97a3cdc 100644 --- a/fnl/util.fnl +++ b/fnl/util.fnl @@ -1,31 +1,27 @@ ;; Utility functions. -(module util - {autoload {a aniseed.core - nvim aniseed.nvim - packer packer - plugins plugins}}) +(module util {autoload {a aniseed.core + nvim aniseed.nvim + packer packer + plugins plugins}}) (def- path (.. (vim.fn.stdpath :data) :/site/pack/packer/start)) (def num-plugins (length (vim.fn.readdir path))) -(defn sync [] - (if (= num-plugins 3) - (packer.sync))) +(defn sync [] (if (= num-plugins 3) + (packer.sync))) (defn install [] - (packer.startup (fn [use] - (each [plugin opts (pairs plugins.plugins)] - (use (a.assoc opts 1 plugin)))))) + (packer.startup (fn [use] + (each [plugin opts (pairs plugins.plugins)] + (use (a.assoc opts 1 plugin)))))) -(defn load-config [] - (if (> num-plugins 3) - (require :config))) +(defn load-config [] (if (> num-plugins 3) + (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)))) + (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)))) |