nvim: move to lazy package manager
This commit is contained in:
23
.config/nvim/lua/plugins/boole.lua
Normal file
23
.config/nvim/lua/plugins/boole.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
'nat-418/boole.nvim',
|
||||
config = function()
|
||||
require'boole'.setup({
|
||||
mappings = {
|
||||
increment = '<C-a>',
|
||||
decrement = '<C-x>'
|
||||
},
|
||||
-- User defined loops
|
||||
additions = {
|
||||
{'Foo', 'Bar'},
|
||||
{'tic', 'tac', 'toe'},
|
||||
{'light', 'dark'},
|
||||
{'phaseOne', 'phaseTwo', 'phaseThree'},
|
||||
{'PhaseOne', 'PhaseTwo', 'PhaseThree'},
|
||||
{'Enable', 'Disable'},
|
||||
{'ENABLE', 'DISABLE'},
|
||||
{'enable', 'disable'},
|
||||
{'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'},
|
||||
},
|
||||
})
|
||||
end
|
||||
}
|
||||
4
.config/nvim/lua/plugins/comment.lua
Normal file
4
.config/nvim/lua/plugins/comment.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'numToStr/Comment.nvim',
|
||||
config = true
|
||||
}
|
||||
4
.config/nvim/lua/plugins/compiler-explorer.lua
Normal file
4
.config/nvim/lua/plugins/compiler-explorer.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'krady21/compiler-explorer.nvim',
|
||||
config = true
|
||||
}
|
||||
41
.config/nvim/lua/plugins/context.lua
Normal file
41
.config/nvim/lua/plugins/context.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
return {
|
||||
'romgrk/nvim-treesitter-context',
|
||||
dependencies = 'nvim-treesitter/nvim-treesitter',
|
||||
config = function()
|
||||
-- " Configuration for context.vim
|
||||
-- "" Disable context.vim on json files
|
||||
vim.g.context_filetype_blacklist = {"json", "log"}
|
||||
require('treesitter-context').setup{
|
||||
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
|
||||
throttle = true, -- Throttles plugin updates (may improve performance)
|
||||
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
|
||||
patterns = { -- Match patterns for TS nodes. These get wrapped to match at word boundaries.
|
||||
-- For all filetypes
|
||||
-- Note that setting an entry here replaces all other patterns for this entry.
|
||||
-- By setting the 'default' entry below, you can control which nodes you want to
|
||||
-- appear in the context window.
|
||||
default = {
|
||||
'class',
|
||||
'function',
|
||||
'method',
|
||||
'for',
|
||||
'while',
|
||||
'if',
|
||||
'switch',
|
||||
-- 'case',
|
||||
},
|
||||
-- Example for a specific filetype.
|
||||
-- If a pattern is missing, *open a PR* so everyone can benefit.
|
||||
rust = {
|
||||
'impl_item',
|
||||
},
|
||||
},
|
||||
exact_patterns = {
|
||||
-- Example for a specific filetype with Lua patterns
|
||||
-- Treat patterns.rust as a Lua pattern (i.e "^impl_item$" will
|
||||
-- exactly match "impl_item" only)
|
||||
rust = true,
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
5
.config/nvim/lua/plugins/crates.lua
Normal file
5
.config/nvim/lua/plugins/crates.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
'Saecki/crates.nvim',
|
||||
dependencies = 'jose-elias-alvarez/null-ls.nvim',
|
||||
config = true
|
||||
}
|
||||
4
.config/nvim/lua/plugins/debugprint.lua
Normal file
4
.config/nvim/lua/plugins/debugprint.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'andrewferrier/debugprint.nvim',
|
||||
config = true,
|
||||
}
|
||||
162
.config/nvim/lua/plugins/dressing.lua
Normal file
162
.config/nvim/lua/plugins/dressing.lua
Normal file
@@ -0,0 +1,162 @@
|
||||
return {
|
||||
'stevearc/dressing.nvim',
|
||||
opts = {
|
||||
input = {
|
||||
-- Set to false to disable the vim.ui.input implementation
|
||||
enabled = true,
|
||||
|
||||
-- Default prompt string
|
||||
default_prompt = "Input:",
|
||||
|
||||
-- Can be 'left', 'right', or 'center'
|
||||
prompt_align = "left",
|
||||
|
||||
-- When true, <Esc> will close the modal
|
||||
insert_only = true,
|
||||
|
||||
-- When true, input will start in insert mode.
|
||||
start_in_insert = true,
|
||||
|
||||
-- These are passed to nvim_open_win
|
||||
anchor = "SW",
|
||||
border = "rounded",
|
||||
-- 'editor' and 'win' will default to being centered
|
||||
relative = "cursor",
|
||||
|
||||
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
prefer_width = 40,
|
||||
width = nil,
|
||||
-- min_width and max_width can be a list of mixed types.
|
||||
-- min_width = {20, 0.2} means "the greater of 20 columns or 20% of total"
|
||||
max_width = { 140, 0.9 },
|
||||
min_width = { 20, 0.2 },
|
||||
|
||||
buf_options = {},
|
||||
win_options = {
|
||||
-- Window transparency (0-100)
|
||||
winblend = 10,
|
||||
-- Disable line wrapping
|
||||
wrap = false,
|
||||
},
|
||||
|
||||
-- Set to `false` to disable
|
||||
mappings = {
|
||||
n = {
|
||||
["<Esc>"] = "Close",
|
||||
["<CR>"] = "Confirm",
|
||||
},
|
||||
i = {
|
||||
["<C-c>"] = "Close",
|
||||
["<CR>"] = "Confirm",
|
||||
["<Up>"] = "HistoryPrev",
|
||||
["<Down>"] = "HistoryNext",
|
||||
},
|
||||
},
|
||||
|
||||
override = function(conf)
|
||||
-- This is the config that will be passed to nvim_open_win.
|
||||
-- Change values here to customize the layout
|
||||
return conf
|
||||
end,
|
||||
|
||||
-- see :help dressing_get_config
|
||||
get_config = nil,
|
||||
},
|
||||
select = {
|
||||
-- Set to false to disable the vim.ui.select implementation
|
||||
enabled = true,
|
||||
|
||||
-- Priority list of preferred vim.select implementations
|
||||
backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" },
|
||||
|
||||
-- Trim trailing `:` from prompt
|
||||
trim_prompt = true,
|
||||
|
||||
-- Options for telescope selector
|
||||
-- These are passed into the telescope picker directly. Can be used like:
|
||||
-- telescope = require('telescope.themes').get_ivy({...})
|
||||
telescope = nil,
|
||||
|
||||
-- Options for fzf selector
|
||||
fzf = {
|
||||
window = {
|
||||
width = 0.5,
|
||||
height = 0.4,
|
||||
},
|
||||
},
|
||||
|
||||
-- Options for fzf_lua selector
|
||||
fzf_lua = {
|
||||
winopts = {
|
||||
width = 0.5,
|
||||
height = 0.4,
|
||||
},
|
||||
},
|
||||
|
||||
-- Options for nui Menu
|
||||
nui = {
|
||||
position = "50%",
|
||||
size = nil,
|
||||
relative = "editor",
|
||||
border = {
|
||||
style = "rounded",
|
||||
},
|
||||
buf_options = {
|
||||
swapfile = false,
|
||||
filetype = "DressingSelect",
|
||||
},
|
||||
win_options = {
|
||||
winblend = 10,
|
||||
},
|
||||
max_width = 80,
|
||||
max_height = 40,
|
||||
min_width = 40,
|
||||
min_height = 10,
|
||||
},
|
||||
|
||||
-- Options for built-in selector
|
||||
builtin = {
|
||||
-- These are passed to nvim_open_win
|
||||
anchor = "NW",
|
||||
border = "rounded",
|
||||
-- 'editor' and 'win' will default to being centered
|
||||
relative = "editor",
|
||||
|
||||
buf_options = {},
|
||||
win_options = {
|
||||
-- Window transparency (0-100)
|
||||
winblend = 10,
|
||||
},
|
||||
|
||||
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
-- the min_ and max_ options can be a list of mixed types.
|
||||
-- max_width = {140, 0.8} means "the lesser of 140 columns or 80% of total"
|
||||
width = nil,
|
||||
max_width = { 140, 0.8 },
|
||||
min_width = { 40, 0.2 },
|
||||
height = nil,
|
||||
max_height = 0.9,
|
||||
min_height = { 10, 0.2 },
|
||||
|
||||
-- Set to `false` to disable
|
||||
mappings = {
|
||||
["<Esc>"] = "Close",
|
||||
["<C-c>"] = "Close",
|
||||
["<CR>"] = "Confirm",
|
||||
},
|
||||
|
||||
override = function(conf)
|
||||
-- This is the config that will be passed to nvim_open_win.
|
||||
-- Change values here to customize the layout
|
||||
return conf
|
||||
end,
|
||||
},
|
||||
|
||||
-- Used to override format_item. See :help dressing-format
|
||||
format_item_override = {},
|
||||
|
||||
-- see :help dressing_get_config
|
||||
get_config = nil,
|
||||
},
|
||||
}
|
||||
}
|
||||
5
.config/nvim/lua/plugins/femaco.lua
Normal file
5
.config/nvim/lua/plugins/femaco.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
--require('femaco').setup()
|
||||
'AckslD/nvim-FeMaco.lua',
|
||||
config = true
|
||||
}
|
||||
44
.config/nvim/lua/plugins/fterm.lua
Normal file
44
.config/nvim/lua/plugins/fterm.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
return {
|
||||
'numToStr/FTerm.nvim',
|
||||
opts = {
|
||||
-- Filetype of the terminal buffer
|
||||
ft = 'FTerm',
|
||||
|
||||
-- Command to run inside the terminal. It could be a `string` or `table`
|
||||
cmd = os.getenv('SHELL'),
|
||||
|
||||
-- Neovim's native window border. See `:h nvim_open_win` for more configuration options.
|
||||
border = 'double',
|
||||
|
||||
-- Close the terminal as soon as shell/command exits.
|
||||
-- Disabling this will mimic the native terminal behaviour.
|
||||
auto_close = true,
|
||||
|
||||
-- Highlight group for the terminal. See `:h winhl`
|
||||
hl = 'Normal',
|
||||
|
||||
-- Transparency of the floating window. See `:h winblend`
|
||||
blend = 0,
|
||||
|
||||
-- Object containing the terminal window dimensions.
|
||||
-- The value for each field should be between `0` and `1`
|
||||
dimensions = {
|
||||
height = 0.9, -- Height of the terminal window
|
||||
width = 0.9, -- Width of the terminal window
|
||||
x = 0.5, -- X axis of the terminal window
|
||||
y = 0.5, -- Y axis of the terminal window
|
||||
},
|
||||
|
||||
-- Callback invoked when the terminal exits.
|
||||
-- See `:h jobstart-options`
|
||||
on_exit = nil,
|
||||
|
||||
-- Callback invoked when the terminal emits stdout data.
|
||||
-- See `:h jobstart-options`
|
||||
on_stdout = nil,
|
||||
|
||||
-- Callback invoked when the terminal emits stderr data.
|
||||
-- See `:h jobstart-options`
|
||||
on_stderr = nil,
|
||||
}
|
||||
}
|
||||
29
.config/nvim/lua/plugins/gitlinker.lua
Normal file
29
.config/nvim/lua/plugins/gitlinker.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
return {
|
||||
'ruifm/gitlinker.nvim',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim'
|
||||
},
|
||||
opts = {
|
||||
callbacks = {
|
||||
["git.viessmann.com"] = function(url_data)
|
||||
local url = require'gitlinker.hosts'.get_base_https_url(url_data)
|
||||
if not url_data.file or not url_data.rev then
|
||||
return url
|
||||
end
|
||||
url = url .. "/src/" .. url_data.rev .. "/" .. url_data.file
|
||||
|
||||
if not url_data.lstart then
|
||||
return url
|
||||
end
|
||||
url = url .. "#lines-" .. url_data.lstart
|
||||
if url_data.lend then
|
||||
url = url .. ":" .. url_data.lend
|
||||
end
|
||||
|
||||
return url
|
||||
end
|
||||
},
|
||||
-- default mapping to call url generation with action_callback
|
||||
mappings = "<leader>gl"
|
||||
}
|
||||
}
|
||||
107
.config/nvim/lua/plugins/gitsigns.lua
Normal file
107
.config/nvim/lua/plugins/gitsigns.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
return {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
opts = {
|
||||
signs = {
|
||||
add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'},
|
||||
change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||
delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||
topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||
},
|
||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
|
||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||
--keymaps = {
|
||||
-- -- Default keymap options
|
||||
-- noremap = true,
|
||||
|
||||
-- ['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'"},
|
||||
-- ['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'"},
|
||||
|
||||
-- ['n <leader>hs'] = '<cmd>Gitsigns stage_hunk<CR>',
|
||||
-- ['v <leader>hs'] = '<cmd>Gitsigns stage_hunk<CR>',
|
||||
-- ['n <leader>hu'] = '<cmd>Gitsigns undo_stage_hunk<CR>',
|
||||
-- ['n <leader>hr'] = '<cmd>Gitsigns reset_hunk<CR>',
|
||||
-- ['v <leader>hr'] = '<cmd>:Gitsigns reset_hunk<CR>',
|
||||
-- ['n <leader>hR'] = '<cmd>Gitsigns reset_buffer<CR>',
|
||||
-- ['n <leader>hp'] = '<cmd>Gitsigns preview_hunk<CR>',
|
||||
-- ['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line{full=true}<CR>',
|
||||
-- ['n <leader>hS'] = '<cmd>Gitsigns stage_buffer<CR>',
|
||||
-- ['n <leader>hU'] = '<cmd>Gitsigns reset_buffer_index<CR>',
|
||||
|
||||
-- -- Text objects
|
||||
-- ['o ih'] = '<cmd><C-U>Gitsigns select_hunk<CR>',
|
||||
-- ['x ih'] = '<cmd><C-U>Gitsigns select_hunk<CR>'
|
||||
--},
|
||||
on_attach = function(bufnr)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
-- Navigation
|
||||
map('n', ']c', function()
|
||||
if vim.wo.diff then return ']c' end
|
||||
vim.schedule(function() gs.next_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
map('n', '[c', function()
|
||||
if vim.wo.diff then return '[c' end
|
||||
vim.schedule(function() gs.prev_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
-- Actions
|
||||
map({'n', 'v'}, '<leader>hs', '<cmd>Gitsigns stage_hunk<CR>')
|
||||
map({'n', 'v'}, '<leader>hr', '<cmd>Gitsigns reset_hunk<CR>')
|
||||
map('n', '<leader>hS', gs.stage_buffer)
|
||||
map('n', '<leader>hu', gs.undo_stage_hunk)
|
||||
map('n', '<leader>hR', gs.reset_buffer)
|
||||
map('n', '<leader>hp', gs.preview_hunk)
|
||||
map('n', '<leader>hb', function() gs.blame_line{full=true} end)
|
||||
map('n', '<leader>tb', gs.toggle_current_line_blame)
|
||||
map('n', '<leader>hd', gs.diffthis)
|
||||
map('n', '<leader>hD', function() gs.diffthis('~') end)
|
||||
map('n', '<leader>td', gs.toggle_deleted)
|
||||
|
||||
-- Text object
|
||||
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||
end,
|
||||
|
||||
watch_gitdir = {
|
||||
interval = 1000,
|
||||
follow_files = true
|
||||
},
|
||||
attach_to_untracked = true,
|
||||
current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = true,
|
||||
},
|
||||
current_line_blame_formatter_opts = {
|
||||
relative_time = false
|
||||
},
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil, -- Use default
|
||||
max_file_length = 40000,
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = 'single',
|
||||
style = 'minimal',
|
||||
relative = 'cursor',
|
||||
row = 0,
|
||||
col = 1
|
||||
},
|
||||
yadm = {
|
||||
enable = true
|
||||
},
|
||||
}
|
||||
}
|
||||
6
.config/nvim/lua/plugins/icons.lua
Normal file
6
.config/nvim/lua/plugins/icons.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'ziontee113/icon-picker.nvim',
|
||||
config = function()
|
||||
require("icon-picker").setup({disable_legacy_commands = true })
|
||||
end
|
||||
}
|
||||
47
.config/nvim/lua/plugins/illuminate.lua
Normal file
47
.config/nvim/lua/plugins/illuminate.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
return {
|
||||
'nyngwang/murmur.lua',
|
||||
config = function()
|
||||
--require('illuminate').configure({
|
||||
-- large_file_cutoff = 3000
|
||||
--})
|
||||
|
||||
HIGHLIGHT = 'highlight'
|
||||
vim.api.nvim_create_augroup(HIGHLIGHT, { clear = true })
|
||||
|
||||
require('murmur').setup {
|
||||
cursor_rgb = 'darkgreen', -- default to '#393939'
|
||||
max_len = 80, -- maximum word-length to highlight
|
||||
-- disable_on_lines = 2000, -- to prevent lagging on large files. Default to 2000 lines.
|
||||
exclude_filetypes = {'log'},
|
||||
callbacks = {
|
||||
-- to trigger the close_events of vim.diagnostic.open_float.
|
||||
function ()
|
||||
-- Close floating diag. and make it triggerable again.
|
||||
vim.cmd('doautocmd InsertEnter')
|
||||
vim.w.diag_shown = false
|
||||
end,
|
||||
}
|
||||
}
|
||||
vim.api.nvim_create_autocmd('CursorHold', {
|
||||
group = HIGHLIGHT,
|
||||
pattern = '*',
|
||||
callback = function ()
|
||||
-- skip when a float-win already exists.
|
||||
if vim.w.diag_shown then return end
|
||||
|
||||
-- open float-win when hovering on a cursor-word.
|
||||
if vim.w.cursor_word ~= '' then
|
||||
vim.diagnostic.open_float(nil, {
|
||||
focusable = true,
|
||||
close_events = { 'InsertEnter' },
|
||||
border = 'rounded',
|
||||
source = 'always',
|
||||
prefix = ' ',
|
||||
scope = 'cursor',
|
||||
})
|
||||
vim.w.diag_shown = true
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
}
|
||||
13
.config/nvim/lua/plugins/image.lua
Normal file
13
.config/nvim/lua/plugins/image.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
'samodostal/image.nvim',
|
||||
opts = {
|
||||
render = {
|
||||
min_padding = 5,
|
||||
show_label = true,
|
||||
use_dither = true,
|
||||
},
|
||||
events = {
|
||||
update_on_nvim_resize = true,
|
||||
},
|
||||
}
|
||||
}
|
||||
115
.config/nvim/lua/plugins/init.lua
Normal file
115
.config/nvim/lua/plugins/init.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
return {{
|
||||
-- Code development helpers {{{
|
||||
--"vim-test/vim-test",
|
||||
--"RRethy/vim-illuminate",
|
||||
{ "ftilde/vim-ugdb", cmd = "UGDBBreakpoint" },
|
||||
"jubnzv/virtual-types.nvim",
|
||||
'p00f/clangd_extensions.nvim',
|
||||
'ray-x/lsp_signature.nvim',
|
||||
"mrjones2014/nvim-ts-rainbow",
|
||||
-- }}}
|
||||
|
||||
-- }}}
|
||||
|
||||
-- Files switch, jump and grep-like tools {{{
|
||||
--"inside/vim-search-pulse",
|
||||
"MunifTanjim/nui.nvim",
|
||||
"ggandor/leap.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-lua/popup.nvim",
|
||||
"wellle/targets.vim",
|
||||
-- }}}
|
||||
|
||||
-- Git integration {{{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
"tpope/vim-fugitive",
|
||||
-- }}}
|
||||
|
||||
-- Support for random filetypes {{{
|
||||
--"chrisbra/csv.vim",
|
||||
--"iamcco/markdown-preview.nvim",, { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
|
||||
--"vim-pandoc/vim-pandoc",
|
||||
--"weirongxu/plantuml-previewer.vim", |
|
||||
"aklt/plantuml-syntax",
|
||||
"kergoth/vim-bitbake", -- Bitbake templates and syntax
|
||||
-- }}}
|
||||
|
||||
-- Other plugins (external tools, etc) {{{
|
||||
--"JMcKiern/vim-shoot",
|
||||
--"MortenStabenau/matlab-vim",
|
||||
--"junegunn/goyo.vim",
|
||||
"protex/better-digraphs.nvim",
|
||||
-- }}}
|
||||
|
||||
-- Note taking {{{
|
||||
"nvim-neorg/neorg",
|
||||
-- }}}
|
||||
|
||||
-- Appearance {{{
|
||||
--"jaredgorski/spacecamp",
|
||||
--"lifepillar/vim-gruvbox8",
|
||||
--"marko-cerovac/material.nvim",
|
||||
--"srcery-colors/srcery-vim",
|
||||
--"tanvirtin/monokai.nvim",
|
||||
{
|
||||
'anuvyklack/pretty-fold.nvim',
|
||||
config = function()
|
||||
require('pretty-fold').setup()
|
||||
require('pretty-fold').ft_setup('cpp', {
|
||||
process_comment_signs = false,
|
||||
--comment_signs = {
|
||||
-- '//', -- C++ Doxygen comments
|
||||
--},
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
'anuvyklack/fold-preview.nvim',
|
||||
dependencies = 'anuvyklack/keymap-amend.nvim',
|
||||
config = function()
|
||||
require('fold-preview').setup({
|
||||
-- Your configuration goes here.
|
||||
})
|
||||
end
|
||||
},
|
||||
"stevearc/dressing.nvim",
|
||||
--"wuelnerdotexe/vim-enfocado",
|
||||
{
|
||||
"fenetikm/falcon",
|
||||
lazy = false,
|
||||
config = function()
|
||||
-- vim.cmd([[ colorscheme falcon]])
|
||||
end
|
||||
},
|
||||
{
|
||||
"rebelot/kanagawa.nvim",
|
||||
lazy = false,
|
||||
config = function()
|
||||
vim.cmd([[ colorscheme kanagawa]])
|
||||
end
|
||||
},
|
||||
-- }}}
|
||||
|
||||
-- Testing phase {{{
|
||||
--"RRethy/vim-hexokinase",, { 'do': 'make hexokinase' }
|
||||
--"euclio/vim-markdown-composer",, {'do': ':!cargo build --release --locked'}
|
||||
|
||||
--"https://git.sr.ht/~whynothugo/lsp_lines.nvim",
|
||||
--require('lsp_lines').setup()
|
||||
|
||||
--"mfussenegger/nvim-dap",
|
||||
--"narutoxy/silicon.lua",
|
||||
--"nguyenvukhang/nvim-toggler",
|
||||
--"rgroli/other.nvim", " Currently doesn't support C/C++
|
||||
--"smolovk/projector.nvim",
|
||||
"Pocco81/true-zen.nvim",
|
||||
{'krivahtoo/silicon.nvim', build = './install.sh' },
|
||||
"nullchilly/fsread.nvim",
|
||||
"ziontee113/icon-picker.nvim",
|
||||
"cbochs/grapple.nvim",
|
||||
"shortcuts/no-neck-pain.nvim",
|
||||
"edluffy/specs.nvim",
|
||||
{ 'ruifm/gitlinker.nvim', dependencies = 'nvim-lua/plenary.nvim'},
|
||||
--'jinzhongjia/PS_manager.nvim',
|
||||
-- }}}
|
||||
}}
|
||||
34
.config/nvim/lua/plugins/knap.lua
Normal file
34
.config/nvim/lua/plugins/knap.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
return {
|
||||
'frabjous/knap',
|
||||
config = function()
|
||||
local gknapsettings = {
|
||||
htmloutputext = "html",
|
||||
htmltohtml = "touch %outputfile%",
|
||||
htmltohtmlviewerlaunch = "google-chrome-beta %outputfile%",
|
||||
htmltohtmlviewerrefresh = "none",
|
||||
mdoutputext = "html",
|
||||
mdtohtml = "pandoc --standalone %docroot% -o %outputfile%",
|
||||
mdtohtmlviewerlaunch = "google-chrome-beta %outputfile%",
|
||||
mdtohtmlviewerrefresh = "none",
|
||||
mdtopdf = "pandoc %docroot% -o %outputfile%",
|
||||
mdtopdfviewerlaunch = "sioyek %outputfile%",
|
||||
mdtopdfviewerrefresh = "none",
|
||||
markdownoutputext = "html",
|
||||
markdowntohtml = "pandoc --standalone %docroot% -o %outputfile%",
|
||||
markdowntohtmlviewerlaunch = "google-chrome-beta %outputfile%",
|
||||
markdowntohtmlviewerrefresh = "none",
|
||||
markdowntopdf = "pandoc %docroot% -o %outputfile%",
|
||||
markdowntopdfviewerlaunch = "sioyek %outputfile%",
|
||||
markdowntopdfviewerrefresh = "none",
|
||||
texoutputext = "pdf",
|
||||
textopdf = "pdflatex -interaction=batchmode -halt-on-error -synctex=1 %docroot%",
|
||||
textopdfviewerlaunch = "sioyek --inverse-search 'nvim --headless -es --cmd \"lua require('\"'\"'knaphelper'\"'\"').relayjump('\"'\"'%servername%'\"'\"','\"'\"'%1'\"'\"',%2,%3)\"' --reuse-instance %outputfile%",
|
||||
textopdfviewerrefresh = "none",
|
||||
textopdfforwardjump = "sioyek --inverse-search 'nvim --headless -es --cmd \"lua require('\"'\"'knaphelper'\"'\"').relayjump('\"'\"'%servername%'\"'\"','\"'\"'%1'\"'\"',%2,%3)\"' --reuse-instance --forward-search-file %srcfile% --forward-search-line %line% %outputfile%",
|
||||
textopdfshorterror = "A=%outputfile% ; LOGFILE=\"${A%.pdf}.log\" ; rubber-info \"$LOGFILE\" 2>&1 | head -n 1",
|
||||
delay = 250
|
||||
}
|
||||
|
||||
vim.g.knap_settings = gknapsettings
|
||||
end
|
||||
}
|
||||
155
.config/nvim/lua/plugins/lspconfig.lua
Normal file
155
.config/nvim/lua/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,155 @@
|
||||
return {
|
||||
'neovim/nvim-lspconfig',
|
||||
config = function()
|
||||
local nvim_lsp = require('lspconfig')
|
||||
local clangd_extensions = require('clangd_extensions')
|
||||
local lsp_signature = require('lsp_signature')
|
||||
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
vim.api.nvim_set_keymap('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<leader>E', '<cmd>lua vim.diagnostic.set_loclist()<CR>', opts)
|
||||
vim.api.nvim_set_keymap("n", "<leader>q", "<cmd>lua vim.lsp.buf.format{ async = true }<CR>", opts)
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(client, bufnr)
|
||||
--Enable completion triggered by <c-x><c-o>
|
||||
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
||||
---- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||
--vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<F6>', '<cmd>ClangdSwitchSourceHeader<cr>', opts)
|
||||
|
||||
-- require'illuminate'.on_attach(client)
|
||||
require'virtualtypes'.on_attach()
|
||||
require'lsp_signature'.on_attach({
|
||||
floating_window = true,
|
||||
floating_window_above_cur_line = false,
|
||||
floating_window_off_x = 500,
|
||||
floating_window_off_y = -5,
|
||||
})
|
||||
end
|
||||
|
||||
local signs = {
|
||||
{ name = "DiagnosticSignError", text = "" },
|
||||
{ name = "DiagnosticSignWarn", text = "" },
|
||||
{ name = "DiagnosticSignHint", text = "" },
|
||||
{ name = "DiagnosticSignInfo", text = "" },
|
||||
}
|
||||
|
||||
for _, sign in ipairs(signs) do
|
||||
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
|
||||
end
|
||||
|
||||
--vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||
-- vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
-- signs = {
|
||||
-- active = signs,
|
||||
-- --severity_limit = 'info',
|
||||
-- },
|
||||
-- severity_sort = true,
|
||||
-- underline = false,
|
||||
-- update_in_insert = false,
|
||||
-- --virtual_text = {
|
||||
-- -- spacing = 40,
|
||||
-- -- severity_limit = 'Warning',
|
||||
-- --},
|
||||
-- virtual_text = false,
|
||||
-- }
|
||||
--)
|
||||
--
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
|
||||
nvim_lsp.groovyls.setup({
|
||||
cmd = { "java", "-jar", "/home/kmcr/tools/groovy-language-server/build/libs/groovy-language-server-all.jar" },
|
||||
on_attach = on_attach,
|
||||
--on_publish_diagnostics = diagnostic_handler,
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
-- nvim_lsp.ccls.setup(
|
||||
-- coq.lsp_ensure_capabilities({
|
||||
-- init_options = {
|
||||
-- compilationDatabaseDirectory = ".";
|
||||
-- index = {
|
||||
-- threads = 0;
|
||||
-- },
|
||||
-- clang = {
|
||||
-- excludeArgs = { "-frounding-math"} ;
|
||||
-- },
|
||||
-- },
|
||||
-- root_dir = nvim_lsp.util.root_pattern("compile_commands.json"),
|
||||
-- on_attach = on_attach,
|
||||
-- on_publish_diagnostics = diagnostic_handler,
|
||||
-- flags = {
|
||||
-- debounce_text_changes = 150,
|
||||
-- }}
|
||||
-- )
|
||||
-- )
|
||||
|
||||
clangd_extensions.setup({
|
||||
server = {
|
||||
on_attach = on_attach,
|
||||
root_pattern = {
|
||||
'.clangd',
|
||||
'.clang-tidy',
|
||||
'.clang-format',
|
||||
'compile_commands.json',
|
||||
'compile_flags.txt',
|
||||
'configure.ac',
|
||||
},
|
||||
capabilities = capabilities
|
||||
},
|
||||
inlay_hints = {
|
||||
max_len_align = true,
|
||||
max_len_align_padding = 3,
|
||||
right_align = true,
|
||||
}
|
||||
})
|
||||
|
||||
nvim_lsp.pylsp.setup({
|
||||
settings = {
|
||||
pylint = {
|
||||
enabled = false
|
||||
},
|
||||
pyflakes = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
-- flags = {
|
||||
-- debounce_text_changes = 150,
|
||||
-- },
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities
|
||||
--on_publish_diagnostics = diagnostic_handler,
|
||||
})
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
local servers = { "cmake", "rust_analyzer", "bashls", "marksman" }
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup({
|
||||
on_attach = on_attach,
|
||||
--on_publish_diagnostics = diagnostic_handler,
|
||||
capabilities = capabilities,
|
||||
-- flags = {
|
||||
-- debounce_text_changes = 150,
|
||||
-- }
|
||||
})
|
||||
end
|
||||
end
|
||||
}
|
||||
227
.config/nvim/lua/plugins/lualine.lua
Normal file
227
.config/nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,227 @@
|
||||
return {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
config = function()
|
||||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require('lualine')
|
||||
|
||||
-- Color table for highlights
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67',
|
||||
}
|
||||
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. Both are highlighted by c theme . So we
|
||||
-- are just setting default looks o statusline
|
||||
normal = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
inactive = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
},
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
-- Inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- Inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
return ''
|
||||
end,
|
||||
color = function()
|
||||
-- auto change color according to neovims mode
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
V = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
'filesize',
|
||||
cond = conditions.buffer_not_empty,
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
cond = conditions.buffer_not_empty,
|
||||
color = { fg = colors.magenta, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_left { 'location' }
|
||||
|
||||
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
symbols = { error = ' ', warn = ' ', info = ' ' },
|
||||
diagnostics_color = {
|
||||
color_error = { fg = colors.red },
|
||||
color_warn = { fg = colors.yellow },
|
||||
color_info = { fg = colors.cyan },
|
||||
},
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then
|
||||
return msg
|
||||
end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = { fg = '#ffffff', gui = 'bold' },
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||
cond = conditions.hide_in_width,
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
fmt = string.upper,
|
||||
icons_enabled = true, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
color = { fg = colors.violet, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = { added = ' ', modified = '柳 ', removed = ' ' },
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
cond = conditions.hide_in_width,
|
||||
}
|
||||
|
||||
ins_right {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
color = { fg = colors.blue },
|
||||
padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
||||
end
|
||||
}
|
||||
6
.config/nvim/lua/plugins/minimap.lua
Normal file
6
.config/nvim/lua/plugins/minimap.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
'gorbit99/codewindow.nvim',
|
||||
config = function()
|
||||
require('codewindow').setup()
|
||||
end
|
||||
}
|
||||
91
.config/nvim/lua/plugins/mkdnflow.lua
Normal file
91
.config/nvim/lua/plugins/mkdnflow.lua
Normal file
@@ -0,0 +1,91 @@
|
||||
return {
|
||||
'jakewvincent/mkdnflow.nvim',
|
||||
opts = {
|
||||
modules = {
|
||||
bib = true,
|
||||
buffers = true,
|
||||
conceal = true,
|
||||
cursor = true,
|
||||
folds = true,
|
||||
links = true,
|
||||
lists = true,
|
||||
maps = true,
|
||||
paths = true,
|
||||
tables = true
|
||||
},
|
||||
filetypes = {md = true, rmd = true, markdown = true},
|
||||
create_dirs = true,
|
||||
perspective = {
|
||||
priority = 'first',
|
||||
fallback = 'current',
|
||||
root_tell = false,
|
||||
nvim_wd_heel = true
|
||||
},
|
||||
wrap = false,
|
||||
bib = {
|
||||
default_path = nil,
|
||||
find_in_root = true
|
||||
},
|
||||
silent = false,
|
||||
links = {
|
||||
style = 'markdown',
|
||||
conceal = false,
|
||||
implicit_extension = nil,
|
||||
transform_implicit = false,
|
||||
transform_explicit = function(text)
|
||||
text = text:gsub(" ", "-")
|
||||
text = text:lower()
|
||||
text = os.date('%Y-%m-%d_')..text
|
||||
return(text)
|
||||
end
|
||||
},
|
||||
to_do = {
|
||||
symbols = {' ', '-', 'X'},
|
||||
update_parents = true,
|
||||
not_started = ' ',
|
||||
in_progress = '-',
|
||||
complete = 'X'
|
||||
},
|
||||
tables = {
|
||||
trim_whitespace = true,
|
||||
format_on_move = true,
|
||||
auto_extend_rows = false,
|
||||
auto_extend_cols = false
|
||||
},
|
||||
mappings = {
|
||||
MkdnEnter = {{'n', 'v'}, '<CR>'},
|
||||
MkdnTab = false,
|
||||
MkdnSTab = false,
|
||||
MkdnNextLink = {'n', '<Tab>'},
|
||||
MkdnPrevLink = {'n', '<S-Tab>'},
|
||||
MkdnNextHeading = {'n', ']]'},
|
||||
MkdnPrevHeading = {'n', '[['},
|
||||
MkdnGoBack = {'n', '<BS>'},
|
||||
MkdnGoForward = {'n', '<Del>'},
|
||||
MkdnFollowLink = false, -- see MkdnEnter
|
||||
MkdnDestroyLink = {'n', '<M-CR>'},
|
||||
MkdnTagSpan = {'v', '<M-CR>'},
|
||||
MkdnMoveSource = {'n', '<F2>'},
|
||||
MkdnYankAnchorLink = {'n', 'ya'},
|
||||
MkdnYankFileAnchorLink = {'n', 'yfa'},
|
||||
MkdnIncreaseHeading = {'n', '+'},
|
||||
MkdnDecreaseHeading = {'n', '-'},
|
||||
MkdnToggleToDo = {{'n', 'v'}, '<C-Space>'},
|
||||
MkdnNewListItem = false,
|
||||
MkdnNewListItemBelowInsert = {'n', 'o'},
|
||||
MkdnNewListItemAboveInsert = {'n', 'O'},
|
||||
MkdnExtendList = false,
|
||||
MkdnUpdateNumbering = {'n', '<leader>nn'},
|
||||
MkdnTableNextCell = {'i', '<Tab>'},
|
||||
MkdnTablePrevCell = {'i', '<S-Tab>'},
|
||||
MkdnTableNextRow = false,
|
||||
MkdnTablePrevRow = {'i', '<M-CR>'},
|
||||
MkdnTableNewRowBelow = {'n', '<leader>ir'},
|
||||
MkdnTableNewRowAbove = {'n', '<leader>iR'},
|
||||
MkdnTableNewColAfter = {'n', '<leader>ic'},
|
||||
MkdnTableNewColBefore = {'n', '<leader>iC'},
|
||||
MkdnFoldSection = {'n', '<leader>f'},
|
||||
MkdnUnfoldSection = {'n', '<leader>F'}
|
||||
}
|
||||
}
|
||||
}
|
||||
24
.config/nvim/lua/plugins/neogen.lua
Normal file
24
.config/nvim/lua/plugins/neogen.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
'danymat/neogen',
|
||||
opts = {
|
||||
--snippet_engine = 'ultisnips',
|
||||
input_after_comment = true,
|
||||
}
|
||||
-- {
|
||||
-- { nil, "///!", { no_results = true, type = { "func", "file", "class" } } },
|
||||
-- { nil, "///! @file", { no_results = true, type = { "file" } } },
|
||||
-- { nil, "///! * @brief $1", { no_results = true, type = { "func", "file", "class" } } },
|
||||
-- { nil, "", { no_results = true, type = { "func", "file", "class" } } },
|
||||
-- { nil, "", { no_results = true, type = { "file" } } },
|
||||
--
|
||||
-- { nil, "/**", { type = { "func", "class", "type" } } },
|
||||
-- { i.ClassName, " * @class %s", { type = { "class" } } },
|
||||
-- { i.Type, " * @typedef %s", { type = { "type" } } },
|
||||
-- { nil, " * @brief $1", { type = { "func", "class", "type" } } },
|
||||
-- { nil, " *", { type = { "func", "class", "type" } } },
|
||||
-- { i.Tparam, " * @tparam %s $1" },
|
||||
-- { i.Parameter, " * @param %s $1" },
|
||||
-- { i.Return, " * @return $1" },
|
||||
-- { nil, " */", { type = { "func", "class", "type" } } },
|
||||
-- }
|
||||
}
|
||||
82
.config/nvim/lua/plugins/nvim-cmp.lua
Normal file
82
.config/nvim/lua/plugins/nvim-cmp.lua
Normal file
@@ -0,0 +1,82 @@
|
||||
return {
|
||||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'mstanciu552/cmp-matlab',
|
||||
'petertriho/cmp-git',
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-path',
|
||||
},
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
local cmp = require'cmp'
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('snippy').expand_snippet(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 }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'snippy' },
|
||||
{ name = 'calc' },
|
||||
{ name = 'cmp_matlab' },
|
||||
{ name = 'cmp_git' },
|
||||
}, {
|
||||
{ name = 'buffer', keyword_length = 5, max_item_count = 10, priority = -5 },
|
||||
}),
|
||||
sorting = {
|
||||
comparators = {
|
||||
cmp.config.compare.offset,
|
||||
cmp.config.compare.exact,
|
||||
cmp.config.compare.recently_used,
|
||||
require("clangd_extensions.cmp_scores"),
|
||||
cmp.config.compare.kind,
|
||||
cmp.config.compare.sort_text,
|
||||
cmp.config.compare.length,
|
||||
cmp.config.compare.order,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
cmp.setup.cmdline({'/', '?'}, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
|
||||
cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{name = 'cmp_git' },
|
||||
}, {
|
||||
{name = 'buffer' }
|
||||
})
|
||||
})
|
||||
|
||||
require("cmp_git").setup()
|
||||
end
|
||||
}
|
||||
134
.config/nvim/lua/plugins/nvim-tree.lua
Normal file
134
.config/nvim/lua/plugins/nvim-tree.lua
Normal file
@@ -0,0 +1,134 @@
|
||||
return {
|
||||
'kyazdani42/nvim-tree.lua',
|
||||
dependencies = {
|
||||
'kyazdani42/nvim-web-devicons',
|
||||
},
|
||||
config = function()
|
||||
vim.g.nvim_tree_refresh_wait = 1000
|
||||
|
||||
-- following options are the default
|
||||
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
|
||||
require'nvim-tree'.setup {
|
||||
disable_netrw = true,
|
||||
hijack_netrw = true,
|
||||
ignore_ft_on_setup = {},
|
||||
open_on_tab = false,
|
||||
hijack_cursor = true,
|
||||
update_cwd = false,
|
||||
create_in_closed_folder = false,
|
||||
hijack_unnamed_buffer_when_opening = true,
|
||||
sync_root_with_cwd = true,
|
||||
reload_on_bufenter = true,
|
||||
respect_buf_cwd = false,
|
||||
hijack_directories = {
|
||||
enable = true,
|
||||
auto_open = true,
|
||||
},
|
||||
diagnostics = {
|
||||
enable = false,
|
||||
icons = {
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = "",
|
||||
}
|
||||
},
|
||||
update_focused_file = {
|
||||
enable = true,
|
||||
update_cwd = false,
|
||||
ignore_list = {}
|
||||
},
|
||||
system_open = {
|
||||
cmd = nil,
|
||||
args = {}
|
||||
},
|
||||
filters = {
|
||||
dotfiles = false,
|
||||
custom = {}
|
||||
},
|
||||
git = {
|
||||
enable = true,
|
||||
ignore = false,
|
||||
timeout = 500,
|
||||
},
|
||||
view = {
|
||||
width = 35,
|
||||
hide_root_folder = true,
|
||||
side = 'left',
|
||||
mappings = {
|
||||
custom_only = false,
|
||||
list = {}
|
||||
},
|
||||
number = false,
|
||||
relativenumber = false,
|
||||
signcolumn = "no"
|
||||
},
|
||||
trash = {
|
||||
cmd = "trash",
|
||||
require_confirm = true
|
||||
},
|
||||
actions = {
|
||||
open_file = {
|
||||
quit_on_open = false,
|
||||
window_picker = {
|
||||
exclude = {
|
||||
filetype = { "notify", "packer", "qf" },
|
||||
buftype = { "terminal" },
|
||||
},
|
||||
},
|
||||
},
|
||||
change_dir = {
|
||||
global = true,
|
||||
},
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = true -- this option shows indent markers when folders are open
|
||||
},
|
||||
icons = {
|
||||
show = {
|
||||
git = true,
|
||||
folder = true,
|
||||
file = true,
|
||||
folder_arrow = false,
|
||||
},
|
||||
glyphs = {
|
||||
default = '',
|
||||
symlink = '',
|
||||
git = {
|
||||
unstaged = "✗",
|
||||
staged = "✓",
|
||||
unmerged = "",
|
||||
renamed = "➜",
|
||||
untracked = "★",
|
||||
deleted = "",
|
||||
ignored = "◌"
|
||||
},
|
||||
folder = {
|
||||
arrow_open = "",
|
||||
arrow_closed = "",
|
||||
default = "",
|
||||
open = "",
|
||||
empty = "",
|
||||
empty_open = "",
|
||||
symlink = "",
|
||||
symlink_open = "",
|
||||
}
|
||||
},
|
||||
padding = ' ',
|
||||
symlink_arrow = ' -> ',
|
||||
},
|
||||
group_empty = true,
|
||||
add_trailing = true,
|
||||
highlight_git = true,
|
||||
highlight_opened_files = 'icon',
|
||||
root_folder_modifier = ':~',
|
||||
special_files = {
|
||||
'README.md',
|
||||
'Makefile',
|
||||
'MAKEFILE'
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
}
|
||||
42
.config/nvim/lua/plugins/peek.lua
Normal file
42
.config/nvim/lua/plugins/peek.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
return {
|
||||
'toppair/peek.nvim',
|
||||
build = 'deno task --quiet build:fast',
|
||||
config = function()
|
||||
-- default config:
|
||||
require('peek').setup({
|
||||
app = 'browser', -- open in a local browser. not deno
|
||||
|
||||
auto_load = true, -- whether to automatically load preview when
|
||||
-- entering another markdown buffer
|
||||
close_on_bdelete = true, -- close preview window on buffer delete
|
||||
|
||||
syntax = true, -- enable syntax highlighting, affects performance
|
||||
|
||||
theme = 'dark', -- 'dark' or 'light'
|
||||
|
||||
update_on_change = true,
|
||||
|
||||
-- relevant if update_on_change is true
|
||||
throttle_at = 200000, -- start throttling when file exceeds this
|
||||
-- amount of bytes in size
|
||||
throttle_time = 'auto', -- minimum amount of time in milliseconds
|
||||
-- that has to pass before starting new render
|
||||
})
|
||||
|
||||
local peek = require('peek')
|
||||
|
||||
vim.api.nvim_create_user_command('PeekOpen', function()
|
||||
if not peek.is_open() and vim.bo[vim.api.nvim_get_current_buf()].filetype == 'markdown' then
|
||||
--vim.fn.system('i3-msg split horizontal')
|
||||
peek.open()
|
||||
end
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command('PeekClose', function()
|
||||
if peek.is_open() then
|
||||
peek.close()
|
||||
--vim.fn.system('i3-msg move left')
|
||||
end
|
||||
end, {})
|
||||
end
|
||||
}
|
||||
7
.config/nvim/lua/plugins/quicknote.lua
Normal file
7
.config/nvim/lua/plugins/quicknote.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
'RutaTang/quicknote.nvim',
|
||||
dependencies= {
|
||||
'nvim-lua/plenary.nvim'
|
||||
},
|
||||
config = true
|
||||
}
|
||||
21
.config/nvim/lua/plugins/snippets.lua
Normal file
21
.config/nvim/lua/plugins/snippets.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
return {
|
||||
'dcampos/nvim-snippy',
|
||||
dependencies = {
|
||||
'dcampos/cmp-snippy',
|
||||
'honza/vim-snippets',
|
||||
},
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
require('snippy').setup({
|
||||
mappings = {
|
||||
is = {
|
||||
['<Tab>'] = 'expand_or_advance',
|
||||
['<S-Tab>'] = 'previous',
|
||||
},
|
||||
nx = {
|
||||
['<leader>x'] = 'cut_text',
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
}
|
||||
4
.config/nvim/lua/plugins/swap.lua
Normal file
4
.config/nvim/lua/plugins/swap.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'Wansmer/sibling-swap.nvim',
|
||||
config = true
|
||||
}
|
||||
4
.config/nvim/lua/plugins/symbols-outline.lua
Normal file
4
.config/nvim/lua/plugins/symbols-outline.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'simrat39/symbols-outline.nvim',
|
||||
config = true
|
||||
}
|
||||
11
.config/nvim/lua/plugins/telescope.lua
Normal file
11
.config/nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
dependencies = {
|
||||
'debugloop/telescope-undo.nvim',
|
||||
},
|
||||
--cmd = ":Telescope",
|
||||
config = function()
|
||||
-- require('telescope').load_extension('ultisnips')
|
||||
require('telescope').load_extension('undo')
|
||||
end
|
||||
}
|
||||
95
.config/nvim/lua/plugins/treesitter.lua
Normal file
95
.config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,95 @@
|
||||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
dependencies = {
|
||||
'mizlan/iswap.nvim',
|
||||
'romgrk/nvim-treesitter-context',
|
||||
--"nvim-treesitter/nvim-treesitter-textobjects",
|
||||
--"nvim-treesitter/playground",
|
||||
},
|
||||
build = ':TSUpdate',
|
||||
config = function()
|
||||
-- Tree-sitter configuration
|
||||
|
||||
ts = require'nvim-treesitter.configs'
|
||||
|
||||
ts.setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
ensure_installed = {
|
||||
"arduino",
|
||||
"awk",
|
||||
"bash",
|
||||
"bibtex",
|
||||
"c",
|
||||
"cmake",
|
||||
"comment",
|
||||
"cpp",
|
||||
"devicetree",
|
||||
"diff",
|
||||
"fish",
|
||||
"gitattributes",
|
||||
"gitcommit",
|
||||
"gitignore",
|
||||
"help",
|
||||
"http",
|
||||
"ini",
|
||||
"jq",
|
||||
"json",
|
||||
"latex",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"ninja",
|
||||
"proto",
|
||||
"python",
|
||||
"regex",
|
||||
"rust",
|
||||
"toml",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
-- disabled, since it mostly shifts to four characters
|
||||
--indent = {
|
||||
-- enable = true,
|
||||
--},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "ti",
|
||||
node_incremental = "ti",
|
||||
scope_incremental = "ts",
|
||||
node_decremental = "td",
|
||||
},
|
||||
},
|
||||
rainbow = {
|
||||
enable = true,
|
||||
-- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for
|
||||
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
|
||||
max_file_lines = 5000, -- Do not enable for files with more than n lines, int
|
||||
-- colors = {}, -- table of hex strings
|
||||
-- termcolors = {} -- table of colour name strings
|
||||
},
|
||||
--textobjects = {
|
||||
-- swap = {
|
||||
-- enable = true,
|
||||
-- swap_next = {
|
||||
-- ["tan"] = "@parameter.inner",
|
||||
-- },
|
||||
-- swap_previous = {
|
||||
-- ["tap"] = "@parameter.inner",
|
||||
-- },
|
||||
-- },
|
||||
--},
|
||||
matchup = {
|
||||
enable = true,
|
||||
-- disable = { "c", "ruby" },
|
||||
include_match_words
|
||||
},
|
||||
}
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
end
|
||||
}
|
||||
18
.config/nvim/lua/plugins/ufo.lua
Normal file
18
.config/nvim/lua/plugins/ufo.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
'kevinhwang91/nvim-ufo',
|
||||
dependencies = {
|
||||
'kevinhwang91/promise-async',
|
||||
},
|
||||
config = function()
|
||||
vim.wo.foldcolumn = '1'
|
||||
vim.wo.foldlevel = 99 -- feel free to decrease the value
|
||||
vim.wo.foldenable = true
|
||||
|
||||
-- tell the sever the capability of foldingRange
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities.textDocument.foldingRange = {
|
||||
dynamicRegistration = false,
|
||||
lineFoldingOnly = true
|
||||
}
|
||||
end
|
||||
}
|
||||
33
.config/nvim/lua/plugins/vim-cmake.lua
Normal file
33
.config/nvim/lua/plugins/vim-cmake.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
return {
|
||||
'Civitasv/cmake-tools.nvim',
|
||||
config = function()
|
||||
--let g:cmake_build_options = [ "-j10" ]
|
||||
--
|
||||
--let g:cmake_root_markers = ['.svn']
|
||||
--
|
||||
--
|
||||
--let g:cmake_jump_on_error = 0 " We do not want to focus the console
|
||||
--augroup vim-cmake-group
|
||||
--autocmd User CMakeBuildFailed :cfirst
|
||||
--augroup END
|
||||
--
|
||||
--augroup vim-cmake-group
|
||||
--autocmd! User CMakeBuildSucceeded CMakeClose
|
||||
--augroup END
|
||||
|
||||
require("cmake-tools").setup {
|
||||
cmake_command = "cmake",
|
||||
cmake_build_directory = "build",
|
||||
cmake_generate_options = { "-D", "CMAKE_EXPORT_COMPILE_COMMANDS=1" },
|
||||
cmake_build_options = {},
|
||||
cmake_console_size = 10, -- cmake output window height
|
||||
cmake_show_console = "always", -- "always", "only_on_error"
|
||||
cmake_dap_configuration = { name = "cpp", type = "codelldb", request = "launch" }, -- dap configuration, optional
|
||||
--cmake_dap_open_command = require("dap").repl.open, -- optional
|
||||
cmake_variants_message = {
|
||||
short = { show = true },
|
||||
long = { show = true, max_length = 40 }
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
4
.config/nvim/lua/plugins/virt-column.lua
Normal file
4
.config/nvim/lua/plugins/virt-column.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'lukas-reineke/virt-column.nvim',
|
||||
config = true
|
||||
}
|
||||
4
.config/nvim/lua/plugins/which.lua
Normal file
4
.config/nvim/lua/plugins/which.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
'folke/which-key.nvim',
|
||||
config = true
|
||||
}
|
||||
12
.config/nvim/lua/plugins/windows.lua
Normal file
12
.config/nvim/lua/plugins/windows.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
'anuvyklack/windows.nvim',
|
||||
dependencies = {
|
||||
'anuvyklack/middleclass',
|
||||
'anuvyklack/animation.nvim'
|
||||
},
|
||||
config = function()
|
||||
vim.o.winwidth = 10
|
||||
vim.o.winminwidth = 10
|
||||
require("windows").setup()
|
||||
end
|
||||
}
|
||||
Reference in New Issue
Block a user