diff options
Diffstat (limited to 'fnl')
37 files changed, 996 insertions, 1245 deletions
diff --git a/fnl/config/alpha.fnl b/fnl/config/alpha.fnl index 13a02c6..4fb51ec 100644 --- a/fnl/config/alpha.fnl +++ b/fnl/config/alpha.fnl @@ -1,41 +1,40 @@ ;; A customizable greeter. -(module config.alpha - {autoload {util util}}) +(module config.alpha {autoload {util util}}) -(def- ascii-art [ - " ##############..... ############## " - " ##############......############## " - " ##########..........########## " - " ##########........########## " - " ##########.......########## " - " ##########.....##########.. " - " ##########....##########..... " - " ..##########..##########......... " - " ....##########.#########............. " - " ..################JJJ............ " - " ################............. " - " ##############.JJJ.JJJJJJJJJJ " - " ############...JJ...JJ..JJ JJ " - " ##########....JJ...JJ..JJ JJ " - " ########......JJJ..JJJ JJJ JJJ " - " ###### ......... " - " ..... " - " . " -]) +(def- ascii-art [" ##############..... ############## " + " ##############......############## " + " ##########..........########## " + " ##########........########## " + " ##########.......########## " + " ##########.....##########.. " + " ##########....##########..... " + " ..##########..##########......... " + " ....##########.#########............. " + " ..################JJJ............ " + " ################............. " + " ##############.JJJ.JJJJJJJJJJ " + " ############...JJ...JJ..JJ JJ " + " ##########....JJ...JJ..JJ JJ " + " ########......JJJ..JJJ JJJ JJJ " + " ###### ......... " + " ..... " + " . "]) (let [alpha (util.load-plugin :alpha)] (let [dashboard (require :alpha.themes.dashboard)] (do (set dashboard.section.header.val ascii-art) - (set dashboard.section.buttons.val [ - (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" ":Telescope oldfiles <CR>") - (dashboard.button "t" " Find text" ":Telescope live_grep <CR>") - (dashboard.button "c" " Configuration" ":e ~/.config/nvim/init.lua <CR>") - (dashboard.button "q" " Quit Neovim" ":qa<CR>") - ]) + (set dashboard.section.buttons.val + [(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" + ":Telescope oldfiles <CR>") + (dashboard.button :t " Find text" ":Telescope live_grep <CR>") + (dashboard.button :c " Configuration" + ":e ~/.config/nvim/init.lua <CR>") + (dashboard.button :q " Quit Neovim" ":qa<CR>")]) (set dashboard.section.header.opts.hl :AlphaHeader) (set dashboard.section.buttons.opts.hl :AlphaButtons) (set dashboard.opts.opts.noautocmd true) diff --git a/fnl/config/autocmd.fnl b/fnl/config/autocmd.fnl index c5e7ae5..ecec60a 100644 --- a/fnl/config/autocmd.fnl +++ b/fnl/config/autocmd.fnl @@ -1,69 +1,50 @@ ;; A customizable greeter. -(module config.autocmd - {autoload {util util}}) - -(util.autocmd - :FileType - {:pattern [ :qf :help :man :lspinfo ] - :command "nnoremap <silent> <buffer> q :close<CR>" - :group :_general_settings}) - -(util.autocmd - :TextYankPost - {:pattern [ :* ] - :callback (lambda [] (vim.highlight.on_yank {:timeout 200})) - :group :_general_settings}) - -(util.autocmd - :BufWinEnter - {:pattern [ :* ] - :command ":set formatoptions-=cro" - :group :_general_settings}) - -(util.autocmd - :FileType - {:pattern [ :qf ] - :command "set nobuflisted" - :group :_general_settings}) - -(util.autocmd - :FileType - {:pattern [ :gitcommit ] - :command "setlocal wrap" - :group :_git}) - -(util.autocmd - :FileType - {:pattern [ :gitcommit ] - :command "setlocal spell" - :group :_git}) - -(util.autocmd - :FileType - {:pattern [ :markdown ] - :command "setlocal wrap" - :group :_markdown}) - -(util.autocmd - :FileType - {:pattern [ :markdown ] - :command "setlocal spell" - :group :_markdown}) - -(util.autocmd - :VimResized - {:pattern [ :* ] - :command "tabdo wincmd =" - :group :_auto_resize}) - -(util.autocmd - :User - {:pattern [ :AlphaReady ] - :command "set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2" - :group :_alpha}) - -(util.autocmd - :BufWritePost - {:pattern [ :plugins.fnl ] - :command "source <afile> | PackerSync" - :group :packer_user_config}) +(module config.autocmd {autoload {util util}}) + +(util.autocmd :FileType {:pattern [:qf :help :man :lspinfo] + :command "nnoremap <silent> <buffer> q :close<CR>" + :group :_general_settings}) + +(util.autocmd :TextYankPost + {:pattern ["*"] + :callback (lambda [] + (vim.highlight.on_yank {:timeout 200})) + :group :_general_settings}) + +(util.autocmd :BufWinEnter + {:pattern ["*"] + :command ":set formatoptions-=cro" + :group :_general_settings}) + +(util.autocmd :FileType {:pattern [:qf] + :command "set nobuflisted" + :group :_general_settings}) + +(util.autocmd :FileType {:pattern [:gitcommit] + :command "setlocal wrap" + :group :_git}) + +(util.autocmd :FileType {:pattern [:gitcommit] + :command "setlocal spell" + :group :_git}) + +(util.autocmd :FileType {:pattern [:markdown] + :command "setlocal wrap" + :group :_markdown}) + +(util.autocmd :FileType {:pattern [:markdown] + :command "setlocal spell" + :group :_markdown}) + +(util.autocmd :VimResized {:pattern ["*"] + :command "tabdo wincmd =" + :group :_auto_resize}) + +(util.autocmd :User {:pattern [:AlphaReady] + :command "set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2" + :group :_alpha}) + +(util.autocmd :BufWritePost + {:pattern [:plugins.fnl] + :command "source <afile> | PackerSync" + :group :packer_user_config}) diff --git a/fnl/config/autopairs.fnl b/fnl/config/autopairs.fnl index b2d0475..2b175fa 100644 --- a/fnl/config/autopairs.fnl +++ b/fnl/config/autopairs.fnl @@ -1,25 +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 2351187..93ec0a9 100644 --- a/fnl/config/better-escape.fnl +++ b/fnl/config/better-escape.fnl @@ -1,11 +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 f4ec98b..8e6d094 100644 --- a/fnl/config/bufferline.fnl +++ b/fnl/config/bufferline.fnl @@ -1,117 +1,69 @@ ;; 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 1 } ] - :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 1}] + :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"}) +(def- default-bg-tabline {:attribute :bg :highlight :TabLine}) -(def- default-bg-normal { - :attribute "bg" :highlight "Normal"}) +(def- default-bg-normal {:attribute :bg :highlight :Normal}) -(def- default-fg-tabline { - :attribute "fg" :highlight "TabLine"}) +(def- default-fg-tabline {:attribute :fg :highlight :TabLine}) -(def- default-fg-normal { - :attribute "fg" :highlight "Normal"}) +(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 34cc026..e4e16da 100644 --- a/fnl/config/cmp.fnl +++ b/fnl/config/cmp.fnl @@ -1,38 +1,32 @@ ;; 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) luasnip (util.load-plugin :luasnip)] - ;;((require :luasnip/loaders/from_vscode).lazy_load) - (lspkind.init) - (cmp.setup { - :snippet { - :expand (fn [args] - (luasnip.lsp_expand args.body))} - :mapping { - "<C-k>" (cmp.mapping.select_prev_item) - "<C-j>" (cmp.mapping.select_next_item)} - :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 "[Buf]" - :nvim_lsp "[LSP]" - :nvim_lua "[api]" - :path "[path]" - :luasnip "[Snip]" - }})} - :documentation { - :border [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]} - :experimental { - :ghost_text false - :native_menu false}})) + ;;((require :luasnip/loaders/from_vscode).lazy_load) + (lspkind.init) + (cmp.setup {:snippet {:expand (fn [args] + (luasnip.lsp_expand args.body))} + :mapping {:<C-k> (cmp.mapping.select_prev_item) + :<C-j> (cmp.mapping.select_next_item)} + :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 "[Buf]" + :nvim_lsp "[LSP]" + :nvim_lua "[api]" + :path "[path]" + :luasnip "[Snip]"}})} + :documentation {:border ["╭" + "─" + "╮" + "│" + "╯" + "─" + "╰" + "│"]} + :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 828daf1..989ee75 100644 --- a/fnl/config/colorscheme.fnl +++ b/fnl/config/colorscheme.fnl @@ -1,9 +1,8 @@ ;; Load neovim colorscheme. -(module config.colorscheme - {autoload {util util}}) +(module config.colorscheme {autoload {util util}}) -(local colorscheme "no-clown-fiesta") +(local colorscheme :no-clown-fiesta) -(let [(ok? _) (pcall (vim.cmd (.. "colorscheme " "no-clown-fiesta")))] +(let [(ok? _) (pcall (vim.cmd (.. "colorscheme " :no-clown-fiesta)))] (if (not ok?) - (vim.notify (.. "colorscheme " colorscheme " not found!")))) + (vim.notify (.. "colorscheme " colorscheme " not found!")))) diff --git a/fnl/config/gitsigns.fnl b/fnl/config/gitsigns.fnl index d179e3e..07b9157 100644 --- a/fnl/config/gitsigns.fnl +++ b/fnl/config/gitsigns.fnl @@ -1,70 +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 53ba9e9..f623c0f 100644 --- a/fnl/config/hop.fnl +++ b/fnl/config/hop.fnl @@ -1,10 +1,8 @@ ;; 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 {})) -(nvim.set_keymap "n" "s" ":HopChar2<cr>" { :silent true }) -(nvim.set_keymap "n" "S" ":HopWord<cr>" { :silent true }) +(nvim.set_keymap :n :s ":HopChar2<cr>" {:silent true}) +(nvim.set_keymap :n :S ":HopWord<cr>" {:silent true}) 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 d1a2ef8..b736f7a 100644 --- a/fnl/config/init.fnl +++ b/fnl/config/init.fnl @@ -1,26 +1,22 @@ ;; Load all plugin configs. -(module config.init - {require - {_ config.packer - _ config.alpha - ;;_ config.autocmd - _ config.autopairs - _ config.better-escape - _ config.bufferline - _ config.cmp - _ config.colorizer - _ config.colorscheme - _ config.gitsigns - _ config.lualine - _ config.ncomment - _ config.nvim-tree - _ config.orgmode - _ config.project - _ config.spectre - _ config.telescope - _ config.treesitter - _ config.which-key - _ config.zen - _ config.lsp - }}) - +(module config.init {require {_ config.packer + _ config.alpha + ;;_ config.autocmd + _ config.autopairs + _ config.better-escape + _ config.bufferline + _ config.cmp + _ config.colorizer + _ config.colorscheme + _ config.gitsigns + _ config.lualine + _ config.ncomment + _ config.nvim-tree + _ config.orgmode + _ config.project + _ config.spectre + _ config.telescope + _ config.treesitter + _ config.which-key + _ config.zen + _ config.lsp}}) diff --git a/fnl/config/lsp/handlers.fnl b/fnl/config/lsp/handlers.fnl index 950f3fb..1e3785b 100644 --- a/fnl/config/lsp/handlers.fnl +++ b/fnl/config/lsp/handlers.fnl @@ -1,60 +1,61 @@ -(module config.lsp.handlers - {autoload {util util - nvim aniseed.nvim}}) - -(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 "" }))) - -(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- 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))) - -(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)) - capabilities)) +(module config.lsp.handlers {autoload {util util nvim aniseed.nvim}}) + +(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 ""}))) + +(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- 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))) + +(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)) + capabilities)) (setup) diff --git a/fnl/config/lsp/init.fnl b/fnl/config/lsp/init.fnl index b26dd7a..c4a461d 100644 --- a/fnl/config/lsp/init.fnl +++ b/fnl/config/lsp/init.fnl @@ -1,8 +1,7 @@ ;; Loads the LSP module. -(module config.lsp.init - {autoload {util util}}) +(module config.lsp.init {autoload {util util}}) (let [_ (util.load-plugin :lspconfig)] - (require :config.lsp.lsp-installer) - (require :config.lsp.handlers) - (require :config.lsp.null-ls)) + (require :config.lsp.lsp-installer) + (require :config.lsp.handlers) + (require :config.lsp.null-ls)) diff --git a/fnl/config/lsp/lsp-installer.fnl b/fnl/config/lsp/lsp-installer.fnl index 3649566..9522ef1 100644 --- a/fnl/config/lsp/lsp-installer.fnl +++ b/fnl/config/lsp/lsp-installer.fnl @@ -1,26 +1,22 @@ ;; LSP installer. -(module config.lsp.lsp-installer - {autoload {util util}}) +(module config.lsp.lsp-installer {autoload {util util}}) -(def- opts - (let [handlers (require :config.lsp.handlers)] - {:on_attach: handlers.on_attach - :capabilities handlers.capabilities})) +(def- opts (let [handlers (require :config.lsp.handlers)] + {"on_attach:" handlers.on_attach + :capabilities handlers.capabilities})) (defn- get-server-opts [server] - (when (= server.name :jsonls) - (let [jsonls-opts (require :config.lsp.settings.jsonls)] - (vim.tbl_deep_extend :force jsonls-opts opts))) - (when (= server.name :sumneko_lua) - (let [sumneko-lua-opts (require :config.lsp.settings.sumneko-lua)] - (vim.tbl_deep_extend :force sumneko-lua-opts.settings opts))) - (when (= server.name :pyright) - (let [pyright-opts (require :config.lsp.settings.pyright)] - (vim.tbl_deep_extend :force pyright-opts.settings opts))) - opts) - + (when (= server.name :jsonls) + (let [jsonls-opts (require :config.lsp.settings.jsonls)] + (vim.tbl_deep_extend :force jsonls-opts opts))) + (when (= server.name :sumneko_lua) + (let [sumneko-lua-opts (require :config.lsp.settings.sumneko-lua)] + (vim.tbl_deep_extend :force sumneko-lua-opts.settings opts))) + (when (= server.name :pyright) + (let [pyright-opts (require :config.lsp.settings.pyright)] + (vim.tbl_deep_extend :force pyright-opts.settings opts))) 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))))) + (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 c5b4aef..f046ee8 100644 --- a/fnl/config/lsp/null-ls.fnl +++ b/fnl/config/lsp/null-ls.fnl @@ -1,29 +1,26 @@ ;; 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 + (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.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.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 c1cb710..73e8975 100644 --- a/fnl/config/lsp/settings/jsonls.fnl +++ b/fnl/config/lsp/settings/jsonls.fnl @@ -1,16 +1,12 @@ ;; 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)] - (schemastore.setup - {: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) ]))]}}})) + (schemastore.setup {: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 bb39ab5..7269469 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 settings - {:settings - {:python - {:analysis - {:typeCheckingMode "off"}}}}) +(def settings {:settings {:python {:analysis {:typeCheckingMode :off}}}}) diff --git a/fnl/config/lsp/settings/sumneko-lua.fnl b/fnl/config/lsp/settings/sumneko-lua.fnl index e39c801..cc8e9ab 100644 --- a/fnl/config/lsp/settings/sumneko-lua.fnl +++ b/fnl/config/lsp/settings/sumneko-lua.fnl @@ -1,19 +1,23 @@ ;; Config for a Lua language server. (module config.lsp.settings.sumneko-lua) -(def- workspace - {:library {(vim.fn.expand "$VIMRUNTIME/lua") true - (vim.fn.expand "$VIMRUNTIME/lua/vim/lsp") true}}) +(def- workspace + {: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 settings - {:settings { - :Lua { - :diagnostics diagnostics - :workspace workspace}}}) +(def settings {:settings {:Lua {: diagnostics : workspace}}}) diff --git a/fnl/config/lualine.fnl b/fnl/config/lualine.fnl index 68f2f4f..5ab0920 100644 --- a/fnl/config/lualine.fnl +++ b/fnl/config/lualine.fnl @@ -1,60 +1,48 @@ ;; Statusbar. -(module config.lualine - {autoload {util util}}) +(module config.lualine {autoload {util util}}) -(defn- hide-in-width [] - (> (vim.fn.winwidth 0) 80)) +(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- branch {1 "b:gitsigns_head" :icon " " :cond hide-in-width}) -(def- filetype { - 1 "filetype" - :cond hide_in_width - :color {}}) +(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/ncomment.fnl b/fnl/config/ncomment.fnl index 2c983df..217ba6d 100644 --- a/fnl/config/ncomment.fnl +++ b/fnl/config/ncomment.fnl @@ -1,25 +1,23 @@ ;; Language aware commenting. -(module config.ncomment - {autoload {util util}}) +(module config.ncomment {autoload {util util}}) +(defn- get-type [ctx U] (or (and (= ctx.ctype U.ctype.line) :__default) + :__multiline)) -(defn- get-type [ctx U] - (or (and (= ctx.ctype U.ctype.line) :__default) :__multiline)) - -(defn- get-location [ctx U] - (if (= ctx.ctype U.ctype.block) - ((require :ts_context_commentstring.utils).get_cursor_location) - (or (= ctx.motion U.motion.v) (= ctx.motion U.cmotion.V)) - ((require :ts_context_commentstring.utils).get_visual_start_location) - nil)) +(defn- get-location [ctx U] (if (= ctx.ctype U.ctype.block) + ((require :ts_context_commentstring.utils) .get_cursor_location) + (or (= ctx.motion U.motion.v) + (= ctx.motion U.cmotion.V)) + ((require :ts_context_commentstring.utils) .get_visual_start_location) + nil)) (defn- pre-hook [ctx] - (let [U (require :Comment.utils)] - ((require :ts_context_commentstring.internal).calculate_commentstring { - :key (get-type ctx U) - :location (get-location ctx U)}))) + (let [U (require :Comment.utils)] + ((require :ts_context_commentstring.internal) .calculate_commentstring + {:key (get-type ctx U) + :location (get-location ctx + U)}))) (let [ncomment (util.load-plugin :Comment)] - (ncomment.setup - {:pre_hook (fn [ctx] - (pre-hook ctx))})) + (ncomment.setup {:pre_hook (fn [ctx] + (pre-hook ctx))})) diff --git a/fnl/config/nvim-tree.fnl b/fnl/config/nvim-tree.fnl index eb579f7..672e370 100644 --- a/fnl/config/nvim-tree.fnl +++ b/fnl/config/nvim-tree.fnl @@ -1,105 +1,82 @@ ;; A 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 - {:default "" - :symlink "" - :git { - :unstaged "" - :staged "S" - :unmerged "" - :renamed "➜" - :deleted "" - :untracked "U" - :ignored "◌" - } - :folder { - :default "" - :open "" - :empty "" - :empty_open "" - :symlink ""}}) +(set nvim.g.nvim_tree_show_icons + {:default "" + :symlink "" + :git {:unstaged "" + :staged :S + :unmerged "" + :renamed "➜" + :deleted "" + :untracked :U + :ignored "◌"} + :folder {:default "" + :open "" + :empty "" + :empty_open "" + :symlink ""}}) (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 - :hide_root_folder 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") }]}} - :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 + :hide_root_folder 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)}]}} + :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 d8af6d4..e55f2bc 100644 --- a/fnl/config/orgmode.fnl +++ b/fnl/config/orgmode.fnl @@ -1,16 +1,17 @@ ;; Orgmode for nvim. -(module config.orgmode - {autoload {util util}}) +(module config.orgmode {autoload {util util}}) (let [orgmode (util.load-plugin :orgmode)] (do (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:\n :LOGBOOK:\n CLOCK: %U\n :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 0c5611b..8354c07 100644 --- a/fnl/config/packer.fnl +++ b/fnl/config/packer.fnl @@ -1,9 +1,7 @@ ;; Load packer config -(module config.packer - {autoload {util util}}) +(module config.packer {autoload {util util}}) (let [packer (util.load-plugin :packer)] - (packer.init { - :display { - :open_fn (fn [] - ((require :packer.util).float {:border :rounded}))}})) + (packer.init {:display {:open_fn (fn [] + ((require :packer.util) .float + {:border :rounded}))}})) diff --git a/fnl/config/project.fnl b/fnl/config/project.fnl index e2e6371..7d50fee 100644 --- a/fnl/config/project.fnl +++ b/fnl/config/project.fnl @@ -1,15 +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 3a05c0b..5529714 100644 --- a/fnl/config/spectre.fnl +++ b/fnl/config/spectre.fnl @@ -1,99 +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 86f5f5c..90a6f71 100644 --- a/fnl/config/telescope.fnl +++ b/fnl/config/telescope.fnl @@ -1,98 +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 357859f..a76ff32 100644 --- a/fnl/config/treesitter.fnl +++ b/fnl/config/treesitter.fnl @@ -1,20 +1,15 @@ ;; 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 "all" - :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 :all + :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/which-key.fnl b/fnl/config/which-key.fnl index 8c01ae6..020acd3 100644 --- a/fnl/config/which-key.fnl +++ b/fnl/config/which-key.fnl @@ -1,173 +1,126 @@ ;; 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" ]}}) +(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]}}) -(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>" - "Comment" ]}) +(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)] (do diff --git a/fnl/config/zen.fnl b/fnl/config/zen.fnl index e17d5d3..7133b50 100644 --- a/fnl/config/zen.fnl +++ b/fnl/config/zen.fnl @@ -1,18 +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 1 - :width 120 - :options { - :signcolumn "no" - :number false - :relativenumber false}} - :plugins { - :gitsigns { :enabled false } - :tmux { :enabled true } - :twilight { :enabled true }}})) + (zen-mode.setup {:window {:backdrop 1 + :height 1 + :width 120 + :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 bd91031..f62b1cf 100644 --- a/fnl/init.fnl +++ b/fnl/init.fnl @@ -1,5 +1,2 @@ ;; Install, load settings, and load plugin configs. -(module init - {require {_ settings - _ install - _ config}}) +(module init {require {_ settings _ install _ config}}) diff --git a/fnl/install.fnl b/fnl/install.fnl index d6eef2c..d80de8f 100644 --- a/fnl/install.fnl +++ b/fnl/install.fnl @@ -1,14 +1,9 @@ ;; Installs plugins with packer. -(module install - {autoload { - a aniseed.core - plugins plugins - packer packer}}) +(module install {autoload {a aniseed.core plugins plugins packer packer}}) (defn- install-plugins [plgs] - (packer.startup ( - fn [use] - (each [plugin opts (pairs plgs)] - (use (a.assoc opts 1 plugin)))))) + (packer.startup (fn [use] + (each [plugin opts (pairs plgs)] + (use (a.assoc opts 1 plugin)))))) (install-plugins plugins.plugins) diff --git a/fnl/plugins.fnl b/fnl/plugins.fnl index 3994ba7..23bf9cb 100644 --- a/fnl/plugins.fnl +++ b/fnl/plugins.fnl @@ -1,64 +1,64 @@ ;; 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 {} - :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 {}}) +(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 {} + :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 {}}) diff --git a/fnl/settings/init.fnl b/fnl/settings/init.fnl index 5c21629..bff9c86 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 1d431e5..52254cd 100644 --- a/fnl/settings/keymaps.fnl +++ b/fnl/settings/keymaps.fnl @@ -1,13 +1,11 @@ ;; 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)) +(defn- map [mode lhs rhs opt] (nvim.set_keymap mode lhs rhs opt)) ;;Remap space as leader key -(map "" "<Space>" "<Nop>" opts) +(map "" :<Space> :<Nop> opts) (set nvim.g.mapleader " ") (set nvim.g.maplocalleader " ") @@ -21,35 +19,34 @@ ;; Normal ;; ;; Better window navigation -(map "n" "<C-h>" "<C-w>h" opts) -(map "n" "<C-j>" "<C-w>j" opts) -(map "n" "<C-k>" "<C-w>k" opts) -(map "n" "<C-l>" "<C-w>l" opts) - +(map :n :<C-h> :<C-w>h opts) +(map :n :<C-j> :<C-w>j opts) +(map :n :<C-k> :<C-w>k opts) +(map :n :<C-l> :<C-w>l opts) ;; Resize with arrows -(map "n" "<C-Up>" ":resize -2<CR>" opts) -(map "n" "<C-Down>" ":resize +2<CR>" opts) -(map "n" "<C-Left>" ":vertical resize -2<CR>" opts) -(map "n" "<C-Right>" ":vertical resize +2<CR>" opts) +(map :n :<C-Up> ":resize -2<CR>" opts) +(map :n :<C-Down> ":resize +2<CR>" opts) +(map :n :<C-Left> ":vertical resize -2<CR>" opts) +(map :n :<C-Right> ":vertical resize +2<CR>" opts) ;; Navigate buffers -(map "n" "<S-l>" ":bnext<CR>" opts) -(map "n" "<S-h>" ":bprevious<CR>" opts) +(map :n :<S-l> ":bnext<CR>" opts) +(map :n :<S-h> ":bprevious<CR>" opts) ;; Visual ;; ;; Stay in indent mode -(map "v" "<" "<gv" opts) -(map "v" ">" ">gv" opts) +(map :v "<" :<gv opts) +(map :v ">" :>gv opts) ;; Visual Block ;; ;; Move text up and down -(map "x" "J" ":move '>+1<CR>gv-gv" opts) -(map "x" "K" ":move '<-2<CR>gv-gv" opts) -(map "x" "<A-j>" ":move '>+1<CR>gv-gv" opts) -(map "x" "<A-k>" ":move '<-2<CR>gv-gv" opts) +(map :x :J ":move '>+1<CR>gv-gv" opts) +(map :x :K ":move '<-2<CR>gv-gv" opts) +(map :x :<A-j> ":move '>+1<CR>gv-gv" opts) +(map :x :<A-k> ":move '<-2<CR>gv-gv" opts) ;; Move text up and down -(map "v" "<A-j>" ":m .+1<CR>==" opts) -(map "v" "<A-k>" ":m .-2<CR>==" opts) -(map "v" "p" "\"_dP" opts) +(map :v :<A-j> ":m .+1<CR>==" opts) +(map :v :<A-k> ":m .-2<CR>==" opts) +(map :v :p "\"_dP" opts) diff --git a/fnl/settings/options.fnl b/fnl/settings/options.fnl index 4e560ce..f49867e 100644 --- a/fnl/settings/options.fnl +++ b/fnl/settings/options.fnl @@ -1,51 +1,80 @@ ;; Sets options in neovim -(module settings.options - {autoload {nvim aniseed.nvim}}) +(module settings.options {autoload {nvim aniseed.nvim}}) -(def- opts { - :backup false ;; creates a backup file - :clipboard "unnamedplus" ;; allows neovim to access the system clipboard - :cmdheight 2 ;; more space in the neovim command line for displaying messages - :completeopt { "menuone" "noselect" } ;; mostly just for cmp - :conceallevel 0 ;; so that `` is visible in markdown files - :fileencoding "utf-8" ;; the encoding written to a file - :hlsearch true ;; highlight all matches on previous search pattern - :ignorecase true ;; ignore case in search patterns - :mouse "" ;; disable the mouse to be used in neovim - :pumheight 10 ;; pop up menu height - :showmode false ;; we don't need to see things like ;; INSERT ;; anymore - :showtabline 2 ;; always show tabs - :smartcase true ;; smart case - :smartindent true ;; make indenting smarter again - :splitbelow true ;; force all horizontal splits to go below current window - :splitright true ;; force all vertical splits to go to the right of current window - :swapfile false ;; creates a swapfile - :termguicolors true ;; set term gui colors (most terminals support this) - :timeoutlen 1000 ;; time to wait for a mapped sequence to complete (in milliseconds) - :undofile true ;; enable persistent undo - :updatetime 300 ;; faster completion (4000ms default) - :writebackup false ;; 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 - :expandtab true ;; convert tabs to spaces - :shiftwidth 2 ;; the number of spaces inserted for each indentation - :tabstop 2 ;; insert 2 spaces for a tab - :cursorline true ;; highlight the current line - :number true ;; set numbered lines - :relativenumber true ;; set relative numbered lines - :numberwidth 4 ;; set number column width to 2 {default 4} - :signcolumn "yes" ;; always show the sign column, otherwise it would shift the text each time - :wrap false ;; display lines as one long line - :scrolloff 8 ;; is one of my fav - :sidescrolloff 8 - :guifont "monospace:h17" ;; the font used in graphical neovim applications - } -) +(def- opts {:backup false + ;; creates a backup file + :clipboard :unnamedplus + ;; allows neovim to access the system clipboard + :cmdheight 2 + ;; more space in the neovim command line for displaying messages + :completeopt {:menuone :noselect} + ;; mostly just for cmp + :conceallevel 0 + ;; so that `` is visible in markdown files + :fileencoding :utf-8 + ;; the encoding written to a file + :hlsearch true + ;; highlight all matches on previous search pattern + :ignorecase true + ;; ignore case in search patterns + :mouse "" + ;; disable the mouse to be used in neovim + :pumheight 10 + ;; pop up menu height + :showmode false + ;; we don't need to see things like ;; INSERT ;; anymore + :showtabline 2 + ;; always show tabs + :smartcase true + ;; smart case + :smartindent true + ;; make indenting smarter again + :splitbelow true + ;; force all horizontal splits to go below current window + :splitright true + ;; force all vertical splits to go to the right of current window + :swapfile false + ;; creates a swapfile + :termguicolors true + ;; set term gui colors (most terminals support this) + :timeoutlen 1000 + ;; time to wait for a mapped sequence to complete (in milliseconds) + :undofile true + ;; enable persistent undo + :updatetime 300 + ;; faster completion (4000ms default) + :writebackup false + ;; 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 + :expandtab true + ;; convert tabs to spaces + :shiftwidth 2 + ;; the number of spaces inserted for each indentation + :tabstop 2 + ;; insert 2 spaces for a tab + :cursorline true + ;; highlight the current line + :number true + ;; set numbered lines + :relativenumber true + ;; set relative numbered lines + :numberwidth 4 + ;; set number column width to 2 {default 4} + :signcolumn :yes + ;; always show the sign column, otherwise it would shift the text each time + :wrap false + ;; display lines as one long line + :scrolloff 8 + ;; is one of my fav + :sidescrolloff 8 + :guifont "monospace:h17" + ;; the font used in graphical neovim applications + }) -(defn- apply-opts [] - (each [k v (pairs opts)] - (tset vim.opt k v))) +(defn- apply-opts [] (each [k v (pairs opts)] + (tset vim.opt k v))) (apply-opts) (vim.cmd "set whichwrap+=<,>,[,],h,l") (vim.cmd "set iskeyword+=-") (vim.cmd "set formatoptions-=cro") -(nvim.ex.set "shortmess+=c") +(nvim.ex.set :shortmess+=c) diff --git a/fnl/util.fnl b/fnl/util.fnl index 18345ad..e6b4d9f 100644 --- a/fnl/util.fnl +++ b/fnl/util.fnl @@ -1,12 +1,11 @@ ;; Utility functions. -(module util - {autoload {nvim aniseed.nvim}}) +(module util {autoload {nvim aniseed.nvim}}) -(defn autocmd [name opts] - (nvim.ex.create_autocmd name opts)) +(defn autocmd [name opts] (nvim.ex.create_autocmd name opts)) (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)))) |