neovim

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

commit a6f0038b149bd50c8fc481b3f2bbe4171a2643cf
parent 67a4cac14345f35642b91a9ee544a2dd5fbad9d3
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Tue, 12 Apr 2022 22:05:01 +0200

feat: move all plugin setup to after folder

Diffstat:
Aafter/plugin/actions.lua | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aafter/plugin/aerial.lua | 12++++++++++++
Aafter/plugin/bqf.lua | 9+++++++++
Aafter/plugin/comment.lua | 19+++++++++++++++++++
Aafter/plugin/dap.lua | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aafter/plugin/gitsigns.lua | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Mafter/plugin/luasnip.lua | 57+++++++++++++++++++++++++++++----------------------------
Aafter/plugin/neorg.lua | 26++++++++++++++++++++++++++
Aafter/plugin/nulls.lua | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aafter/plugin/refactoring.lua | 12++++++++++++
Aafter/plugin/rest-nvim.lua | 6++++++
Aafter/plugin/sidebar.lua | 16++++++++++++++++
Aafter/plugin/spectre.lua | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aafter/plugin/telescope.lua | 23+++++++++++++++++++++++
Aafter/plugin/treesitter.lua | 104+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mftplugin/dart.lua | 4++--
Minit.lua | 129+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mlua/tms/lsp/init.lua | 27+++++++++++++++++++--------
Mlua/tms/lsp/servers.lua | 106+++++++++++++++++++++++++------------------------------------------------------
Dlua/tms/p/actions/init.lua | 64----------------------------------------------------------------
Dlua/tms/p/actions/predicates.lua | 29-----------------------------
Dlua/tms/p/aerial.lua | 19-------------------
Dlua/tms/p/bqf.lua | 11-----------
Dlua/tms/p/dap.lua | 68--------------------------------------------------------------------
Dlua/tms/p/gitsigns.lua | 55-------------------------------------------------------
Dlua/tms/p/neorg.lua | 28----------------------------
Dlua/tms/p/nullls.lua | 59-----------------------------------------------------------
Dlua/tms/p/refactoring.lua | 13-------------
Dlua/tms/p/sidebar/init.lua | 18------------------
Dlua/tms/p/spectre.lua | 60------------------------------------------------------------
Mlua/tms/p/telescope.lua | 47+++++++++++++++++------------------------------
Dlua/tms/p/treesitter.lua | 82-------------------------------------------------------------------------------
Mlua/tms/plugins.lua | 286+++++++++++++++++++++++++++++--------------------------------------------------
33 files changed, 799 insertions(+), 895 deletions(-)

diff --git a/after/plugin/actions.lua b/after/plugin/actions.lua @@ -0,0 +1,54 @@ +if not pcall(require, 'actions') then return end + +local utils = require 'actions.utils' + +local actions = {} +local mappings = { ['n <leader>dr'] = 'run', ['n <leader>dt'] = 'test', ['n <leader>db'] = 'build' } + +local function make(_) vim.cmd [[make]] end + +local add = function(action) table.insert(actions, action) end + +local add_lang = function(lang, a) add { predicate = utils.make_language_predicate(lang), actions = a } end + +add_lang('dart', { + run = make, + build = function(_) -- analyze + require('tms.ft.dart.analyze').qf2103() + end, +}) + +add_lang('lua', { run = make }) + +add_lang('go', { + run = function(_) + vim.cmd [[set makeprg=go\ run\ %]] + vim.cmd [[make]] + vim.cmd [[comp go]] + end, + test = function(_) + vim.cmd [[set makeprg=go\ test]] + vim.cmd [[make]] + vim.cmd [[comp go]] + end, + build = make, +}) + +add_lang('zsh', { + run = function(_) + vim.cmd [[set makeprg=./%]] + vim.cmd [[set efm=%f:%.%#:%l:\ %m,%f:%l:\ %m,%-G%.%#]] + vim.cmd [[make]] + vim.cmd [[comp zsh]] + end, + build = make, +}) + +add_lang('gdscript', { + run = function(_) vim.cmd [[GodotRun]] end, build = function(_) vim.api.nvim_input(':GodotRun ') end +}) + +add_lang('sh', { run = make }) + +actions.mappings = mappings +require('actions'):setup(actions) diff --git a/after/plugin/aerial.lua b/after/plugin/aerial.lua @@ -0,0 +1,12 @@ +if not pcall(require, 'aerial') then return end + +local aerial = require('aerial') +aerial.setup({}) + +require('tms.lsp').add_attach({ + fn = function(client, bufnr) aerial.on_attach(client, bufnr) end, +}) + +require('telescope').load_extension('aerial') +vim.keymap.set('n', '<space>r', require('tms.p.telescope').aerial, + { noremap = true }) diff --git a/after/plugin/bqf.lua b/after/plugin/bqf.lua @@ -0,0 +1,9 @@ +if not pcall(require, 'bqf') then + return +end + +require('bqf').setup { + auto_enable = true, + auto_resize_height = false, + preview = { auto_preview = true }, +} diff --git a/after/plugin/comment.lua b/after/plugin/comment.lua @@ -0,0 +1,19 @@ +if not pcall(require, 'Comment') then return end + +require('Comment').setup({ + ignore = '^$', + pre_hook = function(ctx) + -- Only calculate commentstring for tsx filetypes + local U = require('Comment.utils') + -- Detemine whether to use linewise or blockwise commentstring + local type = ctx.ctype == U.ctype.line and '__default' or '__multiline' + -- Determine the location where to calculate commentstring from + local location = nil + if ctx.ctype == U.ctype.block then + location = require('ts_context_commentstring.utils').get_cursor_location() + elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then + location = require('ts_context_commentstring.utils').get_visual_start_location() + end + return require('ts_context_commentstring.internal').calculate_commentstring({ key = type, location = location }) + end, +}) diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua @@ -0,0 +1,79 @@ +if not pcall(require, 'dap') then return end + +local cpp = function(dap) + dap.adapters.cpp = { + type = 'executable', + attach = { pidProperty = 'pid', pidSelect = 'ask' }, + command = 'lldb', -- my binary was called 'lldb-vscode-11' + env = { LLDB_LAUNCH_FLAG_LAUNCH_IN_TTY = 'YES' }, + name = 'lldb', + } + + dap.configurations.cpp = { + { + type = 'cpp', + request = 'launch', + name = 'Launch File', + program = '${file}', + }, + } +end + +local dart = function(dap) + dap.defaults.fallback.external_terminal = { + command = '/usr/bin/alacritty', + args = { '-e' }, + } + + dap.adapters.dart = { + type = 'executable', + command = 'node', + args = { + os.getenv('HOME') .. '/downloads/Dart-Code/out/dist/debug.js', + 'dart', + }, + } + + dap.configurations.dart = { + { + type = 'dart', + request = 'launch', + name = 'Launch File', + dartSdkPath = os.getenv('HOME') .. '/.local/lib/dart/stable/', + -- flutterSdkPath = os.getenv('HOME') .. "/flutter", + program = '${file}', + cwd = '${workspaceFolder}', + }, + } +end + +local function lua(dap) + dap.configurations.lua = { + { + type = 'nlua', + request = 'attach', + name = 'Attach to running Neovim instance', + host = function() + local value = vim.fn.input('Host [127.0.0.1]: ') + if value ~= '' then return value end + return '127.0.0.1' + end, + port = function() + local val = tonumber(vim.fn.input('Port: ')) + assert(val, 'Please provide a port number') + return val + end, + }, + } + + dap.adapters.nlua = function(callback, config) + callback({ type = 'server', host = config.host, port = config.port }) + end +end + +local dap = require('dap') +-- cpp(dap) +-- dart(dap) +lua(dap) + +if pcall(require, 'dapui') then require('dapui').setup() end diff --git a/after/plugin/gitsigns.lua b/after/plugin/gitsigns.lua @@ -0,0 +1,52 @@ +if not pcall(require, 'gitsigns') then return end + +local get_theme = function() + local dark_theme = { add = '│', change = '│', delete = '│', topdelete = '‾', changedel = '│' } + local light_theme = { add = ' ', change = ' ', delete = ' ', topdelete = ' ', changedel = ' ' } + local theme = dark_theme + if vim.opt.background:get() == 'light' then theme = light_theme end + return theme +end + +local theme = get_theme() +require('gitsigns').setup { + signs = { + add = { + hl = 'GitSignsAdd', + text = theme.add, + -- text = ' ', + numhl = 'GitSignsAddNr', + linehl = 'GitSignsAddLn', + }, + change = { + hl = 'GitSignsChange', + text = theme.change, + -- text = ' ', + numhl = 'GitSignsChangeNr', + linehl = 'GitSignsChangeLn', + }, + delete = { + hl = 'GitSignsDelete', + text = theme.delete, + -- text = ' ', + numhl = 'GitSignsDeleteNr', + linehl = 'GitSignsDeleteLn', + }, + topdelete = { + hl = 'GitSignsDelete', + text = theme.topdelete, + -- text = ' ', + numhl = 'GitSignsDeleteNr', + linehl = 'GitSignsDeleteLn', + }, + changedelete = { + hl = 'GitSignsChange', + text = theme.changedel, + -- text = ' ', + numhl = 'GitSignsChangeNr', + linehl = 'GitSignsChangeLn', + }, + }, + keymaps = {}, +} + diff --git a/after/plugin/luasnip.lua b/after/plugin/luasnip.lua @@ -1,6 +1,4 @@ -if not pcall(require, 'luasnip') then - return -end +if not pcall(require, 'luasnip') then return end local ls = require('luasnip') local types = require('luasnip.util.types') @@ -10,19 +8,20 @@ ls.config.set_config({ updateevents = 'TextChanged,TextChangedI', ext_opts = { [types.choiceNode] = { - active = { - virt_text = { - { '<- choice', 'Comment' }, - }, - }, + active = { virt_text = { { '<- choice', 'Comment' } } }, }, }, }) local opts = { silent = true } -vim.keymap.set({ 'i', 's' }, '<c-l>', function() if ls.expand_or_jumpable() then ls.expand_or_jump() end end, opts) -vim.keymap.set({ 'i', 's' }, '<c-h>', function() if ls.jumpable(-1) then ls.jump(-1) end end, opts) -vim.keymap.set({ 'i' }, '<c-e>', function() if ls.choice_active() then ls.change_choice(1) end end, opts) +vim.keymap.set({ 'i', 's' }, '<c-l>', function() + if ls.expand_or_jumpable() then ls.expand_or_jump() end +end, opts) +vim.keymap.set({ 'i', 's' }, '<c-h>', + function() if ls.jumpable(-1) then ls.jump(-1) end end, opts) +vim.keymap.set({ 'i' }, '<c-e>', function() + if ls.choice_active() then ls.change_choice(1) end +end, opts) vim.keymap.set({ 'i' }, '<c-u>', require('luasnip.extras.select_choice'), opts) local s = ls.snippet @@ -34,44 +33,48 @@ local f = ls.function_node local c = ls.choice_node local d = ls.dynamic_node local r = ls.restore_node -local events = require("luasnip.util.events") -local ai = require("luasnip.nodes.absolute_indexer") +local events = require('luasnip.util.events') +local ai = require('luasnip.nodes.absolute_indexer') local p = require('luasnip.extras').partial local rep = require('luasnip.extras').rep local fmt = require('luasnip.extras.fmt').fmt -local function shell(_, _, command) - local file = io.popen(command, 'r') - local res = {} - for line in file:lines() do table.insert(res, line) end - return res +local shell = function(command) + return function() + local file = io.popen(command, 'r') + local res = {} + for line in file:lines() do table.insert(res, line) end + return res[1] + end +end +local cmt = function() + return require('luasnip.util.util').buffer_comment_chars()[1] end ls.cleanup() -ls.add_snippets("all", { +ls.add_snippets('all', { s('bang', t('#!/usr/bin/env ')), s('date', p(os.date, '%d.%m.%Y')), s('time', p(os.date, '%H:%M:%S')), s('todo', { - f(function(_, _, _) return require('luasnip.util.util').buffer_comment_chars()[1] end, {}), + f(cmt), t(' TODO('), - f(shell, {}, 'id -un'), + f(shell('id -un')), t(') '), p(os.date, '%d.%m.%y'), t(': '), }), }) -ls.add_snippets("lua", { +ls.add_snippets('lua', { s('f', fmt('function() {} end', { i(1) })), s('r', fmt('require(\'{}\')', { i(1) })), s('l', fmt('local {} = {}', { i(1), i(2) })), s('lr', fmt('local {} = require(\'{}\')', { i(1), rep(1) })), }) - -ls.add_snippets("dart", { +ls.add_snippets('dart', { s('s', fmt('String {}{}', { i(1), i(2, ';') })), s('sn', fmt('String? {}{}', { i(1), i(2, ';') })), s('i', fmt('int {}{}', { i(1), i(2, ';') })), @@ -91,7 +94,7 @@ ls.add_snippets("dart", { }) -- Angular -ls.add_snippets("html", { +ls.add_snippets('html', { s('if', fmt('*ngIf="{}"', { i(1) })), s('nf', fmt('*ngFor="let {} of {}"', { i(1), i(2) })), s('nfi', fmt('*ngFor="let {} of {}; let i=index"', { i(1), i(2) })), @@ -100,6 +103,4 @@ ls.add_snippets("html", { s('nb', fmt('[({})]="{}"', { i(1), i(2) })), }) -ls.add_snippets("scss", { - s('v', fmt('var(--{})', { i(1) })) -}) +ls.add_snippets('scss', { s('v', fmt('var(--{})', { i(1) })) }) diff --git a/after/plugin/neorg.lua b/after/plugin/neorg.lua @@ -0,0 +1,26 @@ +if not pcall(require, 'neorg') then return end + +require('neorg').setup({ + -- Tell Neorg what modules to load + load = { + ['core.integrations.treesitter'] = {}, + ['core.mode'] = {}, + ['core.norg.news'] = {}, -- Handles the displaying of Neorg news and other forms of media in a popup. + ['core.norg.qol.todo_items'] = {}, + ['core.norg.esupports'] = {}, + ['core.norg.esupports.metagen'] = {}, + ['core.norg.esupports.hop'] = {}, + ['core.norg.manoeuvre'] = {}, + ['core.neorgcmd'] = {}, + ['core.autocommands'] = {}, + -- ['core.norg.concealer'] = {}, -- Allows for use of icons + ['core.norg.dirman'] = { -- Manage your directories with Neorg + config = { workspaces = { my = '~/neorg' } }, + }, + ['core.gtd.base'] = {}, -- todo + ['core.norg.completion'] = { config = { engine = 'nvim-cmp' } }, + ['core.keybinds'] = { + config = { default_keybinds = true, neorg_leader = '<Leader>o' }, + }, + }, +}) diff --git a/after/plugin/nulls.lua b/after/plugin/nulls.lua @@ -0,0 +1,58 @@ +if not pcall(require, 'null-ls') then return end + +local null_ls = require('null-ls') +local h = require('null-ls.helpers') +local builtins = null_ls.builtins + +local zsh_diag = function() + return { + name = 'zsh check', + method = null_ls.methods.DIAGNOSTICS, + filetypes = { 'zsh' }, + update_on_insert = true, + generator = null_ls.generator({ + command = 'zsh', + args = { '-n', '$FILENAME' }, + format = 'line', + check_exit_code = function(code) return code <= 1 end, + from_stderr = true, + to_stdin = true, + on_output = h.diagnostics.from_patterns({ + { pattern = [[%w+:(%d+): (.*)]], groups = { 'row', 'message' } }, + }), + }), + } +end + +null_ls.setup({ + on_attach = function(client, bufnr) + if client.resolved_capabilities.document_formatting == true then + -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') + vim.keymap.set('n', 'Q', vim.lsp.buf.formatting, + { silent = true, buffer = bufnr, noremap = true }) + vim.keymap.set('v', 'Q', vim.lsp.buf.range_formatting, + { silent = true, buffer = bufnr, noremap = true }) + end + end, + sources = { + -- formatting + builtins.formatting.prettier.with { + filetypes = { 'html', 'yaml', 'markdown', 'css', 'scss' }, + args = h.range_formatting_args_factory({ + '--parser', + vim.api.nvim_buf_get_option(0, 'filetype'), + '--stdin-filepath', + '$FILENAME', + }, '--range-start', '--range-end'), + }, + builtins.formatting.lua_format, + -- builtins.formatting.clang_format, + builtins.formatting.shfmt.with { + filetypes = { 'sh', 'zsh' }, + args = { '-i', vim.opt.shiftwidth:get(), '-filename', '$FILENAME' }, + }, + -- diagnostic + builtins.diagnostics.shellcheck, + zsh_diag(), + }, +}) diff --git a/after/plugin/refactoring.lua b/after/plugin/refactoring.lua @@ -0,0 +1,12 @@ +if not pcall(require, 'refactoring') then return end +local refactor = require('refactoring') +refactor.setup({}) +vim.keymap.set('n', '<leader>re', + require('refactoring').refactor('Extract Function'), + { silent = true, noremap = true }) +vim.keymap.set('v', '<leader>rf', + require('refactoring').refactor('Extract Function To File'), + { silent = true, noremap = true }) +vim.keymap.set('n', '<leader>rv', + require('refactoring').refactor('Extract Variable'), + { silent = true, noremap = true }) diff --git a/after/plugin/rest-nvim.lua b/after/plugin/rest-nvim.lua @@ -0,0 +1,6 @@ +if not pcall(require, 'rest-nvim') then return end + +require('rest-nvim').setup() +vim.api.nvim_create_user_command('Rest', function() require('rest-nvim').run(false) end, {}) +vim.api.nvim_create_user_command('RestPreview', function() require('rest-nvim').run(true) end, {}) +vim.api.nvim_create_user_command('RestLast', require('rest-nvim').last, {}) diff --git a/after/plugin/sidebar.lua b/after/plugin/sidebar.lua @@ -0,0 +1,16 @@ +if not pcall(require, 'sidebar-nvim') then + return +end + +local files = require('tms.p.sidebar.files') +local gitlab = require('tms.p.sidebar.gitlab') + +require('sidebar-nvim').setup({ + initial_width = 40, + hide_statusline = true, + sections = { files.section, 'diagnostics', gitlab.section }, + disable_closing_prompt = true, +}) + +vim.keymap.set('n', '<space>s', '<cmd>SidebarNvimToggle<cr>', { noremap = true }) +vim.keymap.set('n', '<space>S', '<cmd>SidebarNvimFocus<cr>', { noremap = true }) diff --git a/after/plugin/spectre.lua b/after/plugin/spectre.lua @@ -0,0 +1,62 @@ +if not pcall(require, 'spectre') then + return +end + +vim.keymap.set('n', '<leader>S', function() require('spectre').open() end, { noremap = true }) +vim.keymap.set('v', '<leader>s', function() require('spectre').open_visual() end, { noremap = true }) + +require('spectre').setup({ + mapping = { + ['toggle_line'] = { + map = 'gd', + cmd = '<cmd>lua require(\'spectre\').toggle_line()<CR>', + desc = 'toggle current item', + }, + ['enter_file'] = { + map = '<cr>', + cmd = '<cmd>lua require(\'spectre.actions\').select_entry()<CR>', + desc = 'goto current file', + }, + ['send_to_qf'] = { + map = 'gq', + cmd = '<cmd>lua require(\'spectre.actions\').send_to_qf()<CR>', + desc = 'send all item to quickfix', + }, + ['replace_cmd'] = { + map = 'gc', + cmd = '<cmd>lua require(\'spectre.actions\').replace_cmd()<CR>', + desc = 'input replace vim command', + }, + ['show_option_menu'] = { + map = 'go', + cmd = '<cmd>lua require(\'spectre\').show_options()<CR>', + desc = 'show option', + }, + ['run_replace'] = { + map = 'gR', + cmd = '<cmd>lua require(\'spectre.actions\').run_replace()<CR>', + desc = 'replace all', + }, + ['change_view_mode'] = { + map = 'tt', + cmd = '<cmd>lua require(\'spectre\').change_view()<CR>', + desc = 'change result view mode', + }, + ['toggle_live_update'] = { + map = 'tu', + cmd = '<cmd>lua require(\'spectre\').toggle_live_update()<CR>', + desc = 'update change when vim write file.', + }, + ['toggle_ignore_case'] = { + map = 'ti', + cmd = '<cmd>lua require(\'spectre\').change_options(\'ignore-case\')<CR>', + desc = 'toggle ignore case', + }, + ['toggle_ignore_hidden'] = { + map = 'th', + cmd = '<cmd>lua require(\'spectre\').change_options(\'hidden\')<CR>', + desc = 'toggle search hidden', + }, + -- you can put your mapping here it only use normal mode + }, +}) diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua @@ -0,0 +1,23 @@ +if not pcall(require, 'telescope') then return end + +local actions = require('telescope.actions') +local action_generate = require('telescope.actions.generate') + +require('telescope').setup { + defaults = { + mappings = { + i = { + ['<esc>'] = actions.close, + ['<c-?>'] = action_generate.which_key({ + name_width = 20, -- typically leads to smaller floats + max_height = 0.5, -- increase potential maximum height + seperator = ' > ', -- change sep between mode, keybind, and name + close_with_action = false, -- do not close float on action + }), + }, + }, + }, + extensions = { + fzy_native = { override_generic_sorter = false, override_file_sorter = true }, + }, +} diff --git a/after/plugin/treesitter.lua b/after/plugin/treesitter.lua @@ -0,0 +1,104 @@ +if not pcall(require, 'nvim-treesitter') then return end + +local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() + +parser_configs.http = { + install_info = { + url = 'https://github.com/NTBBloodbath/tree-sitter-http', + files = { 'src/parser.c' }, + branch = 'main', + }, +} + +parser_configs.norg = { + install_info = { + url = 'https://github.com/nvim-neorg/tree-sitter-norg', + files = { 'src/parser.c', 'src/scanner.cc' }, + branch = 'main', + }, +} + +parser_configs.norg_meta = { + install_info = { + url = 'https://github.com/nvim-neorg/tree-sitter-norg-meta', + files = { 'src/parser.c' }, + branch = 'main', + }, +} + +parser_configs.norg_table = { + install_info = { + url = 'https://github.com/nvim-neorg/tree-sitter-norg-table', + files = { 'src/parser.c' }, + branch = 'main', + }, +} + +require'nvim-treesitter.configs'.setup { + ensure_intalled = 'maintained', + highlight = { enable = true --[[ , disable = {'scss'} --]] }, + + indent = { enable = true }, + + refactor = { highlight_definitions = { enable = false } }, + + textobjects = { + enable = true, + select = { + enable = true, + keymaps = { + -- ['ia'] = "@parameter.inner", + -- ['aa'] = "@parameter.outer", + ['af'] = '@function.outer', + ['if'] = '@function.inner', + ['ac'] = '@comment.outer', + ['im'] = '@identifier', + }, + }, + swap = { + enable = true, + swap_next = { + -- [">p"] = "@parameter.inner", + ['>m'] = '@function.outer', + }, + swap_previous = { + -- ["<p"] = "@parameter.inner", + ['<m'] = '@function.outer', + }, + }, + move = { + enable = true, + goto_next_start = { [']]'] = '@function.outer', [']c'] = '@class.outer' }, + goto_next_end = { [']['] = '@function.inner', [']C'] = '@class.outer' }, + goto_previous_start = { + ['[['] = '@function.outer', + ['[c'] = '@class.outer', + }, + goto_previous_end = { ['[]'] = '@function.inner', ['[C'] = '@class.outer' }, + }, + lsp_interop = { + enable = true, + border = 'single', + peek_definition_code = { + ['<leader>sf'] = '@function.outer', + ['<leader>sc'] = '@class.outer', + }, + }, + }, + + playground = { + enable = true, + disable = {}, + updatetime = 25, + persist_queries = false, + }, + context_commentstring = { + enable = true, + enable_autocmd = false, + config = { scss = '// %s' }, + }, +} + +vim.api + .nvim_create_user_command('TSHRefresh', 'write|TSBufEnable highlight', {}) +vim.keymap.set('n', '<leader>su', '<cmd>TSHRefresh<cr>', { noremap = true }) diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua @@ -1,7 +1,7 @@ vim.g.dart_style_guide = 2 vim.g.dart_html_in_string = true -local opts = {buffer = true} +local opts = { buffer = nil } -- vim.cmd [[command! -buffer DartAnalyzer lua require('tms.ft.dart.analyze').qf2131()]] vim.api.nvim_create_user_command('DartDebug', require('tms.ft.dart.debug').func, opts) vim.api.nvim_create_user_command('DartPrint', require('tms.ft.dart.debug').print, opts) @@ -9,7 +9,7 @@ vim.api.nvim_create_user_command('DartOrganizeImports', require('tms.ft.dart.lsp vim.api.nvim_create_user_command('DartFixAll', require('tms.ft.dart.lsp').fix_all, opts) vim.api.nvim_create_user_command('DartExtract', require('tms.ft.dart.lsp').extract, opts) -opts = {buffer = true, noremap = true} +opts = { buffer = true, noremap = true } vim.keymap.set('n', '<leader>pp', function() require('tms.ft.dart.debug').print() end, opts) vim.keymap.set('n', '<leader>pa', function() require('tms.ft.dart.analyze').qf2131() end, opts) vim.keymap.set('n', '<leader>po', function() require('tms.ft.dart.lsp').organize_imports() end, opts) diff --git a/init.lua b/init.lua @@ -20,7 +20,6 @@ require('colorbuddy').colorscheme('my-default') vim.g.loaded_netrw = true vim.g.loaded_netrwPlugin = true - -- OPTIONS -- external vimrc vim.opt.exrc = true @@ -62,8 +61,8 @@ vim.opt.list = false vim.opt.laststatus = 3 vim.opt.statusline = ' ' vim.opt.ruler = false -vim.opt.listchars = {space = '·', tab = '» ', extends = '›', precedes = '‹', nbsp = '_', trail = '_', eol = '$'} -vim.opt.fillchars = {eob = '•', fold = ' '} +vim.opt.listchars = { space = '·', tab = '» ', extends = '›', precedes = '‹', nbsp = '_', trail = '_', eol = '$' } +vim.opt.fillchars = { eob = '•', fold = ' ' } vim.opt.number = false vim.opt.scrolloff = 5 vim.opt.sidescrolloff = 5 @@ -74,80 +73,80 @@ vim.g.mapleader = ',' -- forget visual vim.keymap.set('n', 'Q', '<nop>') -- kb.nnoremap('<tab>', 'za') -vim.keymap.set('n', '<esc>', '<cmd>nohl<cr>', {silent = true}) -vim.keymap.set('n', 'gA', 'ga', {noremap = true}) -vim.keymap.set('n', 'Y', 'y$', {noremap = true}) -vim.keymap.set('n', 'n', 'nzzzv', {noremap = true}) -vim.keymap.set('n', 'N', 'Nzzzv', {noremap = true}) -vim.keymap.set('n', 'J', 'mzJ`z', {noremap = true}) -vim.keymap.set('i', ',', ',<c-g>u', {noremap = true}) -vim.keymap.set('i', '.', '.<c-g>u', {noremap = true}) -vim.keymap.set('i', '!', '!<c-g>u', {noremap = true}) -vim.keymap.set('i', '?', '?<c-g>u', {noremap = true}) +vim.keymap.set('n', '<esc>', '<cmd>nohl<cr>', { silent = true }) +vim.keymap.set('n', 'gA', 'ga', { noremap = true }) +vim.keymap.set('n', 'Y', 'y$', { noremap = true }) +vim.keymap.set('n', 'n', 'nzzzv', { noremap = true }) +vim.keymap.set('n', 'N', 'Nzzzv', { noremap = true }) +vim.keymap.set('n', 'J', 'mzJ`z', { noremap = true }) +vim.keymap.set('i', ',', ',<c-g>u', { noremap = true }) +vim.keymap.set('i', '.', '.<c-g>u', { noremap = true }) +vim.keymap.set('i', '!', '!<c-g>u', { noremap = true }) +vim.keymap.set('i', '?', '?<c-g>u', { noremap = true }) -- shortcuts -vim.keymap.set('n', '<leader>w', '<cmd>write<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>W', '<cmd>wall<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>e', '<cmd>edit<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>E', ':e %:h/', {noremap = true}) -vim.keymap.set('n', '<leader>q', '<cmd>quit<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>Q', '<cmd>quit!<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>M', '<cmd>messages<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>so', '<cmd>source<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>bo', '<cmd>BufOnly<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>bO', '<cmd>BufOnly!<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>w', '<cmd>write<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>W', '<cmd>wall<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>e', '<cmd>edit<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>E', ':e %:h/', { noremap = true }) +vim.keymap.set('n', '<leader>q', '<cmd>quit<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>Q', '<cmd>quit!<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>M', '<cmd>messages<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>so', '<cmd>source<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>bo', '<cmd>BufOnly<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>bO', '<cmd>BufOnly!<cr>', { noremap = true }) -- window movement -vim.keymap.set('n', '<a-h>', '<c-w>h', {noremap = true}) -vim.keymap.set('n', '<a-j>', '<c-w>j', {noremap = true}) -vim.keymap.set('n', '<a-k>', '<c-w>k', {noremap = true}) -vim.keymap.set('n', '<a-l>', '<c-w>l', {noremap = true}) +vim.keymap.set('n', '<a-h>', '<c-w>h', { noremap = true }) +vim.keymap.set('n', '<a-j>', '<c-w>j', { noremap = true }) +vim.keymap.set('n', '<a-k>', '<c-w>k', { noremap = true }) +vim.keymap.set('n', '<a-l>', '<c-w>l', { noremap = true }) -- window movement in terminal -vim.keymap.set('t', '<a-l>', '<c-\\><c-n><c-w>l', {noremap = true}) -vim.keymap.set('t', '<a-j>', '<c-\\><c-n><c-w>j', {noremap = true}) -vim.keymap.set('t', '<a-k>', '<c-\\><c-n><c-w>k', {noremap = true}) -vim.keymap.set('t', '<a-h>', '<c-\\><c-n><c-w>h', {noremap = true}) -vim.keymap.set('t', '<a-r>', '<c-\\><c-n>', {noremap = true}) +vim.keymap.set('t', '<a-l>', '<c-\\><c-n><c-w>l', { noremap = true }) +vim.keymap.set('t', '<a-j>', '<c-\\><c-n><c-w>j', { noremap = true }) +vim.keymap.set('t', '<a-k>', '<c-\\><c-n><c-w>k', { noremap = true }) +vim.keymap.set('t', '<a-h>', '<c-\\><c-n><c-w>h', { noremap = true }) +vim.keymap.set('t', '<a-r>', '<c-\\><c-n>', { noremap = true }) -- window split -vim.keymap.set('n', '<c-w><c-v>', '<cmd>vnew<cr>', {noremap = true}) -vim.keymap.set('n', '<c-w><c-s>', '<cmd>new<cr>', {noremap = true}) +vim.keymap.set('n', '<c-w><c-v>', '<cmd>vnew<cr>', { noremap = true }) +vim.keymap.set('n', '<c-w><c-s>', '<cmd>new<cr>', { noremap = true }) -- line movement -vim.keymap.set('n', '<c-j>', ':m .+1<cr>==', {noremap = true}) -vim.keymap.set('n', '<c-k>', ':m .-2<cr>==', {noremap = true}) -vim.keymap.set('i', '<c-j>', '<esc>:m .+1<cr>==', {noremap = true}) -vim.keymap.set('i', '<c-k>', '<esc>:m .-2<cr>==', {noremap = true}) -vim.keymap.set('v', '<c-j>', ':m \'>+1<cr>gv=gv', {noremap = true}) -vim.keymap.set('v', '<c-k>', ':m \'<-2<cr>gv=gv', {noremap = true}) +vim.keymap.set('n', '<c-j>', ':m .+1<cr>==', { noremap = true }) +vim.keymap.set('n', '<c-k>', ':m .-2<cr>==', { noremap = true }) +vim.keymap.set('i', '<c-j>', '<esc>:m .+1<cr>==', { noremap = true }) +vim.keymap.set('i', '<c-k>', '<esc>:m .-2<cr>==', { noremap = true }) +vim.keymap.set('v', '<c-j>', ':m \'>+1<cr>gv=gv', { noremap = true }) +vim.keymap.set('v', '<c-k>', ':m \'<-2<cr>gv=gv', { noremap = true }) -- quickfix/loclist -vim.keymap.set('n', '<leader>c', '<cmd>call ToggleList("Quickfix List", "c")<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>C', '<cmd>cexpr []|cclose<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>l', '<cmd>call ToggleList("Location List", "l")<cr>', {noremap = true}) -vim.keymap.set('n', '<leader>L', '<cmd>lexpr []|lclose<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>c', '<cmd>call ToggleList("Quickfix List", "c")<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>C', '<cmd>cexpr []|cclose<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>l', '<cmd>call ToggleList("Location List", "l")<cr>', { noremap = true }) +vim.keymap.set('n', '<leader>L', '<cmd>lexpr []|lclose<cr>', { noremap = true }) -- fold -vim.keymap.set('n', 'zH', 'zM', {noremap = true}) -vim.keymap.set('n', 'zh', 'zm', {noremap = true}) -vim.keymap.set('n', 'zj', 'zo', {noremap = true}) -vim.keymap.set('n', 'zJ', 'zO', {noremap = true}) -vim.keymap.set('n', 'zk', 'zc', {noremap = true}) -vim.keymap.set('n', 'zK', 'zC', {noremap = true}) -vim.keymap.set('n', 'zl', 'zr', {noremap = true}) -vim.keymap.set('n', 'zL', 'zR', {noremap = true}) +vim.keymap.set('n', 'zH', 'zM', { noremap = true }) +vim.keymap.set('n', 'zh', 'zm', { noremap = true }) +vim.keymap.set('n', 'zj', 'zo', { noremap = true }) +vim.keymap.set('n', 'zJ', 'zO', { noremap = true }) +vim.keymap.set('n', 'zk', 'zc', { noremap = true }) +vim.keymap.set('n', 'zK', 'zC', { noremap = true }) +vim.keymap.set('n', 'zl', 'zr', { noremap = true }) +vim.keymap.set('n', 'zL', 'zR', { noremap = true }) -- remap double usage -vim.keymap.set('n', 'y.', 'yy', {noremap = true}) -vim.keymap.set('n', 'z.', 'mmz.`m', {noremap = true}) -vim.keymap.set('n', 'd.', 'dd', {noremap = true}) -vim.keymap.set('n', 'c.', 'cc', {noremap = true}) -vim.keymap.set('n', 'g.', 'gg', {noremap = true}) -vim.keymap.set('n', 'v.', 'V', {noremap = true}) -vim.keymap.set('n', '=.', '==', {noremap = true}) -vim.keymap.set('n', 'gc.', 'gcc', {noremap = true}) +vim.keymap.set('n', 'y.', 'yy', { noremap = true }) +vim.keymap.set('n', 'z.', 'mmz.`m', { noremap = true }) +vim.keymap.set('n', 'd.', 'dd', { noremap = true }) +vim.keymap.set('n', 'c.', 'cc', { noremap = true }) +vim.keymap.set('n', 'g.', 'gg', { noremap = true }) +vim.keymap.set('n', 'v.', 'V', { noremap = true }) +vim.keymap.set('n', '=.', '==', { noremap = true }) +vim.keymap.set('n', 'gc.', 'gcc', { noremap = true }) -- autocommands -vim.api.nvim_create_autocmd('BufEnter', {pattern = 'vifm:*', command = 'startinsert'}) -vim.api.nvim_create_autocmd('WinEnter', {command = 'setlocal cursorline'}) -vim.api.nvim_create_autocmd('WinLeave', {command = 'setlocal nocursorline'}) +vim.api.nvim_create_autocmd('BufEnter', { pattern = 'vifm:*', command = 'startinsert' }) +vim.api.nvim_create_autocmd('WinEnter', { command = 'setlocal cursorline' }) +vim.api.nvim_create_autocmd('WinLeave', { command = 'setlocal nocursorline' }) vim.api.nvim_create_autocmd('TextYankPost', - {pattern = '*', callback = function() require('vim.highlight').on_yank() end}) -vim.api.nvim_create_autocmd('ColorScheme', {callback = function() require('tms.u.reload').colors() end}) + { pattern = '*', callback = function() require('vim.highlight').on_yank() end }) +vim.api.nvim_create_autocmd('ColorScheme', { callback = function() require('tms.u.reload').colors() end }) -- Load plugins vim.cmd [[ packadd cfilter ]] diff --git a/lua/tms/lsp/init.lua b/lua/tms/lsp/init.lua @@ -3,6 +3,12 @@ local servers = require('tms.lsp.servers') local M = {} local keybind = function(client, bufnr) + -- TODO(tms) 11.04.22: handle genericaly for all servers + if (client.name == 'sumneko_lua') then + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.range_formatting = false + end + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { silent = true, buffer = bufnr }) vim.keymap.set('n', 'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', { silent = true, buffer = bufnr }) vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, { silent = true, buffer = bufnr }) @@ -13,7 +19,7 @@ local keybind = function(client, bufnr) vim.keymap.set('n', 'gr', vim.lsp.buf.references, { silent = true, buffer = bufnr }) vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, { silent = true, buffer = bufnr }) vim.keymap.set('n', 'gn', vim.lsp.buf.rename, { silent = true, buffer = bufnr }) - -- Formatting + -- formatting if client.resolved_capabilities.document_formatting == true then vim.keymap.set('n', 'Q', vim.lsp.buf.formatting, { silent = true, buffer = bufnr }) vim.keymap.set('v', 'Q', vim.lsp.buf.range_formatting, { silent = true, buffer = bufnr }) @@ -28,14 +34,18 @@ local attach_callbacks = {} local on_attach = function(client, bufnr) local lsp = vim.lsp - lsp.handlers['textDocument/hover'] = lsp.with(lsp.handlers.hover, { border = 'single' }) - lsp.handlers['textDocument/signatureHelp'] = lsp.with(lsp.handlers.signature_help, { border = 'single' }) + + local hh = lsp.with(lsp.handlers.hover, { border = 'single' }) + lsp.handlers['textDocument/hover'] = hh + + local sh = lsp.with(lsp.handlers.signature_help, { border = 'single' }) + lsp.handlers['textDocument/signatureHelp'] = sh if client.resolved_capabilities.goto_definition then vim.api.nvim_buf_set_option(bufnr, 'tagfunc', 'v:lua.vim.lsp.tagfunc') end - if client.resolved_capabilities.document_formatting then - -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') - end + -- if client.resolved_capabilities.document_formatting then + -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') + -- end for _, cb in ipairs(attach_callbacks) do if cb.test(client, bufnr) then -- cb.fn(client, bufnr) @@ -44,7 +54,7 @@ local on_attach = function(client, bufnr) keybind(client, bufnr) end -local capabilities = function(name) +local capabilities = function() local ok, cnl = pcall(require, 'cmp_nvim_lsp') if ok then return cnl.update_capabilities(vim.lsp.protocol.make_client_capabilities()) @@ -56,7 +66,7 @@ end local server_opts = function(name) local opts = {} opts.on_attach = on_attach - opts.capabilities = capabilities(name) + opts.capabilities = capabilities() opts = servers.setup(name, opts) return opts end @@ -68,6 +78,7 @@ end M.setup = function() attach_callbacks = {} + -- LSP Installer local lsp_installer = require('nvim-lsp-installer') lsp_installer.on_server_ready(function(server) diff --git a/lua/tms/lsp/servers.lua b/lua/tms/lsp/servers.lua @@ -8,28 +8,17 @@ M.setup = function(name, opts, server) end M.jsonls = function(opts) - opts.settings = { - json = { - schemas = require('schemastore').json - .schemas(), - }, - } + opts.settings = { json = { schemas = require('schemastore').json.schemas() } } return opts end M.yamlls = function(opts) - opts.settings = { - yaml = { - schemaStore = { enable = true }, - }, - } + opts.settings = { yaml = { schemaStore = { enable = true } } } return opts end M.cssls = function(opts) - opts.capabilities.textDocument - .completion.completionItem - .snippetSupport = true + opts.capabilities.textDocument.completion.completionItem.snippetSupport = true return opts end @@ -39,91 +28,62 @@ M.sumneko_lua = function(opts, server) runtime = { version = 'LuaJIT' }, diagnostics = { globals = { 'vim' } }, telemetry = { enable = false }, - format = { - enable = true, - defaultConfig = { - indent_style = 'space', - indent_size = '2', - quote_style = 'single', - call_arg_parentheses = 'keep', - continuation_indent_size = '4', - local_assign_continuation_align_to_first_expression = true, - align_call_args = true, - align_function_define_params = true, - keep_one_space_between_table_and_bracket = true, - align_table_field_to_first_field = true, - continuous_assign_statement_align_to_equal_sign = true, - continuous_assign_table_field_align_to_equal_sign = true, - if_condition_no_continuation_indent = false, - end_of_line = 'lf', - }, - }, + -- format = { + -- enable = true, + -- defaultConfig = { + -- indent_style = 'space', + -- indent_size = '2', + -- quote_style = 'single', + -- call_arg_parentheses = 'keep', + -- continuation_indent_size = '4', + -- local_assign_continuation_align_to_first_expression = true, + -- align_call_args = true, + -- align_function_define_params = true, + -- keep_one_space_between_table_and_bracket = true, + -- align_table_field_to_first_field = true, + -- continuous_assign_statement_align_to_equal_sign = true, + -- continuous_assign_table_field_align_to_equal_sign = true, + -- if_condition_no_continuation_indent = false, + -- end_of_line = 'lf', + -- }, + -- }, }, } - opts = vim.tbl_deep_extend('force', - server:get_default_options(), - opts) - opts = require('lua-dev').setup({ - lspconfig = opts, - }) + opts = vim.tbl_deep_extend('force', server:get_default_options(), opts) + opts = require('lua-dev').setup({ lspconfig = opts }) return opts end M.emmet_ls = function(opts) - opts.root_dir = require('lspconfig').util - .root_pattern('.git', - vim.fn.getcwd()) + opts.root_dir = require('lspconfig').util.root_pattern('.git', vim.fn.getcwd()) return opts end M.gopls = function(opts) - opts.root_dir = require('lspconfig').util - .root_pattern('go.mod', '.git', - vim.fn.getcwd()) + opts.root_dir = require('lspconfig').util.root_pattern('go.mod', '.git', vim.fn.getcwd()) return opts end M.html = function(opts) - opts.init_options = { - provideFormatter = false, - } + opts.init_options = { provideFormatter = false } return opts end M.dartls = function(opts) opts.cmd = require('tms.ft.dart.bin').lsp_cmd() - opts.init_options = { - closingLabels = true, - outline = true, - } + opts.init_options = { closingLabels = true, outline = true } -- filetypes = {'dart', 'html'} - opts.settings = { - dart = { - lineLength = 120, - showTodos = true, - completeFunctionCalls = true, - }, - } - opts.handlers = { - ['dart/textDocument/publishClosingLabels'] = require( - 'tms.ft.dart.closing_labels').get_callback(), - } - opts.root_dir = require('lspconfig').util - .root_pattern('pubspec.yaml', - '.git', - vim.fn.getcwd()) + opts.settings = { dart = { lineLength = 120, showTodos = true, completeFunctionCalls = true } } + opts.handlers = { ['dart/textDocument/publishClosingLabels'] = require('tms.ft.dart.closing_labels').get_callback() } + opts.root_dir = require('lspconfig').util.root_pattern('pubspec.yaml', '.git', vim.fn.getcwd()) return opts end M.intelephense = function(opts) opts.init_options = { clearCache = true, - licenceKey = os.getenv( - 'XDG_CONFIG_HOME') .. - '/intelephense/licenceKey.txt', - globalStoragePath = os.getenv( - 'XDG_CONFIG_HOME') .. - '/intelephense', + licenceKey = os.getenv('XDG_CONFIG_HOME') .. '/intelephense/licenceKey.txt', + globalStoragePath = os.getenv('XDG_CONFIG_HOME') .. '/intelephense', } return opts end diff --git a/lua/tms/p/actions/init.lua b/lua/tms/p/actions/init.lua @@ -1,64 +0,0 @@ -local utils = require 'actions.utils' -local my_utils = require('tms.p.actions.predicates') -local M = {} - -local actions = {} -local mappings = {['n <leader>dr'] = 'run', ['n <leader>dt'] = 'test', ['n <leader>db'] = 'build'} - --- general actions -local function make(_) vim.cmd [[make]] end - --- helpers -local add = function(action) table.insert(actions, action) end - --- make_language_predicated -local add_lang = function(lang, a) add {predicate = utils.make_language_predicate(lang), actions = a} end - --- make_git_predicate -local add_git = function(project, escape, a) - if type(escape) == 'table' then - a = escape - escape = false - end - add {predicate = my_utils.make_git_predicate(project, escape), actions = a} -end - -M.setup = function() - add_lang('dart', { - run = make, - build = function(_) -- analyze - require('tms.ft.dart.analyze').qf2103() - end, - }) - add_lang('lua', {run = make}) - add_lang('go', { - run = function(_) - vim.cmd [[set makeprg=go\ run\ %]] - vim.cmd [[make]] - vim.cmd [[comp go]] - end, - test = function(_) - vim.cmd [[set makeprg=go\ test]] - vim.cmd [[make]] - vim.cmd [[comp go]] - end, - build = make, - }) - add_lang('zsh', { - run = function(_) - vim.cmd [[set makeprg=./%]] - vim.cmd [[set efm=%f:%.%#:%l:\ %m,%f:%l:\ %m,%-G%.%#]] - vim.cmd [[make]] - vim.cmd [[comp zsh]] - end, - build = make, - }) - add_lang('gdscript', - {run = function(_) vim.cmd [[GodotRun]] end, build = function(_) vim.api.nvim_input(':GodotRun ') end}) - add_lang('sh', {run = make}) - - actions.mappings = mappings - require('actions'):setup(actions) -end - -return M diff --git a/lua/tms/p/actions/predicates.lua b/lua/tms/p/actions/predicates.lua @@ -1,29 +0,0 @@ -local git = require('tms.u.git') -local M = {} - -M.make_git_predicate = function(git_path, escape) - local escape_pattern = function(text) return text:gsub('([^%w])', '%%%1') end - if escape then - git_path = escape_pattern(git_path) - end - return function(_) - if git.is_git(vim.fn.getcwd()) then - local found - local id = vim.fn.jobstart('git remote show origin | awk \'/Fetch URL/\'', { - on_stdout = function(_, d, _) - for _, line in ipairs(d) do - if line:find(git_path) then - found = true - end - end - end, - }) - vim.fn.jobwait({id}) - return found - else - return false - end - end -end - -return M diff --git a/lua/tms/p/aerial.lua b/lua/tms/p/aerial.lua @@ -1,19 +0,0 @@ -local M = {} - -M.setup = function() - local aerial = require('aerial') - aerial.setup({}) - require('telescope').load_extension('aerial') - require('tms.lsp').add_attach({ - fn = function(client, bufnr) - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>r', '<cmd>AerialToggle!<CR>', {}) - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', '(', '<cmd>AerialPrev<CR>', {}) - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', ')', '<cmd>AerialNext<CR>', {}) - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', ']]', '<cmd>AerialPrevUp<CR>', {}) - -- vim.api.nvim_buf_set_keymap(bufnr, 'n', '[[', '<cmd>AerialNextUp<CR>', {}) - aerial.on_attach(client, bufnr) - end, - }) -end - -return M diff --git a/lua/tms/p/bqf.lua b/lua/tms/p/bqf.lua @@ -1,11 +0,0 @@ -local M = {} - -M.setup = function() - require('bqf').setup { - auto_enable = true, - auto_resize_height = false, - preview = {auto_preview = true}, - } -end - -return M diff --git a/lua/tms/p/dap.lua b/lua/tms/p/dap.lua @@ -1,68 +0,0 @@ -local M = {} - -local cpp = function(dap) - dap.adapters.cpp = { - type = 'executable', - attach = {pidProperty = 'pid', pidSelect = 'ask'}, - command = 'lldb', -- my binary was called 'lldb-vscode-11' - env = {LLDB_LAUNCH_FLAG_LAUNCH_IN_TTY = 'YES'}, - name = 'lldb', - } - - dap.configurations.cpp = {{type = 'cpp', request = 'launch', name = 'Launch File', program = '${file}'}} -end - -local dart = function(dap) - dap.defaults.fallback.external_terminal = {command = '/usr/bin/alacritty', args = {'-e'}} - - dap.adapters.dart = { - type = 'executable', - command = 'node', - args = {os.getenv('HOME') .. '/downloads/Dart-Code/out/dist/debug.js', 'dart'}, - } - - dap.configurations.dart = { - { - type = 'dart', - request = 'launch', - name = 'Launch File', - dartSdkPath = os.getenv('HOME') .. '/.local/lib/dart/stable/', - -- flutterSdkPath = os.getenv('HOME') .. "/flutter", - program = '${file}', - cwd = '${workspaceFolder}', - }, - } -end - -local function lua(dap) - dap.configurations.lua = { - { - type = 'nlua', - request = 'attach', - name = 'Attach to running Neovim instance', - host = function() - local value = vim.fn.input('Host [127.0.0.1]: ') - if value ~= '' then return value end - return '127.0.0.1' - end, - port = function() - local val = tonumber(vim.fn.input('Port: ')) - assert(val, 'Please provide a port number') - return val - end, - }, - } - - dap.adapters.nlua = function(callback, config) callback({type = 'server', host = config.host, port = config.port}) end -end - -function M.setup() - local dap = require('dap') - -- cpp(dap) - -- dart(dap) - lua(dap) -end - -function M.setup_ui() require('dapui').setup() end - -return M diff --git a/lua/tms/p/gitsigns.lua b/lua/tms/p/gitsigns.lua @@ -1,55 +0,0 @@ -local M = {} - -local get_theme = function() - local dark_theme = {add = '│', change = '│', delete = '│', topdelete = '‾', changedel = '│'} - local light_theme = {add = ' ', change = ' ', delete = ' ', topdelete = ' ', changedel = ' '} - local theme = dark_theme - if vim.opt.background:get() == 'light' then theme = light_theme end - return theme -end - -M.setup = function() - local theme = get_theme() - require('gitsigns').setup { - signs = { - add = { - hl = 'GitSignsAdd', - text = theme.add, - -- text = ' ', - numhl = 'GitSignsAddNr', - linehl = 'GitSignsAddLn', - }, - change = { - hl = 'GitSignsChange', - text = theme.change, - -- text = ' ', - numhl = 'GitSignsChangeNr', - linehl = 'GitSignsChangeLn', - }, - delete = { - hl = 'GitSignsDelete', - text = theme.delete, - -- text = ' ', - numhl = 'GitSignsDeleteNr', - linehl = 'GitSignsDeleteLn', - }, - topdelete = { - hl = 'GitSignsDelete', - text = theme.topdelete, - -- text = ' ', - numhl = 'GitSignsDeleteNr', - linehl = 'GitSignsDeleteLn', - }, - changedelete = { - hl = 'GitSignsChange', - text = theme.changedel, - -- text = ' ', - numhl = 'GitSignsChangeNr', - linehl = 'GitSignsChangeLn', - }, - }, - keymaps = {}, - } -end - -return M diff --git a/lua/tms/p/neorg.lua b/lua/tms/p/neorg.lua @@ -1,28 +0,0 @@ -local M = {} - -M.setup = function() - require('neorg').setup({ - -- Tell Neorg what modules to load - load = { - ['core.integrations.treesitter'] = {}, - ['core.mode'] = {}, - ['core.norg.news'] = {}, -- Handles the displaying of Neorg news and other forms of media in a popup. - ['core.norg.qol.todo_items'] = {}, - ['core.norg.esupports'] = {}, - ['core.norg.esupports.metagen'] = {}, - ['core.norg.esupports.hop'] = {}, - ['core.norg.manoeuvre'] = {}, - ['core.neorgcmd'] = {}, - ['core.autocommands'] = {}, - -- ['core.norg.concealer'] = {}, -- Allows for use of icons - ['core.norg.dirman'] = { -- Manage your directories with Neorg - config = {workspaces = {my = '~/neorg'}}, - }, - ['core.gtd.base'] = {}, -- todo - ['core.norg.completion'] = {config = {engine = 'nvim-cmp'}}, - ['core.keybinds'] = {config = {default_keybinds = true, neorg_leader = '<Leader>o'}}, - }, - }) -end - -return M diff --git a/lua/tms/p/nullls.lua b/lua/tms/p/nullls.lua @@ -1,59 +0,0 @@ -local M = {} - -local zsh_diag = function() - local null_ls = require('null-ls') - local h = require('null-ls.helpers') - return { - name = 'zsh check', - method = null_ls.methods.DIAGNOSTICS, - filetypes = {'zsh'}, - update_on_insert = true, - generator = null_ls.generator({ - command = 'zsh', - args = {'-n', '$FILENAME'}, - format = 'line', - check_exit_code = function(code) return code <= 1 end, - from_stderr = true, - to_stdin = true, - on_output = h.diagnostics.from_patterns({{pattern = [[%w+:(%d+): (.*)]], groups = {'row', 'message'}}}), - }), - } -end - -M.setup = function() - local null_ls = require('null-ls') - local h = require('null-ls.helpers') - local builtins = null_ls.builtins - null_ls.setup({ - on_attach = function(client, bufnr) - if client.resolved_capabilities.document_formatting == true then - -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') - vim.keymap.set('n', 'Q', vim.lsp.buf.formatting, {silent = true, buffer = bufnr, noremap = true}) - vim.keymap.set('v', 'Q', vim.lsp.buf.range_formatting, {silent = true, buffer = bufnr, noremap = true}) - end - end, - sources = { - -- formatting - builtins.formatting.prettier.with { - filetypes = {'html', 'yaml', 'markdown', 'css', 'scss'}, - args = h.range_formatting_args_factory({ - '--parser', - vim.api.nvim_buf_get_option(0, 'filetype'), - '--stdin-filepath', - '$FILENAME', - }, '--range-start', '--range-end'), - }, - -- builtins.formatting.lua_format, - -- builtins.formatting.clang_format, - builtins.formatting.shfmt.with { - filetypes = {'sh', 'zsh'}, - args = {'-i', vim.opt.shiftwidth:get(), '-filename', '$FILENAME'}, - }, - -- diagnostic - builtins.diagnostics.shellcheck, - zsh_diag(), - }, - }) -end - -return M diff --git a/lua/tms/p/refactoring.lua b/lua/tms/p/refactoring.lua @@ -1,13 +0,0 @@ -local M = {} - -M.setup = function() - local refactor = require('refactoring') - refactor.setup({}) - vim.keymap.set('n', '<leader>re', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function')<CR>]], - {silent = true, noremap = true}) - vim.keymap.set('v', '<leader>rf', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function To File')<CR>]], - {silent = true, noremap = true}) - vim.keymap.set('n', '<leader>rv', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Variable')<CR>]], - {silent = true, noremap = true}) -end -return M diff --git a/lua/tms/p/sidebar/init.lua b/lua/tms/p/sidebar/init.lua @@ -1,18 +0,0 @@ -local files = require('tms.p.sidebar.files') -local gitlab = require('tms.p.sidebar.gitlab') -local M = {} - -M.setup = function() - require('sidebar-nvim').setup({ - -- - initial_width = 40, - hide_statusline = true, - sections = {files.section, 'diagnostics', gitlab.section}, - disable_closing_prompt = true, - }) - - vim.keymap.set('n', '<space>s', '<cmd>SidebarNvimToggle<cr>', {noremap = true}) - vim.keymap.set('n', '<space>S', '<cmd>SidebarNvimFocus<cr>', {noremap = true}) -end - -return M diff --git a/lua/tms/p/spectre.lua b/lua/tms/p/spectre.lua @@ -1,60 +0,0 @@ -local M = {} -M.setup = function() - require('spectre').setup({ - mapping = { - ['toggle_line'] = { - map = 'gd', - cmd = '<cmd>lua require(\'spectre\').toggle_line()<CR>', - desc = 'toggle current item', - }, - ['enter_file'] = { - map = '<cr>', - cmd = '<cmd>lua require(\'spectre.actions\').select_entry()<CR>', - desc = 'goto current file', - }, - ['send_to_qf'] = { - map = 'gq', - cmd = '<cmd>lua require(\'spectre.actions\').send_to_qf()<CR>', - desc = 'send all item to quickfix', - }, - ['replace_cmd'] = { - map = 'gc', - cmd = '<cmd>lua require(\'spectre.actions\').replace_cmd()<CR>', - desc = 'input replace vim command', - }, - ['show_option_menu'] = { - map = 'go', - cmd = '<cmd>lua require(\'spectre\').show_options()<CR>', - desc = 'show option', - }, - ['run_replace'] = { - map = 'gR', - cmd = '<cmd>lua require(\'spectre.actions\').run_replace()<CR>', - desc = 'replace all', - }, - ['change_view_mode'] = { - map = 'tt', - cmd = '<cmd>lua require(\'spectre\').change_view()<CR>', - desc = 'change result view mode', - }, - ['toggle_live_update'] = { - map = 'tu', - cmd = '<cmd>lua require(\'spectre\').toggle_live_update()<CR>', - desc = 'update change when vim write file.', - }, - ['toggle_ignore_case'] = { - map = 'ti', - cmd = '<cmd>lua require(\'spectre\').change_options(\'ignore-case\')<CR>', - desc = 'toggle ignore case', - }, - ['toggle_ignore_hidden'] = { - map = 'th', - cmd = '<cmd>lua require(\'spectre\').change_options(\'hidden\')<CR>', - desc = 'toggle search hidden', - }, - -- you can put your mapping here it only use normal mode - }, - }) -end - -return M diff --git a/lua/tms/p/telescope.lua b/lua/tms/p/telescope.lua @@ -3,7 +3,6 @@ local themes = require('telescope.themes') local builtin = require('telescope.builtin') local actions = require('telescope.actions') local action_set = require('telescope.actions.set') -local action_generate = require('telescope.actions.generate') local action_state = require('telescope.actions.state') local pickers = require('telescope.pickers') local finders = require('telescope.finders') @@ -17,37 +16,18 @@ M.e = extensions local layouts = { dd = themes.get_dropdown(), - dd_noprev = themes.get_dropdown ({previewer = false}), - dd_large = themes.get_dropdown({layout_config = {width = 120}}), - dd_large_noprev = themes.get_dropdown {layout_config = {width = 120}, previewer = false}, + dd_noprev = themes.get_dropdown({ previewer = false }), + dd_large = themes.get_dropdown({ layout_config = { width = 120 } }), + dd_large_noprev = themes.get_dropdown { + layout_config = { width = 120 }, + previewer = false, + }, } -function M.setup() - telescope.setup { - defaults = { - -- - mappings = { - -- - i = { - -- - ['<esc>'] = actions.close, - ['<c-?>'] = action_generate.which_key({ - name_width = 20, -- typically leads to smaller floats - max_height = 0.5, -- increase potential maximum height - seperator = ' > ', -- change sep between mode, keybind, and name - close_with_action = false, -- do not close float on action - }), - }, - }, - }, - extensions = {fzy_native = {override_generic_sorter = false, override_file_sorter = true}}, - } -end - M.mail_address = function() pickers.new { results_title = 'Adresses', - finder = finders.new_oneshot_job({'goobook', 'query', '.*'}), + finder = finders.new_oneshot_job({ 'goobook', 'query', '.*' }), sorter = sorters.get_fuzzy_file(), attach_mappings = function(_) action_set.select:replace(function(prompt_bufnr, _) @@ -63,12 +43,17 @@ M.mail_address = function() end M.edit_neovim = function() - builtin.find_files(themes.get_dropdown {prompt_title = 'dotfiles', cwd = '~/.config/nvim', previewer = false}) + builtin.find_files(themes.get_dropdown { + prompt_title = 'dotfiles', + cwd = '~/.config/nvim', + previewer = false, + }) end M.find_files = function() builtin.find_files(layouts.dd_large_noprev) end M.spell_suggest = function() builtin.spell_suggest(layouts.dd) end -M.lines = function() builtin.current_buffer_fuzzy_find(layouts.dd_large_noprev) end +M.lines = + function() builtin.current_buffer_fuzzy_find(layouts.dd_large_noprev) end M.reloader = function() builtin.reloader(layouts.dd_noprev) end M.buffers = function() builtin.buffers(layouts.dd_large) end M.snippets = function() extensions.snippets.snippets(layouts.dd_large) end @@ -77,7 +62,9 @@ M.aerial = function() extensions.aerial.aerial(layouts.dd_large) end M.keymaps = function() builtin.keymaps(layouts.dd_large) end M.quickfix = function() builtin.quickfix(layouts.dd_large_noprev) end M.lsp_code_actions = function() builtin.lsp_code_actions(layouts.dd) end -M.lsp_document_symbols = function() builtin.lsp_document_symbols(layouts.dd_large) end +M.lsp_document_symbols = function() + builtin.lsp_document_symbols(layouts.dd_large) +end M.lsp_definitions = function() builtin.lsp_definitions(layouts.dd) end return M diff --git a/lua/tms/p/treesitter.lua b/lua/tms/p/treesitter.lua @@ -1,82 +0,0 @@ -local M = {} - -M.setup = function() - - local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() - - parser_configs.norg = { - install_info = { - url = 'https://github.com/nvim-neorg/tree-sitter-norg', - files = {'src/parser.c', 'src/scanner.cc'}, - branch = 'main', - }, - } - - parser_configs.norg_meta = { - install_info = { - url = 'https://github.com/nvim-neorg/tree-sitter-norg-meta', - files = {'src/parser.c'}, - branch = 'main', - }, - } - - parser_configs.norg_table = { - install_info = { - url = 'https://github.com/nvim-neorg/tree-sitter-norg-table', - files = {'src/parser.c'}, - branch = 'main', - }, - } - - require'nvim-treesitter.configs'.setup { - ensure_intalled = 'maintained', - highlight = {enable = true --[[ , disable = {'scss'} --]] }, - - indent = {enable = true}, - - refactor = {highlight_definitions = {enable = false}}, - - textobjects = { - enable = true, - select = { - enable = true, - keymaps = { - -- ['ia'] = "@parameter.inner", - -- ['aa'] = "@parameter.outer", - ['af'] = '@function.outer', - ['if'] = '@function.inner', - ['ac'] = '@comment.outer', - ['im'] = '@identifier', - }, - }, - swap = { - enable = true, - swap_next = { - -- [">p"] = "@parameter.inner", - ['>m'] = '@function.outer', - }, - swap_previous = { - -- ["<p"] = "@parameter.inner", - ['<m'] = '@function.outer', - }, - }, - move = { - enable = true, - goto_next_start = {[']]'] = '@function.outer', [']c'] = '@class.outer'}, - goto_next_end = {[']['] = '@function.inner', [']C'] = '@class.outer'}, - goto_previous_start = {['[['] = '@function.outer', ['[c'] = '@class.outer'}, - goto_previous_end = {['[]'] = '@function.inner', ['[C'] = '@class.outer'}, - }, - lsp_interop = { - enable = true, - border = 'single', - peek_definition_code = {['<leader>sf'] = '@function.outer', ['<leader>sc'] = '@class.outer'}, - }, - }, - - playground = {enable = true, disable = {}, updatetime = 25, persist_queries = false}, - context_commentstring = {enable = true, enable_autocmd = false, config = {scss = '// %s'}}, - } -end - -return M diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua @@ -6,15 +6,15 @@ return packer.startup({ packer.use_rocks('luautf8') - use {'wbthomason/packer.nvim', opt = true} + use { 'wbthomason/packer.nvim', opt = true } -- meta - use {'tweekmonster/startuptime.vim'} - use {'nathom/filetype.nvim'} - use {'lewis6991/impatient.nvim'} + use { 'tweekmonster/startuptime.vim' } + use { 'nathom/filetype.nvim' } + use { 'lewis6991/impatient.nvim' } -- colorscheme - use {'tjdevries/colorbuddy.nvim'} + use { 'tjdevries/colorbuddy.nvim' } -- spell use 'xxdavid/bez-diakritiky.vim' @@ -35,68 +35,44 @@ return packer.startup({ use 'tpope/vim-surround' use 'chaoren/vim-wordmotion' -- word counts with _,.,-,... use 'romgrk/equal.operator' -- equal text object `lefthand = righthand` - use {'godlygeek/tabular'} -- align - use {'luukvbaal/stabilize.nvim'} + use { 'godlygeek/tabular' } -- align + use { 'luukvbaal/stabilize.nvim' } use { 'windwp/nvim-autopairs', config = function() - require('nvim-autopairs').setup({disable_filetype = {'TelescopePrompt', 'vim'}}) + require('nvim-autopairs').setup({ disable_filetype = { 'TelescopePrompt', 'vim' } }) -- local cmp_autopairs = require('nvim-autopairs.completion.cmp') -- local cmp = require('cmp') -- cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done({map_char = {tex = ''}})) end, } - use { - 'numToStr/Comment.nvim', - config = function() - require('Comment').setup({ - ignore = '^$', - pre_hook = function(ctx) - -- Only calculate commentstring for tsx filetypes - local U = require('Comment.utils') - -- Detemine whether to use linewise or blockwise commentstring - local type = ctx.ctype == U.ctype.line and '__default' or '__multiline' - -- Determine the location where to calculate commentstring from - local location = nil - if ctx.ctype == U.ctype.block then - location = require('ts_context_commentstring.utils').get_cursor_location() - elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then - location = require('ts_context_commentstring.utils').get_visual_start_location() - end - return require('ts_context_commentstring.internal').calculate_commentstring({ - key = type, - location = location, - }) - end, - }) - end, - } + use { 'numToStr/Comment.nvim' } use { -- undo tree 'mbbill/undotree', setup = function() vim.g.undotree_WindowLayout = 2 vim.g.undotree_SplitWidth = 50 end, - config = function() vim.keymap.set('n', '<F5>', '<cmd>UndotreeToggle<cr>', {noremap = true}) end, + config = function() vim.keymap.set('n', '<F5>', '<cmd>UndotreeToggle<cr>', { noremap = true }) end, } use { -- animate height/width of window 'camspiers/animate.vim', config = function() vim.cmd('let g:animate#duration = 100.0') - vim.keymap.set('n', '<c-up>', ':call animate#window_delta_height(10)<cr>', {silent = true}) - vim.keymap.set('n', '<c-down>', ':call animate#window_delta_height(-10)<cr>', {silent = true}) - vim.keymap.set('n', '<c-left>', ':call animate#window_delta_width(-10)<cr>', {silent = true}) - vim.keymap.set('n', '<c-right>', ':call animate#window_delta_width(10)<cr>', {silent = true}) - vim.keymap.set('n', '<s-up>', ':call animate#window_delta_height(1)<cr>', {silent = true}) - vim.keymap.set('n', '<s-down>', ':call animate#window_delta_height(-1)<cr>', {silent = true}) - vim.keymap.set('n', '<s-left>', ':call animate#window_delta_width(-1)<cr>', {silent = true}) - vim.keymap.set('n', '<s-right>', ':call animate#window_delta_width(1)<cr>', {silent = true}) + vim.keymap.set('n', '<c-up>', ':call animate#window_delta_height(10)<cr>', { silent = true }) + vim.keymap.set('n', '<c-down>', ':call animate#window_delta_height(-10)<cr>', { silent = true }) + vim.keymap.set('n', '<c-left>', ':call animate#window_delta_width(-10)<cr>', { silent = true }) + vim.keymap.set('n', '<c-right>', ':call animate#window_delta_width(10)<cr>', { silent = true }) + vim.keymap.set('n', '<s-up>', ':call animate#window_delta_height(1)<cr>', { silent = true }) + vim.keymap.set('n', '<s-down>', ':call animate#window_delta_height(-1)<cr>', { silent = true }) + vim.keymap.set('n', '<s-left>', ':call animate#window_delta_width(-1)<cr>', { silent = true }) + vim.keymap.set('n', '<s-right>', ':call animate#window_delta_width(1)<cr>', { silent = true }) end, } use { -- colorize rgb format 'norcalli/nvim-colorizer.lua', config = function() - require'colorizer'.setup({'css', 'scss', 'less'}, { + require'colorizer'.setup({ 'css', 'scss', 'less' }, { RGB = true, -- #RGB hex codes RRGGBB = true, -- #RRGGBB hex codes names = true, -- "Name" codes like Blue @@ -139,14 +115,13 @@ return packer.startup({ ['gui'] = 'bold', } end, - config = function() end, } use { 'jandamm/cryoline.nvim', - after = {'vim-fugitive'}, + after = { 'vim-fugitive' }, config = function() require('cryoline').config { - ft = {fugitive = '%{FugitiveStatusline()}'}, + ft = { fugitive = '%{FugitiveStatusline()}' }, line = function() local git_head = vim.fn.FugitiveHead() local branch = '' @@ -160,24 +135,24 @@ return packer.startup({ use { -- smooth scrolling 'karb94/neoscroll.nvim', config = function() - require('neoscroll').setup({mappings = {'<C-u>', '<C-d>', '<C-b>', '<C-f>', 'zt', 'zz', 'zb'}}) + require('neoscroll').setup({ mappings = { '<C-u>', '<C-d>', '<C-b>', '<C-f>', 'zt', 'zz', 'zb' } }) local t = {} -- Syntax: t[keys] = {function , {function arguments}} - t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '80'}} - t['<C-d>'] = {'scroll', {'vim.wo.scroll', 'true', '80'}} - t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '100'}} - t['<C-f>'] = {'scroll', {'vim.api.nvim_win_get_height(0)', 'true', '100'}} - t['zt'] = {'zt', {'100'}} - t['zz'] = {'zz', {'100'}} - t['zb'] = {'zb', {'100'}} + t['<C-u>'] = { 'scroll', { '-vim.wo.scroll', 'true', '80' } } + t['<C-d>'] = { 'scroll', { 'vim.wo.scroll', 'true', '80' } } + t['<C-b>'] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '100' } } + t['<C-f>'] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '100' } } + t['zt'] = { 'zt', { '100' } } + t['zz'] = { 'zz', { '100' } } + t['zb'] = { 'zb', { '100' } } require('neoscroll.config').set_mappings(t) end, } use { -- parameter switch 'AndrewRadev/sideways.vim', config = function() - vim.keymap.set('n', '<c-h>', '<cmd>SidewaysLeft<cr>', {noremap = true}) - vim.keymap.set('n', '<c-l>', '<cmd>SidewaysRight<cr>', {noremap = true}) + vim.keymap.set('n', '<c-h>', '<cmd>SidewaysLeft<cr>', { noremap = true }) + vim.keymap.set('n', '<c-l>', '<cmd>SidewaysRight<cr>', { noremap = true }) vim.keymap.set('o', 'aa', '<Plug>SidewaysArgumentTextobjA') vim.keymap.set('o', 'a.', '<Plug>SidewaysArgumentTextobjA') vim.keymap.set('x', 'aa', '<Plug>SidewaysArgumentTextobjA') @@ -190,35 +165,20 @@ return packer.startup({ vim.keymap.set('n', '<leader>aL', '<Plug>SidewaysArgumentAppendLast') end, } - use { -- replace - 'windwp/nvim-spectre', - config = function() - require('tms.p.spectre').setup() - vim.keymap.set('n', '<leader>S', function() require('spectre').open() end, {noremap = true}) - vim.keymap.set('v', '<leader>s', function() require('spectre').open_visual() end, {noremap = true}) - end, - } - use { - 'sidebar-nvim/sidebar.nvim', - requires = {'kyazdani42/nvim-web-devicons'}, - config = function() require('tms.p.sidebar').setup() end, - } + use { 'windwp/nvim-spectre' } + use { 'sidebar-nvim/sidebar.nvim', requires = { 'kyazdani42/nvim-web-devicons' } } -- Notes - use { - 'nvim-neorg/neorg', - requires = {'nvim-lua/plenary.nvim'}, - config = function() require('tms.p.neorg').setup() end, - } + use { 'nvim-neorg/neorg', requires = { 'nvim-lua/plenary.nvim' } } use { 'mickael-menu/zk-nvim', - requires = {'neovim/nvim-lspconfig'}, - after = {'telescope.nvim'}, + requires = { 'neovim/nvim-lspconfig' }, + -- after = { 'telescope.nvim' }, -- config = function() require('tms.p.zk').setup() end, } -- quickfix list - use {'kevinhwang91/nvim-bqf', config = function() require('tms.p.bqf').setup() end} + use { 'kevinhwang91/nvim-bqf' } -- distraction use 'junegunn/limelight.vim' @@ -226,7 +186,7 @@ return packer.startup({ 'folke/zen-mode.nvim', config = function() require('zen-mode').setup {} - vim.keymap.set('n', '<leader>Z', '<cmd>ZenMode<cr>', {noremap = true}) + vim.keymap.set('n', '<leader>Z', '<cmd>ZenMode<cr>', { noremap = true }) end, } @@ -236,9 +196,8 @@ return packer.startup({ -- vcs use { 'lewis6991/gitsigns.nvim', - requires = {'nvim-lua/plenary.nvim'}, + requires = { 'nvim-lua/plenary.nvim' }, config = function() - require('tms.p.gitsigns').setup() vim.keymap.set('n', '>c', function() require('gitsigns').next_hunk() end) vim.keymap.set('n', '>[', function() require('gitsigns').next_hunk() end) vim.keymap.set('n', '<c', function() require('gitsigns').prev_hunk() end) @@ -264,54 +223,43 @@ return packer.startup({ use { -- git integration 'tpope/vim-fugitive', config = function() - vim.keymap.set('n', '<leader>gg', '<cmd>G<cr>', {noremap = true}) - vim.keymap.set('n', '<leader>gc', '<cmd>G commit<cr>', {noremap = true}) - vim.keymap.set('n', '<leader>gb', '<cmd>Git blame<cr>', {noremap = true}) + vim.keymap.set('n', '<leader>gg', '<cmd>G<cr>', { noremap = true }) + vim.keymap.set('n', '<leader>gc', '<cmd>G commit<cr>', { noremap = true }) + vim.keymap.set('n', '<leader>gb', '<cmd>Git blame<cr>', { noremap = true }) end, } use { -- git info for current line 'rhysd/git-messenger.vim', - setup = function() vim.g.git_messenger_floating_win_opts = {border = 'single'} end, - config = function() vim.keymap.set('n', '<leader>gm', '<plug>(git-messenger)', {noremap = true}) end, + setup = function() vim.g.git_messenger_floating_win_opts = { border = 'single' } end, + config = function() vim.keymap.set('n', '<leader>gm', '<plug>(git-messenger)', { noremap = true }) end, } use { 'ThePrimeagen/git-worktree.nvim', - after = {'telescope.nvim'}, + after = { 'telescope.nvim' }, config = function() require('git-worktree').setup() require('telescope').load_extension('git_worktree') - vim.keymap.set('n', '<space>wo', require('telescope').extensions.git_worktree.git_worktrees, {noremap = true}) + vim.keymap.set('n', '<space>wo', require('telescope').extensions.git_worktree.git_worktrees, { noremap = true }) vim.keymap.set('n', '<space>wi', require('telescope').extensions.git_worktree.create_git_worktree, - {noremap = true}) + { noremap = true }) end, } -- http - use {disable = true, 'nicwest/vim-http'} - use { - 'NTBBloodbath/rest.nvim', - requires = {'nvim-lua/plenary.nvim'}, - config = function() - require('rest-nvim').setup() - vim.api.nvim_create_user_command('Rest', require('rest-nvim').run, {}) - vim.api.nvim_create_user_command('RestPreview', function() require('rest-nvim').run(true) end, {}) - vim.api.nvim_create_user_command('RestLast', require('rest-nvim').last, {}) - end, - } + use { disable = true, 'nicwest/vim-http' } + use { 'NTBBloodbath/rest.nvim', ft = { 'http' }, requires = { 'nvim-lua/plenary.nvim' } } -- tasks - use {'amirrezaask/actions.nvim', config = function() require('tms.p.actions').setup() end} + use { 'amirrezaask/actions.nvim' } -- filetype use 'tikhomirov/vim-glsl' - use {'windwp/nvim-ts-autotag', ft = {'html', 'php'}, config = function() require('nvim-ts-autotag').setup {} end} -- html tag autoclose/rename - use {'vim-php/vim-composer', setup = function() vim.g.composer_cmd = 'composer' end} - use 'fpob/nette.vim' + use { 'windwp/nvim-ts-autotag', ft = { 'html', 'php' }, config = function() require('nvim-ts-autotag').setup {} end } -- html tag autoclose/rename use 'baskerville/vim-sxhkdrc' - use {'dart-lang/dart-vim-plugin', ft = {'dart'}} + use { 'dart-lang/dart-vim-plugin', ft = { 'dart' } } -- snippets - use {'L3MON4D3/luaSnip'} + use { 'L3MON4D3/luaSnip' } -- completion use { @@ -335,7 +283,7 @@ return packer.startup({ 'stevearc/dressing.nvim', config = function() require('dressing').setup({ - select = {backend = {'telescope', 'builtin'}, telescope = require('telescope.themes').get_dropdown()}, + select = { backend = { 'telescope', 'builtin' }, telescope = require('telescope.themes').get_dropdown() }, }) end, } @@ -343,8 +291,8 @@ return packer.startup({ 'rcarriga/nvim-notify', config = function() -- vim.notify = require('notify') - require('notify').setup({on_open = function(win) vim.api.nvim_win_set_config(win, {focusable = false}) end}) - vim.keymap.set('n', '<leader>N', require('notify').dismiss, {noremap = true}) + require('notify').setup({ on_open = function(win) vim.api.nvim_win_set_config(win, { focusable = false }) end }) + vim.keymap.set('n', '<leader>N', require('notify').dismiss, { noremap = true }) end, } @@ -352,46 +300,35 @@ return packer.startup({ use { disable = true, 'ThePrimeagen/refactoring.nvim', - after = {'nvim-treesitter'}, - requires = {'nvim-lua/plenary.nvim'}, - config = function() require('tms.p.refactoring').setup() end, + after = { 'nvim-treesitter' }, + requires = { 'nvim-lua/plenary.nvim' }, } -- lsp use { 'neovim/nvim-lspconfig', - after = {'nvim-lsp-installer', 'lua-dev.nvim', 'telescope.nvim'}, + after = { 'nvim-lsp-installer', 'lua-dev.nvim', 'telescope.nvim' }, config = function() require('tms.lsp').setup() end, } - use {disable = true, 'ii14/lsp-command'} + use { disable = true, 'ii14/lsp-command' } use 'williamboman/nvim-lsp-installer' - use {'b0o/schemastore.nvim'} - use {'folke/lua-dev.nvim'} - use { - 'jose-elias-alvarez/null-ls.nvim', - after = {'nvim-lspconfig'}, - requires = {'nvim-lua/plenary.nvim'}, - config = function() require('tms.p.nullls').setup() end, - } + use { 'b0o/schemastore.nvim' } + use { 'folke/lua-dev.nvim' } + use { 'jose-elias-alvarez/null-ls.nvim', after = { 'nvim-lspconfig' }, requires = { 'nvim-lua/plenary.nvim' } } use { 'stevearc/aerial.nvim', - after = {'telescope.nvim', 'nvim-treesitter'}, - setup = function() vim.g.aerial = {backends = {'lsp', 'treesitter'}, highlight_on_jump = 0} end, - config = function() - require('tms.p.aerial').setup() - require('telescope').load_extension('aerial') - vim.keymap.set('n', '<space>r', require('tms.p.telescope').aerial, {noremap = true}) - end, + after = { 'telescope.nvim', 'nvim-treesitter' }, + setup = function() vim.g.aerial = { backends = { 'lsp', 'treesitter' }, highlight_on_jump = 0 } end, } -- dap - use {'mfussenegger/nvim-dap', config = function() require('tms.p.dap').setup() end} - use {'rcarriga/nvim-dap-ui', after = {'nvim-dap'}, config = function() require('tms.p.dap').setup_ui() end} + use { 'mfussenegger/nvim-dap' } + use { 'rcarriga/nvim-dap-ui', after = { 'nvim-dap' } } use { disable = true, 'Pocco81/DAPInstall.nvim', - after = {'nvim-dap'}, - requires = {'jbyuki/one-small-step-for-vimkind'}, + after = { 'nvim-dap' }, + requires = { 'jbyuki/one-small-step-for-vimkind' }, config = function() local dap_install = require('dap-install') local dbg_list = require('dap-install.debuggers_list').debuggers @@ -400,82 +337,65 @@ return packer.startup({ } use { 'theHamsta/nvim-dap-virtual-text', - after = {'nvim-dap'}, + after = { 'nvim-dap' }, config = function() require('nvim-dap-virtual-text').setup(); end, } -- treesitter - use { - 'nvim-treesitter/nvim-treesitter', - config = function() - local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() - parser_configs.http = { - install_info = { - url = 'https://github.com/NTBBloodbath/tree-sitter-http', - files = {'src/parser.c'}, - branch = 'main', - }, - } - require('tms.p.treesitter').setup() - -- hack - vim.api.nvim_create_user_command('TSHRefresh', 'write|TSBufEnable highlight', {}) - vim.keymap.set('n', '<leader>su', '<cmd>TSHRefresh<cr>', {noremap = true}) - end, - } - use {'nvim-treesitter/nvim-treesitter-textobjects', after = {'nvim-treesitter'}} - use {'nvim-treesitter/nvim-treesitter-refactor', after = {'nvim-treesitter'}} - use {'nvim-treesitter/playground', after = {'nvim-treesitter'}} - use {'JoosepAlviste/nvim-ts-context-commentstring', after = {'nvim-treesitter'}} + use { 'nvim-treesitter/nvim-treesitter' } + use { 'nvim-treesitter/nvim-treesitter-textobjects', after = { 'nvim-treesitter' } } + use { 'nvim-treesitter/nvim-treesitter-refactor', after = { 'nvim-treesitter' } } + use { 'nvim-treesitter/playground', after = { 'nvim-treesitter' } } + use { 'JoosepAlviste/nvim-ts-context-commentstring', after = { 'nvim-treesitter' } } -- telescope use { 'nvim-telescope/telescope.nvim', - requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim', 'kyazdani42/nvim-web-devicons'}, + requires = { 'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim', 'kyazdani42/nvim-web-devicons' }, config = function() - local telescope = require('tms.p.telescope') - telescope.setup() - vim.keymap.set('n', '<space>h', telescope.b.help_tags, {noremap = true}) - vim.keymap.set('n', '<space>d', telescope.find_files, {noremap = true}) - vim.keymap.set('n', '<space>D', telescope.b.find_files, {noremap = true}) - vim.keymap.set('n', '<space>g', telescope.b.git_files, {noremap = true}) - vim.keymap.set('n', '<space>b', telescope.buffers, {noremap = true}) - vim.keymap.set('n', '<space>l', telescope.lines, {noremap = true}) - -- vim.keymap.nnoremap {'<space>r', telescope.b.live_grep} - vim.keymap.set('n', '<space>e', telescope.b.grep_string, {noremap = true}) - vim.keymap.set('n', '<space>c', telescope.b.git_status, {noremap = true}) - vim.keymap.set('n', '<space>q', telescope.quickfix, {noremap = true}) - vim.keymap.set('n', '<space>k', telescope.keymaps, {noremap = true}) - vim.keymap.set('n', '<space>m', telescope.b.man_pages, {noremap = true}) - vim.keymap.set('n', '<space>p', telescope.reloader, {noremap = true}) + local tscope = require('tms.p.telescope') + local opts = { noremap = true } + vim.keymap.set('n', '<space>h', tscope.b.help_tags, opts) + vim.keymap.set('n', '<space>d', tscope.find_files, opts) + vim.keymap.set('n', '<space>D', tscope.b.find_files, opts) + vim.keymap.set('n', '<space>g', tscope.b.git_files, opts) + vim.keymap.set('n', '<space>b', tscope.buffers, opts) + vim.keymap.set('n', '<space>l', tscope.lines, opts) + vim.keymap.set('n', '<space>e', tscope.b.grep_string, opts) + vim.keymap.set('n', '<space>c', tscope.b.git_status, opts) + vim.keymap.set('n', '<space>q', tscope.quickfix, opts) + vim.keymap.set('n', '<space>k', tscope.keymaps, opts) + vim.keymap.set('n', '<space>m', tscope.b.man_pages, opts) + vim.keymap.set('n', '<space>p', tscope.e.packer.packer, opts) + vim.keymap.set('n', '<space>P', tscope.reloader, opts) -- extensions - vim.keymap.set('n', '<space>M', telescope.media_files, {noremap = true}) + vim.keymap.set('n', '<space>M', tscope.media_files, opts) -- custom - vim.keymap.set('n', '<space>n', telescope.edit_neovim, {noremap = true}) + vim.keymap.set('n', '<space>n', tscope.edit_neovim, opts) -- maybe - almost unsuedtelescope - vim.keymap.set('n', '<space>o', telescope.b.oldfiles, {noremap = true}) - vim.keymap.set('n', '<space>t', telescope.b.treesitter, {noremap = true}) - vim.keymap.set('n', '<space>P', telescope.e.packer.packer, {noremap = true}) + vim.keymap.set('n', '<space>o', tscope.b.oldfiles, opts) + vim.keymap.set('n', '<space>t', tscope.b.treesitter, opts) end, } - use {'nvim-telescope/telescope-packer.nvim', after = {'telescope.nvim'}} + use { 'nvim-telescope/telescope-packer.nvim', after = { 'telescope.nvim' } } use { 'nvim-telescope/telescope-fzy-native.nvim', - after = {'telescope.nvim'}, + after = { 'telescope.nvim' }, config = function() require('telescope').load_extension('fzy_native') end, } use { 'nvim-telescope/telescope-dap.nvim', - after = {'telescope.nvim'}, + after = { 'telescope.nvim' }, config = function() require('telescope').load_extension('dap') end, } use { 'nvim-telescope/telescope-media-files.nvim', - after = {'telescope.nvim'}, + after = { 'telescope.nvim' }, config = function() require('telescope').load_extension('media_files') end, } -- Godot - use {'habamax/vim-godot'} + use { 'habamax/vim-godot' } -- personal use { @@ -487,8 +407,8 @@ return packer.startup({ } -- database - use {'tpope/vim-dadbod'} - use {'kristijanhusak/vim-dadbod-ui'} + use { 'tpope/vim-dadbod' } + use { 'kristijanhusak/vim-dadbod-ui' } use { 'kristijanhusak/vim-dadbod-completion', config = function() @@ -496,5 +416,5 @@ return packer.startup({ end, } end, - config = {compile_path = vim.fn.stdpath('config') .. '/lua/packer_compiled.lua'}, + config = { compile_path = vim.fn.stdpath('config') .. '/lua/packer_compiled.lua' }, })