150 lines
3.8 KiB
Lua
150 lines
3.8 KiB
Lua
vim.opt.number = true
|
|
vim.opt.relativenumber = true
|
|
vim.opt.smartcase = true
|
|
vim.opt.ignorecase = true
|
|
vim.opt.ts = 4
|
|
vim.opt.sw = 0
|
|
vim.opt.foldmethod = "indent"
|
|
vim.opt.foldlevel = 99
|
|
vim.opt.clipboard = "unnamedplus"
|
|
vim.opt.signcolumn = "yes"
|
|
vim.opt.termguicolors = true
|
|
|
|
vim.pack.add({
|
|
{ src = "https://github.com/stevearc/oil.nvim" },
|
|
{ src = "https://github.com/echasnovski/mini.pick" },
|
|
{ src = "https://github.com/echasnovski/mini.icons" },
|
|
{ src = "https://github.com/nvim-treesitter/nvim-treesitter" },
|
|
{ src = "https://github.com/neovim/nvim-lspconfig" },
|
|
{ src = "https://github.com/sainnhe/everforest" },
|
|
{ src = "https://github.com/nvim-lualine/lualine.nvim" },
|
|
|
|
})
|
|
|
|
|
|
require('lualine').setup({
|
|
options = {
|
|
theme = "everforest",
|
|
},
|
|
})
|
|
|
|
vim.cmd([[colorscheme everforest]])
|
|
require('mini.icons').setup()
|
|
|
|
|
|
require('oil').setup({
|
|
view_options = {
|
|
show_hidden = true,
|
|
sort = {
|
|
{ "type", "asc" },
|
|
{ "name", "asc" },
|
|
},
|
|
},
|
|
})
|
|
|
|
-- require("nvim-lspconfig").setup({ inlay_hints = { enabled = true } })
|
|
|
|
vim.api.nvim_create_autocmd('LspAttach', {
|
|
callback = function(ev)
|
|
local client = vim.lsp.get_client_by_id(ev.data.client_id)
|
|
if client:supports_method('textDocument/completion') then
|
|
vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true })
|
|
end
|
|
|
|
if client:supports_method("textDocument/inlayHint") or client.server_capabilities.inlayHintProvider then
|
|
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
|
|
end
|
|
end,
|
|
})
|
|
vim.cmd("set completeopt+=menuone,noselect,popup")
|
|
|
|
vim.lsp.config('gopls', {
|
|
settings = {
|
|
['gopls'] = {
|
|
hints = {
|
|
assignVariableTypes = true,
|
|
parameterNames = true
|
|
}
|
|
},
|
|
},
|
|
})
|
|
vim.lsp.enable({ "lua_ls", "gopls" })
|
|
|
|
require "mini.pick".setup()
|
|
require "nvim-treesitter.configs".setup({
|
|
auto_install = true,
|
|
highlight = { enable = true }
|
|
})
|
|
|
|
|
|
-- 'windwp/nvim-ts-autotag',
|
|
-- 'terrortylor/nvim-comment',
|
|
-- config = function()
|
|
-- require('nvim_comment').setup({
|
|
-- hook = function()
|
|
-- require('ts_context_commentstring.internal').update_commentstring()
|
|
-- end,
|
|
-- })
|
|
-- end,
|
|
-- dependencies = {
|
|
-- -- To customize commentstring for e.g. svelte files, as the commentstring is depending on cursor position
|
|
-- 'JoosepAlviste/nvim-ts-context-commentstring'
|
|
-- }
|
|
-- {
|
|
-- 'stevearc/conform.nvim',
|
|
-- opts = {
|
|
-- notify_on_error = true,
|
|
-- formatters_by_ft = {
|
|
-- templ = { "templ" },
|
|
-- },
|
|
-- format_on_save = {
|
|
-- lsp_fallback = true,
|
|
-- timeout_ms = 1500,
|
|
-- },
|
|
-- },
|
|
-- config = function(_, opts)
|
|
-- local plug = require('conform')
|
|
-- plug.setup(opts)
|
|
-- end,
|
|
-- },
|
|
-- {
|
|
|
|
vim.api.nvim_create_autocmd('TextYankPost', {
|
|
desc = 'Hightlight selection on yank',
|
|
pattern = '*',
|
|
callback = function()
|
|
vim.highlight.on_yank { higroup = 'IncSearch', timeout = 500 }
|
|
end,
|
|
})
|
|
|
|
vim.api.nvim_create_autocmd('BufWritePre', {
|
|
desc = 'Atuformat code on save',
|
|
pattern = '*',
|
|
callback = function()
|
|
vim.lsp.buf.format()
|
|
end,
|
|
})
|
|
|
|
vim.filetype.add({ extension = { templ = "templ" } })
|
|
|
|
vim.g.mapleader = " "
|
|
|
|
vim.keymap.set('i', '<C-n>', vim.lsp.completion.get, {})
|
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {})
|
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, {})
|
|
vim.keymap.set('n', '<F2>', vim.lsp.buf.rename, {})
|
|
vim.keymap.set('n', '<F4>', vim.lsp.buf.code_action, {})
|
|
|
|
vim.keymap.set('n', '<leader>q', ':q<CR>', {})
|
|
vim.keymap.set('n', '<leader>w', ':w<CR>', {})
|
|
vim.keymap.set('n', '<leader>c', ':noh<CR>', {})
|
|
vim.keymap.set('n', '<leader>en', vim.diagnostic.goto_next, {})
|
|
vim.keymap.set('n', '<leader>ep', vim.diagnostic.goto_prev, {})
|
|
|
|
vim.keymap.set('n', '<leader>ff', ":Pick files<CR>", {})
|
|
-- vim.keymap.set('n', '<leader>fg', telescope.live_grep, {})
|
|
-- vim.keymap.set('n', '<leader>fb', telescope.buffers, {})
|
|
vim.keymap.set('n', '<leader>fh', ":Pick help<CR>", {})
|
|
|
|
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|