summaryrefslogtreecommitdiff
path: root/fnl/settings/autocmds.fnl
blob: ca361b3f05ff2722f48d08a85719cbbdba9ee742 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
;; Autocommands for nvim.

(fn create-autocmd [event opts]
  (vim.api.nvim_create_autocmd event opts))

(local autocmds
       [[:FileType
         {:pattern [:qf :help :man :lspinfo :spectre_panel]
          :command "nnoremap <silent> <buffer> q :close<CR>"}]
        [:TextYankPost
         {:callback (lambda []
                      (vim.highlight.on_yank {:higroup :Visual :timeout 200}))}]
        [:FileType
         {:pattern :lir
          :callback (fn []
                      (tset vim.opt_local :number false)
                      (tset vim.opt_local :relativenumber false))}]
        [:BufWinEnter {:command "setlocal formatoptions-=cro"}]
        [:FileType {:pattern :qf :command "set nobuflisted"}]
        [:FileType {:pattern [:gitcommit :markdown] :command "setlocal wrap"}]
        [:FileType
         {:pattern [:NeogitStatus
                    :NeogitCommitMessage
                    :NeogitNotification
                    :NeogitCommitView]
          :command "setlocal spell!"}]
        [:TermOpen
         {:pattern ["term://*toggleterm#*"] :command "setlocal spell!"}]
        [:VimResized {:command "tabdo wincmd ="}]
        [:FocusGained {:command :checktime}]
        [:TermOpen
         {:pattern "term://*toggleterm#*"
          :callback (fn []
                      (vim.keymap.set :t :<C-h> "<Cmd>wincmd h<CR>" {})
                      (vim.keymap.set :t :<C-j> "<Cmd>wincmd j<CR>" {})
                      (vim.keymap.set :t :<C-k> "<Cmd>wincmd k<CR>" {})
                      (vim.keymap.set :t :<C-l> "<Cmd>wincmd l<CR>" {}))}]])

(each [_ autocmd (ipairs autocmds)]
  (match autocmd
    [event opts] (create-autocmd event opts)))