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/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/filipdutescu/renamer.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" }; -- 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" }; -- 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" }; -- 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 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 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; }); 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("devcontainer").setup({}) require("renamer").setup({ -- The popup title, shown if `border` is true title = "Rename"; -- The padding around the popup content padding = { top = 0; left = 0; bottom = 0; right = 0 }; -- The minimum width of the popup min_width = 15; -- The maximum width of the popup max_width = 45; -- Whether or not to shown a border around the popup border = true; -- The characters which make up the border border_chars = { "─"; "│"; "─"; "│"; "╭"; "╮"; "╯"; "╰" }; -- Whether or not to highlight the current word references through LSP show_refs = true; -- Whether or not to add resulting changes to the quickfix list with_qf_list = true; -- Whether or not to enter the new name through the UI or Neovim's `input` -- prompt with_popup = true; -- Custom handler to be run after successfully renaming the word. Receives -- the LSP 'textDocument/rename' raw response as its parameter. handler = nil; }) require("which-key").setup({ -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below }) vim.fn["mkdp#util#install"]() require("nvim-treesitter.configs").setup({ ensure_installed = { "javascript"; "typescript"; "lua"; "c_sharp"; "jsonc" }; sync_install = false; auto_install = true; highlight = { enable = true; disable = { "markdown"; "yaml"; "sql"; "help" } }; }) require("mini.surround").setup({}) 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 = ", - "; 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 }; } end return { clone_paq = clone_paq; bootstrap_paq = bootstrap_paq; init_plugins = init_plugins; }