summaryrefslogtreecommitdiff
path: root/.config/nvim/lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua')
-rw-r--r--.config/nvim/lua/.luarc.json4
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/autocmds.lua20
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/keymaps.lua82
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/lilies.lua0
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/options.lua10
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/plugins.lua131
-rw-r--r--.config/nvim/lua/statusline.lua178
-rw-r--r--[-rwxr-xr-x].config/nvim/lua/ui.lua0
-rwxr-xr-x.config/nvim/lua/util.lua34
-rw-r--r--.config/nvim/lua/utils.lua23
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