summaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/init.lua96
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'
-})