commit 8767bc045160fd067c95cb8a4d03af5c906be008
parent c52cad47c6884f8779e9b44ea498df564d6f4718
Author: Tomas Nemec <nemi@skaut.cz>
Date: Sun, 19 Dec 2021 15:04:56 +0100
update
Diffstat:
13 files changed, 172 insertions(+), 18 deletions(-)
diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua
@@ -19,5 +19,5 @@ else
vim.cmd [[comp dart]]
end
-require('tms.p.cmp').enable_autocomplete()
+-- require('tms.p.cmp').enable_autocomplete()
diff --git a/ftplugin/gitcommit.lua b/ftplugin/gitcommit.lua
@@ -0,0 +1,8 @@
+require('cmp').setup.buffer {
+ sources = {
+ --
+ {name = 'glab_dpgw'},
+ {name = 'path'},
+ {name = 'buffer', keyword_length = 5},
+ },
+}
diff --git a/ftplugin/neorg.lua b/ftplugin/neorg.lua
@@ -0,0 +1,10 @@
+require('cmp').setup.buffer {
+ --
+ -- completion = {autocomplete = false},
+ sources = {
+ --
+ {name = 'neorg'},
+ {name = 'buffer'},
+ {name = 'path'},
+ },
+}
diff --git a/ftplugin/sh.lua b/ftplugin/sh.lua
@@ -1,4 +1,4 @@
vim.cmd [[comp bash]]
-local ok, cmp = pcall(require, 'cmp')
-if ok then cmp.setup.buffer {sources = {{name = 'nvim_lsp'}, {name = 'exe'}, {name = 'path'}}} end
+local cmp = require('cmp')
+cmp.setup.buffer {sources = {{name = 'nvim_lsp'}, {name = 'exe'}, {name = 'path'}}}
diff --git a/ftplugin/zsh.lua b/ftplugin/zsh.lua
@@ -1,4 +1,12 @@
vim.cmd [[comp zsh]]
-local ok, cmp = pcall(require, 'cmp')
-if ok then cmp.setup.buffer {sources = {{name = 'nvim_lsp'}, {name = 'exe'}, {name = 'path'}}} end
+require('cmp').setup.buffer {
+ --
+ completion = {autocomplete = false},
+ sources = {
+ --
+ {name = 'nvim_lsp'},
+ {name = 'exe'},
+ {name = 'path'},
+ },
+}
diff --git a/init.lua b/init.lua
@@ -32,7 +32,7 @@ vim.opt.ignorecase = true
vim.opt.inccommand = 'split'
vim.opt.incsearch = true
vim.opt.mouse = 'a'
-vim.opt.pumheight = 20
+vim.opt.pumheight = 5
vim.opt.shiftround = true
vim.opt.shortmess = vim.opt.shortmess + 'c'
vim.opt.showbreak = '">\\ "'
@@ -57,6 +57,7 @@ vim.opt.foldtext = 'MyFoldText()'
vim.opt.list = false
vim.opt.laststatus = 1
vim.opt.statusline = ' '
+vim.opt.ruler = false
vim.opt.listchars = {space = '·', tab = '» ', extends = '›', precedes = '‹', nbsp = '_', trail = '_', eol = '$'}
vim.opt.fillchars = {eob = '•', fold = ' '}
vim.opt.number = false
@@ -93,8 +94,8 @@ nnoremap {'<leader>q', '<cmd>quit<cr>'}
nnoremap {'<leader>Q', '<cmd>quit!<cr>'}
nnoremap {'<leader>M', '<cmd>messages<cr>'}
nnoremap {'<leader>so', '<cmd>source<cr>'}
-nnoremap {'<leader>o', '<cmd>BufOnly<cr>'}
-nnoremap {'<leader>O', '<cmd>BufOnly!<cr>'}
+nnoremap {'<leader>bo', '<cmd>BufOnly<cr>'}
+nnoremap {'<leader>bO', '<cmd>BufOnly!<cr>'}
-- window movement
nnoremap {'<a-h>', '<c-w>h'}
nnoremap {'<a-j>', '<c-w>j'}
@@ -168,6 +169,7 @@ au.addListeners({
['user-cursorline'] = {[[WinEnter * setlocal cursorline]], [[WinLeave * setlocal nocursorline]]},
['user-yank-high'] = {[[TextYankPost * silent! lua require'vim.highlight'.on_yank()]]},
['user-colorscheme'] = {[[ColorScheme * lua require('tms.u.reload').colors()]]},
+ -- ['user-pum'] = {[[CompleteChanged * echo v:event]]}
})
-- commands
diff --git a/lua/tms/p/cmp/exe_source.lua b/lua/tms/p/cmp/exe_source.lua
@@ -1,6 +1,6 @@
local source = {}
-local get_files = function(callback)
+local executable_files = function(callback)
local job = require('plenary.job')
job:new({
command = 'zsh',
@@ -17,7 +17,7 @@ end
---Source constructor.
source.new = function()
local self = setmetatable({}, {__index = source})
- get_files(function(items) self.files = items end)
+ executable_files(function(items) self.files = items end)
return self
end
diff --git a/lua/tms/p/cmp/glab_source.lua b/lua/tms/p/cmp/glab_source.lua
@@ -0,0 +1,56 @@
+local source = {}
+
+local glab_issues = function(callback)
+ require('plenary.job'):new({
+ command = 'glab_all_issues',
+ args = {},
+ on_exit = function(j, code)
+ if code > 0 then callback({}) end
+ local issues = {}
+ for _, item in ipairs(j:result()) do
+ local id, info = string.match(item, '#(%d+)\t(.-)\t')
+ table.insert(issues, {
+ --
+ label = '#' .. id .. ' ' .. info,
+ insertText = id,
+ kind = require('cmp').lsp.CompletionItemKind.Text,
+ })
+ end
+ callback(issues)
+ end,
+ }):start()
+end
+
+---Source constructor.
+source.new = function()
+ local self = setmetatable({}, {__index = source})
+ self.issues = {}
+ return self
+end
+
+---Return trigger characters.
+---@param params cmp.SourceBaseApiParams
+---@return string[]
+function source:get_trigger_characters(params) return {'#'} end
+
+---Invoke completion (required).
+--- If you want to abort completion, just call the callback without arguments.
+---@param params cmp.SourceCompletionApiParams
+---@param callback fun(response: lsp.CompletionResponse|nil)
+function source:complete(params, callback)
+ if not params.context.cursor_before_line:find('dpgw#$') then return end
+ if #self.issues == 0 then
+ glab_issues(function(issues)
+ self.issues = issues
+ callback(self.issues)
+ end)
+ end
+
+ if #self.issues > 0 then
+ callback(self.issues)
+ else
+ callback()
+ end
+end
+
+return source
diff --git a/lua/tms/p/cmp/init.lua b/lua/tms/p/cmp/init.lua
@@ -1,13 +1,17 @@
local M = {}
-local register_sources = function() require('cmp').register_source('exe', require('tms.p.cmp.exe_source').new()) end
+local setup_sources = function()
+ require('cmp_dictionary').setup({})
+ require('cmp').register_source('exe', require('tms.p.cmp.exe_source').new())
+ require('cmp').register_source('glab_dpgw', require('tms.p.cmp.glab_source').new())
+end
M.setup = function()
- register_sources()
+ setup_sources()
local cmp = require('cmp')
cmp.setup({
- completion = {autocomplete = false},
+ -- completion = {autocomplete = false},
documentation = {border = 'single'},
snippet = {expand = function(args) require('luasnip').lsp_expand(args.body) end},
mapping = {
@@ -17,7 +21,6 @@ M.setup = function()
['<C-e>'] = cmp.mapping.close(),
['<C-y>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace, select = true}),
['<C-o>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace, select = true}),
- ['<CR>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace, select = true}),
['<Left>'] = cmp.mapping.close(),
['<Down>'] = cmp.mapping.select_next_item(),
['<Up>'] = cmp.mapping.select_prev_item(),
@@ -34,7 +37,7 @@ M.setup = function()
{name = 'treesitter'},
{name = 'dictionary'},
}),
- experimental = {ghost_text = true, native_menu = false},
+ experimental = {ghost_text = true},
})
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
@@ -48,6 +51,8 @@ M.setup = function()
end
+M.disable_autocomplete = function() require('cmp').setup.buffer {completion = {autocomplete = false}} end
+
M.enable_autocomplete = function()
local cmp = require('cmp')
cmp.setup.buffer {completion = {autocomplete = {cmp.TriggerEvent.TextChanged}}}
diff --git a/lua/tms/p/neorg.lua b/lua/tms/p/neorg.lua
@@ -0,0 +1,28 @@
+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
@@ -24,7 +24,8 @@ M.setup = function()
local null_ls = require('null-ls')
local h = require('null-ls.helpers')
local builtins = null_ls.builtins
- null_ls.config({
+ null_ls.setup({
+ -- on_attach = nil,
sources = {
-- formatting
builtins.formatting.prettier.with {
@@ -47,7 +48,6 @@ M.setup = function()
zsh_diag(),
},
})
- require('tms.lsp').add('null-ls')
end
return M
diff --git a/lua/tms/p/treesitter.lua b/lua/tms/p/treesitter.lua
@@ -1,6 +1,33 @@
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'} --]] },
diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua
@@ -200,6 +200,11 @@ return packer.startup({
end,
}
use {'luukvbaal/stabilize.nvim'}
+ use {
+ 'nvim-neorg/neorg',
+ requires = {'nvim-lua/plenary.nvim'},
+ config = function() require('tms.p.neorg').setup() end,
+ }
-- quickfix list
use {'kevinhwang91/nvim-bqf', config = function() require('tms.p.bqf').setup() end}
@@ -239,7 +244,12 @@ return packer.startup({
vim.keymap.xmap {'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>'}
end,
}
- use 'sindrets/diffview.nvim' -- view diffs for multiple files
+ use { -- view diffs for multiple files
+ 'sindrets/diffview.nvim',
+ config = function() --
+ vim.keymap.nmap {'<leader>f', '<cmd>DiffViewOpen<cr>'}
+ end,
+ }
use { -- git integration
'tpope/vim-fugitive',
config = function()