blob: a1e342d862e9b186efe490c440d356fdd5cecc14 (
plain) (
tree)
|
|
local PKGS = {
-- Plugin manager
{ url = "https://github.com/savq/paq-nvim.git" };
-- Common
{ url = "https://github.com/kyazdani42/nvim-web-devicons.git" };
{ url = "https://github.com/ojroques/nvim-osc52.git" };
{ url = "https://github.com/chrisgrieser/nvim-spider.git" };
{ url = "https://github.com/nvim-orgmode/orgmode.git" };
{ url = "https://github.com/kyazdani42/nvim-tree.lua.git" };
{ url = "https://github.com/nvim-telescope/telescope.nvim.git" };
{ url = "https://github.com/nvim-lua/plenary.nvim.git" };
{ url = "https://github.com/kevinhwang91/nvim-ufo.git" };
{ url = "https://github.com/kevinhwang91/promise-async.git" };
{ url = "https://github.com/iamcco/markdown-preview.nvim.git" };
{ url = "https://github.com/folke/which-key.nvim.git" };
{ url = "https://github.com/tpope/vim-abolish.git" };
{ url = "https://github.com/mg979/vim-visual-multi.git" };
{ url = "https://github.com/echasnovski/mini.nvim.git" };
{ url = "https://github.com/catppuccin/nvim.git" };
{ url = "https://github.com/mbbill/undotree.git" };
-- Status line
{ url = "https://github.com/akinsho/bufferline.nvim.git" };
{ url = "https://github.com/nvim-lualine/lualine.nvim.git" };
-- Code colors
{ url = "https://github.com/lukas-reineke/indent-blankline.nvim.git" };
{ url = "https://github.com/nvim-treesitter/nvim-treesitter.git" };
{ url = "https://github.com/norcalli/nvim-colorizer.lua.git" };
{ url = "https://github.com/mracos/mermaid.vim.git" };
-- Themes
{ url = "https://github.com/dracula/vim.git" };
{ url = "https://github.com/folke/tokyonight.nvim.git" };
{ url = "https://github.com/Mofiqul/vscode.nvim.git" };
{ url = "https://github.com/sainnhe/sonokai.git" };
{ url = "https://github.com/navarasu/onedark.nvim.git" };
{ url = "https://github.com/Mofiqul/adwaita.nvim.git" };
{ url = "https://github.com/projekt0n/github-nvim-theme.git" };
-- LCOV Coverage
{ url = "https://github.com/google/vim-coverage.git" };
{ url = "https://github.com/google/vim-maktaba.git" };
{ url = "https://github.com/editorconfig/editorconfig-vim.git" };
{ url = "https://github.com/nathom/filetype.nvim.git" };
{ url = "https://github.com/wfxr/minimap.vim.git" };
-- LSP
{ url = "https://github.com/neovim/nvim-lspconfig.git" };
{ url = "https://github.com/hrsh7th/nvim-cmp.git" };
{ url = "https://github.com/hrsh7th/cmp-nvim-lsp.git" };
{ url = "https://github.com/hrsh7th/cmp-buffer.git" };
{ url = "https://github.com/hrsh7th/cmp-path.git" };
{ url = "https://github.com/hrsh7th/cmp-cmdline.git" };
{ url = "https://github.com/hrsh7th/cmp-vsnip.git" };
{ url = "https://github.com/hrsh7th/vim-vsnip.git" };
{ url = "https://github.com/onsails/lspkind.nvim.git" };
{ url = "https://github.com/folke/trouble.nvim.git" };
{ url = "https://github.com/folke/lsp-colors.nvim.git" };
{ url = "https://github.com/nanotee/sqls.nvim.git" };
{ url = "https://github.com/lvimuser/lsp-inlayhints.nvim.git" };
{ url = "https://github.com/sigmaSd/deno-nvim.git" };
{ url = "https://github.com/ray-x/lsp_signature.nvim.git" };
{ url = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim.git" };
{ url = "https://github.com/lewis6991/gitsigns.nvim.git" };
{ url = "https://github.com/jose-elias-alvarez/null-ls.nvim.git" };
{ url = "https://github.com/mfussenegger/nvim-dap.git" };
{ url = "https://github.com/rcarriga/nvim-dap-ui.git" };
{ url = "https://github.com/antoinemadec/FixCursorHold.nvim.git" };
{ url = "https://github.com/nvim-neotest/neotest.git" };
{ url = "https://github.com/Issafalcon/neotest-dotnet.git" };
-- Dev container
{ url = "https://codeberg.org/esensar/nvim-dev-container.git" };
-- Games
{ url = "https://github.com/alec-gibson/nvim-tetris.git" };
{ url = "https://github.com/seandewar/nvimesweeper.git" };
}
local function init_plugins()
local paq = require("paq")
paq(PKGS)
vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]]
vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]
vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]
vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]
vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]
vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]]
require("indent_blankline").setup {
char_highlight_list = {
"IndentBlanklineIndent1";
"IndentBlanklineIndent2";
"IndentBlanklineIndent3";
"IndentBlanklineIndent4";
"IndentBlanklineIndent5";
"IndentBlanklineIndent6";
};
show_end_of_line = true;
space_char_blankline = " ";
show_current_context = true;
show_current_context_start = true;
}
require("colorizer").setup({ "*" }, {
RGB = true; -- #RGB hex codes
RRGGBB = true; -- #RRGGBB hex codes
names = true; -- "Name" codes like Blue
RRGGBBAA = false; -- #RRGGBBAA hex codes
rgb_fn = false; -- CSS rgb() and rgba() functions
hsl_fn = false; -- CSS hsl() and hsla() functions
css = false; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = false; -- Enable all CSS *functions*: rgb_fn, hsl_fn
-- Available modes: foreground, background
mode = "foreground"; -- Set the display mode.
})
vim.g.minimap_auto_start = 0
vim.g.minimap_highlight_range = 1
vim.g.minimap_highlight_search = 1
require("ufo").setup({
provider_selector = function(bufnr, filetype, buftype)
return { "treesitter"; "indent" }
end;
});
require("catppuccin").setup({
transparent_background = true;
show_end_of_line = true;
term_colors = true;
})
vim.o.foldcolumn = "1"
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
require("osc52").setup {
max_length = 0; -- Maximum length of selection (0 for no limit)
silent = false; -- Disable message on successful copy
trim = false; -- Trim surrounding whitespaces before copy
}
require("devcontainer").setup({})
require("which-key").setup({})
local orgmode = require("orgmode")
orgmode.setup_ts_grammar()
require("nvim-treesitter.configs").setup({
ensure_installed = {
"javascript";
"typescript";
"lua";
"c_sharp";
"jsonc";
"org";
};
sync_install = false;
auto_install = true;
highlight = {
enable = true;
disable = { "markdown"; "yaml"; "sql"; "help" };
additional_vim_regex_highlighting = { "org" };
};
})
orgmode.setup({ org_default_notes_file = "~/.cache/org/refile.org" })
require("mini.surround").setup({})
require("mini.comment").setup({
-- Options which control module behavior
options = {
-- Whether to ignore blank lines
ignore_blank_line = true;
-- Whether to recognize as comment only lines without indent
start_of_line = false;
-- Whether to ensure single space pad for comment parts
pad_comment_parts = true;
};
-- Module mappings. Use `''` (empty string) to disable one.
mappings = {
-- Toggle comment (like `gcip` - comment inner paragraph) for both
-- Normal and Visual modes
comment = "gc";
-- Toggle comment on current line
comment_line = "gcc";
-- Define 'comment' textobject (like `dgc` - delete whole comment block)
textobject = "gc";
};
-- Hook functions to be executed at certain stage of commenting
hooks = {
-- Before successful commenting. Does nothing by default.
pre = function() end;
-- After successful commenting. Does nothing by default.
post = function() end;
};
})
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";
};
untracked = {
hl = "GitSignsAdd";
text = "┆";
numhl = "GitSignsAddNr";
linehl = "GitSignsAddLn";
};
};
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`
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 = 0;
ignore_whitespace = false;
};
current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>";
sign_priority = 6;
update_debounce = 100;
status_formatter = nil; -- Use default
max_file_length = 40000; -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = "single";
style = "minimal";
relative = "cursor";
row = 0;
col = 1;
};
yadm = { enable = false };
}
require("neotest").setup({ adapters = { require("neotest-dotnet") } })
end
local function clone_paq()
local path = vim.fn.stdpath("data") .. "/site/pack/paqs/start/paq-nvim"
if vim.fn.empty(vim.fn.glob(path)) > 0 then
vim.fn.system {
"git";
"clone";
"--depth=1";
"https://github.com/savq/paq-nvim.git";
path;
}
return true
else
return false
end
end
local function bootstrap_paq()
clone_paq()
-- Load Paq
vim.cmd("packadd paq-nvim")
local paq = require("paq")
-- Read and install packages
paq(PKGS)
paq.install()
end
return {
clone_paq = clone_paq;
bootstrap_paq = bootstrap_paq;
init_plugins = init_plugins;
}
|