diff options
Diffstat (limited to '.config')
| -rw-r--r-- | .config/nvim/init.lua | 96 |
1 files changed, 68 insertions, 28 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index f140d6a..9f3718d 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,4 +1,5 @@ -- general settings +local vim = vim vim.opt.number = true -- show line numbers vim.opt.relativenumber = true -- relative line numbers for navigation vim.opt.clipboard:append { 'unnamedplus' } -- use clipboard @@ -29,17 +30,25 @@ vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, { desc = 'Go to defini -- packages --- Todo: telescope --- Todo: finish https://github.com/hrsh7th/nvim-cmp vim.pack.add({ + -- colorscheme { src = 'https://github.com/sainnhe/gruvbox-material' }, + -- status line { src = 'https://github.com/nvim-tree/nvim-web-devicons' }, { src = 'https://github.com/nvim-lualine/lualine.nvim' }, + -- enhance language server capabilities (i guess) { src = 'https://github.com/nvim-treesitter/nvim-treesitter', version = 'main' }, + + -- autoconfigure language servers { src = 'https://github.com/neovim/nvim-lspconfig' }, + -- install language servers + { src = 'https://github.com/mason-org/mason.nvim' }, + { src = 'https://github.com/mason-org/mason-lspconfig.nvim' }, + + -- autocomplete { src = 'https://github.com/hrsh7th/cmp-nvim-lsp' }, { src = 'https://github.com/hrsh7th/cmp-buffer' }, { src = 'https://github.com/hrsh7th/cmp-path' }, @@ -48,6 +57,11 @@ vim.pack.add({ { src = 'https://github.com/hrsh7th/cmp-vsnip' }, { src = 'https://github.com/hrsh7th/vim-vsnip' }, + -- telescope + { src = 'https://github.com/nvim-lua/plenary.nvim' }, + { src = 'https://github.com/nvim-telescope/telescope.nvim', tag = 'v0.1.9' }, + + -- latex support { src = 'https://github.com/lervag/vimtex' }, }) @@ -63,7 +77,7 @@ vim.cmd.colorscheme('gruvbox-material') -- init plugin lualine -require('lualine').setup { +require('lualine').setup({ options = { icons_enabled = true, theme = 'auto', @@ -116,7 +130,11 @@ require('lualine').setup { winbar = {}, inactive_winbar = {}, extensions = {} -} +}) + + +-- treesitter +require'nvim-treesitter'.install { 'cpp' } -- cmp @@ -157,43 +175,65 @@ cmp.setup.cmdline({ '/', '?' }, { -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ + sources = cmp.config.sources( + { { name = 'path' } - }, { + }, + { { name = 'cmdline' } - }), + } + ), matching = { disallow_symbol_nonprefix_matching = false } }) --- treesitter -require'nvim-treesitter'.install { 'cpp' } +-- language server installation (via mason) +local capabilities = require('cmp_nvim_lsp').default_capabilities() +require("mason").setup() +require("mason-lspconfig").setup({ + ensure_installed = { "lua_ls", "clangd", "pyright", "djlsp" }, + automatic_installation = true, + handlers = { + function(server_name) + require("lspconfig")[server_name].setup({ + capabilities = capabilities, + -- on_attach = your_on_attach, -- if you have one + -- settings = {...}, -- per-server overrides go here if needed + }) + end, + }, + -- Optional: override specific servers if you really need something special + -- ["rust_analyzer"] = function() + -- require("rust-tools").setup({}) + -- end, +}) --- vimtex -require('lualine').setup { +-- language server enabling +vim.lsp.enable({ + 'lua_ls', + 'clangd', + 'pyright', + 'djlsp' +}) + + + +local builtin = require('telescope.builtin') +vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' }) +vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' }) +vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' }) +vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' }) + + + +-- vimtex (latex support) +require('lualine').setup({ ft = { "tex", "bib" }, dependencies = { "nvim-treesitter/nvim-treesitter" }, config = function() vim.g.vimtex_view_method = "mupdf" end -} - - --- lsp -vim.lsp.config('lua_ls', { - capabilities = capabilities -}) -vim.lsp.config('clangd', { - capabilities = capabilities -}) -vim.lsp.config('pyright', { - capabilities = capabilities }) -vim.lsp.enable({ - 'lua_ls', - 'clangd', - 'pyright' -}) |
