summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--colors/meltdown_ng.vim189
-rw-r--r--init.vim4
-rw-r--r--lua/lsp.lua93
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
diff --git a/init.vim b/init.vim
index f3f3736..0877578 100644
--- a/init.vim
+++ b/init.vim
@@ -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,