aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/plugins.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/plugins.lua')
-rw-r--r--nvim/lua/plugins.lua589
1 files changed, 335 insertions, 254 deletions
diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua
index d8d2a73..00af5aa 100644
--- a/nvim/lua/plugins.lua
+++ b/nvim/lua/plugins.lua
@@ -1,276 +1,357 @@
require("lazy").setup({
{
"EdenEast/nightfox.nvim",
- priority = 1000,
- options = {
+ priority = 1000,
+ opts = {
transparent = true,
- terminal_colors = true,
- dim_inactive = false,
- module_default = true,
- styles = {
- comments = "italic",
- keywords = "italic",
- },
- inverse = {
- match_paren = false,
- visual = false,
- search = false,
- },
- },
- config = function ()
+ terminal_colors = true,
+ dim_inactive = false,
+ module_default = true,
+ styles = {
+ comments = "italic",
+ keywords = "italic",
+ },
+ inverse = {
+ match_paren = false,
+ visual = false,
+ search = false,
+ },
+ },
+ config = function()
vim.cmd("colorscheme terafox")
- end
- },
- {
- "hrsh7th/nvim-cmp",
- dependencies = {
- "williamboman/mason.nvim",
- "williamboman/mason-lspconfig.nvim",
- "neovim/nvim-lspconfig",
- "hrsh7th/cmp-nvim-lsp",
- "hrsh7th/cmp-buffer",
- "hrsh7th/cmp-path",
- "hrsh7th/cmp-cmdline",
- "L3MON4D3/LuaSnip",
- },
- event = "InsertEnter",
- config = function()
- require("mason").setup()
- require("mason-lspconfig").setup({ automatic_installation = true })
+ end,
+ },
- local lspconfig = require("lspconfig")
- local signs = {
- Error = " ",
- Warn = " ",
- Hint = " ",
- Info = " ",
- }
- for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, {
- text = icon,
- texthl = hl,
- numhl = hl,
- })
- end
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "williamboman/mason.nvim",
+ "williamboman/mason-lspconfig.nvim",
+ "neovim/nvim-lspconfig",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ "hrsh7th/cmp-cmdline",
+ "L3MON4D3/LuaSnip",
+ "onsails/lspkind-nvim"
+ },
+ config = function()
+ require("mason").setup()
+ require("mason-lspconfig").setup({
+ ensure_installed = { "lua_ls", "jdtls", "pyright", "tailwindcss", "clangd" },
+ automatic_installation = true,
+ })
- local servers = require('mason-lspconfig').get_installed_servers()
- for _, server in pairs(servers) do
- lspconfig[server].setup{}
- end
+ local signs = {
+ Error = " ",
+ Warn = " ",
+ Hint = " ",
+ Info = " ",
+ }
+ for type, icon in pairs(signs) do
+ local hl = "DiagnosticSign" .. type
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
+ end
- local capabilities = require("cmp_nvim_lsp").default_capabilities()
- lspconfig.lua_ls.setup({
- capabilities = capabilities,
- settings = {
- Lua = {
- diagnostics = {
- globals = { "vim" },
- },
- workspace = {
- library = vim.api.nvim_get_runtime_file("", true),
- },
- telemetry = {
- enable = false,
- },
- },
- },
- })
+ local capabilities = require("cmp_nvim_lsp").default_capabilities()
- local cmp = require("cmp")
- local luasnip = require("luasnip")
- require("luasnip.loaders.from_vscode").lazy_load()
- cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- ["<C-Space>"] = cmp.mapping.complete(),
- ["<C-e>"] = cmp.mapping.close(),
- ["<CR>"] = cmp.mapping.confirm({
- behavior = cmp.ConfirmBehavior.Replace,
- select = true,
- }),
- ["<Tab>"] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_next_item()
- elseif luasnip.expand_or_jumpable() then
- luasnip.expand_or_jump()
- else
- fallback()
- end
- end, { "i", "s" }),
- ["<S-Tab>"] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_prev_item()
- elseif luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
- end, { "i", "s" }),
- }),
- sources = {
- { name = "nvim_lsp" },
- { name = "luasnip" },
- { name = "buffer" },
- { name = "path" },
- },
- })
- end,
- },
+ local on_attach = function(client, bufnr)
+ local opts = { noremap = true, silent = true, buffer = bufnr }
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
+ vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
+ vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
+ vim.keymap.set("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts)
+ vim.keymap.set("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts)
+ vim.keymap.set("n", "<leader>wl", function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end, opts)
+ vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, opts)
+ vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
+ vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
+ vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
+ vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, opts)
+ vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
+ vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
+ vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, opts)
+ end
- {
- "nvim-treesitter/nvim-treesitter",
- build = ":TSUpdate",
- event = "BufRead",
- config = function()
- require("nvim-treesitter.configs").setup({
- auto_install = true,
- ensure_installed = { "c", "lua", "vim" },
- highlight = { enable = true, use_languagetree = true },
- indent = { enable = true },
- })
- end,
- },
+ local lspconfig = require("lspconfig")
- {
- "nvim-tree/nvim-tree.lua",
- enabled = false,
- config = function()
- require("nvim-tree").setup({
- view = { width = 20, side = "left" },
- disable_netrw = true,
- hijack_cursor = true,
- update_cwd = true,
- hijack_directories = { auto_open = true },
- renderer = {
- root_folder_label = false,
- indent_markers = {
- enable = true,
- icons = { corner = "└ ", edge = "│ ", none = " " },
- },
- },
- })
- end,
- },
+ lspconfig.lua_ls.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ settings = {
+ Lua = {
+ diagnostics = {
+ globals = { "vim" },
+ },
+ workspace = {
+ library = vim.api.nvim_get_runtime_file("", true),
+ },
+ telemetry = {
+ enable = false,
+ },
+ },
+ },
+ })
- {
- "nvim-telescope/telescope.nvim",
- dependencies = { "nvim-lua/plenary.nvim" },
- keys = {
- {"<C-s>", ":silent Telescope current_buffer_fuzzy_find<CR>", desc = "Open Telescope"}
- },
- config = function()
- require("telescope").setup({
- defaults = { mapping = {} },
- pickers = {},
- extensions = {},
- })
- end,
- },
+ lspconfig.jdtls.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ })
- {
- "akinsho/toggleterm.nvim",
- version = "*",
- config = true,
- },
+ lspconfig.pyright.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ })
- {
- "lewis6991/gitsigns.nvim",
- config = function()
- require("gitsigns").setup()
- end,
- },
+ lspconfig.tailwindcss.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ })
- {
- "mfussenegger/nvim-lint",
- event = { "BufReadPre", "BufNewFile" },
- config = function()
- local lint = require("lint")
+ lspconfig.clangd.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ })
- lint.linter_by_ft = {
- lua = { "luachecker" },
- python = { "pylint" },
- }
+ local cmp = require("cmp")
+ local luasnip = require("luasnip")
+ local lspkind = require("lspkind")
+ require("luasnip.loaders.from_vscode").lazy_load()
- local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
+ cmp.setup({
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ mapping = cmp.mapping.preset.insert({
+ ["<C-d>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.close(),
+ ["<CR>"] = cmp.mapping.confirm({
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true,
+ }),
+ ["<Tab>"] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif luasnip.expand_or_jumpable() then
+ luasnip.expand_or_jump()
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
+ ["<S-Tab>"] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_prev_item()
+ elseif luasnip.jumpable(-1) then
+ luasnip.jump(-1)
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
+ }),
+ formatting = {
+ format = lspkind.cmp_format({
+ mode = "symbol_text",
+ maxwidth = 50,
+ ellipsis_char = "..."
+ }),
+ },
+ sources = {
+ { name = "nvim_lsp" },
+ { name = "luasnip" },
+ { name = "buffer" },
+ { name = "path" },
+ },
+ })
- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
- group = lint_augroup,
- callback = function()
- lint.try_lint()
- end,
- })
- end,
- },
+ cmp.setup.filetype('gitcommit', {
+ sources = cmp.config.sources({
+ { name = 'buffer' },
+ })
+ })
- {
- "echasnovski/mini.nvim",
- version = false,
- dependencies = { "nvim-tree/nvim-web-devicons" },
- config = function()
- require("mini.starter").setup({
- header = table.concat({
- " /l、 ",
- "(゚、 。 7 ",
- " l ~ ヽ ",
- " じしf_,)ノ ",
- }, "\n"),
- footer = "",
- content_hooks = {
- require("mini.starter").gen_hook.adding_bullet("» "),
- require("mini.starter").gen_hook.aligning("center", "center"),
- },
- })
- end,
- },
+ cmp.setup.cmdline(':', {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = cmp.config.sources({
+ { name = 'path' }
+ }, {
+ { name = 'cmdline' }
+ })
+ })
+ end,
+ },
- {
- 'windwp/nvim-autopairs',
- event = "InsertEnter",
- config = function ()
- require("nvim-autopairs").setup{}
- end
- },
+ {
+ "nvim-treesitter/nvim-treesitter",
+ build = ":TSUpdate",
+ event = "BufRead",
+ config = function()
+ require("nvim-treesitter.configs").setup({
+ auto_install = true,
+ ensure_installed = { "c", "lua", "vim", "python", "java", "javascript", "typescript", "css", "html" },
+ highlight = { enable = true, use_languagetree = true },
+ indent = { enable = true },
+ })
+ end,
+ },
- {
- 'tamton-aquib/staline.nvim',
- dependencies = { 'nvim-tree/nvim-web-devicons' },
- config = function()
- require "staline".setup {
- sections = {
- left = { 'file_name', 'branch' },
- mid = { 'lsp' },
- right = { 'line_column' }
- },
- special_table = {
- NvimTree = { 'NvimTree', ' ' },
- packer = { 'Packer', ' ' },
- starter = { '', '' },
- lazy = { '', '' },
- mason = { '', '' }
- },
- lsp_symbols = {
- Error = " ",
- Info = " ",
- Warn = " ",
- Hint = ""
- },
- defaults = {
- true_colors = true,
- line_column = ' ☰ %l/%L %c',
- branch_symbol = " ",
- exclude_fts = { 'NvimTree' }
- }
- }
- vim.cmd('highlight Statusline guibg=none')
- vim.cmd('highlight StatuslineNC guibg=none')
- end,
- }
-})
+ {
+ "nvim-tree/nvim-tree.lua",
+ enabled = false,
+ config = function()
+ require("nvim-tree").setup({
+ view = { width = 20, side = "left" },
+ disable_netrw = true,
+ hijack_cursor = true,
+ update_cwd = true,
+ hijack_directories = { auto_open = true },
+ renderer = {
+ root_folder_label = false,
+ indent_markers = {
+ enable = true,
+ icons = { corner = "└ ", edge = "│ ", none = " " },
+ },
+ },
+ })
+ end,
+ },
+
+ {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ keys = {
+ { "<C-s>", ":silent Telescope current_buffer_fuzzy_find<CR>", desc = "Open Telescope" },
+ },
+ config = function()
+ require("telescope").setup({
+ defaults = { mapping = {} },
+ pickers = {},
+ extensions = {},
+ })
+ end,
+ },
+
+ {
+ "akinsho/toggleterm.nvim",
+ version = "*",
+ config = true,
+ },
+
+ {
+ "lewis6991/gitsigns.nvim",
+ config = function()
+ require("gitsigns").setup()
+ end,
+ },
+
+ {
+ "mfussenegger/nvim-lint",
+ event = { "BufReadPre", "BufNewFile" },
+ config = function()
+ local lint = require("lint")
+ lint.linters_by_ft = {
+ lua = { "luacheck" },
+ python = { "pylint" },
+ }
+
+ local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
+
+ vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
+ group = lint_augroup,
+ callback = function()
+ lint.try_lint()
+ end,
+ })
+ end,
+ },
+
+ {
+ "echasnovski/mini.nvim",
+ version = false,
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ config = function()
+ require("mini.starter").setup({
+ header = table.concat({
+ " /l、 ",
+ "(゚、 。 7 ",
+ " l ~ ヽ ",
+ " じしf_,)ノ ",
+ }, "\n"),
+ footer = "",
+ content_hooks = {
+ require("mini.starter").gen_hook.adding_bullet("» "),
+ require("mini.starter").gen_hook.aligning("center", "center"),
+ },
+ })
+ end,
+ },
+
+ {
+ "windwp/nvim-autopairs",
+ event = "InsertEnter",
+ config = function()
+ require("nvim-autopairs").setup {}
+ end,
+ },
+
+ {
+ "tamton-aquib/staline.nvim",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ config = function()
+ require("staline").setup {
+ sections = {
+ left = { 'file_name', 'branch' },
+ mid = { 'lsp' },
+ right = { 'line_column' },
+ },
+ special_table = {
+ NvimTree = { 'NvimTree', ' ' },
+ packer = { 'Packer', ' ' },
+ starter = { '', '' },
+ lazy = { '', '' },
+ mason = { '', '' },
+ },
+ lsp_symbols = {
+ Error = " ",
+ Info = " ",
+ Warn = " ",
+ Hint = "",
+ },
+ defaults = {
+ true_colors = true,
+ line_column = ' ☰ %l/%L %c',
+ branch_symbol = " ",
+ exclude_fts = { 'NvimTree' },
+ },
+ }
+ vim.cmd('highlight Statusline guibg=none')
+ vim.cmd('highlight StatuslineNC guibg=none')
+ end,
+ },
+
+ {
+ "epwalsh/obsidian.nvim",
+ enabled = false,
+ version = "*",
+ lazy = true,
+ ft = "markdown",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+ opts = {
+ workspaces = {
+ {
+ name = "Vaut",
+ path = "~/Vault/",
+ },
+ },
+ },
+ },
+})