aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorFilip Andrzej Wandzio <dscr@duck.com>2024-04-29 21:47:02 +0000
committerFilip Andrzej Wandzio <dscr@duck.com>2024-04-29 21:47:02 +0000
commit9973865685cbf6524de9d2d74dfa2a0b9c00fb8c (patch)
treecbd7455f9859f7cffb633834e3b573885209255a /init.lua
parent354bdafcd6bbc2f6a63ccbf21fb741f41dbd340b (diff)
parent00ded90580ba40155adfb90d4f9aab8318140199 (diff)
downloadneovim-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 'init.lua')
-rw-r--r--init.lua243
1 files changed, 237 insertions, 6 deletions
diff --git a/init.lua b/init.lua
index 45e6811..3afc76a 100644
--- a/init.lua
+++ b/init.lua
@@ -1,8 +1,239 @@
1--Open this file if you want to add new plugins 1---@diagnostic disable: undefined-global
2require("config.packer") 2local option = vim.opt
3local keymap = vim.keymap
4vim.g.loaded_netrw = 1
5vim.g.loaded_netrwPlugin = 1
6vim.g.rustfmt_autosave = 1
7vim.g.mkdp_auto_start = 1
3 8
4-- Here you can find stuff related to lsp 9--Basic Editor Setup
5require("config.lsp") 10option.nu = true
11option.tabstop = 2
12option.softtabstop = 2
13option.shiftwidth = 2
14option.expandtab = true
15option.smartindent = true
16option.ruler = false
17option.wrap = false
18option.swapfile = false
19option.hlsearch = false
20option.incsearch = true
21option.updatetime = 50
22option.laststatus = 0
23option.signcolumn = "number"
24option.autoindent = true
25option.clipboard = "unnamedplus"
26option.termguicolors = true
27option.fillchars = 'eob: '
28option.autoindent = true
6 29
7-- And there goes editor customization 30vim.cmd([[
8require("config.editor") 31augroup RunPfOnSave
32autocmd!
33autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write %
34autocmd BufWritePost *.tex silent! :VimtexCompile
35autocmd BufWritePost *.md silent! :MarkdownPreview
36autocmd BufWritePost *.php silent! !php-cs-fixer fix %
37augroup END
38]])
39
40-- Gui options
41vim.o.guifont = "Fira Code:h7"
42vim.g.vimtex_view_method = "zathura"
43vim.g.vimtex_compiler_method = "latexrun"
44vim.g.gitgutter_set_sign_backgrounds = 1
45
46
47local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
48if 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 })
57end
58
59vim.opt.rtp:prepend(lazypath)
60require("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
115require("colorizer").setup()
116vim.api.nvim_create_autocmd('InsertEnter', {
117 command = 'COQnow --shut-up'
118})
119
120vim.api.nvim_create_autocmd("BufWritePre", {
121 callback = function()
122 vim.lsp.buf.format()
123 end,
124})
125
126local 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
148require('lspsaga').setup({})
149
150require("mason").setup()
151require("mason-lspconfig").setup {
152 ensure_installed = lsp_servers,
153 automatic_installation = true,
154}
155
156local 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
159end
160
161for 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 }))
168end
169
170require("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
185vim.cmd.colorscheme("base16-brewer")
186vim.cmd([[
187highlight GitGutterAdd ctermbg=none guibg=none
188highlight GitGutterDelete guibg=none ctermbg=none
189highlight GitGutterChange guibg=none ctermbg=none
190highlight GitGutterChangeAdd guibg=none ctermbg=none
191highlight GitGutterChangeDelete guibg=none ctermbg=none
192highlight NonText guifg=none
193highlight EndOfBuffer ctermfg=none ctermbg=none
194highlight Normal ctermbg=none guibg=none
195highlight signcolumn ctermbg=none guibg=none
196highlight StatusLine ctermbg=none guibg=none
197highlight DiagnosticError ctermbg=none guibg=none
198highlight DiagnosticWarn ctermbg=none guibg=none
199highlight DiagnosticInfo ctermbg=none guibg=none
200highlight DiagnosticHint ctermbg=none guibg=none
201highlight Pmenu ctermbg=none guibg=none
202
203highlight DiagnosticVirtualError ctermbg=none guibg=none
204highlight DiagnosticVirtualWarn ctermbg=none guibg=none
205highlight DiagnosticVirtualInfo ctermbg=none guibg=none
206highlight DiagnosticVirtualHint ctermbg=none guibg=none
207
208highlight LineNr ctermbg=none guibg=none
209highlight StatusLineNc ctermbg=none guibg=none
210highlight StatusLineNc ctermfg=none guifg=none
211highlight StatusLine ctermbg=none guibg=none
212highlight StatusLine ctermfg=none guifg=none
213
214highlight NvimTreeWinSeparator ctermfg=none guifg=none
215highlight CursorColumn ctermfg=none guifg=none
216highlight CursorLine ctermbg=none guibg=none
217
218highlight VertSplit ctermbg=none guibg=none
219
220highlight DiagnosticVirtualTextError ctermbg=none guibg=none
221highlight DiagnosticVirtualTextWarn ctermbg=none guibg=none
222highlight DiagnosticVirtualTextInfo ctermbg=none guibg=none
223highlight DiagnosticVirtualTextHint ctermbg=none guibg=none
224]])
225
226--Keybinds
227vim.g.mapleader = " "
228keymap.set("n", "<leader>e", vim.cmd.NvimTreeToggle)
229keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
230keymap.set("n", "<leader>a", "ggVG")
231keymap.set("n", "<leader>y", "cc")
232keymap.set("n", "<C-c>", "yy")
233keymap.set("n", "<C-v>", "p")
234keymap.set("n", "<C-z>", "u")
235keymap.set("v", "J", ":m '>+1<CR>gv=gv")
236keymap.set("v", "K", ":m '<-2<CR>gv=gv")
237keymap.set("n", "<leader>ca", "<cmd>Lspsaga code_action<cr>")
238keymap.set("n", "<leader>f", "<cmd>Telescope find_files<cr>")
239keymap.set("n", "<leader>g", "<cmd>Telescope live_grep<cr>")