diff options
Diffstat (limited to '')
| -rw-r--r-- | init.lua | 170 |
1 files changed, 75 insertions, 95 deletions
| @@ -1,55 +1,49 @@ | |||
| 1 | --@diagnostic disable: undefined-global, | 1 | --@diagnostic disable: undefined-global, |
| 2 | local option = vim.opt | ||
| 3 | -- local vim.keymap = vim.vim.keymap | ||
| 4 | local api = vim.api | ||
| 5 | local fn = vim.fn | ||
| 6 | |||
| 7 | vim.loader.enable() | 2 | vim.loader.enable() |
| 8 | 3 | ||
| 9 | vim.g.netrw_banner = 0 | 4 | vim.g.netrw_banner = 0 |
| 10 | vim.g.netrw_liststyle = 3 | 5 | vim.g.netrw_liststyle = 3 |
| 11 | vim.g.netrw_altv = 0 | 6 | vim.g.netrw_altv = 0 |
| 12 | vim.g.netrw_winsize = 25 | 7 | vim.g.netrw_winsize = 25 |
| 13 | vim.g.netrw_browse_split = 0 | 8 | vim.g.netrw_browse_split = 4 |
| 14 | vim.g.rustfmt_autosave = 1 | 9 | vim.g.rustfmt_autosave = 1 |
| 15 | vim.g.mkdp_auto_start = 1 | 10 | vim.g.mkdp_auto_start = 1 |
| 16 | vim.g.gitgutter_set_sign_backgrounds = 1 | 11 | vim.g.gitgutter_set_sign_backgrounds = 1 |
| 17 | 12 | ||
| 18 | option.nu = true | 13 | vim.opt.nu = true |
| 19 | option.tabstop = 2 | 14 | vim.opt.tabstop = 4 |
| 20 | option.softtabstop = 2 | 15 | vim.opt.softtabstop = 4 |
| 21 | option.shiftwidth = 2 | 16 | vim.opt.shiftwidth = 4 |
| 22 | option.expandtab = true | 17 | vim.opt.expandtab = true |
| 23 | option.smartindent = true | 18 | vim.opt.smartindent = true |
| 24 | option.ruler = false | 19 | vim.opt.ruler = false |
| 25 | option.wrap = false | 20 | vim.opt.wrap = false |
| 26 | option.swapfile = false | 21 | vim.opt.swapfile = false |
| 27 | option.hlsearch = true | 22 | vim.opt.hlsearch = true |
| 28 | option.incsearch = true | 23 | vim.opt.incsearch = true |
| 29 | option.updatetime = 50 | 24 | vim.opt.updatetime = 50 |
| 30 | option.laststatus = 0 | 25 | vim.opt.laststatus = 0 |
| 31 | option.signcolumn = "number" | 26 | vim.opt.signcolumn = "number" |
| 32 | option.autoindent = true | 27 | vim.opt.clipboard = "unnamedplus" |
| 33 | option.clipboard = "unnamedplus" | 28 | vim.opt.termguicolors = true |
| 34 | option.termguicolors = true | 29 | vim.opt.fillchars = "eob: " |
| 35 | option.fillchars = "eob: " | 30 | vim.opt.autoindent = true |
| 36 | option.autoindent = true | 31 | vim.opt.lazyredraw = false |
| 37 | option.lazyredraw = false | 32 | vim.opt.updatetime = 300 |
| 38 | option.updatetime = 300 | 33 | vim.opt.timeoutlen = 500 |
| 39 | option.timeoutlen = 500 | ||
| 40 | 34 | ||
| 41 | -- Format on save | 35 | -- Format on save |
| 42 | api.nvim_create_autocmd( | 36 | vim.api.nvim_create_autocmd( |
| 43 | "BufWritePre", | 37 | "BufWritePre", |
| 44 | { | 38 | { |
| 45 | callback = function() | 39 | callback = function() |
| 46 | vim.lsp.buf.format() | 40 | vim.lsp.buf.format({silent = true}) |
| 47 | end | 41 | end |
| 48 | } | 42 | } |
| 49 | ) | 43 | ) |
| 50 | 44 | ||
| 51 | api.nvim_create_augroup("RunPfOnSave", {clear = true}) | 45 | vim.api.nvim_create_augroup("RunPfOnSave", {clear = true}) |
| 52 | api.nvim_create_autocmd( | 46 | vim.api.nvim_create_autocmd( |
| 53 | "BufWritePost", | 47 | "BufWritePost", |
| 54 | { | 48 | { |
| 55 | group = "RunPfOnSave", | 49 | group = "RunPfOnSave", |
| @@ -57,7 +51,7 @@ api.nvim_create_autocmd( | |||
| 57 | command = "silent! !prettier --write %" | 51 | command = "silent! !prettier --write %" |
| 58 | } | 52 | } |
| 59 | ) | 53 | ) |
| 60 | api.nvim_create_autocmd( | 54 | vim.api.nvim_create_autocmd( |
| 61 | "BufWritePost", | 55 | "BufWritePost", |
| 62 | { | 56 | { |
| 63 | group = "RunPfOnSave", | 57 | group = "RunPfOnSave", |
| @@ -67,8 +61,8 @@ api.nvim_create_autocmd( | |||
| 67 | ) | 61 | ) |
| 68 | 62 | ||
| 69 | -- Auto-delete Netrw hidden buffers | 63 | -- Auto-delete Netrw hidden buffers |
| 70 | api.nvim_create_augroup("AutoDeleteNetrwHiddenBuffers", {clear = true}) | 64 | vim.api.nvim_create_augroup("AutoDeleteNetrwHiddenBuffers", {clear = true}) |
| 71 | api.nvim_create_autocmd( | 65 | vim.api.nvim_create_autocmd( |
| 72 | "FileType", | 66 | "FileType", |
| 73 | { | 67 | { |
| 74 | group = "AutoDeleteNetrwHiddenBuffers", | 68 | group = "AutoDeleteNetrwHiddenBuffers", |
| @@ -83,23 +77,28 @@ api.nvim_create_autocmd( | |||
| 83 | -- Toggle VExplorer | 77 | -- Toggle VExplorer |
| 84 | function ToggleVExplorer() | 78 | function ToggleVExplorer() |
| 85 | if vim.t.expl_buf_num then | 79 | if vim.t.expl_buf_num then |
| 86 | local expl_win_num = fn.bufwinnr(vim.t.expl_buf_num) | 80 | local expl_win_num = vim.fn.bufwinnr(vim.t.expl_buf_num) |
| 87 | if expl_win_num ~= -1 then | 81 | if expl_win_num ~= -1 then |
| 88 | local cur_win_id = fn.win_getid() | 82 | if vim.fn.winnr('$') > 1 then |
| 89 | vim.cmd(expl_win_num .. "windo close") | 83 | local cur_win_id = vim.fn.win_getid() |
| 90 | local prev_win_num = fn.win_id2win(cur_win_id) | 84 | vim.cmd(expl_win_num .. "windo close") |
| 91 | if prev_win_num ~= 0 then | 85 | local prev_win_num = vim.fn.win_id2win(cur_win_id) |
| 92 | vim.cmd(prev_win_num .. "wincmd w") | 86 | if prev_win_num ~= 0 then |
| 87 | vim.cmd(prev_win_num .. "wincmd w") | ||
| 88 | end | ||
| 89 | else | ||
| 90 | vim.cmd("enew") | ||
| 93 | end | 91 | end |
| 94 | end | 92 | end |
| 95 | vim.t.expl_buf_num = nil | 93 | vim.t.expl_buf_num = nil |
| 96 | else | 94 | else |
| 97 | vim.cmd("1wincmd w") | 95 | -- otwórz pionowy split z lewej i przejdź do netrw |
| 98 | vim.cmd("Vexplore") | 96 | vim.cmd("topleft " .. vim.g.netrw_winsize .. "vsplit") |
| 99 | vim.t.expl_buf_num = fn.bufnr("%") | 97 | vim.cmd("Explore") |
| 98 | vim.t.expl_buf_num = vim.fn.bufnr("%") | ||
| 99 | vim.cmd("wincmd h") -- PRZEJDŹ DO NETRW | ||
| 100 | end | 100 | end |
| 101 | end | 101 | end |
| 102 | |||
| 103 | local function setup_autopairs() | 102 | local function setup_autopairs() |
| 104 | local autopairs = { | 103 | local autopairs = { |
| 105 | ["("] = ")", | 104 | ["("] = ")", |
| @@ -152,6 +151,8 @@ function set_highlights() | |||
| 152 | end | 151 | end |
| 153 | end | 152 | end |
| 154 | 153 | ||
| 154 | vim.cmd("colorscheme retrobox") | ||
| 155 | |||
| 155 | vim.o.background = "dark" | 156 | vim.o.background = "dark" |
| 156 | function color_mode() | 157 | function color_mode() |
| 157 | if vim.o.background == "dark" then | 158 | if vim.o.background == "dark" then |
| @@ -216,42 +217,25 @@ vim.api.nvim_create_autocmd( | |||
| 216 | } | 217 | } |
| 217 | ) | 218 | ) |
| 218 | 219 | ||
| 219 | local lsp_servers = {} | ||
| 220 | 220 | ||
| 221 | require("lspconfig").clangd.setup( | 221 | local lsp_servers = { |
| 222 | { | 222 | clangd = { filetypes = {"c", "cpp", "objc", "objcpp"} }, |
| 223 | filetypes = {"c", "cpp", "objc", "objcpp"} | 223 | svelte = { filetypes = {"svelte"} }, |
| 224 | } | 224 | ts_ls = { filetypes = {"typescript", "typescriptreact", "javascript", "javascriptreact"} }, |
| 225 | ) | 225 | rust_analyzer = { filetypes = {"rust"} } |
| 226 | require("lspconfig").svelte.setup( | 226 | } |
| 227 | { | ||
| 228 | filetypes = {"svelte"} | ||
| 229 | } | ||
| 230 | ) | ||
| 231 | require("lspconfig").ts_ls.setup( | ||
| 232 | { | ||
| 233 | filetypes = {"typescript", "typescriptreact", "javascript", "javascriptreact"} | ||
| 234 | } | ||
| 235 | ) | ||
| 236 | require("lspconfig").rust_analyzer.setup( | ||
| 237 | { | ||
| 238 | filetypes = {"rust"} | ||
| 239 | } | ||
| 240 | ) | ||
| 241 | 227 | ||
| 242 | local server_maps = function(opts) | 228 | local server_maps = function(opts) |
| 243 | end | 229 | end |
| 244 | 230 | ||
| 245 | for lsp, settings in pairs(lsp_servers) do | 231 | for lsp, settings in pairs(lsp_servers) do |
| 246 | require("lspconfig")[lsp].setup( | 232 | require("lspconfig")[lsp].setup( |
| 247 | coq.lsp_ensure_capabilities( | 233 | coq.lsp_ensure_capabilities({ |
| 248 | { | 234 | on_attach = function(_, buffer) |
| 249 | on_attach = function(_, buffer) | 235 | server_maps({buffer = buffer}) |
| 250 | server_maps({buffer = buffer}) | 236 | end, |
| 251 | end, | 237 | settings = settings |
| 252 | settings = settings | 238 | }) |
| 253 | } | ||
| 254 | ) | ||
| 255 | ) | 239 | ) |
| 256 | end | 240 | end |
| 257 | 241 | ||
| @@ -259,6 +243,7 @@ set_highlights() | |||
| 259 | 243 | ||
| 260 | vim.g.mapleader = " " | 244 | vim.g.mapleader = " " |
| 261 | 245 | ||
| 246 | |||
| 262 | vim.keymap.set("n", "<leader>e", ToggleVExplorer, {desc = "Toggle VExplorer"}) | 247 | vim.keymap.set("n", "<leader>e", ToggleVExplorer, {desc = "Toggle VExplorer"}) |
| 263 | vim.keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) | 248 | vim.keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) |
| 264 | vim.keymap.set("n", "<leader>a", "ggVG") | 249 | vim.keymap.set("n", "<leader>a", "ggVG") |
| @@ -266,32 +251,27 @@ vim.keymap.set("n", "<leader>y", "cc") | |||
| 266 | vim.keymap.set("n", "<C-c>", "yy") | 251 | vim.keymap.set("n", "<C-c>", "yy") |
| 267 | vim.keymap.set("n", "<C-v>", "p") | 252 | vim.keymap.set("n", "<C-v>", "p") |
| 268 | vim.keymap.set("n", "<C-z>", "u") | 253 | vim.keymap.set("n", "<C-z>", "u") |
| 269 | vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") | ||
| 270 | vim.keymap.set("n", "j", "5j") | 254 | vim.keymap.set("n", "j", "5j") |
| 271 | vim.keymap.set("n", "k", "5k") | 255 | vim.keymap.set("n", "k", "5k") |
| 272 | vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") | ||
| 273 | vim.keymap.set("n", "<leader>f", "<cmd>FzfLua files<cr>") | 256 | vim.keymap.set("n", "<leader>f", "<cmd>FzfLua files<cr>") |
| 274 | vim.keymap.set("n", "<leader>F", "<cmd>FzfLua live_grep<cr>", {noremap = true, silent = true}) | 257 | vim.keymap.set("n", "<leader>F", "<cmd>FzfLua live_grep<cr>", {noremap = true, silent = true}) |
| 275 | vim.keymap.set("n", "<leader>b", "<cmd>FzfLua buffers<cr>") | 258 | vim.keymap.set("n", "<leader>b", "<cmd>FzfLua buffers<cr>") |
| 276 | vim.keymap.set("n", "<leader>d", vim.lsp.buf.definition, opts) | 259 | vim.keymap.set("n", "<leader>d", vim.lsp.buf.definition, opts) |
| 260 | vim.keymap.set("n", "<leader>df", function() vim.diagnostic.open_float() end, opts) | ||
| 277 | vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts) | 261 | vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts) |
| 262 | vim.keymap.set("n", "<leader>ca", function() vim.lsp.buf.code_action() end, opts) | ||
| 278 | vim.keymap.set("n", "<leader>r", color_mode, {desc = "Change mode light/dark"}) | 263 | vim.keymap.set("n", "<leader>r", color_mode, {desc = "Change mode light/dark"}) |
| 279 | vim.keymap.set( | 264 | vim.keymap.set("n", "<leader>t", function() |
| 280 | "n", | 265 | vim.cmd("terminal") |
| 281 | "<leader>t", | 266 | vim.cmd("startinsert") |
| 282 | function() | 267 | end, {desc = "Open terminal in current window"}) |
| 283 | vim.cmd("terminal") | ||
| 284 | vim.cmd("startinsert") | ||
| 285 | end, | ||
| 286 | {desc = "Open terminal in current window"} | ||
| 287 | ) | ||
| 288 | 268 | ||
| 289 | vim.keymap.set( | 269 | -- Visual mode mappings |
| 290 | "t", | 270 | vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") |
| 291 | "<Esc>", | 271 | vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") |
| 292 | function() | 272 | |
| 293 | vim.cmd([[stopinsert]]) | 273 | -- Terminal mode mapping |
| 294 | vim.cmd([[b#]]) | 274 | vim.keymap.set("t", "<Esc>", function() |
| 295 | end, | 275 | vim.cmd([[stopinsert]]) |
| 296 | {noremap = true, silent = true} | 276 | vim.cmd([[b#]]) |
| 297 | ) | 277 | end, {noremap = true, silent = true}) |
