more updates to neovim configuration
change
commit 31dfdece921451724ca3ccbb58543718844a65c6
author Alpha Chen <alpha@kejadlen.dev>
date
parent 5a666f9e
diff --git a/.config/nvim/fnl/init.fnl b/.config/nvim/fnl/init.fnl
index 7f2a8d2b..ea5314da 100644
--- a/.config/nvim/fnl/init.fnl
+++ b/.config/nvim/fnl/init.fnl
@@ -1,36 +1,71 @@
 (vim.cmd "colorscheme paramount")
 
-;; clear background
-(let [l [:Normal :htmlH1 :htmlH2 :htmlH3 :htmlH4 :htmlH5 :htmlH6]]
-  (each [_ v (ipairs l)]
-    (vim.cmd (.. "highlight " v " ctermbg=None"))))
+(set vim.opt.list true)
+(set vim.opt.listchars "tab:\\u21e5 ,trail:\\u2423,extends:\\u21c9,precedes:\\u21c7,nbsp:\\u00b7")
+(set vim.opt.number true)
 
 (set vim.g.mapleader " ")
 
 (vim.keymap.set :n "\\\\" ":write<cr>" {:noremap true})
 (vim.keymap.set :i "\\\\" "<esc>:write<cr>" {:noremap true})
 
-(vim.keymap.set :n "<leader>/" ":nohlsearch<cr>" opts)
-
-(let [opts {:noremap true :silent true}]
-  (vim.keymap.set :n "<leader>e" vim.diagnostic.open_float opts)
-  (vim.keymap.set :n "[d" vim.diagnostic.goto_prev opts)
-  (vim.keymap.set :n "]d" vim.diagnostic.goto_next opts)
-  (vim.keymap.set :n "<leader>q" vim.diagnostic.setloclist opts))
-
-(fn on_attach [client bufnr]
-  (vim.api.nvim_buf_set_option bufnr :omnifunc "v:lua.vim.lsp.omnifunc")
-  (let [bufopts {:noremap true :silent true :buffer bufnr}]
-    (vim.keymap.set :n "gD" vim.lsp.buf.declaration bufopts)
-    (vim.keymap.set :n "gd" vim.lsp.buf.definition bufopts)
-    (vim.keymap.set :n "K" vim.lsp.buf.hover bufopts)
-    (vim.keymap.set :n "gi" vim.lsp.buf.implementation bufopts)
-    (vim.keymap.set :n "<C-k>" vim.lsp.buf.signature_help bufopts)
-    (vim.keymap.set :n "<leader>wa" vim.lsp.buf.add_workspace_folder bufopts)
-    (vim.keymap.set :n "<leader>wr" vim.lsp.buf.remove_workspace_folder bufopts)
-    (vim.keymap.set :n "<leader>wl" (fn [] (print (vim.inspect (vim.lsp.buf.list_workspace_folders)))) bufopts)
-    (vim.keymap.set :n "<leader>D" vim.lsp.buf.type_definition bufopts)
-    (vim.keymap.set :n "<leader>rn" vim.lsp.buf.rename bufopts)
-    (vim.keymap.set :n "<leader>ca" vim.lsp.buf.code_action bufopts)
-    (vim.keymap.set :n "gr" vim.lsp.buf.references bufopts)
-    (vim.keymap.set :n "<leader>f" vim.lsp.buf.formatting bufopts)))
+(vim.keymap.set :n :<leader>/ ":nohlsearch<cr>" opts)
+
+;; restore cursor location
+;;
+;; https://github.com/vim/vim/blob/master/runtime/defaults.vim#L108
+(let [{: nvim_command : nvim_create_autocmd : nvim_create_augroup} vim.api
+      au-group (nvim_create_augroup :nvim-startup {})
+      cb (fn []
+           (when (and
+                   (>= (vim.fn.line "'\"") 1)
+                   (<= (vim.fn.line "'\"") (vim.fn.line "$"))
+                   (not (string.find vim.bo.filetype "commit")))
+                 (nvim_command "normal! g`\"")))]
+  ;; when restoring the cursor, we want to ignore commit filetypes, so
+  ;; we need to manually enable filetype detection to set up those
+  ;; autocommands before creating the autocommand to restore the cursor
+  ;;
+  ;; https://github.com/neovim/neovim/issues/15536#issuecomment-909331778
+  (nvim_command "filetype plugin indent on")
+  (nvim_create_autocmd :BufReadPost {:callback cb :group au-group}))
+
+;; ftplugins in fennel
+;;
+;; https://github.com/rktjmp/hotpot.nvim/discussions/41#discussioncomment-3050564
+(let [{: nvim_create_autocmd : nvim_create_augroup} vim.api
+      au-group (nvim_create_augroup :hotpot-ft {})
+      cb #(pcall require (.. :ftplugin. (vim.fn.expand :<amatch>)))]
+  (nvim_create_autocmd :FileType {:callback cb :group au-group}))
+
+;; ale
+
+(set vim.g.ale_fix_on_save 1)
+(set vim.g.ale_floating_preview 1)
+
+;; lspconfig
+; (let [opts {:noremap true :silent true}]
+;   (vim.keymap.set :n :<leader>e vim.diagnostic.open_float opts)
+;   (vim.keymap.set :n "[d" vim.diagnostic.goto_prev opts)
+;   (vim.keymap.set :n "]d" vim.diagnostic.goto_next opts)
+;   (vim.keymap.set :n :<leader>q vim.diagnostic.setloclist opts))
+
+; (fn on_attach [client bufnr]
+;   (vim.api.nvim_buf_set_option bufnr :omnifunc "v:lua.vim.lsp.omnifunc")
+;   (let [bufopts {:noremap true :silent true :buffer bufnr}]
+;     (vim.keymap.set :n :gD vim.lsp.buf.declaration bufopts)
+;     (vim.keymap.set :n :gd vim.lsp.buf.definition bufopts)
+;     (vim.keymap.set :n :K vim.lsp.buf.hover bufopts)
+;     (vim.keymap.set :n :gi vim.lsp.buf.implementation bufopts)
+;     (vim.keymap.set :n :<C-k> vim.lsp.buf.signature_help bufopts)
+;     (vim.keymap.set :n :<leader>wa vim.lsp.buf.add_workspace_folder bufopts)
+;     (vim.keymap.set :n :<leader>wr vim.lsp.buf.remove_workspace_folder bufopts)
+;     (vim.keymap.set :n :<leader>wl
+;                     (fn []
+;                       (print (vim.inspect (vim.lsp.buf.list_workspace_folders))))
+;                     bufopts)
+;     (vim.keymap.set :n :<leader>D vim.lsp.buf.type_definition bufopts)
+;     (vim.keymap.set :n :<leader>rn vim.lsp.buf.rename bufopts)
+;     (vim.keymap.set :n :<leader>ca vim.lsp.buf.code_action bufopts)
+;     (vim.keymap.set :n :gr vim.lsp.buf.references bufopts)
+;     (vim.keymap.set :n :<leader>f vim.lsp.buf.formatting bufopts)))
diff --git a/.gitmodules b/.gitmodules
index 18983aa6..ba122698 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -133,8 +133,8 @@
 	path = .local/share/nvim/site/pack/kejadlen/start/hotpot
 	url = https://github.com/rktjmp/hotpot.nvim
 [submodule ".local/share/nvim/site/pack/kejadlen/start/colorscheme-paramount"]
-	path = .local/share/nvim/site/pack/kejadlen/start/colorscheme-paramount
-	url = https://github.com/owickstrom/vim-colors-paramount.git
+	path = .local/share/nvim/site/pack/kejadlen/start/paramount
+	url = https://github.com/kejadlen/vim-colors-paramount.git
 [submodule ".local/share/nvim/site/pack/kejadlen/start/vim-tmux-navigator"]
 	path = .local/share/nvim/site/pack/kejadlen/start/tmux-navigator
 	url = https://github.com/christoomey/vim-tmux-navigator.git
@@ -165,3 +165,6 @@
 [submodule ".local/share/nvim/site/pack/kejadlen/start/surround"]
 	path = .local/share/nvim/site/pack/kejadlen/start/surround
 	url = https://github.com/tpope/vim-surround.git
+[submodule ".local/share/nvim/site/pack/kejadlen/start/ale"]
+	path = .local/share/nvim/site/pack/kejadlen/start/ale
+	url = https://github.com/dense-analysis/ale.git
diff --git a/.local/share/nvim/site/pack/kejadlen/start/colorscheme-paramount b/.local/share/nvim/site/pack/kejadlen/start/colorscheme-paramount
deleted file mode 160000
index a5601d36..00000000
--- a/.local/share/nvim/site/pack/kejadlen/start/colorscheme-paramount
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a5601d36fb6932e8d1a6f8b37b179a99b1456798
diff --git a/.local/share/nvim/site/pack/kejadlen/start/paramount b/.local/share/nvim/site/pack/kejadlen/start/paramount
new file mode 160000
index 00000000..b004f06b
--- /dev/null
+++ b/.local/share/nvim/site/pack/kejadlen/start/paramount
@@ -0,0 +1 @@
+Subproject commit b004f06bc49ff3fded75e0d374bc592d6902cf6b