aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua169
1 files changed, 163 insertions, 6 deletions
diff --git a/init.lua b/init.lua
index 45e6811..87a9b46 100644
--- a/init.lua
+++ b/init.lua
@@ -1,8 +1,165 @@
1--Open this file if you want to add new plugins 1-- require("config.lsp")
2require("config.packer") 2local option = vim.opt
3local keymap = vim.keymap
3 4
4-- Here you can find stuff related to lsp 5--Basic Editor Setup
5require("config.lsp") 6option.nu = true
7option.tabstop = 2
8option.softtabstop = 2
9option.shiftwidth = 2
10option.expandtab = true
11option.smartindent = true
12option.wrap = false
13option.swapfile = false
14option.hlsearch = false
15option.incsearch = true
16option.updatetime = 50
17option.laststatus = 0
18option.signcolumn = "number"
19option.autoindent = true
20option.clipboard = "unnamedplus"
21option.termguicolors = true
22option.fillchars = 'eob: '
23option.autoindent = true
6 24
7-- And there goes editor customization 25-- Setup Editor Theme
8require("config.editor") 26vim.cmd([[
27highlight GitGutterAdd ctermbg=none
28highlight GitGutterAdd guibg=none
29highlight NonText guifg=none
30highlight EndOfBuffer ctermfg=none ctermbg=none
31highlight Normal ctermbg=none
32highlight Normal guibg=none
33highlight signcolumn ctermbg=none
34highlight signcolumn guibg=none
35highlight StatusLine ctermbg=none
36highlight StatusLine guibg=none
37highlight DiagnosticError ctermbg=none
38highlight DiagnosticError guibg=none
39highlight DiagnosticWarn ctermbg=none
40highlight DiagnosticWarn guibg=none
41highlight DiagnosticInfo ctermbg=none
42highlight DiagnosticInfo guibg=none
43highlight DiagnosticHint ctermbg=none
44highlight DiagnosticHint guibg=none
45highlight Pmenu ctermbg=none guibg=none
46
47highlight DiagnosticVirtualError ctermbg=none
48highlight DiagnosticVirtualError guibg=none
49highlight DiagnosticVirtualWarn ctermbg=none
50highlight DiagnosticVirtualWarn guibg=none
51highlight DiagnosticVirtualInfo ctermbg=none
52highlight DiagnosticVirtualInfo guibg=none
53highlight DiagnosticVirtualHint ctermbg=none
54highlight DiagnosticVirtualHint guibg=none
55
56highlight DiagnosticVirtualTextError ctermbg=none
57highlight DiagnosticVirtualTextError guibg=none
58highlight DiagnosticVirtualTextWarn ctermbg=none
59highlight DiagnosticVirtualTextWarn guibg=none
60highlight DiagnosticVirtualTextInfo ctermbg=none
61highlight DiagnosticVirtualTextInfo guibg=none
62highlight DiagnosticVirtualTextHint ctermbg=none
63highlight DiagnosticVirtualTextHint guibg=none
64]])
65
66-- run specific commands after different file extensions
67vim.cmd([[
68augroup RunPfOnSave
69autocmd!
70autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write %
71autocmd BufWritePost *.tex silent! :VimtexCompile
72autocmd BufWritePost *.md silent! :MarkdownPreview
73autocmd BufWritePost *.php silent! !php-cs-fixer fix %
74augroup END
75]])
76
77-- Gui options
78vim.o.guifont = "Fira Code:h7"
79vim.g.vimtex_view_method = "zathura"
80vim.g.vimtex_compiler_method = "latexrun"
81vim.g.gitgutter_set_sign_backgrounds = 1
82
83--Keybinds
84vim.g.mapleader = " "
85keymap.set("n", "<leader>e", vim.cmd.Ex)
86keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
87keymap.set("n", "<leader>a", "ggVG")
88keymap.set("v", "J", ":m '>+1<CR>gv=gv")
89keymap.set("v", "K", ":m '<-2<CR>gv=gv")
90local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
91if not vim.loop.fs_stat(lazypath) then
92 vim.fn.system({
93 "git",
94 "clone",
95 "--filter=blob:none",
96 "https://github.com/folke/lazy.nvim.git",
97 "--branch=stable", -- latest stable release
98 lazypath,
99 })
100end
101
102vim.opt.rtp:prepend(lazypath)
103require("lazy").setup({
104 "nvim-lua/plenary.nvim",
105 "airblade/vim-gitgutter",
106 "nvim-treesitter/nvim-treesitter",
107 "neovim/nvim-lspconfig",
108 "williamboman/mason.nvim",
109 "williamboman/mason-lspconfig.nvim",
110 'nvim-telescope/telescope.nvim',
111 tag = '0.1.5',
112 dependencies = { 'nvim-lua/plenary.nvim' },
113 "windwp/nvim-autopairs",
114 config = function()
115 require("nvim-autopairs").setup({})
116 end,
117 {
118 'nvim-telescope/telescope-fzf-native.nvim',
119 build =
120 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build',
121 keys = {
122 { "<leader>/", false },
123 { "<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
124 { "<leader>g", "<cmd>Telescope live_grep<cr>", desc = "Grep" },
125 { "<leader>b", "<cmd>Telescope buffers<cr>", desc = "Grep" },
126 }
127 },
128 {
129 'numToStr/Comment.nvim',
130 },
131
132 'ms-jpq/coq_nvim',
133 { 'ms-jpq/coq.artifacts', branch = "artifacts" },
134})
135
136
137vim.api.nvim_create_autocmd('InsertEnter', {
138 command = 'COQnow --shut-up'
139})
140local lsp_servers = {
141 clangd = {},
142 lua_ls = {},
143}
144require("mason").setup()
145require("mason-lspconfig").setup {
146 ensure_installed = lsp_servers,
147 automatic_installation = true,
148}
149
150local server_maps = function(opts)
151 vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- goto def
152 vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts) -- see docs
153 vim.keymap.set("n", "<leader>fo", function() -- format
154 vim.lsp.buf.format({ async = true })
155 end, opts)
156end
157
158for lsp, settings in pairs(lsp_servers) do
159 require("lspconfig")[lsp].setup(coq.lsp_ensure_capabilities({
160 on_attach = function(_, buffer)
161 server_maps({ buffer = buffer })
162 end,
163 settings = settings,
164 }))
165end