neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

commit 45b1d93bcc9d654139c57ce1d0dd0f8355af639b
parent cc4185c8ff0f2e67b2a2d50eb9f85cf2be65978c
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Thu, 22 Dec 2022 08:45:25 +0100

update

Diffstat:
Mafter/plugin/cmp.lua | 88++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mafter/plugin/dap.lua | 38+++++++++++++++++++++++++-------------
Mcolors/base16.lua | 6++++++
Mftplugin/mail.lua | 4++--
Mlua/tms/lsp/servers.lua | 16+++++++++++++---
5 files changed, 127 insertions(+), 25 deletions(-)

diff --git a/after/plugin/cmp.lua b/after/plugin/cmp.lua @@ -2,8 +2,46 @@ if not pcall(require, 'cmp') then return end +local kind_icons = { + 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') -require('cmp_dictionary').setup({ dic = {} }) +local compare = require('cmp.config.compare') +-- require('cmp_dictionary').setup({ +-- dic = { -- +-- spelllang = { -- +-- en = '/usr/share/dict/words', +-- cs = '~/.local/share/dict/cs.dict', +-- }, +-- }, +-- document = true, +-- async = true, +-- }) -- cmp.register_source('exe', require('tms.p.cmp.exe_source').new()) local doOrOpen = function(fn, t) @@ -17,13 +55,32 @@ local doOrOpen = function(fn, t) end cmp.setup({ - preselect = cmp.PreselectMode.Item, - window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered() }, + window = { -- + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end, }, + view = { entries = { name = 'custom', selection_order = 'near_cursor' } }, + formatting = { + format = function(entry, vim_item) + -- Kind icons + vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind + -- Source + vim_item.menu = ({ + nvim_lsp = '[LSP]', + nvim_lua = '[Lua]', + luasnip = '[LuaSnip]', + buffer = '[Buffer]', + treesitter = '[TS]', + latex_symbols = '[LaTeX]', + })[entry.source.name] + return vim_item + end, + }, mapping = { ['<c-e>'] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close() }), ['<c-y>'] = cmp.mapping.confirm({ select = true }), @@ -33,18 +90,35 @@ cmp.setup({ ['<c-p>'] = cmp.mapping({ i = doOrOpen(cmp.select_prev_item, { behavior = cmp.SelectBehavior.Select }) }), ['<c-n>'] = cmp.mapping({ i = doOrOpen(cmp.select_next_item, { behavior = cmp.SelectBehavior.Select }) }), }, - sources = { -- + sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'nvim_lsp_signature_help' }, { name = 'nvim_lua' }, { name = 'luasnip' }, { name = 'path' }, - { name = 'buffer' }, { name = 'spell' }, { name = 'calc' }, { name = 'treesitter' }, - { name = 'dictionary' }, - }, + { name = 'buffer', group_index = 1 }, + }, { -- + { name = 'buffer' }, + { name = 'treesitter' }, + }), + -- sorting = { + -- priority_weight = 2, + -- comparators = { + -- compare.offset, + -- compare.exact, + -- compare.scopes, + -- compare.score, + -- compare.recently_used, + -- compare.locality, + -- compare.kind, + -- compare.sort_text, + -- compare.length, + -- compare.order, + -- }, + -- }, experimental = { ghost_text = true }, }) diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua @@ -7,21 +7,21 @@ local repl = require('dap.repl') -- dap.set_log_level('TRACE') repl.commands = vim.tbl_extend('force', repl.commands, { custom_commands = { ['.r'] = dap.restart } }) -vim.keymap.set('n', '<leader>dc', require 'dap'.continue, { silent = true, desc = 'DAP Continue' }) -vim.keymap.set('n', '<leader>dx', require 'dap'.terminate, { silent = true, desc = 'DAP Terminate' }) -vim.keymap.set('n', '<leader>do', require 'dap'.step_over, { silent = true, desc = 'DAP Step Over' }) -vim.keymap.set('n', '<leader>di', require 'dap'.step_into, { silent = true, desc = 'DAP Step Into' }) -vim.keymap.set('n', '<leader>dt', require 'dap'.step_out, { silent = true, desc = 'DAP Step Out' }) -vim.keymap.set('n', '<leader>dR', require 'dap'.restart, { silent = true, desc = 'DAP Restart' }) -vim.keymap.set('n', '<leader>db', require 'dap'.toggle_breakpoint, { silent = true, desc = 'DAP Toggle Breakpoint' }) -vim.keymap.set('n', '<leader>dC', require 'dap'.clear_breakpoints, { silent = true, desc = 'DAP Clear Breakpoint' }) +vim.keymap.set('n', '<leader>dc', require'dap'.continue, { silent = true, desc = 'DAP Continue' }) +vim.keymap.set('n', '<leader>dx', require'dap'.terminate, { silent = true, desc = 'DAP Terminate' }) +vim.keymap.set('n', '<leader>do', require'dap'.step_over, { silent = true, desc = 'DAP Step Over' }) +vim.keymap.set('n', '<leader>di', require'dap'.step_into, { silent = true, desc = 'DAP Step Into' }) +vim.keymap.set('n', '<leader>dt', require'dap'.step_out, { silent = true, desc = 'DAP Step Out' }) +vim.keymap.set('n', '<leader>dR', require'dap'.restart, { silent = true, desc = 'DAP Restart' }) +vim.keymap.set('n', '<leader>db', require'dap'.toggle_breakpoint, { silent = true, desc = 'DAP Toggle Breakpoint' }) +vim.keymap.set('n', '<leader>dC', require'dap'.clear_breakpoints, { silent = true, desc = 'DAP Clear Breakpoint' }) -- vim.keymap.set('n', '<leader>dr', require'dap'.repl.open, { silent = true, desc = 'DAP Open Repl' }) -vim.keymap.set('n', '<leader>dl', require 'dap'.run_last, { silent = true, desc = 'DAP Run Last' }) +vim.keymap.set('n', '<leader>dl', require'dap'.run_last, { silent = true, desc = 'DAP Run Last' }) vim.keymap.set('n', '<Leader>dB', function() - require 'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) + require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, { silent = true, desc = 'DAP Set Breakpoint' }) vim.keymap.set('n', '<leader>dL', function() - require 'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) + require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end, { silent = true, desc = 'DAP Set Log Point' }) -- DAP UI @@ -131,12 +131,11 @@ end -- DAP CHROME local has_vscode, vscode = pcall(require, 'dap-vscode-js') if has_vscode then - vscode.setup { adapters = { 'pwa-chrome' } } dap.configurations.dart = { { type = 'pwa-chrome', request = 'attach', - name = 'Attach', + name = 'Attach to :9222', cwd = vim.fn.getcwd(), port = 9222, @@ -151,7 +150,20 @@ if has_vscode then end, sourceMapPathOverrides = {}, }, + { -- + type = 'pwa-chrome', + request = 'launch', + name = 'Launch', + webRoot = '${workspaceFolder}', + }, } + + -- The VSCode Debugger requires a special setup + vscode.setup({ + adapters = { 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost' }, + debugger_path = vim.fn.stdpath('data') .. '/mason/bin/js-debug-adapter', -- Path to VSCode Debugger + debugger_cmd = { 'js-debug-adapter' }, + }) end -- ALT CHROME diff --git a/colors/base16.lua b/colors/base16.lua @@ -292,6 +292,12 @@ vim.api.nvim_set_hl(0, 'StatusLine', { fg = 'background', bg = 'background' }) vim.api.nvim_set_hl(0, 'Beacon', { bg = 'fg' }) vim.api.nvim_set_hl(0, 'LspInlayHint', { fg = gui03 }) +-- cmp +vim.api.nvim_set_hl(0, 'CmpItemKindFunction', { fg = gui0E }) +vim.api.nvim_set_hl(0, 'CmpItemKindMethod', { link = 'CmpItemKindFunction' }) +vim.api.nvim_set_hl(0, 'CmpItemKindClass', { fg = gui0A }) +vim.api.nvim_set_hl(0, 'CmpItemKindConstructor', { fg = gui0D }) + -- leap vim.api.nvim_set_hl(0, 'LeapBackdrop', { link = 'Comment' }) vim.api.nvim_set_hl(0, 'LeapMatch', { fg = '#00ff00' }) diff --git a/ftplugin/mail.lua b/ftplugin/mail.lua @@ -1,3 +1,3 @@ vim.opt.spell = true -vim.opt.spelllang = {'cs', 'csa', 'en'} -vim.keymap.set('n', '<leader>aa', require('tms.p.telescope').mail_address, {buffer = true}) +vim.opt.spelllang = { 'cs', 'csa', 'en' } +vim.keymap.set('n', '<leader>aa', require('tms.p.telescope').mail_address, { buffer = true }) diff --git a/lua/tms/lsp/servers.lua b/lua/tms/lsp/servers.lua @@ -2,15 +2,25 @@ local M = {} function M.jsonls(opts) - if pcall(require, 'schemastor') then - opts.settings = { json = { schemas = require('schemastore').json.schemas() } } + if pcall(require, 'schemastore') then + opts.settings = { + json = { -- + schemas = require('schemastore').json.schemas(), + validate = { enable = true }, + }, + } end return opts end function M.yamlls(opts) - opts.settings = { yaml = { schemaStore = { enable = true } } } + opts.settings = { + yaml = { -- + schemas = require('schemastore').json.schemas(), + validate = { enable = true }, + }, + } return opts end