diff options
| author | Filip Andrzej Wandzio <dscr@duck.com> | 2024-04-29 21:47:02 +0000 |
|---|---|---|
| committer | Filip Andrzej Wandzio <dscr@duck.com> | 2024-04-29 21:47:02 +0000 |
| commit | 9973865685cbf6524de9d2d74dfa2a0b9c00fb8c (patch) | |
| tree | cbd7455f9859f7cffb633834e3b573885209255a /init.lua | |
| parent | 354bdafcd6bbc2f6a63ccbf21fb741f41dbd340b (diff) | |
| parent | 00ded90580ba40155adfb90d4f9aab8318140199 (diff) | |
| download | neovim-9973865685cbf6524de9d2d74dfa2a0b9c00fb8c.tar.gz neovim-9973865685cbf6524de9d2d74dfa2a0b9c00fb8c.zip | |
Merge pull request 'test' (#1) from test into master
Reviewed-on: https://codeberg.org/philw/nvim/pulls/1
Diffstat (limited to '')
| -rw-r--r-- | init.lua | 243 |
1 files changed, 237 insertions, 6 deletions
| @@ -1,8 +1,239 @@ | |||
| 1 | --Open this file if you want to add new plugins | 1 | ---@diagnostic disable: undefined-global |
| 2 | require("config.packer") | 2 | local option = vim.opt |
| 3 | local keymap = vim.keymap | ||
| 4 | vim.g.loaded_netrw = 1 | ||
| 5 | vim.g.loaded_netrwPlugin = 1 | ||
| 6 | vim.g.rustfmt_autosave = 1 | ||
| 7 | vim.g.mkdp_auto_start = 1 | ||
| 3 | 8 | ||
| 4 | -- Here you can find stuff related to lsp | 9 | --Basic Editor Setup |
| 5 | require("config.lsp") | 10 | option.nu = true |
| 11 | option.tabstop = 2 | ||
| 12 | option.softtabstop = 2 | ||
| 13 | option.shiftwidth = 2 | ||
| 14 | option.expandtab = true | ||
| 15 | option.smartindent = true | ||
| 16 | option.ruler = false | ||
| 17 | option.wrap = false | ||
| 18 | option.swapfile = false | ||
| 19 | option.hlsearch = false | ||
| 20 | option.incsearch = true | ||
| 21 | option.updatetime = 50 | ||
| 22 | option.laststatus = 0 | ||
| 23 | option.signcolumn = "number" | ||
| 24 | option.autoindent = true | ||
| 25 | option.clipboard = "unnamedplus" | ||
| 26 | option.termguicolors = true | ||
| 27 | option.fillchars = 'eob: ' | ||
| 28 | option.autoindent = true | ||
| 6 | 29 | ||
| 7 | -- And there goes editor customization | 30 | vim.cmd([[ |
| 8 | require("config.editor") | 31 | augroup RunPfOnSave |
| 32 | autocmd! | ||
| 33 | autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write % | ||
| 34 | autocmd BufWritePost *.tex silent! :VimtexCompile | ||
| 35 | autocmd BufWritePost *.md silent! :MarkdownPreview | ||
| 36 | autocmd BufWritePost *.php silent! !php-cs-fixer fix % | ||
| 37 | augroup END | ||
| 38 | ]]) | ||
| 39 | |||
| 40 | -- Gui options | ||
| 41 | vim.o.guifont = "Fira Code:h7" | ||
| 42 | vim.g.vimtex_view_method = "zathura" | ||
| 43 | vim.g.vimtex_compiler_method = "latexrun" | ||
| 44 | vim.g.gitgutter_set_sign_backgrounds = 1 | ||
| 45 | |||
| 46 | |||
| 47 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | ||
| 48 | if not vim.loop.fs_stat(lazypath) then | ||
| 49 | vim.fn.system({ | ||
| 50 | "git", | ||
| 51 | "clone", | ||
| 52 | "--filter=blob:none", | ||
| 53 | "https://github.com/folke/lazy.nvim.git", | ||
| 54 | "--branch=stable", -- latest stable release | ||
| 55 | lazypath, | ||
| 56 | }) | ||
| 57 | end | ||
| 58 | |||
| 59 | vim.opt.rtp:prepend(lazypath) | ||
| 60 | require("lazy").setup({ | ||
| 61 | "nvim-lua/plenary.nvim", | ||
| 62 | 'chriskempson/base16-vim', | ||
| 63 | "airblade/vim-gitgutter", | ||
| 64 | "lervag/vimtex", | ||
| 65 | "nvim-tree/nvim-tree.lua", | ||
| 66 | "norcalli/nvim-colorizer.lua", | ||
| 67 | "nvim-treesitter/nvim-treesitter", | ||
| 68 | "neovim/nvim-lspconfig", | ||
| 69 | "williamboman/mason.nvim", | ||
| 70 | "nvim-tree/nvim-web-devicons", | ||
| 71 | "williamboman/mason-lspconfig.nvim", | ||
| 72 | { | ||
| 73 | "iamcco/markdown-preview.nvim", | ||
| 74 | cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, | ||
| 75 | build = "cd app && yarn install", | ||
| 76 | init = function() | ||
| 77 | vim.g.mkdp_filetypes = { "markdown" } | ||
| 78 | end, | ||
| 79 | ft = { "markdown" }, | ||
| 80 | }, | ||
| 81 | 'nvimdev/lspsaga.nvim', | ||
| 82 | config = function() | ||
| 83 | require('lspsaga').setup({}) | ||
| 84 | end, | ||
| 85 | 'nvim-telescope/telescope.nvim', | ||
| 86 | tag = '0.1.5', | ||
| 87 | dependencies = { 'nvim-lua/plenary.nvim' }, | ||
| 88 | { | ||
| 89 | 'nvim-telescope/telescope-fzf-native.nvim', | ||
| 90 | build = | ||
| 91 | 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build', | ||
| 92 | keys = { | ||
| 93 | { "<leader>/", false }, | ||
| 94 | { "<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find Files" }, | ||
| 95 | { "<leader>g", "<cmd>Telescope live_grep<cr>", desc = "Grep" }, | ||
| 96 | { "<leader>b", "<cmd>Telescope buffers<cr>", desc = "Grep" }, | ||
| 97 | { "<leader>s", "<cmd>Telescope buffers<cr>", desc = "Grep" }, | ||
| 98 | } | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | 'windwp/nvim-autopairs', | ||
| 102 | event = "InsertEnter", | ||
| 103 | opts = {} | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | 'numToStr/Comment.nvim', | ||
| 107 | opts = {}, | ||
| 108 | lazy = false, | ||
| 109 | }, | ||
| 110 | |||
| 111 | 'ms-jpq/coq_nvim', | ||
| 112 | { 'ms-jpq/coq.artifacts', branch = "artifacts" }, | ||
| 113 | }) | ||
| 114 | |||
| 115 | require("colorizer").setup() | ||
| 116 | vim.api.nvim_create_autocmd('InsertEnter', { | ||
| 117 | command = 'COQnow --shut-up' | ||
| 118 | }) | ||
| 119 | |||
| 120 | vim.api.nvim_create_autocmd("BufWritePre", { | ||
| 121 | callback = function() | ||
| 122 | vim.lsp.buf.format() | ||
| 123 | end, | ||
| 124 | }) | ||
| 125 | |||
| 126 | local lsp_servers = { | ||
| 127 | clangd = {}, | ||
| 128 | lua_ls = {}, | ||
| 129 | rust_analyzer = { | ||
| 130 | imports = { | ||
| 131 | granularity = { | ||
| 132 | group = 'module', | ||
| 133 | }, | ||
| 134 | prefix = 'self', | ||
| 135 | }, | ||
| 136 | cargo = { | ||
| 137 | buildScripts = { | ||
| 138 | enable = true, | ||
| 139 | }, | ||
| 140 | }, | ||
| 141 | procMacro = { | ||
| 142 | enable = true, | ||
| 143 | }, | ||
| 144 | }, | ||
| 145 | } | ||
| 146 | |||
| 147 | |||
| 148 | require('lspsaga').setup({}) | ||
| 149 | |||
| 150 | require("mason").setup() | ||
| 151 | require("mason-lspconfig").setup { | ||
| 152 | ensure_installed = lsp_servers, | ||
| 153 | automatic_installation = true, | ||
| 154 | } | ||
| 155 | |||
| 156 | local server_maps = function(opts) | ||
| 157 | vim.keymap.set("n", "<leader>d", vim.lsp.buf.definition, opts) -- goto def | ||
| 158 | vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts) -- see docs | ||
| 159 | end | ||
| 160 | |||
| 161 | for lsp, settings in pairs(lsp_servers) do | ||
| 162 | require("lspconfig")[lsp].setup(coq.lsp_ensure_capabilities({ | ||
| 163 | on_attach = function(_, buffer) | ||
| 164 | server_maps({ buffer = buffer }) | ||
| 165 | end, | ||
| 166 | settings = settings, | ||
| 167 | })) | ||
| 168 | end | ||
| 169 | |||
| 170 | require("nvim-tree").setup({ | ||
| 171 | sort = { | ||
| 172 | sorter = "case_sensitive", | ||
| 173 | }, | ||
| 174 | view = { | ||
| 175 | width = 30, | ||
| 176 | }, | ||
| 177 | renderer = { | ||
| 178 | group_empty = true, | ||
| 179 | }, | ||
| 180 | filters = { | ||
| 181 | dotfiles = true, | ||
| 182 | }, | ||
| 183 | }) | ||
| 184 | |||
| 185 | vim.cmd.colorscheme("base16-brewer") | ||
| 186 | vim.cmd([[ | ||
| 187 | highlight GitGutterAdd ctermbg=none guibg=none | ||
| 188 | highlight GitGutterDelete guibg=none ctermbg=none | ||
| 189 | highlight GitGutterChange guibg=none ctermbg=none | ||
| 190 | highlight GitGutterChangeAdd guibg=none ctermbg=none | ||
| 191 | highlight GitGutterChangeDelete guibg=none ctermbg=none | ||
| 192 | highlight NonText guifg=none | ||
| 193 | highlight EndOfBuffer ctermfg=none ctermbg=none | ||
| 194 | highlight Normal ctermbg=none guibg=none | ||
| 195 | highlight signcolumn ctermbg=none guibg=none | ||
| 196 | highlight StatusLine ctermbg=none guibg=none | ||
| 197 | highlight DiagnosticError ctermbg=none guibg=none | ||
| 198 | highlight DiagnosticWarn ctermbg=none guibg=none | ||
| 199 | highlight DiagnosticInfo ctermbg=none guibg=none | ||
| 200 | highlight DiagnosticHint ctermbg=none guibg=none | ||
| 201 | highlight Pmenu ctermbg=none guibg=none | ||
| 202 | |||
| 203 | highlight DiagnosticVirtualError ctermbg=none guibg=none | ||
| 204 | highlight DiagnosticVirtualWarn ctermbg=none guibg=none | ||
| 205 | highlight DiagnosticVirtualInfo ctermbg=none guibg=none | ||
| 206 | highlight DiagnosticVirtualHint ctermbg=none guibg=none | ||
| 207 | |||
| 208 | highlight LineNr ctermbg=none guibg=none | ||
| 209 | highlight StatusLineNc ctermbg=none guibg=none | ||
| 210 | highlight StatusLineNc ctermfg=none guifg=none | ||
| 211 | highlight StatusLine ctermbg=none guibg=none | ||
| 212 | highlight StatusLine ctermfg=none guifg=none | ||
| 213 | |||
| 214 | highlight NvimTreeWinSeparator ctermfg=none guifg=none | ||
| 215 | highlight CursorColumn ctermfg=none guifg=none | ||
| 216 | highlight CursorLine ctermbg=none guibg=none | ||
| 217 | |||
| 218 | highlight VertSplit ctermbg=none guibg=none | ||
| 219 | |||
| 220 | highlight DiagnosticVirtualTextError ctermbg=none guibg=none | ||
| 221 | highlight DiagnosticVirtualTextWarn ctermbg=none guibg=none | ||
| 222 | highlight DiagnosticVirtualTextInfo ctermbg=none guibg=none | ||
| 223 | highlight DiagnosticVirtualTextHint ctermbg=none guibg=none | ||
| 224 | ]]) | ||
| 225 | |||
| 226 | --Keybinds | ||
| 227 | vim.g.mapleader = " " | ||
| 228 | keymap.set("n", "<leader>e", vim.cmd.NvimTreeToggle) | ||
| 229 | keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) | ||
| 230 | keymap.set("n", "<leader>a", "ggVG") | ||
| 231 | keymap.set("n", "<leader>y", "cc") | ||
| 232 | keymap.set("n", "<C-c>", "yy") | ||
| 233 | keymap.set("n", "<C-v>", "p") | ||
| 234 | keymap.set("n", "<C-z>", "u") | ||
| 235 | keymap.set("v", "J", ":m '>+1<CR>gv=gv") | ||
| 236 | keymap.set("v", "K", ":m '<-2<CR>gv=gv") | ||
| 237 | keymap.set("n", "<leader>ca", "<cmd>Lspsaga code_action<cr>") | ||
| 238 | keymap.set("n", "<leader>f", "<cmd>Telescope find_files<cr>") | ||
| 239 | keymap.set("n", "<leader>g", "<cmd>Telescope live_grep<cr>") | ||
