From 6fcff3157781b9b8043303b8613f28265a600742 Mon Sep 17 00:00:00 2001 From: Krzysiek Wyka Date: Wed, 28 Aug 2024 20:23:53 +0200 Subject: [PATCH] Update --- init.lua | 7 ++++ lua/custom/plugins/autoclose.lua | 8 ++++ lua/custom/plugins/barbecue.lua | 12 ++++++ lua/custom/plugins/harpoon.lua | 58 +++++++++++++++++++++++++ lua/custom/plugins/in-and-out.lua | 10 ----- lua/custom/plugins/jester.lua | 70 +++++++------------------------ lua/custom/plugins/neoclip.lua | 13 ++++++ lua/custom/plugins/neogit.lua | 17 ++++++++ lua/custom/plugins/noice.lua | 15 +++++++ lua/custom/plugins/workspace.lua | 16 +++++++ lua/kickstart/plugins/debug.lua | 64 ++++++++++++---------------- 11 files changed, 189 insertions(+), 101 deletions(-) create mode 100644 lua/custom/plugins/autoclose.lua create mode 100644 lua/custom/plugins/barbecue.lua create mode 100644 lua/custom/plugins/harpoon.lua delete mode 100644 lua/custom/plugins/in-and-out.lua create mode 100644 lua/custom/plugins/neoclip.lua create mode 100644 lua/custom/plugins/neogit.lua create mode 100644 lua/custom/plugins/noice.lua create mode 100644 lua/custom/plugins/workspace.lua diff --git a/init.lua b/init.lua index 35e18e5c..cb088acd 100644 --- a/init.lua +++ b/init.lua @@ -85,6 +85,9 @@ vim.o.confirm = true -- Clear highlights on search when pressing in normal mode -- See `:help hlsearch` +-- Spell checking +vim.opt.spell = true + vim.keymap.set('n', '', 'nohlsearch') -- Diagnostic keymaps @@ -121,6 +124,8 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` +-- Save on upper W +vim.api.nvim_create_user_command('W', 'w', {}) -- Highlight when yanking (copying) text -- Try it with `yap` in normal mode @@ -214,6 +219,7 @@ require('lazy').setup({ { -- Useful plugin to show you pending keybinds. 'folke/which-key.nvim', + version = '2.1.0', event = 'VimEnter', -- Sets the loading event to 'VimEnter' opts = { -- delay between pressing a key and opening which-key (milliseconds) @@ -687,6 +693,7 @@ require('lazy').setup({ -- -- You can use 'stop_after_first' to run the first available formatter from the list -- javascript = { "prettierd", "prettier", stop_after_first = true }, + json = { { 'prettier' } }, javascript = { { 'prettier' } }, typescript = { { 'prettier' } }, }, diff --git a/lua/custom/plugins/autoclose.lua b/lua/custom/plugins/autoclose.lua new file mode 100644 index 00000000..e7ce3b4e --- /dev/null +++ b/lua/custom/plugins/autoclose.lua @@ -0,0 +1,8 @@ +return { + { + 'm4xshen/autoclose.nvim', + config = function() + require('autoclose').setup() + end, + }, +} diff --git a/lua/custom/plugins/barbecue.lua b/lua/custom/plugins/barbecue.lua new file mode 100644 index 00000000..49a3f9b2 --- /dev/null +++ b/lua/custom/plugins/barbecue.lua @@ -0,0 +1,12 @@ +return { + { + 'utilyre/barbecue.nvim', + name = 'barbecue', + version = '*', + dependencies = { + 'SmiteshP/nvim-navic', + 'nvim-tree/nvim-web-devicons', + }, + opts = {}, + }, +} diff --git a/lua/custom/plugins/harpoon.lua b/lua/custom/plugins/harpoon.lua new file mode 100644 index 00000000..8ecb2cec --- /dev/null +++ b/lua/custom/plugins/harpoon.lua @@ -0,0 +1,58 @@ +return { + { + 'ThePrimeagen/harpoon', + branch = 'harpoon2', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local harpoon = require 'harpoon' + harpoon:setup {} + + vim.keymap.set('n', 'a', function() + harpoon:list():add() + end, { desc = 'Harpoon add' }) + + local function toggle_telescope(harpoon_files) + local finder = function() + local paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(paths, item.value) + end + + return require('telescope.finders').new_table { + results = paths, + } + end + + require('telescope.pickers') + .new({}, { + prompt_title = 'Harpoon', + finder = finder(), + previewer = false, + sorter = require('telescope.config').values.generic_sorter {}, + layout_config = { + height = 0.4, + width = 0.5, + prompt_position = 'top', + preview_cutoff = 120, + }, + attach_mappings = function(prompt_bufnr, map) + map('i', '', function() + local state = require 'telescope.actions.state' + local selected_entry = state.get_selected_entry() + local current_picker = state.get_current_picker(prompt_bufnr) + + table.remove(harpoon_files.items, selected_entry.index) + current_picker:refresh(finder()) + end) + return true + end, + }) + :find() + end + + vim.keymap.set('n', 'sm', function() + toggle_telescope(harpoon:list()) + end, { desc = 'Harpon list' }) + end, + }, +} diff --git a/lua/custom/plugins/in-and-out.lua b/lua/custom/plugins/in-and-out.lua deleted file mode 100644 index ab275c8d..00000000 --- a/lua/custom/plugins/in-and-out.lua +++ /dev/null @@ -1,10 +0,0 @@ -return { - { - 'ysmb-wtsg/in-and-out.nvim', - config = function() - vim.keymap.set('i', '', function() - require('in-and-out').in_and_out() - end) - end, - }, -} diff --git a/lua/custom/plugins/jester.lua b/lua/custom/plugins/jester.lua index 1988acce..adc8ed3c 100644 --- a/lua/custom/plugins/jester.lua +++ b/lua/custom/plugins/jester.lua @@ -7,66 +7,28 @@ return { j = { name = '[J]ester', s = { - function() - jester.run() - end, - '[S]ingle test', + name = '[S]ingle test', }, f = { - function() - jester.run_file() - end, - '[F]ile test', + name = '[F]ile test', }, - -- s = { - -- name = '[S]ingle test', - -- r = { - -- function() - -- jester.run() - -- end, - -- '[R]un', - -- }, - -- d = { - -- function() - -- jester.debug() - -- end, - -- '[D]ebug', - -- }, - -- ['1'] = 'which_key_ignore', - -- }, - -- f = { - -- name = '[F]ile test', - -- r = { - -- function() - -- jester.run_file() - -- end, - -- '[R]un', - -- }, - -- d = { - -- function() - -- jester.debug_file() - -- end, - -- '[D]ebug', - -- }, - -- ['1'] = 'which_key_ignore', - -- }, ['1'] = 'which_key_ignore', }, }, { prefix = '' }) jester.setup { - cmd = "npm t -- -t '$result' $file", -- run command - identifiers = { 'test', 'it' }, -- used to identify tests - prepend = { 'describe' }, -- prepend describe blocks - expressions = { 'call_expression' }, -- tree-sitter object used to scan for tests/describe blocks - path_to_jest_run = 'jest', -- used to run tests - path_to_jest_debug = './node_modules/.bin/jest', -- used for debugging - terminal_cmd = ':vsplit | terminal', -- used to spawn a terminal for running tests, for debugging refer to nvim-dap's config - dap = { -- debug adapter configuration - type = 'node2', + cmd = "npm t -- -t '$result' $file", + identifiers = { 'test', 'it' }, + prepend = { 'describe' }, + expressions = { 'call_expression' }, + path_to_jest_run = 'jest', + path_to_jest_debug = './node_modules/.bin/jest', + terminal_cmd = ':vsplit | terminal', + dap = { + type = 'pwa-node', request = 'launch', cwd = vim.fn.getcwd(), - runtimeArgs = { '--inspect-brk', '$path_to_jest', '--no-coverage', '-t', '$result', '--', '$file' }, + runtimeArgs = { '--inspect-brk', '~/n/bin/npm', 't', '--', '--no-coverage', '-t', '$result', '--', '$file' }, args = { '--no-cache' }, sourceMaps = false, protocol = 'inspector', @@ -77,10 +39,10 @@ return { }, } - vim.keymap.set('n', 'js', jester.run, { desc = 'Single test Run' }) - -- vim.keymap.set('n', 'jsd', jester.debug, { desc = 'Single test debug' }) - vim.keymap.set('n', 'jf', jester.run, { desc = 'File test Run' }) - -- vim.keymap.set('n', 'jfd', jester.debug, { desc = 'File test debug' }) + vim.keymap.set('n', 'jsr', jester.run, { desc = 'Single test Run' }) + vim.keymap.set('n', 'jsd', jester.debug, { desc = 'Single test debug' }) + vim.keymap.set('n', 'jfr', jester.run, { desc = 'File test Run' }) + vim.keymap.set('n', 'jfd', jester.debug, { desc = 'File test debug' }) end, }, } diff --git a/lua/custom/plugins/neoclip.lua b/lua/custom/plugins/neoclip.lua new file mode 100644 index 00000000..dcdeccb9 --- /dev/null +++ b/lua/custom/plugins/neoclip.lua @@ -0,0 +1,13 @@ +return { + { + 'AckslD/nvim-neoclip.lua', + dependencies = { + { 'nvim-telescope/telescope.nvim' }, + }, + config = function() + require('neoclip').setup() + + vim.keymap.set('n', 'sv', ':Telescope neoclip', { desc = 'Yank history' }) + end, + }, +} diff --git a/lua/custom/plugins/neogit.lua b/lua/custom/plugins/neogit.lua new file mode 100644 index 00000000..ddb0d43d --- /dev/null +++ b/lua/custom/plugins/neogit.lua @@ -0,0 +1,17 @@ +return { + { + 'NeogitOrg/neogit', + tag = 'v0.0.1', + dependencies = { + 'nvim-lua/plenary.nvim', + 'sindrets/diffview.nvim', + 'nvim-telescope/telescope.nvim', + }, + opts = { + integrations = { + telescope = true, + diffview = true, + }, + }, + }, +} diff --git a/lua/custom/plugins/noice.lua b/lua/custom/plugins/noice.lua new file mode 100644 index 00000000..aac0ff60 --- /dev/null +++ b/lua/custom/plugins/noice.lua @@ -0,0 +1,15 @@ +return { + { + 'folke/noice.nvim', + event = 'VeryLazy', + opts = { + messages = { + enabled = false, + }, + }, + dependencies = { + 'MunifTanjim/nui.nvim', + 'rcarriga/nvim-notify', + }, + }, +} diff --git a/lua/custom/plugins/workspace.lua b/lua/custom/plugins/workspace.lua new file mode 100644 index 00000000..72515c36 --- /dev/null +++ b/lua/custom/plugins/workspace.lua @@ -0,0 +1,16 @@ +return { + { + 'KrzysiekWyka/workspace.nvim', + dependencies = { 'nvim-telescope/telescope.nvim' }, + config = function() + require('workspace').setup { + workspaces = { + { name = 'Work', path = '~/development/nodejs/work', keymap = { 'w' } }, + }, + } + + local workspace = require 'workspace' + vim.keymap.set('n', 'ps', workspace.tmux_sessions) + end, + }, +} diff --git a/lua/kickstart/plugins/debug.lua b/lua/kickstart/plugins/debug.lua index 04214000..2e8d06c1 100644 --- a/lua/kickstart/plugins/debug.lua +++ b/lua/kickstart/plugins/debug.lua @@ -99,9 +99,13 @@ return { ensure_installed = { -- Update this to ensure that you have the debuggers for the langs you want 'delve', + 'js', }, } + -- Read .vscode/launch.json + require('dap.ext.vscode').load_launchjs(nil, {}) + -- Basic debugging keymaps, feel free to change to your liking! vim.keymap.set('n', '', dap.continue, { desc = 'Debug: Start/Continue' }) vim.keymap.set('n', '', dap.step_into, { desc = 'Debug: Step Into' }) @@ -153,48 +157,34 @@ return { dap.listeners.before.event_terminated['dapui_config'] = dapui.close dap.listeners.before.event_exited['dapui_config'] = dapui.close - require('dap-vscode-js').setup { - -- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node" - debugger_path = vim.fn.stdpath 'data' .. '/lazy/vscode-js-debug', - -- debugger_cmd = { "extension" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`. - adapters = { 'pwa-node', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost', 'node' }, -- which adapters to register in nvim-dap - -- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging - -- log_file_level = false -- Logging level for output to file. Set to false to disable file logging. - -- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output. + dap.adapters['pwa-node'] = { + type = 'server', + host = '::1', + port = '${port}', + executable = { + command = 'js-debug-adapter', + args = { '${port}' }, + }, } local js_based_languages = { 'typescript', 'javascript' } for _, language in ipairs(js_based_languages) do - require('dap').configurations[language] = { - { - type = 'pwa-node', - request = 'launch', - name = 'Launch file', - program = '${file}', - cwd = '${workspaceFolder}', - }, - { - type = 'pwa-node', - request = 'attach', - name = 'Attach', - processId = require('dap.utils').pick_process, - cwd = '${workspaceFolder}', - }, - { - type = 'pwa-node', - request = 'launch', - name = 'Debug Jest Tests', - env = { NODE_OPTIONS = '--experimental-vm-modules', ENV = 'test' }, - runtimeExecutable = 'node', - runtimeArgs = { - './node_modules/jest/bin/jest.js', - }, - rootPath = '${workspaceFolder}', - cwd = '${workspaceFolder}', - console = 'integratedTerminal', - internalConsoleOptions = 'neverOpen', - }, + dap.configurations[language] = { + -- { + -- type = 'pwa-node', + -- request = 'launch', + -- name = 'Launch file', + -- program = '${file}', + -- cwd = '${workspaceFolder}', + -- }, + -- { + -- type = 'pwa-node', + -- request = 'attach', + -- name = 'Attach', + -- processId = require('dap.utils').pick_process, + -- cwd = '${workspaceFolder}', + -- } } end end,