neovim

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

commit 69802e74e338d860d669ebd9561f96fcb8dfa9fd
parent 69cec7206fa217940b7c6e8a55d9a139eae59efe
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Wed, 23 Nov 2022 15:08:53 +0100

update

Diffstat:
Mafter/plugin/dap.lua | 98+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Aafter/plugin/nvim-terminal.lua | 6++++++
Aftplugin/dap-repl.lua | 10++++++++++
Mlua/plugins.lua | 1+
Asyntax/dap-repl.vim | 23+++++++++++++++++++++++
5 files changed, 98 insertions(+), 40 deletions(-)

diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua @@ -2,57 +2,75 @@ if not pcall(require, 'dap') then return end -vim.keymap.set('n', '<leader>dc', function() - require'dap'.continue() -end, { silent = true, desc = 'DAP Continue' }) -vim.keymap.set('n', '<leader>do', function() - require'dap'.step_over() -end, { silent = true, desc = 'DAP Step Over' }) -vim.keymap.set('n', '<leader>di', function() - require'dap'.step_into() -end, { silent = true, desc = 'DAP Step Into' }) -vim.keymap.set('n', '<leader>dt', function() - require'dap'.step_out() -end, { silent = true, desc = 'DAP Step Out' }) -vim.keymap.set('n', '<leader>db', function() - require'dap'.toggle_breakpoint() -end, { silent = true, desc = 'DAP Toggle Breakpoint' }) -vim.keymap.set('n', '<leader>dC', function() - require'dap'.clear_breakpoints() -end, { silent = true, desc = 'DAP Clear Breakpoint' }) +local dap = require('dap') +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>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>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' }) -vim.keymap.set('n', '<leader>dr', function() - require'dap'.repl.open() -end, { silent = true, desc = 'DAP Open Repl' }) -vim.keymap.set('n', '<leader>dl', function() - require'dap'.run_last() -end, { silent = true, desc = 'DAP Run Last' }) - -local dap = require('dap') --- dap.set_log_level('TRACE') -dap.repl.commands = vim.tbl_extend('force', dap.repl.commands, { custom_commands = { ['.restart'] = dap.restart } }) -- DAP UI local has_dapui, dapui = pcall(require, 'dapui') if has_dapui then - dapui.setup() + + dapui.setup({ + + layouts = { + { + elements = { + -- Elements can be strings or table with id and size keys. + { id = 'scopes', size = 0.25 }, + 'breakpoints', + 'stacks', + 'watches', + }, + size = 40, -- 40 columns + position = 'left', + }, + { + elements = { 'repl' }, + size = 0.25, -- 25% of total lines + position = 'bottom', + }, + }, + }) + dap.listeners.after.event_initialized['dapui_config'] = function() - dapui.open() - end - dap.listeners.before.event_terminated['dapui_config'] = function() - dapui.close() - end - dap.listeners.before.event_exited['dapui_config'] = function() - dapui.close() + dapui.open({ layout = 2 }) end + -- dap.listeners.before.event_terminated['dapui_config'] = function() + -- dapui.close() + -- end + -- dap.listeners.before.event_exited['dapui_config'] = function() + -- dapui.close() + -- end + vim.keymap.set('n', '<leader>du', function() - dapui.toggle() - end, { silent = true, desc = 'DAP UI Toggle' }) + dapui.close() + end, { silent = true, desc = 'DAP UI Close' }) + + vim.keymap.set('n', '<leader>dr', function() + dapui.toggle({ layout = 2 }) + end, { silent = true, desc = 'DAP UI Toggle Repl' }) + + vim.keymap.set('n', '<leader>ds', function() + dapui.toggle({ layout = 1 }) + end, { silent = true, desc = 'DAP UI Toggle Sidebar' }) end -- Virtual Text diff --git a/after/plugin/nvim-terminal.lua b/after/plugin/nvim-terminal.lua @@ -0,0 +1,6 @@ +if not pcall(require, 'terminal') then + return +end + +local terminal = require('terminal') +terminal.setup() diff --git a/ftplugin/dap-repl.lua b/ftplugin/dap-repl.lua @@ -0,0 +1,10 @@ +if not pcall(require, 'terminal') then + return +end + +local terminal = require('terminal') +local rgb_color_table = terminal.initialize_terminal_colors() +vim.api.nvim_win_set_option(0, 'conceallevel', 2) +vim.api.nvim_win_set_option(0, 'concealcursor', 'nc') +vim.api.nvim_win_set_option(0, 'wrap', false) +terminal.attach_to_buffer(vim.api.nvim_get_current_buf(), rgb_color_table) diff --git a/lua/plugins.lua b/lua/plugins.lua @@ -45,6 +45,7 @@ return packer.startup({ -- use { 'kevinhwang91/nvim-ufo', requires = { 'kevinhwang91/promise-async' } } use 'milisims/foldhue.nvim' use 'elihunter173/dirbuf.nvim' + use 'norcalli/nvim-terminal.lua' -- lua use 'nanotee/luv-vimdocs' diff --git a/syntax/dap-repl.vim b/syntax/dap-repl.vim @@ -0,0 +1,23 @@ +" Start: Standard vim script cruft {{{2 +let s:cpo_save = &cpo +set cpo&vim + +scriptencoding utf8 +if version < 600 + syn clear +elseif exists("b:current_syntax") + finish +endif + +" I've been debating whether or not to enumerate the possibilities or just hide +" them all with ^[\[[0-9:;]*m, because it might overshadow cases I don't cover, +" but I think that concealing anyway is a good idea. +syn match TerminalCSIColorCode /\[[:;0-9]*m/ conceal + +" Set the syntax variable +let b:current_syntax="terminal" + +" End: Standard vim script cruft {{{2 +let &cpo = s:cpo_save +unlet s:cpo_save +