diff options
author | Yigit Sever | 2024-12-16 09:55:01 +0100 |
---|---|---|
committer | Yigit Sever | 2024-12-16 09:55:01 +0100 |
commit | 9cbd404440b978e435e5fc6c44cb9817ea324a4d (patch) | |
tree | d8aa5edcf3bfbecc767b27105daf2adba9c272fb /.config/nvim/lua | |
parent | 29f04d842592a16428839bca388129bfe5fa47d2 (diff) | |
download | dotfiles-9cbd404440b978e435e5fc6c44cb9817ea324a4d.tar.gz dotfiles-9cbd404440b978e435e5fc6c44cb9817ea324a4d.tar.bz2 dotfiles-9cbd404440b978e435e5fc6c44cb9817ea324a4d.zip |
nvim: move autocmds to correct file
Diffstat (limited to '.config/nvim/lua')
-rw-r--r-- | .config/nvim/lua/helpers/autocmds.lua | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/.config/nvim/lua/helpers/autocmds.lua b/.config/nvim/lua/helpers/autocmds.lua index 11f4480..bf2c325 100644 --- a/.config/nvim/lua/helpers/autocmds.lua +++ b/.config/nvim/lua/helpers/autocmds.lua | |||
@@ -29,3 +29,148 @@ vim.api.nvim_create_autocmd("VimResized", { | |||
29 | }, | 29 | }, |
30 | command = "wincmd =", | 30 | command = "wincmd =", |
31 | }) | 31 | }) |
32 | |||
33 | -- https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua | ||
34 | -- Set typst filetype | ||
35 | vim.api.nvim_create_autocmd( | ||
36 | { | ||
37 | "BufNewFile", | ||
38 | "BufRead", | ||
39 | }, | ||
40 | { | ||
41 | group = augroup("typst"), | ||
42 | pattern = "*.typ", | ||
43 | callback = function() | ||
44 | local buf = vim.api.nvim_get_current_buf() | ||
45 | vim.api.nvim_set_option_value("filetype", "typst", { buf = buf }) | ||
46 | vim.api.nvim_set_option_value("shiftwidth", 2, { buf = buf }) | ||
47 | end | ||
48 | } | ||
49 | ) | ||
50 | |||
51 | -- Set PKGBUILD filetype | ||
52 | vim.api.nvim_create_autocmd( | ||
53 | { | ||
54 | "BufNewFile", | ||
55 | "BufRead", | ||
56 | }, | ||
57 | { | ||
58 | group = augroup("pkgbuild"), | ||
59 | pattern = "PKGBUILD", | ||
60 | callback = function() | ||
61 | local buf = vim.api.nvim_get_current_buf() | ||
62 | vim.api.nvim_set_option_value("filetype", "PKGBUILD", { buf = buf }) | ||
63 | end | ||
64 | } | ||
65 | ) | ||
66 | |||
67 | -- Set buku-edit filetype | ||
68 | vim.api.nvim_create_autocmd( | ||
69 | { | ||
70 | "BufNewFile", | ||
71 | "BufRead", | ||
72 | }, | ||
73 | { | ||
74 | group = augroup("buku-edit"), | ||
75 | pattern = "buku-edit-*", | ||
76 | callback = function() | ||
77 | local buf = vim.api.nvim_get_current_buf() | ||
78 | vim.api.nvim_set_option_value("filetype", "buku", { buf = buf }) | ||
79 | end | ||
80 | } | ||
81 | ) | ||
82 | |||
83 | -- Set mail filetype | ||
84 | vim.api.nvim_create_autocmd( | ||
85 | { | ||
86 | "BufNewFile", | ||
87 | "BufRead", | ||
88 | }, | ||
89 | { | ||
90 | group = augroup("mail"), | ||
91 | pattern = "/tmp/neomutt*", | ||
92 | callback = function() | ||
93 | local buf = vim.api.nvim_get_current_buf() | ||
94 | vim.api.nvim_set_option_value("autoindent", false, { buf = buf }) | ||
95 | vim.api.nvim_set_option_value("filetype", "mail", { buf = buf }) | ||
96 | vim.api.nvim_set_option_value("wrapmargin", 0, { buf = buf }) | ||
97 | vim.api.nvim_set_option_value("textwidth", 80, { buf = buf }) | ||
98 | end | ||
99 | } | ||
100 | ) | ||
101 | |||
102 | -- Resize splits if window got resized | ||
103 | vim.api.nvim_create_autocmd({ "VimResized" }, { | ||
104 | group = augroup("resize_splits"), | ||
105 | callback = function() | ||
106 | local current_tab = vim.fn.tabpagenr() | ||
107 | vim.cmd("tabdo wincmd =") | ||
108 | vim.cmd("tabnext " .. current_tab) | ||
109 | end, | ||
110 | }) | ||
111 | |||
112 | -- go to last loc when opening a buffer | ||
113 | vim.api.nvim_create_autocmd("BufReadPost", { | ||
114 | group = augroup("last_loc"), | ||
115 | callback = function(event) | ||
116 | local exclude = { "gitcommit" } | ||
117 | local buf = event.buf | ||
118 | if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then | ||
119 | return | ||
120 | end | ||
121 | vim.b[buf].lazyvim_last_loc = true | ||
122 | local mark = vim.api.nvim_buf_get_mark(buf, '"') | ||
123 | local lcount = vim.api.nvim_buf_line_count(buf) | ||
124 | if mark[1] > 0 and mark[1] <= lcount then | ||
125 | pcall(vim.api.nvim_win_set_cursor, 0, mark) | ||
126 | end | ||
127 | end, | ||
128 | }) | ||
129 | |||
130 | -- close some filetypes with <q> | ||
131 | vim.api.nvim_create_autocmd("FileType", { | ||
132 | group = augroup("close_with_q"), | ||
133 | pattern = { | ||
134 | "PlenaryTestPopup", | ||
135 | "checkhealth", | ||
136 | "dbout", | ||
137 | "gitsigns-blame", | ||
138 | "grug-far", | ||
139 | "help", | ||
140 | "lspinfo", | ||
141 | "neotest-output", | ||
142 | "neotest-output-panel", | ||
143 | "neotest-summary", | ||
144 | "notify", | ||
145 | "qf", | ||
146 | "snacks_win", | ||
147 | "spectre_panel", | ||
148 | "startuptime", | ||
149 | "tsplayground", | ||
150 | }, | ||
151 | callback = function(event) | ||
152 | vim.bo[event.buf].buflisted = false | ||
153 | vim.schedule(function() | ||
154 | vim.keymap.set("n", "q", function() | ||
155 | vim.cmd("close") | ||
156 | pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) | ||
157 | end, { | ||
158 | buffer = event.buf, | ||
159 | silent = true, | ||
160 | desc = "Quit buffer", | ||
161 | }) | ||
162 | end) | ||
163 | end, | ||
164 | }) | ||
165 | |||
166 | -- Auto create dir when saving a file, in case some intermediate directory does not exist | ||
167 | vim.api.nvim_create_autocmd({ "BufWritePre" }, { | ||
168 | group = augroup("auto_create_dir"), | ||
169 | callback = function(event) | ||
170 | if event.match:match("^%w%w+:[\\/][\\/]") then | ||
171 | return | ||
172 | end | ||
173 | local file = vim.uv.fs_realpath(event.match) or event.match | ||
174 | vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") | ||
175 | end, | ||
176 | }) | ||