diff options
-rw-r--r-- | colors/meltdown_ng.vim | 189 | ||||
-rw-r--r-- | init.vim | 4 | ||||
-rw-r--r-- | lua/lsp.lua | 93 |
3 files changed, 195 insertions, 91 deletions
diff --git a/colors/meltdown_ng.vim b/colors/meltdown_ng.vim index 88589f3..7e59d56 100644 --- a/colors/meltdown_ng.vim +++ b/colors/meltdown_ng.vim @@ -7,19 +7,20 @@ if version > 580 endif let g:colors_name='meltdown_gen' -if &background == 'dark' - +hi DarkGrey guifg=#7b7b7b hi Salmon guifg=#ff7779 hi IncSearch guifg=#ff5d34 ctermfg=202 guibg=#000000 ctermbg=000 gui=reverse cterm=reverse hi TabLineSel guifg=#1f1d2a guibg=#ff5d34 ctermfg=202 ctermbg=233 gui=none -hi Green1 guifg=#80ab24 ctermfg=106 +hi Green1 guifg=#26ff00 ctermfg=106 hi Green3 guifg=#aba024 ctermfg=142 hi Green2 guifg=#3dab24 ctermfg=034 hi TabLineFill guifg=#686060 ctermfg=241 guibg=#0f0e0e ctermbg=233 hi Sage1 guifg=#9f9a84 ctermfg=144 hi Search guifg=#ffd780 ctermfg=222 guibg=#000000 ctermbg=000 gui=reverse cterm=reverse -hi Sage3 guifg=#96a677 ctermfg=144 -hi Sage2 guifg=#8e9f84 ctermfg=108 +hi Sage3 guifg=#b0c4a3 ctermfg=144 +hi Sage2 guifg=#a6b99a +hi Sage4 guifg=#8e9f84 ctermfg=108 +hi Sage5 guifg=#8e9f84 ctermfg=108 hi MatchParen guibg=#346063 ctermbg=023 gui=bold cterm=bold hi VertSplit guifg=#0f0e0e ctermfg=233 guibg=#0f0e0e ctermbg=233 hi Red3 guifg=#ff3448 ctermfg=203 @@ -39,7 +40,7 @@ hi Fern1 guifg=#71bc78 ctermfg=071 hi Blue1 guifg=#80a0ff ctermfg=111 hi Blue3 guifg=#80ffdf ctermfg=122 hi Blue2 guifg=#af80ff ctermfg=141 -hi Blue4 guifg=#d0e0ff ctermfg=189 +hi Blue4 guifg=#c3bbff ctermfg=189 hi Teal1 guifg=#34ffd6 ctermfg=050 hi CursorLineNr guifg=#ff5d34 ctermfg=202 guibg=#272424 ctermbg=235 hi StatusLineNC guifg=#686060 ctermfg=241 guibg=#0f0e0e ctermbg=233 gui=bold cterm=bold @@ -51,80 +52,21 @@ hi Yellow1 guifg=#ffb700 ctermfg=179 hi Error guifg=#ff0000 ctermfg=009 guibg=#1a1818 ctermbg=234 hi Directory guifg=#80a0ff ctermfg=111 gui=bold cterm=bold hi CursorLine guibg=#313030 ctermbg=236 -hi NonText guifg=#80a0ff ctermfg=111 guibg=#000000 ctermbg=235 gui=bold cterm=bold +hi NonText guifg=#ff5d34 ctermfg=111 guibg=#000000 ctermbg=235 gui=bold cterm=bold hi DarkTeal guifg=#346063 ctermfg=023 hi Orange5 guifg=#ffd780 ctermfg=222 hi Orange4 guifg=#ffb780 ctermfg=215 hi Orange6 guifg=#ff9780 ctermfg=209 -hi Orange1 guifg=#ff892f ctermfg=208 +hi Orange1 guifg=#ffb75f hi Orange3 guifg=#ff552f ctermfg=009 hi Orange2 guifg=#ffbd2f ctermfg=214 hi Warning guifg=#ffff00 ctermfg=011 guibg=#1a1818 ctermbg=234 hi javaParen guifg=#80a0ff ctermfg=111 gui=bold cterm=bold hi Sage3Mix guifg=#8ba3bb ctermfg=110 -hi PMenu guifg=#686060 ctermfg=241 guibg=#444040 ctermbg=238 +hi PMenu guifg=#ff7779 ctermfg=241 guibg=#14151d ctermbg=238 hi CursorColumn guibg=#313030 ctermbg=236 hi PMenuSel guifg=#ff5d34 ctermfg=202 guibg=#343030 ctermbg=236 gui=bold cterm=bold -else - -hi IncSearch guifg=#b41400 ctermfg=124 guibg=#ffffff ctermbg=015 gui=reverse cterm=reverse -" hi TabLineSel guifg=#b41400 ctermfg=124 guibg=#f4f3f3 ctermbg=255 gui=bold cterm=bold -hi Green1 guifg=#265f00 ctermfg=022 -hi Green3 guifg=#545600 ctermfg=058 -hi Green2 guifg=#006d00 ctermfg=022 -hi TabLineFill guifg=#938b8b ctermfg=245 guibg=#f4f3f3 ctermbg=255 -hi Sage1 guifg=#585742 ctermfg=240 -hi Search guifg=#311d00 ctermfg=235 guibg=#ffffff ctermbg=015 gui=reverse cterm=reverse -hi Sage3 guifg=#43562b ctermfg=022 -hi Sage2 guifg=#495b42 ctermfg=240 -hi MatchParen guibg=#749ea1 ctermbg=109 gui=bold cterm=bold -hi VertSplit guifg=#f4f3f3 ctermfg=255 guibg=#f4f3f3 ctermbg=255 -hi Red3 guifg=#d2002d ctermfg=160 -hi Red2 guifg=#7f2800 ctermfg=088 -hi Red1 guifg=#b41400 ctermfg=124 -hi Normal guifg=#152100 ctermfg=234 guibg=#e1e0de ctermbg=188 -hi Red6 guifg=#8f0088 ctermfg=090 -hi Red5 guifg=#7d2212 ctermfg=001 -hi Red4 guifg=#6b2900 ctermfg=001 -hi LineNr guifg=#585742 ctermfg=240 guibg=#e9e6e6 ctermbg=254 gui=bold cterm=bold -hi DarkGray guifg=#b3b3b3 ctermfg=249 -hi StatusLine guifg=#b41400 ctermfg=124 guibg=#f4f3f3 ctermbg=255 gui=bold cterm=bold -hi Title guifg=#7f2800 ctermfg=088 guibg=#b5b1b1 ctermbg=249 gui=bold cterm=bold -hi ColorColumn guibg=#8a8ec3 ctermbg=103 -hi Visual guifg=#f2f1f1 ctermfg=255 guibg=#1d1d1d ctermbg=234 -hi Fern1 guifg=#005417 ctermfg=022 -hi Blue1 guifg=#30489e ctermfg=061 -hi Blue3 guifg=#00250e ctermfg=234 -hi Blue2 guifg=#7239b5 ctermfg=092 -hi Blue4 guifg=#121e35 ctermfg=234 -hi Teal1 guifg=#002b10 ctermfg=022 -hi CursorLineNr guifg=#b41400 ctermfg=124 guibg=#d9d5d5 ctermbg=253 -hi StatusLineNC guifg=#938b8b ctermfg=245 guibg=#f4f3f3 ctermbg=255 gui=bold cterm=bold -hi Folded guifg=#ffffff ctermfg=015 guibg=#585742 ctermbg=240 -hi TabLine guifg=#938b8b ctermfg=245 guibg=#b5b1b1 ctermbg=249 gui=bold cterm=bold -hi SignColumn guibg=#e9e6e6 ctermbg=254 -hi Yellow1 guifg=#413200 ctermfg=058 -hi Error guifg=#e50000 ctermfg=160 guibg=#e9e6e6 ctermbg=254 -hi Directory guifg=#30489e ctermfg=061 gui=bold cterm=bold -hi CursorLine guibg=#c7c6c6 ctermbg=251 -hi NonText guifg=#30489e ctermfg=061 guibg=#d9d5d5 ctermbg=253 gui=bold cterm=bold -hi DarkTeal guifg=#749ea1 ctermfg=109 -hi Orange5 guifg=#311d00 ctermfg=235 -hi Orange4 guifg=#512300 ctermfg=052 -hi Orange6 guifg=#752216 ctermfg=001 -hi Orange1 guifg=#852700 ctermfg=088 -hi Orange3 guifg=#bb0c00 ctermfg=124 -hi Orange2 guifg=#4c2700 ctermfg=052 -hi Warning guifg=#1b1300 ctermfg=233 guibg=#e9e6e6 ctermbg=254 -hi javaParen guifg=#30489e ctermfg=061 gui=bold cterm=bold -hi Sage3Mix guifg=#3f5268 ctermfg=024 -hi PMenu guifg=#938b8b ctermfg=245 guibg=#b5b1b1 ctermbg=249 -hi CursorColumn guibg=#c7c6c6 ctermbg=251 -hi PMenuSel guifg=#b41400 ctermfg=124 guibg=#c9c4c4 ctermbg=251 gui=bold cterm=bold - -endif - hi! link TagbarAccessProtected Yellow1 hi! link javaDocTags Orange6 hi! link xmlTag Blue1 @@ -169,13 +111,118 @@ hi! link Operator Blue1 hi! link RadiationJavaInterface RadiationProtoType hi! link Special Orange2 +hi LineNrAbove guibg=#2b293b ctermfg=144 guifg=#80a0ff ctermbg=234 +hi! link LineNrBelow LineNrAbove +hi LineNr guifg=#ff5d34 guibg=#2b293b +hi DocComment guifg=#00d0ff gui=italic + hi! link TabLineFill SignColumn hi! link @lsp.type.class Type -hi! link @lsp.type.property Yellow1 +hi! link @lsp.type.property Salmon hi! link @lsp.type.parameter Red1 -hi! link @lsp.mod.functionScope Sage2 +hi! link @lsp.mod.functionScope Orange1 hi! link @punctuation Blue1 +hi! link @variable Identifier hi! link @variable.parameter Red1 hi! link @lsp.typemod.parameter.functionScope Red1 hi! link @lsp.mod.classScope Salmon -hi! link @variable.member.haskell Salmon +hi! link @variable.member Salmon +hi! link @variable.java Orange1 +hi! link @type.qualifier Red1 +hi! link @lsp.type.interface.java Red5 +hi! link @lsp.type.enum.java Red4 +hi! link @lsp.type.variable.java @variable.java +hi! link @lsp.type.variable Orange1 +hi! link @lsp.typemod.property.static.java Sage3 +hi! link @attribute PreProc +hi! link @lsp.type.property.java @variable.member +hi! link Identifier Sage3 +hi! link luaTable @punctuation +hi! link vimUserFunc vimFunction +hi! link vimFunction Function +hi! link vimIsCommand Red1 +hi! link @constructor.lua @punctuation +hi! link @comment.documentation.java DocComment +hi! link @lsp.type.typeParameter Red6 +hi! link @lsp.type.operator Operator +hi! link @lsp.typemod.method Function +hi! link @lsp.type.namespace @module +hi! link @module DarkGrey +hi! link @lsp.type.enum Type +hi! link @lsp.mod.readonly PreProc + +hi CmpItemAbbrDeprecated gui=strikethrough guifg=#ff7779 ctermfg=241 guibg=#14151d ctermbg=238 +hi CmpItemAbbrMatch guifg=#1f1d2a guibg=#ff7779 gui=bold +hi PmenuSbar guibg=#333333 +hi PmenuThumb guibg=#80a0ff + +hi! link CmpDefault PMenu +hi! link CmpBorder CmpDefault +hi! link CmpCompletion Red1 +hi! link CmpCompletionBorder CmpDefault +hi! link CmpCompletionExtension CmpDefault +hi! link CmpCompletionSbar CmpDefault +hi! link CmpCompletionSel CmpDefault +hi! link CmpCompletionThumb String +hi! link CmpDocumentation CmpDefault +hi! link CmpDocumentationBorder CmpDefault +hi! link CmpGhostText CmpDefault +hi! link CmpItemAbbr CmpDefault +hi! link CmpItemAbbrDefault CmpDefault +hi! link CmpItemAbbrDeprecatedDefault CmpItemAbbrDeprecated +hi! link CmpItemAbbrMatchDefault CmpDefault +hi! link PmenuSel CmpItemAbbrMatch +hi! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch +hi! link CmpItemAbbrMatchFuzzyDefault CmpItemAbbrMatch +hi! link CmpItemKind CmpDefault +hi! link CmpItemKindArray Constant +hi! link CmpItemKindBoolean Constant +hi! link CmpItemKindClass Type +hi! link CmpItemKindCodeium Constant +hi! link CmpItemKindColor Constant +hi! link CmpItemKindConstant Constant +hi! link CmpItemKindConstructor Constant +hi! link CmpItemKindCopilot Constant +hi! link CmpItemKindDefault Constant +hi! link CmpItemKindEnum Constant +hi! link CmpItemKindEnumMember Constant +hi! link CmpItemKindEvent Constant +hi! link CmpItemKindField Constant +hi! link CmpItemKindFile Constant +hi! link CmpItemKindFolder Constant +hi! link CmpItemKindFunction Function +hi! link CmpItemKindInterface Type +hi! link CmpItemKindKey Constant +hi! link CmpItemKindKeyword Constant +hi! link CmpItemKindMethod Constant +hi! link CmpItemKindModule Constant +hi! link CmpItemKindNamespace Constant +hi! link CmpItemKindNull Constant +hi! link CmpItemKindNumber Constant +hi! link CmpItemKindObject Constant +hi! link CmpItemKindOperator Constant +hi! link CmpItemKindPackage Constant +hi! link CmpItemKindProperty Constant +hi! link CmpItemKindReference Constant +hi! link CmpItemKindSnippet Constant +hi! link CmpItemKindString Constant +hi! link CmpItemKindStruct Constant +hi! link CmpItemKindTabNine Constant +hi! link CmpItemKindText Constant +hi! link CmpItemKindTypeParameter Identifier +hi! link CmpItemKindUnit Constant +hi! link CmpItemKindValue Constant +hi! link CmpItemKindVariable Identifier +hi! link CmpItemMenu DocComment +hi! link CmpItemMenuDefault DocComment +hi! link CmpKind CmpDefault +hi! link CmpReady CmpDefault +hi! link CmpStatus CmpDefault +hi! link CmpZsh CmpDefault + +hi TabLineCloseSel guifg=#790000 guibg=#ff5d34 +hi TabLineClose guifg=#0f0e0e guibg=#2d2d2d +hi TabLineTail guifg=#ff8082 guibg=#0f0e0e + +hi DiagnosticUnderlineError gui=undercurl +hi DiagnosticUnderlineWarn gui=undercurl @@ -46,7 +46,9 @@ Plug 'nvim-treesitter/nvim-treesitter-textobjects' Plug 'tpope/vim-surround' Plug 'nvim-lualine/lualine.nvim' Plug 'linrongbin16/lsp-progress.nvim' +Plug 'nanozuki/tabby.nvim' +Plug 'git@git.josher.dev:nvim-color-picker.git' Plug 'git@git.josher.dev:fieldmarshal.vim.git' Plug 'git@git.josher.dev:bulletjava.vim.git' if has('rneovim') @@ -69,6 +71,7 @@ set wildmode=longest,list,full set scrolloff=8 set number set relativenumber +set pumheight=20 let mapleader=" " @@ -229,6 +232,7 @@ lua << EOF }) require("lsp") require("lspconfig") + require("tabby") -- Diagnostics require("diagnostics") diff --git a/lua/lsp.lua b/lua/lsp.lua index 0902e06..35f36be 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -77,28 +77,60 @@ vim.opt.completeopt = { "menu", "menuone", "noselect" } -- Don't show matching vim.opt.shortmess:append("c") -local lspkind = require("lspkind") lspkind.init() +local lspkind = require("lspkind") lspkind.init({ + symbol_map = { + Text = "", + Method = "", + Function = "λ", + Constructor = "", + Field = "", + Variable = "", + Class = "", + Interface = "", + Module = "", + Property = "", + Unit = "", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + Color = "", + File = "", + Reference = "", + Folder = "", + EnumMember = "", + Constant = "", + Struct = "", + Event = "", + Operator = "", + TypeParameter = "τ", + }, +}) local cmp = require("cmp") cmp.setup({ mapping = { - ["<C-d>"] = cmp.mapping.scroll_docs(-4), - ["<C-u>"] = cmp.mapping.scroll_docs(4), + ["<C-d>"] = cmp.mapping.scroll_docs(-4, { "i", "s" }), + ["<C-u>"] = cmp.mapping.scroll_docs(4, { "i", "s" }), ["<C-e>"] = cmp.mapping.close(), ["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), ["<C-n>"] = cmp.mapping(function(fallback) cmp.select_next_item() + -- Kill any outstanding snippets + vim.fn["vsnip#deactivate"]() end, { "i", "s" }), ["<C-p>"] = cmp.mapping(function(fallback) cmp.select_prev_item() + -- Kill any outstanding snippets + vim.fn["vsnip#deactivate"]() end, { "i", "s" }), ["<Tab>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.mapping.confirm({ select = true })() - elseif vim.fn["vsnip#available"](1) == 1 then + if vim.fn["vsnip#available"](1) == 1 then feedkey("<Plug>(vsnip-expand-or-jump)", "") + elseif cmp.visible() then + cmp.mapping.confirm({ select = true })() elseif has_words_before() then cmp.complete() else @@ -115,6 +147,41 @@ cmp.setup({ end, { "i", "s" }), }, + formatting = { + format = lspkind.cmp_format({ + mode = 'symbol_text', + maxwidth = 50, + ellipsis_char = '...', + show_labelDetails = true, + before = function(_, vim_item) + local function split_silly_function_arguments(str) + if string.len(str) == 0 or string.find(str, "[(]") == nil then + return str, "" + end + + local name_start, name_end = 1, string.find(str, "[(]") - 1 + local function_name = string.sub(str, name_start, name_end) + local arguments = string.sub(str, name_end + 1) + + return function_name, arguments + end + + local verbosity = 1 + if vim.bo.filetype == 'java' then + verbosity = 2 + if vim_item.kind == "Method" then + local name, args = split_silly_function_arguments(vim_item.abbr) + vim_item.abbr = name + vim_item.menu = args .. (vim_item.menu or "") + end + end + vim_item.abbr = string.sub(vim_item.abbr, 1, 20 * verbosity) + vim_item.menu = string.sub(vim_item.menu or "", 1, 20 * verbosity) + return vim_item + end + }) + }, + sources = { { name = "nvim_lsp" }, { name = "path" }, @@ -132,20 +199,6 @@ cmp.setup({ end, }, - formatting = { - format = lspkind.cmp_format({ - with_text = true, - maxwidth = 40, -- half max width - menu = { - buffer = "[buffer]", - nvim_lsp = "[LSP]", - nvim_lua = "[API]", - path = "[path]", - vim_vsnip = "[snip]", - }, - }), - }, - experimental = { native_menu = false, ghost_text = true, |