mirror of
https://github.com/Hydroxycarbamide/astrovim_user.git
synced 2025-05-04 12:19:08 -04:00
198 lines
8.5 KiB
Lua
198 lines
8.5 KiB
Lua
-- You can also add or configure plugins by creating files in this `plugins/` folder
|
||
-- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE
|
||
-- Here are some examples:
|
||
|
||
---@type LazySpec
|
||
|
||
return {
|
||
|
||
-- == Examples of Adding Plugins ==
|
||
|
||
-- "andweeb/presence.nvim",
|
||
{
|
||
"ray-x/lsp_signature.nvim",
|
||
event = "BufRead",
|
||
config = function() require("lsp_signature").setup() end,
|
||
},
|
||
|
||
-- == Examples of Overriding Plugins ==
|
||
|
||
-- customize dashboard options
|
||
{
|
||
"folke/snacks.nvim",
|
||
opts = {
|
||
dashboard = {
|
||
preset = {
|
||
header = table.concat({
|
||
" █████ ███████ ████████ ██████ ██████ ",
|
||
"██ ██ ██ ██ ██ ██ ██ ██",
|
||
"███████ ███████ ██ ██████ ██ ██",
|
||
"██ ██ ██ ██ ██ ██ ██ ██",
|
||
"██ ██ ███████ ██ ██ ██ ██████ ",
|
||
"",
|
||
"███ ██ ██ ██ ██ ███ ███",
|
||
"████ ██ ██ ██ ██ ████ ████",
|
||
"██ ██ ██ ██ ██ ██ ██ ████ ██",
|
||
"██ ██ ██ ██ ██ ██ ██ ██ ██",
|
||
"██ ████ ████ ██ ██ ██",
|
||
}, "\n"),
|
||
},
|
||
},
|
||
},
|
||
},
|
||
|
||
-- You can disable default plugins as follows:
|
||
{ "max397574/better-escape.nvim", enabled = false },
|
||
|
||
-- You can also easily customize additional setup of plugins that is outside of the plugin's setup call
|
||
{
|
||
"L3MON4D3/LuaSnip",
|
||
config = function(plugin, opts)
|
||
require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call
|
||
-- add more custom luasnip configuration such as filetype extend or custom snippets
|
||
local luasnip = require "luasnip"
|
||
luasnip.filetype_extend("javascript", { "javascriptreact" })
|
||
end,
|
||
},
|
||
|
||
{
|
||
"windwp/nvim-autopairs",
|
||
config = function(plugin, opts)
|
||
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call
|
||
-- add more custom autopairs configuration such as custom rules
|
||
local npairs = require "nvim-autopairs"
|
||
local Rule = require "nvim-autopairs.rule"
|
||
local cond = require "nvim-autopairs.conds"
|
||
npairs.add_rules(
|
||
{
|
||
Rule("$", "$", { "tex", "latex" })
|
||
-- don't add a pair if the next character is %
|
||
:with_pair(cond.not_after_regex "%%")
|
||
-- don't add a pair if the previous character is xxx
|
||
:with_pair(
|
||
cond.not_before_regex("xxx", 3)
|
||
)
|
||
-- don't move right when repeat character
|
||
:with_move(cond.none())
|
||
-- don't delete if the next character is xx
|
||
:with_del(cond.not_after_regex "xx")
|
||
-- disable adding a newline when you press <cr>
|
||
:with_cr(cond.none()),
|
||
},
|
||
-- disable for .vim files, but it work for another filetypes
|
||
Rule("a", "a", "-vim")
|
||
)
|
||
end,
|
||
},
|
||
|
||
{
|
||
"Wansmer/symbol-usage.nvim",
|
||
event = "BufReadPre", -- need run before LspAttach if you use nvim 0.9. On 0.10 use 'LspAttach'
|
||
config = function() require("symbol-usage").setup() end,
|
||
},
|
||
|
||
{
|
||
'MeanderingProgrammer/render-markdown.nvim',
|
||
enabled = true,
|
||
opts = {},
|
||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite
|
||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins
|
||
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
|
||
},
|
||
{
|
||
"epwalsh/obsidian.nvim",
|
||
enabled = true,
|
||
version = "*", -- recommended, use latest release instead of latest commit
|
||
lazy = true,
|
||
ft = "markdown",
|
||
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
|
||
-- event = {
|
||
-- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
|
||
-- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md"
|
||
-- -- refer to `:h file-pattern` for more examples
|
||
-- "BufReadPre path/to/my-vault/*.md",
|
||
-- "BufNewFile path/to/my-vault/*.md",
|
||
-- },
|
||
dependencies = {
|
||
-- Required.
|
||
"nvim-lua/plenary.nvim",
|
||
},
|
||
opts = {
|
||
ui = {
|
||
enable = false, -- set to false to disable all additional syntax features
|
||
update_debounce = 200, -- update delay after a text change (in milliseconds)
|
||
max_file_length = 5000, -- disable UI features for files with more than this many lines
|
||
-- Define how various check-boxes are displayed
|
||
checkboxes = {
|
||
-- NOTE: the 'char' value has to be a single character, and the highlight groups are defined below.
|
||
[" "] = { char = "", hl_group = "ObsidianTodo" },
|
||
["x"] = { char = "", hl_group = "ObsidianDone" },
|
||
[">"] = { char = "", hl_group = "ObsidianRightArrow" },
|
||
["~"] = { char = "", hl_group = "ObsidianTilde" },
|
||
["!"] = { char = "", hl_group = "ObsidianImportant" },
|
||
-- Replace the above with this if you don't have a patched font:
|
||
-- [" "] = { char = "☐", hl_group = "ObsidianTodo" },
|
||
-- ["x"] = { char = "✔", hl_group = "ObsidianDone" },
|
||
|
||
-- You can also add more custom ones...
|
||
},
|
||
-- Use bullet marks for non-checkbox lists.
|
||
bullets = { char = "•", hl_group = "ObsidianBullet" },
|
||
external_link_icon = { char = "", hl_group = "ObsidianExtLinkIcon" },
|
||
-- Replace the above with this if you don't have a patched font:
|
||
-- external_link_icon = { char = "", hl_group = "ObsidianExtLinkIcon" },
|
||
reference_text = { hl_group = "ObsidianRefText" },
|
||
highlight_text = { hl_group = "ObsidianHighlightText" },
|
||
tags = { hl_group = "ObsidianTag" },
|
||
block_ids = { hl_group = "ObsidianBlockID" },
|
||
hl_groups = {
|
||
-- The options are passed directly to `vim.api.nvim_set_hl()`. See `:help nvim_set_hl`.
|
||
ObsidianTodo = { bold = true, fg = "#f78c6c" },
|
||
ObsidianDone = { bold = true, fg = "#89ddff" },
|
||
ObsidianRightArrow = { bold = true, fg = "#f78c6c" },
|
||
ObsidianTilde = { bold = true, fg = "#ff5370" },
|
||
ObsidianImportant = { bold = true, fg = "#d73128" },
|
||
ObsidianBullet = { bold = true, fg = "#89ddff" },
|
||
ObsidianRefText = { underline = true, fg = "#c792ea" },
|
||
ObsidianExtLinkIcon = { fg = "#c792ea" },
|
||
ObsidianTag = { italic = true, fg = "#89ddff" },
|
||
ObsidianBlockID = { italic = true, fg = "#89ddff" },
|
||
ObsidianHighlightText = { bg = "#75662e" },
|
||
},
|
||
},
|
||
workspaces = {
|
||
{
|
||
name = "notes",
|
||
path = "~/Documents/notes",
|
||
},
|
||
},
|
||
attachments = {
|
||
-- The default folder to place images in via `:ObsidianPasteImg`.
|
||
-- If this is a relative path it will be interpreted as relative to the vault root.
|
||
-- You can always override this per image by passing a full path to the command instead of just a filename.
|
||
img_folder = "_attachments", -- This is the default
|
||
|
||
-- Optional, customize the default name or prefix when pasting images via `:ObsidianPasteImg`.
|
||
---@return string
|
||
img_name_func = function()
|
||
-- Prefix image names with timestamp.
|
||
return string.format("%s-", os.time())
|
||
end,
|
||
|
||
-- A function that determines the text to insert in the note when pasting an image.
|
||
-- It takes two arguments, the `obsidian.Client` and an `obsidian.Path` to the image file.
|
||
-- This is the default implementation.
|
||
---@param client obsidian.Client
|
||
---@param path obsidian.Path the absolute path to the image file
|
||
---@return string
|
||
img_text_func = function(client, path)
|
||
path = client:vault_relative_path(path) or path
|
||
return string.format("", path.name, path)
|
||
end,
|
||
},
|
||
},
|
||
config = function()
|
||
vim.opt.conceallevel = 1
|
||
end,
|
||
}
|
||
}
|