You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

405 lines
11 KiB

2 years ago
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
local plugins = {
{ "preservim/vim-markdown", dependencies = "godlygeek/tabular" },
{ "nathanielc/vim-tickscript" },
{ "jghauser/follow-md-links.nvim" },
{
"toppair/peek.nvim",
build = "deno task --quiet build:fast",
config = function()
require("peek").setup({
app={"cmd.exe", "/c", "start" ,"msedge"},})
2 years ago
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,
},
{
"nvim-telescope/telescope.nvim",
tag = "0.1.0",
dependencies = "nvim-lua/plenary.nvim",
},
{
"jackMort/ChatGPT.nvim",
config = function()
require("chatgpt").setup({
-- optional configuration
})
end,
dependencies = {
"MunifTanjim/nui.nvim",
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
},
},
{
"rose-pine/neovim",
name = "rose-pine",
lazy = false,
priority = 1000,
config = function()
require("rose-pine").setup()
vim.cmd("colorscheme rose-pine")
end,
},
{ "TimUntersberger/neogit", dependencies = "nvim-lua/plenary.nvim" },
-- { "tpope/vim-fugitive" },
{
"nvim-lualine/lualine.nvim",
config = function()
require("lualine").setup({
options = { theme = "auto" },
tabline = {
lualine_a = {},
lualine_b = { "branch" },
-- lualine_c = { 'filename' },
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
sections = {
lualine_b = {
"branch",
"diff",
{
"diagnostics",
sections = { "error", "warn", "info", "hint" },
diagnostics_color = {
-- Same values as the general color option can be used here.
error = "DiagnosticError", -- Changes diagnostics' error color.
warn = "DiagnosticWarn", -- Changes diagnostics' warn color.
info = "DiagnosticInfo", -- Changes diagnostics' info color.
hint = "DiagnosticHint", -- Changes diagnostics' hint color.
},
symbols = { error = "E", warn = "W", info = "I", hint = "H" },
colored = true, -- Displays diagnostics status in color if set to true.
update_in_insert = false, -- Update diagnostics in insert mode.
always_visible = false, -- Show diagnostics even if there are none.
},
},
-- lualine_c = { sections = { 'lsp_progress' } },
lualine_x = {
"encoding",
{
"fileformat",
symbols = {
unix = "unix", -- e712
dos = "dos", -- e70f
mac = "mac", -- e711
},
},
"filetype",
"lsp_progress",
-- "tabnine",
},
},
})
end,
},
{
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "c", "lua", "vim", "help", "query" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
-- List of parsers to ignore installing (for "all")
ignore_install = { "javascript" },
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
highlight = {
enable = true,
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
disable = { "c", "rust" },
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
disable = function(lang, buf)
local max_filesize = 100 * 1024 -- 100 KB
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
if ok and stats and stats.size > max_filesize then
return true
end
end,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
},
})
end,
},
{ "nvim-treesitter/playground" },
{ "theprimeagen/harpoon" },
{ "mbbill/undotree" },
{
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end,
},
{
"williamboman/mason-lspconfig.nvim",
dependencies = { "neovim/nvim-lspconfig" },
},
{
"jay-babu/mason-null-ls.nvim",
-- config = function()
-- local mason_null_ls = require("mason-null-ls")
--
-- mason_null_ls.setup({
-- ensure_installed = {
-- -- Opt to list sources here, when available in mason.
-- },
-- automatic_installation = false,
-- automatic_setup = true, -- Recommended, but optional
-- })
--
-- local null_ls = require("null-ls")
-- null_ls.setup(
-- -- {
-- -- sources = {
-- -- null_ls.builtins.formatting.beautysh,
-- -- },
-- -- }
-- )
-- mason_null_ls.setup_handlers()
-- end,
dependencies = { "jose-elias-alvarez/null-ls.nvim" },
},
-- Snippets
{ "L3MON4D3/LuaSnip" },
{ "rafamadriz/friendly-snippets" },
-- Autocompletion
{ "hrsh7th/cmp-buffer" },
{ "hrsh7th/cmp-cmdline" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "hrsh7th/cmp-nvim-lua" },
{ "hrsh7th/cmp-path" },
{ "hrsh7th/nvim-cmp" },
{ "saadparwaiz1/cmp_luasnip" },
-- -- Debugging
{ "mfussenegger/nvim-jdtls" },
{ "mfussenegger/nvim-dap" },
{ "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap" } },
{
"JoosepAlviste/nvim-ts-context-commentstring",
dependencies = {
{ "numToStr/Comment.nvim" },
{ "nvim-treesitter/nvim-treesitter" },
},
config = function()
require("nvim-treesitter.configs").setup({
context_commentstring = { enable = true, enable_autocmd = false },
})
end,
},
{
"numToStr/Comment.nvim",
config = function()
require("Comment").setup({
pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(),
})
end,
},
{
"folke/which-key.nvim",
config = function()
require("which-key").setup({})
end,
},
-- {
-- "tzachar/cmp-tabnine",
-- build = "./install.sh",
-- dependencies = "hrsh7th/nvim-cmp",
-- config = function()
-- require("cmp_tabnine").setup({
-- max_lines = 1000,
-- max_num_results = 20,
-- sort = true,
-- run_on_every_keystroke = true,
-- snippet_placeholder = "..",
-- ignored_file_types = {
-- -- default is not to ignore
-- -- uncomment to ignore in lua:
-- -- lua = true
-- norg = true,
-- },
-- show_prediction_strength = true,
-- })
-- end,
-- },
{ "weilbith/nvim-code-action-menu", cmd = "CodeActionMenu" },
{
"kosayoda/nvim-lightbulb",
dependencies = "antoinemadec/FixCursorHold.nvim",
},
{
"nvim-neotest/neotest",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"antoinemadec/FixCursorHold.nvim",
"nvim-neotest/neotest-vim-test",
},
config = function()
require("neotest").setup({
adapters = {
require("neotest-vim-test")({ ignore_filetypes = {} }),
},
})
end,
},
{ "nvim-neorg/tree-sitter-norg" },
{ "nvim-neorg/neorg-telescope" },
{
"nvim-neorg/neorg",
config = function()
require("neorg").setup({
load = {
["core.defaults"] = {}, -- Load all the default modules
["core.norg.concealer"] = {
-- config = {
-- folds = false,
-- },
},
["core.norg.dirman"] = { -- Manage your directories with Neorg
config = {
workspaces = {
work = "/Users/nige/notes/work",
home = "/Users/nige/notes/home",
gtd = "/Users/nige/Documents/PARA/PROJECTS/example_workspaces/gtd",
-- gtd = "/Users/nige/gtd"
},
},
},
-- ["core.gtd.base"] = {
-- config = {
-- workspace = "gtd",
-- -- workspace = "notes",
-- },
-- },
["core.norg.completion"] = {
config = {
engine = "nvim-cmp", -- We current support nvim-compe and nvim-cmp only
},
},
["core.norg.qol.todo_items"] = {},
-- ["core.norg.qol.toc"] = {
-- config = { -- Note that this table is optional and doesn't need to be provided
-- -- Configuration here
-- default_toc_mode = "toqflist"
-- }
-- },
-- ["core.norg.journal"] = {
-- config = { -- Note that this table is optional and doesn't need to be provided
-- -- workspace = "notes",
-- }
-- },
-- ["core.presenter"] = {
-- config = { -- Note that this table is optional and doesn't need to be provided
-- -- Configuration here
-- -- zen_mode = "truezen",
-- zen_mode = "zen-mode"
-- }
-- },
["core.export"] = {
config = { -- Note that this table is optional and doesn't need to be provided
-- Configuration here
},
},
["core.integrations.telescope"] = {}, -- Enable the telescope module
},
})
end,
dependencies = "nvim-neorg/neorg-telescope", -- Be sure to pull in the repo
},
}
local opts = {
ui = {
-- a number <1 is a percentage., >1 is a fixed size
size = { width = 0.8, height = 0.8 },
wrap = true, -- wrap the lines in the ui
-- The border to use for the UI window. Accepts same border values as |nvim_open_win()|.
border = "none",
icons = {
cmd = "cmd",
config = "config",
event = "event",
ft = "ft",
init = "init",
import = "import",
keys = "",
lazy = "lazy",
loaded = "",
not_loaded = "",
plugin = "+",
runtime = "runtime",
source = "",
start = "",
task = "",
list = {
"",
"",
"",
"",
},
},
},
}
require("lazy").setup(plugins, opts)