neovim/init.lua

153 lines
3.6 KiB
Lua

require('mappings')
require('lazy-config')
require('treesitter-config')
require('treesitter-textobjects-config')
require('noice-config')
require('plugin-mappings')
require('gopls')
require('code-completion')
require('cokeline-config')
require('commands')
local vim = vim
-- disable netrw at the very start of your init.lua (strongly advised)
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- nvim-tree
require('nvim-tree').setup {
on_attach = nvim_tree_attach,
}
-- Bufferline
vim.opt.termguicolors = true
-- Theme
require('onedark').load()
-- navic
local navic = require("nvim-navic")
navic.setup({
icons = {
File = "󰈙 ",
Module = "",
Namespace = "󰌗 ",
Package = "",
Class = "󰌗 ",
Method = "󰆧 ",
Property = "",
Field = "",
Constructor = "",
Enum = "󰕘",
Interface = "󰕘",
Function = "󰊕 ",
Variable = "󰆧 ",
Constant = "󰏿 ",
String = "󰀬 ",
Number = "󰎠 ",
Boolean = "",
Array = "󰅪 ",
Object = "󰅩 ",
Key = "󰌋 ",
Null = "󰟢 ",
EnumMember = "",
Struct = "󰌗 ",
Event = "",
Operator = "󰆕 ",
TypeParameter = "󰊄 ",
},
})
require("lualine").setup({
sections = {
lualine_c = {
{
require('auto-session.lib').current_session_name
},
{
"navic",
color_correction = nil,
navic_opts = nil
},
}
},
})
-- neodev
require("neodev").setup({})
-- Mason
require('mason-config')
lspconfig = require "lspconfig"
lspconfig.pyright.setup {}
lspconfig.csharp_ls.setup {}
lspconfig.lua_ls.setup {
settings = {
Lua = {
completion = {
callSnippet = "Replace"
}
}
}
}
lspconfig.rust_analyzer.setup {}
lspconfig.clangd.setup {
on_attach = function(client, bufnr)
navic.attach(client, bufnr)
end
}
-- Goto
goto_preview = require('goto-preview')
goto_preview.setup {}
-- conform
require("conform").setup({
formatters_by_ft = {
lua = { "stylua" },
-- Conform will run multiple formatters sequentially
python = { "isort", "black" },
-- Use a sub-list to run only the first available formatter
javascript = { { "prettierd", "prettier" } },
},
})
-- Telescope
require("telescope").load_extension "file_browser"
-- General
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
-- vim.opt.foldenable = true
-- vim.opt.foldopen = "all"
-- vim.opt.foldmethod = 'expr'
-- vim.opt.foldexpr = 'nvim_treesitter#foldexpr()'
vim.opt.foldlevel = 99
vim.opt.hlsearch = true
vim.opt.cursorline = true
vim.opt.splitbelow = true
-- Enable spell checking
vim.opt.spell = true
-- GUI operations
if vim.fn.has('gui_running') == 1 then
-- Clipboard mappings
vim.api.nvim_set_keymap('n', '<C-c>', '"+y', { noremap = true })
vim.api.nvim_set_keymap('v', '<C-c>', '"+y', { noremap = true })
vim.api.nvim_set_keymap('n', '<C-x>', '"+x', { noremap = true })
vim.api.nvim_set_keymap('v', '<C-x>', '"+x', { noremap = true })
vim.api.nvim_set_keymap('n', '<C-v>', '"+p', { noremap = true })
vim.api.nvim_set_keymap('v', '<C-v>', '"+p', { noremap = true })
end