nvim: move to lazy package manager

This commit is contained in:
Robert Kmieć
2023-02-14 14:42:29 +01:00
parent cf374dbbb5
commit f327679ca9
104 changed files with 1617 additions and 1501 deletions

View File

@@ -1,18 +0,0 @@
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'},
},
}

View File

@@ -1 +0,0 @@
require('Comment').setup()

View File

@@ -1,35 +0,0 @@
-- " 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,
}
}

View File

@@ -1 +0,0 @@
require('crates').setup()

View File

@@ -1 +0,0 @@
require('debugprint').setup()

View File

@@ -1,159 +0,0 @@
require('dressing').setup({
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,
},
})

View File

@@ -1 +0,0 @@
require('femaco').setup()

View File

@@ -1,41 +0,0 @@
require'FTerm'.setup({
-- 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,
})

View File

@@ -1,104 +0,0 @@
require('gitsigns').setup {
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
},
}

View File

@@ -1 +0,0 @@
require("icon-picker").setup({disable_legacy_commands = true })

View File

@@ -1,42 +0,0 @@
--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
})

View File

@@ -1,22 +0,0 @@
--require("indent_blankline").setup {
-- char = "",
-- show_current_context = true,
-- --show_current_context_start = true,
-- space_char_blankline = " ",
-- char_highlight_list = {
-- "IndentBlanklineIndent1",
-- "IndentBlanklineIndent2",
-- "IndentBlanklineIndent3",
-- "IndentBlanklineIndent4",
-- "IndentBlanklineIndent5",
-- "IndentBlanklineIndent6",
-- },
-- space_char_highlight_list = {
-- "IndentBlanklineIndent1",
-- "IndentBlanklineIndent2",
-- "IndentBlanklineIndent3",
-- "IndentBlanklineIndent4",
-- "IndentBlanklineIndent5",
-- "IndentBlanklineIndent6",
-- },
--}

View File

@@ -1 +0,0 @@
require('iswap').setup({ autoswap = true })

View File

@@ -1,29 +0,0 @@
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

View File

@@ -1,150 +0,0 @@
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

View File

@@ -1,222 +0,0 @@
-- 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)

View File

@@ -1 +0,0 @@
require('codewindow').setup()

View File

@@ -1,88 +0,0 @@
require('mkdnflow').setup({
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'}
}
})

View File

@@ -1,13 +0,0 @@
-- require('neoscroll').setup({
-- -- All these keys will be mapped to their corresponding default scrolling animation
-- mappings = {'<C-u>', '<C-d>', '<C-b>', '<C-f>',
-- '<C-y>', '<C-e>', 'zt', 'zz', 'zb'},
-- hide_cursor = true, -- Hide cursor while scrolling
-- stop_eof = true, -- Stop at <EOF> when scrolling downwards
-- use_local_scrolloff = false, -- Use the local scope of scrolloff instead of the global scope
-- respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file
-- cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further
-- easing_function = nil, -- Default easing function
-- pre_hook = nil, -- Function to run before the scrolling animation starts
-- post_hook = nil, -- Function to run after the scrolling animation ends
-- })

View File

@@ -1,68 +0,0 @@
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()

View File

@@ -1,127 +0,0 @@
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,
open_on_setup = 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'
},
},
}

View File

@@ -1,34 +0,0 @@
-- default config:
require('peek').setup({
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, {})

View File

@@ -1,11 +0,0 @@
require('snippy').setup({
mappings = {
is = {
['<Tab>'] = 'expand_or_advance',
['<S-Tab>'] = 'previous',
},
nx = {
['<leader>x'] = 'cut_text',
},
},
})

View File

@@ -1,11 +0,0 @@
--require("themer").setup({
-- colorscheme = "scery",
-- enable_installer = true,
-- styles = {
-- ["function"] = { style = 'italic' },
-- functionbuiltin = { style = 'italic' },
-- variable = { style = 'italic' },
-- variableBuiltIn = { style = 'italic' },
-- parameter = { style = 'italic' },
-- },
--})

View File

@@ -1,58 +0,0 @@
-- Tree-sitter configuration
ts = require'nvim-treesitter.configs'
ts.setup {
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
ensure_installed = {
"bash",
"c",
"cmake",
"cpp",
"fish",
"lua",
"rust",
},
-- 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 = 10000, -- 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()"

View File

@@ -1,12 +0,0 @@
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
}
--require('ufo').setup()

View File

@@ -1,5 +0,0 @@
require("which-key").setup {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}

View File

@@ -1,3 +0,0 @@
vim.o.winwidth = 10
vim.o.winminwidth = 10
require("windows").setup()

View File

@@ -1 +0,0 @@
../available/boole.rc.lua

View File

@@ -1 +0,0 @@
../available/comment.rc.lua

View File

@@ -1 +0,0 @@
../available/context.rc.lua

View File

@@ -1 +0,0 @@
../available/crates.rc.lua

View File

@@ -1 +0,0 @@
../available/debugprint.rc.lua

View File

@@ -1 +0,0 @@
../available/digraphs.rc.vim

View File

@@ -1 +0,0 @@
../available/dressing.rc.lua

View File

@@ -1 +0,0 @@
../available/femaco.rc.lua

View File

@@ -1 +0,0 @@
../available/fterm.rc.lua

View File

@@ -1 +0,0 @@
../available/gitsigns.rc.lua

View File

@@ -1 +0,0 @@
../available/hlslens.rc.vim

View File

@@ -1 +0,0 @@
../available/icons.rc.lua

View File

@@ -1 +0,0 @@
../available/illuminate.rc.lua

View File

@@ -1 +0,0 @@
../available/indent.rc.lua

View File

@@ -1 +0,0 @@
../available/iswap.rc.lua

View File

@@ -1 +0,0 @@
../available/knap.rc.lua

View File

@@ -1 +0,0 @@
../available/lspconfig.rc.lua

View File

@@ -1 +0,0 @@
../available/lualine.rc.lua

View File

@@ -1 +0,0 @@
../available/minimap.rc.lua

View File

@@ -1 +0,0 @@
../available/mkdnflow.rc.lua

View File

@@ -1 +0,0 @@
../available/neogen.rc.lua

View File

@@ -1 +0,0 @@
../available/neoscroll.rc.lua

View File

@@ -1 +0,0 @@
../available/nvim-cmp.rc.lua

View File

@@ -1 +0,0 @@
../available/nvim-dap.rc.lua

View File

@@ -1 +0,0 @@
../available/nvim-tree.rc.lua

View File

@@ -1 +0,0 @@
../available/peek.rc.lua

View File

@@ -1 +0,0 @@
../available/search-pulse.rc.vim

View File

@@ -1 +0,0 @@
../available/snippets.rc.lua

View File

@@ -1 +0,0 @@
../available/startify.rc.vim

View File

@@ -1 +0,0 @@
../available/themer.rc.lua

View File

@@ -1 +0,0 @@
../available/treesitter.rc.lua

View File

@@ -1 +0,0 @@
../available/ufo.rc.lua

View File

@@ -1 +0,0 @@
../available/vim-test.rc.vim

View File

@@ -1 +0,0 @@
../available/virt-column.rc.vim

View File

@@ -1 +0,0 @@
../available/which.rc.lua

View File

@@ -1 +0,0 @@
../available/windows.rc.lua

View File

@@ -1,37 +0,0 @@
lua << EOF
require('core.config')
require('core.plugins')
EOF
"let mapleader = "\\"
nmap <space> <leader>
"colorscheme enfocado
"lua require('lualine').setup { options = { theme = 'enfocado' } }
colorscheme falcon
lua require('lualine').setup { options = { theme = 'falcon' } }
"highlight MatchParen cterm=underline ctermbg=black ctermfg=NONE
"highlight VirtColumn ctermfg=DarkGrey ctermbg=NONE
"hi clear SpellBad
"hi SpellBad cterm=underline
" Ctags {{{
if isdirectory($HOME . '/.cache/nvim/tags') == 0
:silent !mkdir -p ~/.cache/nvim/tags > /dev/null 2>&1
endif
let g:gutentags_cache_dir='~/.cache/nvim/tags'
"let g:gutentags_ctags_extra_args=['--fields=+l']
if isdirectory($HOME . '/.cache/nvim/undo') == 0
:silent !mkdir -p ~/.cache/nvim/undo > /dev/null 2>&1
endif
set undodir=~/.cache/nvim/undo/
set undofile
lua << EOF
require('core.mappings')
require('core.temp')
EOF

View File

@@ -36,8 +36,8 @@ map('i', '<C-k>d', '<cmd>lua require("better-digraphs").digraphs("i")<cr>', expr
--map('n', '<leader>fe'. '<cmd>FeMaCo<cr>', expr_options) --map('n', '<leader>fe'. '<cmd>FeMaCo<cr>', expr_options)
-- fterm -- fterm
map('n', '<leader>i', '<CMD>lua require("FTerm").toggle()<CR>', expr_options) map('n', '<leader>i', '<cmd>lua require("FTerm").toggle()<CR>', default_options)
map('t', '<leader>i', '<CMD>lua require("FTerm").toggle()<CR>', expr_options) map('t', '<leader>i', '<cmd>lua require("FTerm").toggle()<CR>', default_options)
-- icon picker -- icon picker
map('n', '<C-k>i', '<cmd>IconPickerNormal<cr>', expr_options) map('n', '<C-k>i', '<cmd>IconPickerNormal<cr>', expr_options)

View File

@@ -1,148 +1,17 @@
vim.cmd [[ packadd packer.nvim ]] local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
--git clone --depth 1 https://github.com/wbthomason/packer.nvim\ vim.fn.system({
-- ~/.local/share/nvim/site/pack/packer/start/packer.nvim "git",
"clone",
return require'packer'.startup( function(use) "--filter=blob:none",
-- Code development helpers {{{ "https://github.com/folke/lazy.nvim.git",
--use 'nvim-treesitter/nvim-treesitter-textobjects' "--branch=stable", -- latest stable release
--use 'nvim-treesitter/playground' lazypath,
--use 'p00f/nvim-ts-rainbow'
--use 'vim-test/vim-test'
--use 'RRethy/vim-illuminate'
use {'nvim-treesitter/nvim-treesitter', run = ':TSUpdate'}
use {'mizlan/iswap.nvim', requires = 'nvim-treesitter/nvim-treesitter'}
use {'Saecki/crates.nvim', requires = 'jose-elias-alvarez/null-ls.nvim'}
use 'andrewferrier/debugprint.nvim'
use 'Civitasv/cmake-tools.nvim'
use 'danymat/neogen'
use 'ftilde/vim-ugdb'
use 'jubnzv/virtual-types.nvim'
use 'krady21/compiler-explorer.nvim'
use 'neovim/nvim-lspconfig'
use 'numToStr/Comment.nvim'
use 'p00f/clangd_extensions.nvim'
use 'ray-x/lsp_signature.nvim'
use {'romgrk/nvim-treesitter-context', requires = 'nvim-treesitter/nvim-treesitter'}
-- }}}
-- Completion {{{
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-cmdline'
use 'hrsh7th/cmp-nvim-lsp'
use 'hrsh7th/cmp-path'
use 'hrsh7th/nvim-cmp'
use 'mstanciu552/cmp-matlab'
use 'petertriho/cmp-git'
-- }}}
-- Snippets {{{
--use 'fhill2/telescope-ultisnips.nvim'
use 'dcampos/cmp-snippy'
use 'dcampos/nvim-snippy'
use 'honza/vim-snippets'
-- }}}
-- Files switch, jump and grep-like tools {{{
--use 'inside/vim-search-pulse'
use 'MunifTanjim/nui.nvim'
use 'ggandor/leap.nvim'
use 'kyazdani42/nvim-tree.lua'
use 'kyazdani42/nvim-web-devicons'
use 'numToStr/FTerm.nvim'
use 'nvim-lua/plenary.nvim'
use 'nvim-lua/popup.nvim'
use 'nvim-telescope/telescope.nvim'
use 'wellle/targets.vim'
-- }}}
-- Git integration {{{
use 'lewis6991/gitsigns.nvim'
use 'tpope/vim-fugitive'
-- }}}
-- Support for random filetypes {{{
--use 'chrisbra/csv.vim'
--use 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
--use 'vim-pandoc/vim-pandoc'
--use 'weirongxu/plantuml-previewer.vim' |
use 'aklt/plantuml-syntax'
use 'kergoth/vim-bitbake' -- Bitbake templates and syntax
use {'toppair/peek.nvim', run = 'deno task --quiet build:fast'}
-- }}}
-- Other plugins (external tools, etc) {{{
--use 'JMcKiern/vim-shoot'
--use 'MortenStabenau/matlab-vim'
--use 'junegunn/goyo.vim'
use 'folke/which-key.nvim'
use 'nvim-lualine/lualine.nvim'
use 'protex/better-digraphs.nvim'
-- }}}
-- Note taking {{{
use 'nvim-neorg/neorg'
use 'jakewvincent/mkdnflow.nvim'
use 'AckslD/nvim-FeMaco.lua'
-- }}}
-- Appearance {{{
--use 'jaredgorski/spacecamp'
--use 'lifepillar/vim-gruvbox8'
--use 'marko-cerovac/material.nvim'
--use 'srcery-colors/srcery-vim'
--use 'tanvirtin/monokai.nvim'
use{ '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
}
use {'anuvyklack/windows.nvim', requires = {'anuvyklack/middleclass', 'anuvyklack/animation.nvim'}}
use { 'anuvyklack/fold-preview.nvim',
requires = 'anuvyklack/keymap-amend.nvim',
config = function()
require('fold-preview').setup({
-- Your configuration goes here.
}) })
end end
} vim.opt.rtp:prepend(lazypath)
use 'lukas-reineke/virt-column.nvim'
use 'stevearc/dressing.nvim'
use 'wuelnerdotexe/vim-enfocado'
use 'fenetikm/falcon'
-- }}}
-- Testing phase {{{ vim.g.mapleader = ' '
--use 'RRethy/vim-hexokinase', { 'do': 'make hexokinase' } vim.g.maplocalleader = ' '
--use 'euclio/vim-markdown-composer', {'do': ':!cargo build --release --locked'}
--use 'https://git.sr.ht/%7Ewhynothugo/lsp_linesdenvim' return require'lazy'.setup('plugins')
--use 'kevinhwang91/nvim-ufo' | use 'kevinhwang91/promise-async'
--use 'mfussenegger/nvim-dap'
--use 'narutoxy/silicon.lua'
--use 'nguyenvukhang/nvim-toggler'
--use 'rgroli/other.nvim' " Currently doesn't support C/C++
--use 'smolovk/projector.nvim'
use 'Pocco81/true-zen.nvim'
use 'frabjous/knap'
use 'gorbit99/codewindow.nvim'
use {'krivahtoo/silicon.nvim', run = './install.sh' }
use 'nat-418/boole.nvim'
use 'nullchilly/fsread.nvim'
use 'nyngwang/murmur.lua'
use 'samodostal/image.nvim'
use 'simrat39/symbols-outline.nvim'
use 'ziontee113/icon-picker.nvim'
use 'cbochs/grapple.nvim'
use 'shortcuts/no-neck-pain.nvim'
use 'debugloop/telescope-undo.nvim'
use 'edluffy/specs.nvim'
use { "RutaTang/quicknote.nvim", requires={"nvim-lua/plenary.nvim"}}
-- }}}
end )

View File

@@ -1,16 +0,0 @@
require("virt-column").setup { }
require('compiler-explorer').setup()
require("symbols-outline").setup()
--require('lsp_lines').setup()
require('image').setup {
render = {
min_padding = 5,
show_label = true,
use_dither = true,
},
events = {
update_on_nvim_resize = true,
},
}

View 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
}

View File

@@ -0,0 +1,4 @@
return {
'numToStr/Comment.nvim',
config = true
}

View File

@@ -0,0 +1,4 @@
return {
'krady21/compiler-explorer.nvim',
config = true
}

View 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
}

View File

@@ -0,0 +1,5 @@
return {
'Saecki/crates.nvim',
dependencies = 'jose-elias-alvarez/null-ls.nvim',
config = true
}

View File

@@ -0,0 +1,4 @@
return {
'andrewferrier/debugprint.nvim',
config = true,
}

View 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,
},
}
}

View File

@@ -0,0 +1,5 @@
return {
--require('femaco').setup()
'AckslD/nvim-FeMaco.lua',
config = true
}

View 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,
}
}

View 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"
}
}

View 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
},
}
}

View File

@@ -0,0 +1,6 @@
return {
'ziontee113/icon-picker.nvim',
config = function()
require("icon-picker").setup({disable_legacy_commands = true })
end
}

View 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
}

View 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,
},
}
}

View 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',
-- }}}
}}

View 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
}

View 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
}

View 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
}

View File

@@ -0,0 +1,6 @@
return {
'gorbit99/codewindow.nvim',
config = function()
require('codewindow').setup()
end
}

View 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'}
}
}
}

View File

@@ -1,8 +1,9 @@
require("neogen").setup({ return {
'danymat/neogen',
opts = {
--snippet_engine = 'ultisnips', --snippet_engine = 'ultisnips',
input_after_comment = true, input_after_comment = true,
}) }
-- { -- {
-- { nil, "///!", { no_results = true, type = { "func", "file", "class" } } }, -- { nil, "///!", { no_results = true, type = { "func", "file", "class" } } },
-- { nil, "///! @file", { no_results = true, type = { "file" } } }, -- { nil, "///! @file", { no_results = true, type = { "file" } } },
@@ -20,3 +21,4 @@ require("neogen").setup({
-- { i.Return, " * @return $1" }, -- { i.Return, " * @return $1" },
-- { nil, " */", { type = { "func", "class", "type" } } }, -- { nil, " */", { type = { "func", "class", "type" } } },
-- } -- }
}

View 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
}

View 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
}

View 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
}

View File

@@ -0,0 +1,7 @@
return {
'RutaTang/quicknote.nvim',
dependencies= {
'nvim-lua/plenary.nvim'
},
config = true
}

View 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
}

View File

@@ -0,0 +1,4 @@
return {
'Wansmer/sibling-swap.nvim',
config = true
}

View File

@@ -0,0 +1,4 @@
return {
'simrat39/symbols-outline.nvim',
config = true
}

View 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
}

View 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
}

View 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
}

Some files were not shown because too many files have changed in this diff Show More