Change directory structure

This commit is contained in:
2024-05-03 18:28:51 +02:00
parent b8d625f85e
commit 2ef96e965b
69 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
return {
{
"utilyre/barbecue.nvim",
name = "barbecue",
version = "*",
dependencies = {"SmiteshP/nvim-navic", "nvim-tree/nvim-web-devicons"},
config = function()
require("barbecue").setup()
end,
}
}

View File

@@ -0,0 +1,6 @@
return {
{
"GCBallesteros/jupytext.nvim",
config = true
}
}

View File

@@ -0,0 +1,15 @@
return {
{
"seandewar/killersheep.nvim",
config = function()
require("killersheep").setup {
gore = true, -- Enables/disables blood and gore.
keymaps = {
move_left = "h", -- Keymap to move cannon to the left.
move_right = "l", -- Keymap to move cannon to the right.
shoot = "<Space>" -- Keymap to shoot the cannon.
}
}
end
}
}

View File

@@ -0,0 +1,8 @@
return {
{
"ThePrimeagen/vim-be-good",
cmd = {
"VimBeGood"
}
}
}

View File

@@ -0,0 +1,28 @@
return {
name = "CMake Build",
builder = function()
local file = vim.fn.expand("%:p")
return {
cmd = {
"cmake"
},
args = {
"--build",
"build",
"-j16"
},
components = {
{
"on_output_quickfix"
},
"default"
}
}
end,
condition = {
filetype = {
"cmake",
"cpp"
}
}
}

View File

@@ -0,0 +1,24 @@
return {
name = "CMake Clean",
builder = function()
local file = vim.fn.expand("%:p")
return {
cmd = {
"rm"
},
args = {
"-r",
"build",
},
components = {
"default"
}
}
end,
condition = {
filetype = {
"cmake",
"cpp"
}
}
}

View File

@@ -0,0 +1,58 @@
return {
name = "CMake Generate",
params = {
build_type = {
type = "enum",
choices = {
"Debug",
"Release",
"RelWithDebInfo",
"MinSizeRel"
},
default = "Debug"
},
generator = {
type = "enum",
choices = {
"Ninja",
"Unix Makefiles"
},
default = "Ninja"
},
compiler = {
type = "enum",
choices = {
"g++",
"clang++"
},
default = "g++"
}
},
builder = function(params)
return {
cmd = {
"cmake"
},
args = {
"-B",
"build",
"-S",
".",
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
"-DCMAKE_BUILD_TYPE=" .. params.build_type,
"-DCMAKE_CXX_COMPILER=" .. params.compiler,
"-G",
params.generator
},
components = {
"default"
}
}
end,
condition = {
filetype = {
"cmake",
"cpp"
}
}
}

View File

@@ -0,0 +1,27 @@
return {
name = "CMake Test",
builder = function()
return {
cmd = {
"ctest"
},
args = {
"--test-dir",
"build",
"--output-on-failure",
},
components = {
{
"on_output_quickfix"
},
"default"
}
}
end,
condition = {
filetype = {
"cmake",
"cpp"
}
}
}

View File

@@ -0,0 +1,22 @@
return {
name = "Python Run",
builder = function()
local file = vim.fn.expand("%:p")
return {
cmd = {
"python"
},
args = {
file
},
components = {
"default"
}
}
end,
condition = {
filetype = {
"python"
}
}
}

View File

@@ -0,0 +1,73 @@
-------------------
-- Helper functions
-------------------
local function clamp(x, min, max) return math.max(math.min(x, max), min) end
local function get_random_image()
images = {
{
[[██╗ █████╗ ██████╗██╗ ██╗███████╗]],
[[██║ ██╔══██╗██╔════╝██║ ██║██╔════╝]],
[[██║ ███████║██║ ███████║███████╗]],
[[██║ ██╔══██║██║ ██╔══██║╚════██║]],
[[███████╗██║ ██║╚██████╗██║ ██║███████║]],
[[╚══════╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝]]
},
{
[[ ,,,╓▄▄▓▓▓▓▄ ,▄▓∩]],
[[ ,╓▄▄▄▄▓▓▓▓▓▓▓▓▀▓▓▓▓▓▓▓▓▓▀▀▀▓@@æ▄╓,▄▄ ,▄▓▓▓▓ ]],
[[ ,▄▄▓▓█████▀╫╫Ñ▒Ñ▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▀▀▀▓@#▓▓▀▓▓▓Ñ ]],
[[ -2▓╫▒▒▒▒▒╫▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓ ]],
[[ ª╨╩Ñ▒▒▒▒▒╫▄▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒░▒░░░░░░░═╨` `╫╫▓▓▓▓ ]],
[[ `ªº╩▒▒▒▒░░░░...░░▒▒▒▄▒▒▒ºª`` `▀▓▓▓ ]],
[[ ╙▓µ ]]
},
{
[[███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗]],
[[████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║]],
[[██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║]],
[[██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║]],
[[██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║]],
[[╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝]]
}
}
local i = 3
math.randomseed(os.time())
if math.fmod(math.random(100), 5) == 0 then
if math.random(0, 1) == 0 then
i = 1
else
i = 2
end
end
return images[i]
end
-----------------
-- Configurtation
-----------------
return {
{
"goolord/alpha-nvim",
lazy = false,
config = function()
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = get_random_image()
dashboard.section.buttons.val = {
dashboard.button('n', ' New file', ':ene <BAR> startinsert <CR>'),
dashboard.button('r', ' Recent files', ':Telescope oldfiles <CR>'),
dashboard.button('f', '󰥨 Find file', ':Telescope find_files <CR>'),
dashboard.button('g', '󰱼 Find text', ':Telescope live_grep <CR>'),
dashboard.button('p', ' Open project', ':Telescope session-lens search_session<CR>'),
dashboard.button('l', '󰒲 Lazy', ':Lazy<CR>'),
dashboard.button('q', ' Quit', ':qa<CR>')
}
require("alpha").setup(dashboard.opts)
end
}
}

View File

@@ -0,0 +1,44 @@
return {
{
"rmagatti/auto-session",
dependencies = {
"nvim-lualine/lualine.nvim"
},
event = "VimEnter",
init = function()
vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
vim.keymap.set('n', '<leader>ss', '<cmd>SessionSave<CR>', {
desc = "Save"
})
vim.keymap.set('n', '<leader>sd', '<cmd>SessionDelete<CR>', {
desc = "Delete"
})
end,
opts = {
log_level = "error",
auto_save_enabled = false
}
},
{
'rmagatti/session-lens',
cmd = {
"Autosession",
"SearchSession"
},
dependencies = {
'rmagatti/auto-session',
'nvim-telescope/telescope.nvim'
},
init = function()
vim.keymap.set('n', '<leader>sf', function() require('session-lens').search_session() end, {
desc = "Find"
})
end,
config = function()
require('session-lens').setup({
prompt_title = 'Sessions'
})
end
}
}

View File

@@ -0,0 +1,9 @@
return {
{
'Eandrju/cellular-automaton.nvim',
cmd = {
"CellularAutomaton"
},
init = function() vim.keymap.set("n", "<leader>fu", "<cmd>CellularAutomaton make_it_rain<CR>") end
}
}

View File

@@ -0,0 +1,20 @@
return {
{
"github/copilot.vim",
event = {
"BufReadPost",
"BufNewFile"
},
cmd = {
"Copilot"
},
init = function()
vim.g.copilot_no_tab_map = true
vim.g.copilot_assume_mapped = true
vim.api.nvim_set_keymap("i", "<C-y>", 'copilot#Accept("<CR>")', {
silent = true,
expr = true
})
end
}
}

154
nvim/lua/plugins/dap.lua Normal file
View File

@@ -0,0 +1,154 @@
return {
{
'mfussenegger/nvim-dap',
config = function()
local dap = require("dap")
dap.adapters.gdb = {
type = "executable",
command = "gdb",
args = {
"-i",
"dap"
}
}
dap.adapters.python = function(cb, config)
if config.request == 'attach' then
local port = (config.connect or config).port
local host = (config.connect or config).host or '127.0.0.1'
cb({
type = 'server',
port = assert(port, '`connect.port` is required for a python `attach` configuration'),
host = host,
options = {
source_filetype = 'python'
}
})
else
cb({
type = 'executable',
command = 'python',
args = {
'-m',
'debugpy.adapter'
},
options = {
source_filetype = 'python'
}
})
end
end
dap.configurations.c = {
{
name = "Launch",
type = "gdb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = "${workspaceFolder}",
stopAtBeginningOfMainSubprogram = false
}
}
dap.configurations.cpp = {
{
name = "Launch",
type = "gdb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = "${workspaceFolder}",
stopAtBeginningOfMainSubprogram = false
}
}
dap.configurations.python = {
{
type = 'python',
request = 'launch',
name = "Launch file",
program = "${file}",
pythonPath = function()
local cwd = vim.fn.getcwd()
if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then
return cwd .. '/venv/bin/python'
elseif vim.fn.executable(cwd .. '/.venv/bin/python') == 1 then
return cwd .. '/.venv/bin/python'
else
return '/usr/bin/python'
end
end
}
}
vim.keymap.set("n", "<leader>db", "<cmd>DapToggleBreakpoint<cr>", {
desc = "Toggle breakpoint"
})
vim.keymap.set("n", "<leader>dc", "<cmd>DapContinue<cr>", {
desc = "Continue"
})
vim.keymap.set("n", "<leader>dt", "<cmd>DapTerminate<cr>", {
desc = "Terminate"
})
vim.keymap.set("n", "<leader>di", "<cmd>DapStepInto<cr>", {
desc = "Step into"
})
vim.keymap.set("n", "<leader>dn", "<cmd>DapStepOver<cr>", {
desc = "Step over"
})
vim.keymap.set("n", "<leader>do", "<cmd>DapStepOut<cr>", {
desc = "Step out"
})
vim.keymap.set("n", '<Leader>dh', function() require('dap.ui.widgets').hover() end, {
desc = "Hover"
})
end
},
{
"rcarriga/nvim-dap-ui",
dependencies = {
"mfussenegger/nvim-dap",
"nvim-neotest/nvim-nio"
},
config = function()
require("dapui").setup({
controls = {
enabled = false
},
layouts = {
{
elements = {
{
id = "scopes",
size = 0.33
},
{
id = "breakpoints",
size = 0.33
},
{
id = "stacks",
size = 0.33
}
},
position = "left",
size = 60
},
{
elements = {
{
id = "repl",
size = 1
}
},
position = "bottom",
size = 15
}
}
})
vim.keymap.set("n", "<leader>du", function() require("dapui").toggle() end, {
desc = " Toggle UI"
})
end
}
}

15
nvim/lua/plugins/doge.lua Normal file
View File

@@ -0,0 +1,15 @@
return {
{
'kkoomen/vim-doge',
build = ':call doge#install()',
init = function()
vim.g.doge_enable_mappings = 0
vim.g.doge_doc_standard_cpp = 'doxygen_cpp_comment_slash'
vim.g.doge_mapping_comment_jump_forward = '<c-j>'
vim.g.doge_mapping_comment_jump_backward = '<c-k>'
vim.keymap.set('n', '<leader>gd', '<Plug>(doge-generate)', { silent = true, desc = "Generate doc"})
-- nmap <silent> <Leader>d <Plug>(doge-generate)
end
}
}

View File

@@ -0,0 +1,6 @@
return {
{
'stevearc/dressing.nvim',
event = 'VimEnter'
}
}

22
nvim/lua/plugins/git.lua Normal file
View File

@@ -0,0 +1,22 @@
return {
{
'tpope/vim-fugitive',
cmd = {
"Git"
},
init = function() vim.keymap.set("n", "<leader>gs", vim.cmd.Git) end
},
{
'rbong/vim-flog',
cmd = {
"Flog",
"Floggit",
"Flogsplit"
},
dependencies = {
{
'tpope/vim-fugitive'
}
}
}
}

View File

@@ -0,0 +1,21 @@
return {
{
"ThePrimeagen/harpoon",
-- branch = "harpoon2",
dependencies = {
{
"nvim-lua/plenary.nvim"
}
},
init = function()
vim.keymap.set("n", "<C-e>", function() require("harpoon.ui").toggle_quick_menu() end, {desc = "Toggle harpoon ui"})
vim.keymap.set("n", "<leader>a", function() require("harpoon.mark").add_file() end, {desc = "Add to harpoon list"})
vim.keymap.set("n", "<C-h>", function() require("harpoon.ui").nav_file(1) end)
vim.keymap.set("n", "<C-t>", function() require("harpoon.ui").nav_file(2) end)
vim.keymap.set("n", "<C-n>", function() require("harpoon.ui").nav_file(3) end)
vim.keymap.set("n", "<C-s>", function() require("harpoon.ui").nav_file(4) end)
end
}
}

View File

@@ -0,0 +1,6 @@
return {
{
"folke/lazy.nvim",
tag = "stable"
}
}

189
nvim/lua/plugins/lsp.lua Normal file
View File

@@ -0,0 +1,189 @@
return {
{
{
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
lazy = true,
config = false,
init = function()
-- Disable automatic setup, we are doing it manually
vim.g.lsp_zero_extend_cmp = 0
vim.g.lsp_zero_extend_lspconfig = 0
end
},
{
'williamboman/mason.nvim',
lazy = false,
config = true
},
-- Autocompletion
{
'hrsh7th/nvim-cmp',
event = 'InsertEnter',
dependencies = {
'L3MON4D3/LuaSnip',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/cmp-nvim-lsp-signature-help',
'saadparwaiz1/cmp_luasnip'
},
config = function()
local lsp_zero = require('lsp-zero')
lsp_zero.extend_cmp()
local cmp = require('cmp')
cmp.setup({
sources = {
-- LuaFormatter off
{ name = 'path' },
{ name = 'nvim_lsp' },
{ name = 'nvim_lua' },
{ name = 'luasnip', keyword_length = 2 },
{ name = 'buffer', keyword_length = 3 },
{ name = 'nvim_lsp_signature_help' }
-- LuaFormatter on
},
formatting = lsp_zero.cmp_format(),
mapping = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<Tab>'] = cmp.mapping.confirm({
select = true
}),
['<C-Space>'] = cmp.mapping.complete()
}),
snippet = {
expand = function(args) require('luasnip').lsp_expand(args.body) end
}
})
cmp.setup.filetype('gitcommit', {
-- LuaFormatter off
sources = cmp.config.sources(
{ { name = 'git' } },
{ { name = 'buffer' } }
)
-- LuaFormatter on
})
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'
}
})
})
end
},
-- LSP
{
'neovim/nvim-lspconfig',
cmd = {
'LspInfo',
'LspInstall',
'LspStart'
},
event = {
'BufReadPre',
'BufNewFile'
},
dependencies = {
'hrsh7th/cmp-nvim-lsp',
'williamboman/mason-lspconfig.nvim',
"folke/trouble.nvim"
},
config = function()
local lsp_zero = require('lsp-zero')
lsp_zero.extend_lspconfig()
lsp_zero.on_attach(function(client, bufnr)
vim.keymap.set("n", "<leader>ld", function() vim.lsp.buf.definition() end, {
desc = "Go to definition"
})
vim.keymap.set("n", "<leader>lh", function() vim.lsp.buf.hover() end, {
desc = "Hover"
})
vim.keymap.set("n", "<leader>lr", ":Trouble lsp_references<CR>", {
desc = "Show references"
})
vim.keymap.set("n", "<leader>ln", function() vim.lsp.buf.rename() end, {
desc = "Rename"
})
vim.keymap.set("n", "<leader>ls", function() vim.lsp.buf.signature_help() end, {
desc = "Signature help"
})
vim.keymap.set("n", "<leader>la", function() vim.lsp.buf.code_action() end, {
desc = "Code actions"
})
vim.keymap.set("n", "<leader>la", function() vim.lsp.buf.code_action() end, {
desc = "Code actions"
})
end)
require('mason-lspconfig').setup({
ensure_installed = {
'clangd',
'pyright',
'cmake',
'texlab'
},
handlers = {
lsp_zero.default_setup,
lua_ls = function()
local lua_opts = lsp_zero.nvim_lua_ls()
require('lspconfig').lua_ls.setup(lua_opts)
end
}
})
require('lspconfig')['clangd'].setup {
cmd = {
"clangd",
"--background-index",
"--clang-tidy",
"--completion-style=bundled",
"--cross-file-rename",
"--header-insertion=iwyu",
-- Required for embedded system compilers
"--query-driver=/**/*g++",
"--offset-encoding=utf-16"
-- "-j=8",
-- "--malloc-trim",
-- "--pch-storage=memory"
}
}
require('lspconfig').matlab_ls.setup({
settings = {
filetypes = {"matlab"},
matlab = {
installPath = "/opt/matlab/R2023a/"
},
},
single_file_support = true
})
end
}
}
}

View File

@@ -0,0 +1,21 @@
return {
{
'nvim-lualine/lualine.nvim',
event = "VimEnter",
dependencies = {
'nvim-tree/nvim-web-devicons'
},
opts = {
options = {
theme = 'gruvbox_dark'
},
extensions = {
'nvim-tree',
'trouble',
'mason',
'lazy',
'toggleterm'
}
}
}
}

View File

@@ -0,0 +1,48 @@
return {
{
"L3MON4D3/LuaSnip",
dependencies = {
{
'rafamadriz/friendly-snippets'
}
},
version = "v2.*",
build = "make install_jsregexp",
event = {
"InsertEnter"
},
init = function()
vim.keymap.set({
"i"
}, "<c-j>", function() require("luasnip").expand() end, {
silent = true
})
vim.keymap.set({
"i",
"s"
}, "<c-j>", function() require("luasnip").jump(1) end, {
silent = true
})
vim.keymap.set({
"i",
"s"
}, "<c-k>", function() require("luasnip").jump(-1) end, {
silent = true
})
end,
config = function()
local loader = require("luasnip.loaders.from_lua")
loader.lazy_load({
paths = {
"./snippets"
}
})
require("luasnip").config.set_config({
enable_autosnippets = true,
store_selection_keys = "<leader>v"
})
end
}
}

View File

@@ -0,0 +1,15 @@
return {
{
"iamcco/markdown-preview.nvim",
cmd = {
"MarkdownPreviewToggle",
"MarkdownPreview",
"MarkdownPreviewStop"
},
ft = {
"markdown"
},
build = function() vim.fn["mkdp#util#install"]() end
}
}

View File

@@ -0,0 +1,33 @@
return {
{
"benlubas/molten-nvim",
build = ":UpdateRemotePlugins",
version = "v1.7.0",
init = function()
vim.keymap.set("n", "<localleader>mi", ":MoltenInit<CR>", {
silent = true,
desc = "Initialize the plugin"
})
vim.keymap.set("n", "<localleader>e", ":MoltenEvaluateOperator<CR>", {
silent = true,
desc = "run operator selection"
})
vim.keymap.set("n", "<localleader>rl", ":MoltenEvaluateLine<CR>", {
silent = true,
desc = "evaluate line"
})
vim.keymap.set("n", "<localleader>rr", ":MoltenReevaluateCell<CR>", {
silent = true,
desc = "re-evaluate cell"
})
vim.keymap.set("v", "<localleader>r", ":<C-u>MoltenEvaluateVisual<CR>gv", {
silent = true,
desc = "evaluate visual selection"
})
vim.g.molten_auto_open_output = false
vim.g.molten_virt_text_output = true
vim.g.molten_virt_text_max_lines = 32
end
}
}

View File

@@ -0,0 +1,37 @@
return {
{
'sbdchd/neoformat',
event = {
"BufReadPost",
"BufNewFile"
},
init = function()
vim.cmd([[
let g:neoformat_enabled_python = ['autopep8']
let g:neoformat_enabled_cpp = ['clangformat']
let g:neoformat_enabled_c = ['clangformat']
let g:neoformat_enable_lua = ['luaformatter']
let g:neoformat_enabled_cmake = ['cmakeformat']
let g:neoformat_markdown_mdformat = {
\ 'exe': 'mdformat',
\ 'args': ['--wrap=79'],
\ 'replace': 1,
\ }
let g:neoformat_enabled_markdown = ['mdformat']
let g:neoformat_enabled_latex = ['latexindent']
let g:latexindent_opt="-m -l -g=/dev/null"
]])
vim.api.nvim_set_keymap('n', '<M-L>', '<cmd>Neoformat<cr>', {
noremap = true,
silent = true
})
vim.api.nvim_set_keymap('i', '<M-L>', '<cmd>Neoformat<cr>', {
noremap = true,
silent = true
})
end
}
}

View File

@@ -0,0 +1,38 @@
-- lazy.nvim
return {
"folke/noice.nvim",
event = "VeryLazy",
opts = {
lsp = {
signature = {
enabled = false
},
hover = {
enabled = false
}
},
views = {
cmdline_popup = {
backend = "popup",
relative = "editor",
position = {
row = -1,
col = "0%"
},
border = {
style = "none"
}
},
cmdline_popupmenu = {
relative = "editor",
position = {
row = -2,
col = "0%"
}
}
}
},
dependencies = {
"MunifTanjim/nui.nvim"
}
}

View File

@@ -0,0 +1,18 @@
return {
{
'nvim-tree/nvim-tree.lua',
cmd = {
"NvimTreeToggle",
"NvimTreeFocus"
},
init = function()
vim.opt.termguicolors = true
vim.keymap.set('n', '<leader>e', '<cmd>NvimTreeToggle<cr>', {
noremap = true,
silent = true,
desc = "Explorer"
})
end,
config = function() require("nvim-tree").setup() end
}
}

View File

@@ -0,0 +1,28 @@
return {
"stevearc/overseer.nvim",
config = function()
require("overseer").setup({
templates = {
"builtin",
"user.cmake_generate",
"user.cmake_build",
"user.cmake_clean",
"user.cmake_test",
"user.python_run"
}
})
vim.keymap.set("n", "<leader>oo", function() require("overseer").toggle() end, {
desc = "Toggle"
})
vim.keymap.set("n", "<leader>or", ":OverseerRun<CR>", {
desc = "Run"
})
vim.keymap.set("n", "<leader>oq", ":OverseerQuickAction<CR>", {
desc = "Quick Action"
})
vim.keymap.set("n", "<leader>of", ":OverseerQuickAction open float<CR>", {
desc = "Open Float"
})
end
}

View File

@@ -0,0 +1,6 @@
return {
{
"tpope/vim-surround",
event = "InsertEnter"
}
}

View File

@@ -0,0 +1,50 @@
-- -----------------
-- -- Helper Functions
-- -------------------
-- -- If in a git repo, execute the given function with the option
-- -- "cwd=<git root>". Otherwise, execute the function with no options.
-- local function execute_in_repo_root(func)
-- local function is_git_repo()
-- vim.fn.system("git rev-parse --is-inside-work-tree")
--
-- return vim.v.shell_error == 0
-- end
--
-- local function get_git_root()
-- local dot_git_path = vim.fn.finddir(".git", ".;")
-- return vim.fn.fnamemodify(dot_git_path, ":h")
-- end
--
-- local opts = {}
--
-- if is_git_repo() then opts = {cwd = get_git_root()} end
--
-- func(opts)
-- end
-----------------------
-- Plugin Configuration
-----------------------
return {
{
'nvim-telescope/telescope.nvim',
version = '0.1.5',
dependencies = {
{
'nvim-lua/plenary.nvim'
}
},
cmd = "Telescope",
init = function()
-- LuaFormatter off
vim.keymap.set('n', '<leader>ff', function() require("telescope.builtin").find_files() end,{desc = "Files"})
vim.keymap.set('n', '<leader>fg', function() require("telescope.builtin").live_grep() end,{desc = "grep"})
vim.keymap.set('n', '<leader>fa', function()
require("telescope.builtin").find_files({hidden = true})
end, {desc = "All files"})
vim.keymap.set('n', '<leader>fb', function() require("telescope.builtin").buffers() end, {desc = "Buffers"})
vim.keymap.set('n', '<leader>fh', function() require("telescope.builtin").help_tags() end, {desc = "Help tags"})
-- LuaFormatter on
end
}
}

View File

@@ -0,0 +1,63 @@
return {
-- {'doums/darcula', config = function() vim.cmd('colorscheme darcula') end}
-- {
-- "folke/tokyonight.nvim",
-- lazy = false,
-- priority = 1000,
-- opts = {},
-- config = function() vim.cmd('colorscheme tokyonight-moon') end
-- }
-- {
-- 'rose-pine/neovim',
-- config = function()
-- vim.cmd('colorscheme rose-pine-moon')
-- -- LuaFormatter off
-- vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
-- vim.api.nvim_set_hl(0, "FloatBorder", { bg = "none", fg = "none" })
-- vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = "none" })
-- vim.api.nvim_set_hl(0, "TelescopeBorder", { bg = "none" })
-- -- LuaFormatter on
-- end
-- }
-- {
-- 'AlexvZyl/nordic.nvim',
-- lazy = false,
-- priority = 1000,
-- init = function()
-- require('nordic').setup {
-- telescope = {
-- style = 'classic'
-- -- style = 'flat'
-- }
-- }
-- require'nordic'.load()
-- end
-- }
-- {
-- "briones-gabriel/darcula-solid.nvim",
-- dependencies = "rktjmp/lush.nvim",
-- config = function()
-- vim.cmd 'colorscheme darcula-solid'
-- vim.cmd 'set termguicolors'
-- end
-- }
{
"ellisonleao/gruvbox.nvim",
priority = 1000,
config = true,
opts = {
contrast = "hard"
},
init = function()
vim.cmd("colorscheme gruvbox")
-- LuaFormatter off
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.api.nvim_set_hl(0, "NoiceCmdlineIcon", { bg = "#1d2021" })
vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorder", { bg = "#1d2021" })
vim.api.nvim_set_hl(0, "NoiceCmdlinePopupTitle", { bg = "#1d2021" })
-- LuaFormatter on
end
}
}

View File

@@ -0,0 +1,9 @@
return {
{
"folke/todo-comments.nvim",
dependencies = {
"nvim-lua/plenary.nvim"
},
opts = {}
}
}

View File

@@ -0,0 +1,21 @@
return {
{
"akinsho/toggleterm.nvim",
version = '*',
opts = {
size = 30,
open_mapping = [[<c-\>]]
},
cmd = {
"ToggleTerm",
"TermExec",
"ToggleTermToggleAll",
"ToggleTermSendCurrentLine",
"ToggleTermSendVisualLines",
"ToggleTermSendVisualSelection"
},
keys = {
[[<c-\>]]
}
}
}

View File

@@ -0,0 +1,42 @@
return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
event = {
"BufReadPost",
"BufNewFile"
},
cmd = {
"TSInstall",
"TSBufEnable",
"TSBufDisable",
"TSModuleInfo",
"TSInstallSync"
},
config = function(_, opts)
require("nvim-treesitter.configs").setup({
ensure_installed = {
"cpp",
"c",
"lua",
"vim",
"vimdoc",
"query"
},
sync_install = false,
auto_install = true,
highlight = {
enable = true,
-- additional_vim_regex_highlighting = false,
-- disable = {
-- "latex"
-- },
additional_vim_regex_highlighting = {
"latex"
}
}
})
end
}
}

View File

@@ -0,0 +1,59 @@
return {
{
"folke/trouble.nvim",
dependencies = {
{
"nvim-tree/nvim-web-devicons"
},
{
'folke/lsp-colors.nvim'
},
{
'nvim-telescope/telescope.nvim'
}
},
cmd = {
"Trouble",
"TroubleClose",
"TroubleToggle",
"TroubleRefresh"
},
init = function()
vim.keymap.set("n", "<leader>xx", function() require("trouble").toggle() end, {
desc = "Toggle"
})
vim.keymap.set("n", "<leader>xw", function() require("trouble").toggle("workspace_diagnostics") end, {
desc = "Workspace diagnostics"
})
vim.keymap.set("n", "<leader>xd", function() require("trouble").toggle("document_diagnostics") end, {
desc = "Document diagnostics"
})
vim.keymap.set("n", "<leader>xq", function() require("trouble").toggle("quickfix") end, {
desc = "Quickfix"
})
vim.keymap.set("n", "<leader>xl", function() require("trouble").toggle("loclist") end, {
desc = "Loclist"
})
-- vim.keymap.set("n", "<leader>xr", function() require("trouble").toggle("lsp_references") end, {
-- desc = "LSP references"
-- })
end,
config = function()
local trouble_provider = require("trouble.providers.telescope")
local telescope = require("telescope")
telescope.setup {
defaults = {
mappings = {
i = {
["<c-t>"] = trouble_provider.open_with_trouble
},
n = {
["<c-t>"] = trouble_provider.open_with_trouble
}
}
}
}
end
}
}

View File

@@ -0,0 +1,17 @@
return {
{
'mbbill/undotree',
cmd = {
"UndotreeToggle",
"UndotreeHide",
"UndotreeShow",
"UndotreeFocus",
"UndotreePersistUndo"
},
init = function()
vim.keymap.set("n", "<leader>u", "<cmd>UndotreeToggle<CR>", {
desc = "Undotree"
})
end
}
}

View File

@@ -0,0 +1,63 @@
return {
{
"lervag/vimtex",
ft = {
"tex",
"bib"
},
config = function()
-- General configuration
vim.cmd("syntax enable")
vim.g.vimtex_compiler_latexmk = {
out_dir = 'build',
options = {
'-shell-escape',
'-verbose',
'-file-line-error',
'-interaction=nonstopmode',
'-synctex=1'
}
}
vim.g.vimtex_view_general_viewer = 'sioyek'
vim.g.vimtex_quickfix_mode = 0
-- Concealment
vim.cmd([[set conceallevel=1]])
vim.cmd([[
let g:vimtex_syntax_conceal = {
\ 'accents': 1,
\ 'ligatures': 1,
\ 'cites': 1,
\ 'fancy': 1,
\ 'spacing': 0,
\ 'greek': 1,
\ 'math_bounds': 1,
\ 'math_delimiters': 1,
\ 'math_fracs': 1,
\ 'math_super_sub': 0,
\ 'math_symbols': 1,
\ 'sections': 0,
\ 'styles': 0,
\}
let g:vimtex_syntax_custom_cmds = [
\ {'name': 'bm', 'mathmode': 1, 'argstyle': 'bold', 'conceal': 1},
\]
]])
-- Synctex configuration
vim.g.vimtex_compiler_progname = 'nvr'
local options = string.format(
'--reuse-window --inverse-search="nvr --servername %s +%%2 %%1" --forward-search-file @tex --forward-search-line @line @pdf',
vim.v.servername)
local command = string.format("let g:vimtex_view_general_options='%s'", options)
vim.cmd(command)
end
}
}

View File

@@ -0,0 +1,42 @@
return {
{
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
defaults = {
["<leader>x"] = {
name = "+Trouble"
}
}
},
config = function()
local wk = require("which-key")
wk.register({
["<leader>"] = {
l = {
name = "+LSP"
},
x = {
name = "+Trouble"
},
o = {
name = "+Overseer"
},
d = {
name = "+Debug"
},
f = {
name = "+Find"
},
s = {
name = "+Session"
},
}
})
end
}
}

23
nvim/lua/remap.lua Normal file
View File

@@ -0,0 +1,23 @@
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "<C-x>", "<C-w>c")
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
vim.keymap.set("x", "<leader>p", "\"_dP")
vim.keymap.set("n", "<leader>d", "\"_d")
vim.keymap.set("v", "<leader>d", "\"_d")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
vim.keymap.set("n", "Q", "<nop>")
vim.keymap.set("n", "q:", "<nop>")
vim.cmd [[call nvim_create_user_command('W', 'w', {'nargs': 0})]]
-- vim.keymap.set("n", "<leader>cb", [[:up | %bd | e#<CR>]])

28
nvim/lua/set.lua Normal file
View File

@@ -0,0 +1,28 @@
vim.g.mapleader = " "
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.updatetime = 50