From e69cdab9e0739b58dc237891e3efce8649ab1679 Mon Sep 17 00:00:00 2001 From: Jika Date: Thu, 23 Nov 2023 09:58:28 +0100 Subject: [PATCH] Update lvim config (folding and lombok) --- lvim/config.lua | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/lvim/config.lua b/lvim/config.lua index c76097e..6e64946 100644 --- a/lvim/config.lua +++ b/lvim/config.lua @@ -73,6 +73,8 @@ lvim.plugins = { require("auto-save").setup() end, }, + {'kevinhwang91/nvim-ufo'}, + {'kevinhwang91/promise-async'}, -- Markdonw { "iamcco/markdown-preview.nvim", @@ -159,8 +161,58 @@ lvim.plugins = { -- Deno {'sigmasd/deno-nvim'} } +-- folding +vim.o.foldcolumn = '2' -- '0' is not bad +vim.o.foldlevel = 99-- Using ufo provider need a large value, feel free to decrease the value +vim.o.foldlevelstart = 99 +vim.o.foldenable = true + vim.opt.fillchars = { + vert = "▕", -- alternatives │ + fold = " ", + eob = " ", -- suppress ~ at EndOfBuffer + diff = "╱", -- alternatives = ⣿ ░ ─ + msgsep = "‾", + foldopen = "", + foldsep = "│", + foldclose = "", + } +local fcs = vim.opt.fillchars:get() + +-- Stolen from Akinsho +local function get_fold(lnum) + if vim.fn.foldlevel(lnum) <= vim.fn.foldlevel(lnum - 1) + then return ' ' end + +local fold_sym = vim.fn.foldclosed(lnum) == -1 and fcs.foldopen or fcs.foldclose return fold_sym end +-- Stolen from Akinsho local function get_fold(lnum) if vim.fn.foldlevel(lnum) <= vim.fn.foldlevel(lnum - 1) then return ' ' end return vim.fn.foldclosed(lnum) == -1 and fcs.foldopen or fcs.foldclose end + +_G.get_statuscol = function() return "%s%l " .. get_fold(vim.v.lnum) .. " " end + +vim.o.statuscolumn = "%!v:lua.get_statuscol()" + + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true +} +local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'} +for _, ls in ipairs(language_servers) do + require('lspconfig')[ls].setup({ + capabilities = capabilities + -- you can add other fields for setting up lsp server in this table + }) +end +require('ufo').setup() + +-- Java +local lspconfig = require('lspconfig') +local lombok = vim.fn.stdpath('data') .. '/mason/packages/jdtls/lombok.jar' +lspconfig.jdtls.setup { cmd = { "jdtls", "--jvm-arg=-javaagent:" .. lombok } } + +-- Deno local nvim_lsp = require("lspconfig") nvim_lsp.denols.setup { on_attach = on_attach, @@ -186,6 +238,7 @@ require("deno-nvim").setup({ } }) +-- Themes require('onedark').setup { style = 'darker', -- Default theme style. Choose between 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer' and 'light' toggle_style_key = "ss"; @@ -199,6 +252,8 @@ require('onedark').setup { variables = 'none' }, } +-- + -- Autocommands (https://neovim.io/doc/user/autocmd.html) -- vim.api.nvim_create_autocmd("BufEnter", {