diff options
Diffstat (limited to '.config/nvim/lua')
-rw-r--r-- | .config/nvim/lua/.luarc.json | 4 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/autocmds.lua | 20 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/keymaps.lua | 82 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/lilies.lua | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/options.lua | 10 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/plugins.lua | 131 | ||||
-rw-r--r-- | .config/nvim/lua/statusline.lua | 178 | ||||
-rw-r--r--[-rwxr-xr-x] | .config/nvim/lua/ui.lua | 0 | ||||
-rwxr-xr-x | .config/nvim/lua/util.lua | 34 | ||||
-rw-r--r-- | .config/nvim/lua/utils.lua | 23 |
10 files changed, 199 insertions, 283 deletions
diff --git a/.config/nvim/lua/.luarc.json b/.config/nvim/lua/.luarc.json new file mode 100644 index 0000000..e1b9d70 --- /dev/null +++ b/.config/nvim/lua/.luarc.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", + "Lua.workspace.checkThirdParty": false +}
\ No newline at end of file diff --git a/.config/nvim/lua/autocmds.lua b/.config/nvim/lua/autocmds.lua index 5fcb496..d7d1294 100755..100644 --- a/.config/nvim/lua/autocmds.lua +++ b/.config/nvim/lua/autocmds.lua @@ -1,28 +1,30 @@ +local custom_au = vim.api.nvim_create_augroup('custom', {}) + vim.api.nvim_create_autocmd('BufWritePost', { - pattern = "config", + group = custom_au, + pattern = require('utils').config_home() .. "/i3/config", command = '!i3-msg -q reload', }) vim.api.nvim_create_autocmd('BufWritePost', { + group = custom_au, pattern = "*.tex", command = 'silent !pdflatex %', }) vim.api.nvim_create_autocmd('BufWritePre', { + group = custom_au, pattern = 'todo.txt', command = 'sort', }) ---vim.api.nvim_create_autocmd('VimEnter', { - --once = true, - --callback = function() - --if vim.fn.filereadable('Session.vim') then - --vim.cmd('source Session.vim') - --end - --end ---}) +vim.api.nvim_create_autocmd('VimResized', { + group = custom_au, + command = 'wincmd =', +}) vim.api.nvim_create_autocmd('TextYankPost', { + group = custom_au, callback = function () vim.highlight.on_yank({ higroup = 'IncSearch', timeout = 200}) end, diff --git a/.config/nvim/lua/keymaps.lua b/.config/nvim/lua/keymaps.lua index 16de10f..4c09fd2 100755..100644 --- a/.config/nvim/lua/keymaps.lua +++ b/.config/nvim/lua/keymaps.lua @@ -1,68 +1,38 @@ vim.g.mapleader = " " -local function keymap(mode, lhs, rhs, opts) - opts = opts or { noremap = true, silent = true } - vim.keymap.set(mode, lhs, rhs, opts) -end -keymap('n', '<leader><leader>', - function() require('luasnip').jump(1) end, - {noremap = true, silent = true}) +local opts = { noremap = true, silent = true } -- Map leader + s and v/h to open split -keymap('n', '<leader>sp', ':sp<CR>') -keymap('n', '<leader>sv', ':vsp<CR>') +vim.keymap.set('n', '<leader>sp', ':sp<CR>', opts) +vim.keymap.set('n', '<leader>sv', ':vsp<CR>', opts) -keymap('n', '<leader>q', ':q<CR>') +vim.keymap.set('n', '<leader>q', ':q<CR>', opts) -keymap('n', '<C-q>', ':mksession!<space>nvim-session<Enter>:wqa<Enter>') -keymap('n', '<C-s>', ':wa<Enter>:mksession!<space>nvim-session<Enter>') -keymap('n', '<C-p>', ':source<space>nvim-session<Enter>') +vim.keymap.set('n', '<leader>y', '"+y', opts) +vim.keymap.set('n', '<leader>d', '"+d', opts) +vim.keymap.set('n', '<leader>p', '"+p', opts) +vim.keymap.set('n', '<leader>Y', '"+Y', opts) +vim.keymap.set('n', '<leader>D', '"+D', opts) +vim.keymap.set('n', '<leader>P', '"+P', opts) -keymap('n', '<leader>y', '"+y') -keymap('n', '<leader>d', '"+d') -keymap('n', '<leader>p', '"+p') -keymap('n', '<leader>Y', '"+Y') -keymap('n', '<leader>D', '"+D') -keymap('n', '<leader>P', '"+P') +vim.keymap.set('v', '<leader>y', '"+y', opts) +vim.keymap.set('v', '<leader>d', '"+d', opts) +vim.keymap.set('v', '<leader>p', '"+p', opts) +vim.keymap.set('v', '<leader>Y', '"+Y', opts) +vim.keymap.set('v', '<leader>D', '"+D', opts) +vim.keymap.set('v', '<leader>P', '"+P', opts) -keymap('v', '<leader>y', '"+y') -keymap('v', '<leader>d', '"+d') -keymap('v', '<leader>p', '"+p') -keymap('v', '<leader>Y', '"+Y') -keymap('v', '<leader>D', '"+D') -keymap('v', '<leader>P', '"+P') +vim.keymap.set('n', '<M-h>', '<C-w>h', opts) +vim.keymap.set('n', '<M-k>', '<C-w>k', opts) +vim.keymap.set('n', '<M-j>', '<C-w>j', opts) +vim.keymap.set('n', '<M-l>', '<C-w>l', opts) -keymap('n', '<M-h>', '<C-w>h') -keymap('n', '<M-k>', '<C-w>k') -keymap('n', '<M-j>', '<C-w>j') -keymap('n', '<M-l>', '<C-w>l') +vim.keymap.set('n', '<C-n>', ':cn<Enter>', opts) +vim.keymap.set('n', '<C-p>', ':cp<Enter>', opts) -keymap('v', '<', '<gv') -keymap('v', '>', '>gv') +vim.keymap.set('v', '<', '<gv', opts) +vim.keymap.set('v', '>', '>gv', opts) -keymap('i', '<C-BS>', '<C-w>') +vim.keymap.set('i', '<C-BS>', '<C-w>', opts) -vim.api.nvim_create_autocmd('User', { - pattern = 'LspAttached', - desc = 'LSP Keymaps', - callback = function() - local function bufmap(mode, lhs, rhs) - keymap(mode, lhs, rhs, { silent = true, noremap = true, buffer = true }) - end - - bufmap('n', 'gD', vim.lsp.buf.declaration) - bufmap('n', 'gd', vim.lsp.buf.definition) - bufmap('n', 'K', vim.lsp.buf.hover) - bufmap('n', 'gi', vim.lsp.buf.implementation) - bufmap('n', '<C-k>', vim.lsp.buf.signature_help) - bufmap('n', '<leader>wa', vim.lsp.buf.add_workspace_folder) - bufmap('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder) - bufmap('n', '<leader>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) - bufmap('n', '<leader>D', vim.lsp.buf.type_definition) - bufmap('n', '<leader>rn', vim.lsp.buf.rename) - bufmap('n', '<leader>ca', vim.lsp.buf.code_action) - bufmap('n', 'gr', vim.lsp.buf.references) - bufmap('n', '<leader>f', vim.lsp.buf.formatting) - bufmap('n', '<leader>e', vim.diagnostic.open_float) - end -}) +vim.keymap.set('n', 'gp', require('utils').lsp_peek, opts) diff --git a/.config/nvim/lua/lilies.lua b/.config/nvim/lua/lilies.lua index d492426..d492426 100755..100644 --- a/.config/nvim/lua/lilies.lua +++ b/.config/nvim/lua/lilies.lua diff --git a/.config/nvim/lua/options.lua b/.config/nvim/lua/options.lua index a32fe58..8be12cf 100755..100644 --- a/.config/nvim/lua/options.lua +++ b/.config/nvim/lua/options.lua @@ -1,4 +1,4 @@ ---vim.opt.termguicolors = true +vim.opt.termguicolors = true vim.opt.showmode = false vim.opt.path = '.,,**' @@ -23,6 +23,10 @@ vim.opt.scrolloff = 15 vim.opt.synmaxcol = 300 -vim.opt.cmdheight = 0 +vim.opt.wildoptions = 'tagfile' + +vim.g.lsp_langs = { 'c', 'cpp', 'rust', 'php', 'lua', 'sh' } +vim.g.ts_langs = { 'c', 'cpp', 'rust', 'php', 'lua' } + +vim.g.editorconfig = true ---vim.g.editorconfig = true diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index 9655992..e956ae4 100755..100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -1,17 +1,28 @@ local ensure_packer = function() local fn = vim.fn - local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' if fn.empty(fn.glob(install_path)) > 0 then - fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) + fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }) vim.cmd [[packadd packer.nvim]] return true end return false end +vim.api.nvim_create_autocmd('BufWritePost', { + pattern = require('utils').config_home() .. '/nvim/lua/plugins.lua', + group = vim.api.nvim_create_augroup('packer', {}), + command = 'source <afile> | PackerCompile' +}) + local packer_bootstrap = ensure_packer() +require('packer').init({ + compile_path = vim.fn.stdpath('data') .. '/site/pack/loader/start/packer/plugin/packer.lua', +}) + return require('packer').startup(function(use) + use 'wbthomason/packer.nvim' use { @@ -24,36 +35,53 @@ return require('packer').startup(function(use) use { "SmiteshP/nvim-navic", - requires = "neovim/nvim-lspconfig" + requires = "neovim/nvim-lspconfig", } use { - "folke/which-key.nvim", + "ibhagwan/fzf-lua", config = function() - require("which-key").setup { - -- your configuration comes here - -- or leave it empty to use the default settings - -- refer to the configuration section below - } + local opts = {noremap = true, silent = true} + vim.keymap.set('n', '<leader>f', require('fzf-lua').files, opts) + vim.keymap.set('n', '<leader>b', require('fzf-lua').buffers, opts) + vim.keymap.set('n', '<leader>Q', require('fzf-lua').quick_fix, opts) + vim.keymap.set('n', '<leader>t', require('fzf-lua').tabs, opts) end } use { 'neovim/nvim-lspconfig', + --ft = vim.g.lsp_langs, config = function() local lspconfig = require('lspconfig') - local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) + local capabilities = require('cmp_nvim_lsp').default_capabilities() local cache = os.getenv("XDG_RUNTIME_DIR") or "/tmp/" local on_attach = function(client, bufnr) - vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'}) + local bind_opts = { silent = true, noremap = true, buffer = true } require('nvim-navic').attach(client, bufnr) + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bind_opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bind_opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bind_opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bind_opts) + vim.keymap.set('n', '<leader>k', vim.lsp.buf.signature_help, bind_opts) + vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bind_opts) + vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bind_opts) + vim.keymap.set('n', '<leader>wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bind_opts) + vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bind_opts) + vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bind_opts) + vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bind_opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bind_opts) + --vim.keymap.set('n', '<leader>f', vim.lsp.buf.formatting, bind_opts) + vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, bind_opts) + vim.keymap.set('n', '<leader>E', vim.diagnostic.setqflist, bind_opts) end lspconfig.ccls.setup { on_attach = on_attach, capabilities = capabilities, - single_file_support = true, init_options = { cache = { directory = cache .. "/ccls" @@ -86,7 +114,7 @@ return require('packer').startup(function(use) }, diagnostics = { - globals = {'vim'}, + globals = { 'vim', 'packer_plugins' }, }, workspace = { @@ -105,9 +133,10 @@ return require('packer').startup(function(use) use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', + after = 'nvim-lspconfig', config = function() - require'nvim-treesitter.configs'.setup { - ensure_installed = { "c", "cpp", "php", "lua" }, + require 'nvim-treesitter.configs'.setup { + ensure_installed = vim.g.ts_langs, sync_install = false, auto_install = true, highlight = { @@ -119,74 +148,72 @@ return require('packer').startup(function(use) } use { + 'L3MON4D3/LuaSnip', + config = function() + require('luasnip.loaders.from_vscode').lazy_load({ paths = "~/.config/nvim/snippets" }) + end + } + + use { 'hrsh7th/nvim-cmp', requires = { 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-vsnip', - 'hrsh7th/vim-vsnip', + 'L3MON4D3/LuaSnip', + 'saadparwaiz1/cmp_luasnip', 'hrsh7th/cmp-nvim-lsp-signature-help', 'hrsh7th/cmp-nvim-lsp-document-symbol', }, + --ft = vim.g.lsp_langs, config = function() - -- Setup nvim-cmp. - local cmp = require'cmp' - local has_words_before = function() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil - end - - local feedkey = function(key, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) - end - + local cmp = require('cmp') + local luasnip = require('luasnip') cmp.setup({ snippet = { - -- REQUIRED - you must specify a snippet engine expand = function(args) - vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. - -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. - -- require('snippy').expand_snippet(args.body) -- For `snippy` users. - -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + require('luasnip').lsp_expand(args.body) end, }, - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, mapping = cmp.mapping.preset.insert({ ['<C-b>'] = cmp.mapping.scroll_docs(-4), ['<C-f>'] = cmp.mapping.scroll_docs(4), ['<C-Space>'] = cmp.mapping.complete(), ['<C-e>'] = cmp.mapping.abort(), - ['<CR>'] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + ['<CR>'] = cmp.mapping.confirm({ select = false }), ['<Tab>'] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() - elseif vim.fn["vsnip#available"](1) == 1 then - feedkey("<Plug>(vsnip-expand-or-jump)", "") - elseif has_words_before() then - cmp.complete() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() else - fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`. + fallback() end end, { "i", "s" }), - ['<S-Tab>'] = cmp.mapping(function() + ['<S-Tab>'] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() - elseif vim.fn["vsnip#jumpable"](-1) == 1 then - feedkey("<Plug>(vsnip-jump-prev)", "") + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() end end, { "i", "s" }), + ['<C-n>'] = cmp.mapping(function(fallback) + if luasnip.choice_active() then + luasnip.change_choice(1) + else + fallback() + end + end), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, - { name = 'vsnip' }, -- For vsnip users. - -- { name = 'luasnip' }, -- For luasnip users. - -- { name = 'ultisnips' }, -- For ultisnips users. - -- { name = 'snippy' }, -- For snippy users. + { name = 'luasnip' }, { name = 'nvim_lsp_signature_help' } - }, { - { name = 'buffer' }, + }), + }) + cmp.setup.cmdline({ '/', '?' }, { + sources = cmp.config.sources({ + { name = 'nvim_lsp_document_symbol' } }) }) end diff --git a/.config/nvim/lua/statusline.lua b/.config/nvim/lua/statusline.lua index b7b6ed9..e91ac49 100644 --- a/.config/nvim/lua/statusline.lua +++ b/.config/nvim/lua/statusline.lua @@ -1,14 +1,8 @@ -local fn = vim.fn local api = vim.api --- possible values are 'arrow' | 'rounded' | 'blank' -local active_sep = 'blank' - --- change them if you want to different separator -local separators = { - arrow = { '', '' }, - rounded = { '', '' }, - blank = { '', '' }, +Statusline = { + active = '', + inactive = '', } -- highlight groups @@ -25,74 +19,7 @@ local colors = { line_col_alt = '%#LineColAlt#', } -local trunc_width = setmetatable({ - mode = 80, - git_status = 90, - filename = 140, - line_col = 60, -}, { - __index = function() - return 80 - end -}) - -local is_truncated = function(_, width) - local current_width = api.nvim_win_get_width(0) - return current_width < width -end - ---local modes = setmetatable({ - --['n'] = {'Normal', 'N'}; - --['no'] = {'N·Pending', 'N·P'} ; - --['v'] = {'Visual', 'V' }; - --['V'] = {'V·Line', 'V·L' }; - --[''] = {'V·Block', 'V·B'}; -- this is not ^V, but it's , they're different - --['s'] = {'Select', 'S'}; - --['S'] = {'S·Line', 'S·L'}; - --[''] = {'S·Block', 'S·B'}; -- same with this one, it's not ^S but it's - --['i'] = {'Insert', 'I'}; - --['ic'] = {'Insert', 'I'}; - --['R'] = {'Replace', 'R'}; - --['Rv'] = {'V·Replace', 'V·R'}; - --['c'] = {'Command', 'C'}; - --['cv'] = {'Vim·Ex ', 'V·E'}; - --['ce'] = {'Ex ', 'E'}; - --['r'] = {'Prompt ', 'P'}; - --['rm'] = {'More ', 'M'}; - --['r?'] = {'Confirm ', 'C'}; - --['!'] = {'Shell ', 'S'}; - --['t'] = {'Terminal ', 'T'}; ---}, { - --__index = function() - --return {'Unknown', 'U'} -- handle edge cases - --end ---}) - -local get_current_mode = function() - return string.format('[%s]', api.nvim_get_mode().mode ) -end - -local get_git_status = function() - -- use fallback because it doesn't set this variable on the initial `BufEnter` - local signs = vim.b.gitsigns_status_dict or {head = '', added = 0, changed = 0, removed = 0} - local is_head_empty = signs.head ~= '' - - if is_truncated(trunc_width.git_status) then - return is_head_empty and string.format(' %s ', signs.head or '') or '' - end - - return is_head_empty and string.format( - ' +%s ~%s -%s | %s ', - signs.added, signs.changed, signs.removed, signs.head - ) or '' -end - -local get_filename = function() - --if is_truncated(trunc_width.filename) then return "%<%f" end - return "%<%F" -end - -local get_filetype = function() +Statusline.get_filetype = function() local filetype = vim.bo.filetype if filetype == '' then return '' @@ -100,72 +27,50 @@ local get_filetype = function() return string.format('%s', filetype):lower() end -local get_line_col = function() - return '%l:%c' +local add_active = function(text) + Statusline.active = Statusline.active .. text end -Statusline = {} - -Statusline.active = function() - local navic = require('nvim-navic') - - --local mode = colors.mode .. self:get_current_mode() - --local mode_alt = colors.mode_alt .. self.separators[active_sep][1] - --local git = colors.git .. self:get_git_status() - --local git_alt = colors.git_alt .. self.separators[active_sep][1] - --local filename = colors.inactive .. self:get_filename() .. colors.git_alt - --local location = "" - --if navic.is_available() then - --location = navic.get_location() - --end - --local filetype_alt = colors.filetype_alt .. self.separators[active_sep][2] - --local filetype = colors.filetype .. self:get_filetype() - --local line_col = colors.line_col .. self:get_line_col() - --local line_col_alt = colors.line_col_alt .. self.separators[active_sep][2] - - local mode = get_current_mode() - --local git = get_git_status() - local filename = get_filename() .. colors.git_alt - local location = "" - if navic.is_available() then - location = navic.get_location() - end - local filetype = get_filetype() - local line_col = get_line_col() - - return table.concat({ - mode, " ", filename, " ", "%m%r%q", " ", filetype, - "%=", - location, " ", line_col, " " - }) +local add_inactive = function(text) + Statusline.inactive = Statusline.inactive .. text end -Statusline.inactive = function() - return colors.inactive .. '%F' +local addl_active = function(func) + Statusline.active = Statusline.active .. '%{v:lua.' .. func .. '}' end -Statusline.set_explorer = function() - local title = colors.mode .. ' ' - local title_alt = colors.mode_alt .. Statusline.separators[active_sep][2] - - return table.concat({ colors.active, title, title_alt }) +local addl_inactive = function(func) + Statusline.inactive = Statusline.inactive .. '%{v:lua.' .. func .. '}' end ---Statusline = setmetatable(M, { - --__call = function(statusline, mode) - --if mode == "active" then return statusline:set_active() end - --if mode == "inactive" then return statusline:set_inactive() end - --if mode == "explorer" then return statusline:set_explorer() end - --end ---}) +add_active('[') +addl_active('vim.api.nvim_get_mode().mode') +add_active(']') +add_active(' ') +add_active('%<%f') +add_active(' ') +add_active('%m%r%q') +add_active(' ') +addl_active('Statusline.get_filetype()') +add_active('%=') +addl_active('require("nvim-navic").get_location()') +add_active(' ') +add_active('%l:%c') +add_active(' ') + +add_inactive(colors.inactive .. '%F') local augroup = api.nvim_create_augroup('Statusline', { clear = true}) api.nvim_create_autocmd({"WinEnter", "BufEnter"}, { - command = "setlocal statusline=%!v:lua.Statusline.active()", + callback = function() + vim.wo.statusline = Statusline.active + end, group = augroup }) api.nvim_create_autocmd({"WinLeave", "BufLeave"}, { - command = "setlocal statusline=%!v:lua.Statusline.inactive()", + callback = function() + vim.wo.statusline = Statusline.inactive + end, group = augroup }) @@ -200,3 +105,18 @@ api.nvim_create_autocmd({"WinLeave", "BufLeave"}, { -- ) -- end -- end +-- +--local get_git_status = function() + ---- use fallback because it doesn't set this variable on the initial `BufEnter` + --local signs = vim.b.gitsigns_status_dict or {head = '', added = 0, changed = 0, removed = 0} + --local is_head_empty = signs.head ~= '' +-- + --if is_truncated(trunc_width.git_status) then + --return is_head_empty and string.format(' %s ', signs.head or '') or '' + --end +-- + --return is_head_empty and string.format( + --' +%s ~%s -%s | %s ', + --signs.added, signs.changed, signs.removed, signs.head + --) or '' +--end diff --git a/.config/nvim/lua/ui.lua b/.config/nvim/lua/ui.lua index e69de29..e69de29 100755..100644 --- a/.config/nvim/lua/ui.lua +++ b/.config/nvim/lua/ui.lua diff --git a/.config/nvim/lua/util.lua b/.config/nvim/lua/util.lua deleted file mode 100755 index 8b57d32..0000000 --- a/.config/nvim/lua/util.lua +++ /dev/null @@ -1,34 +0,0 @@ -return { - { - 'windwp/nvim-autopairs', - after = 'nvim-lspconfig', - config = function() - require('nvim-autopairs').setup{} - end - }, - { - 'nvim-lua/plenary.nvim' - }, - { - 'tversteeg/registers.nvim' - }, - { - 'nvim-telescope/telescope.nvim', - -- requires = { 'nvim-lua/plenary.nvim' }, - config = function() - local keymap = vim.api.nvim_set_keymap - local opts = { noremap = true, silent = true } - - keymap('n', '<leader>ff', '<cmd>Telescope find_files<cr>', opts) - keymap('n', '<leader>fb', '<cmd>Telescope buffers<cr>', opts) - keymap('n', '<leader>fh', '<cmd>Telescope help_tags<cr>', opts) - keymap('n', '<leader>fg', '<cmd>Telescope live_grep<cr>', opts) - end - }, - { - 'xiyaowong/which-key.nvim', - config = function() - require("which-key").setup() - end - } -} diff --git a/.config/nvim/lua/utils.lua b/.config/nvim/lua/utils.lua new file mode 100644 index 0000000..08ff22d --- /dev/null +++ b/.config/nvim/lua/utils.lua @@ -0,0 +1,23 @@ +local M = {} + +function M.lsp_peek() + local params = vim.lsp.util.make_position_params() + return vim.lsp.buf_request(0, 'textDocument/definition', params, + function(_, result, module, _) + if result == nil or vim.tbl_isempty(result) then + vim.lsp.log.info(module, 'No location found') + return nil + end + if vim.tbl_islist(result) then + vim.lsp.util.preview_location(result[1]) + else + vim.lsp.util.preview_location(result) + end + end) +end + +function M.config_home() + return os.getenv('XDG_CONFIG_HOME') or (vim.fn.expand('~') .. '/.config') +end + +return M |