diff options
Diffstat (limited to 'config/nvim/lua/plugins')
| -rw-r--r-- | config/nvim/lua/plugins/checkmate.lua | 40 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/conform.lua | 10 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/core.lua | 8 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/lsp.lua | 30 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/lualine.lua | 73 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/renderer-markdown.lua | 402 |
6 files changed, 563 insertions, 0 deletions
diff --git a/config/nvim/lua/plugins/checkmate.lua b/config/nvim/lua/plugins/checkmate.lua new file mode 100644 index 000000000..8cdebda4b --- /dev/null +++ b/config/nvim/lua/plugins/checkmate.lua @@ -0,0 +1,40 @@ +return { + "bngarren/checkmate.nvim", + ft = { "markdown", "md" }, + opts = { + files = { "*.md" }, + default_list_marker = "-", + todo_states = { + unchecked = { marker = "□", order = 1 }, + checked = { marker = "✔", order = 2 }, + }, + archive = { + heading = { level = 2, title = "Archive" }, + newest_first = true, + parent_spacing = 0, + }, + enter_insert_after_new = true, + use_metadata_keymaps = true, + smart_toggle = { + enabled = true, + include_cycle = false, + check_down = "direct_children", + uncheck_down = "none", + check_up = "direct_children", + uncheck_up = "direct_children", + }, + show_todo_count = true, + todo_count_position = "eol", + todo_count_recursive = true, + }, + keys = { + { "<leader>X", "<cmd>Checkmate toggle<CR>", desc = "Toggle todo item", mode = "n" }, + { "<leader>C", "<cmd>Checkmate check<CR>", desc = "Check todo item", mode = "n" }, + { "<leader>U", "<cmd>Checkmate uncheck<CR>", desc = "Uncheck todo item", mode = "n" }, + { "<leader>N", "<cmd>Checkmate create<CR>", desc = "Create todo item", mode = "n" }, + { "<leader>A", "<cmd>Checkmate archive<CR>", desc = "Archive completed items", mode = "n" }, + + { "<leader>R", "<cmd>Checkmate remove<CR>", desc = "Remove todo marker", mode = "n" }, + { "<leader>F", "<cmd>Checkmate select_todo<CR>", desc = "Select todo", mode = "n" }, + }, +} diff --git a/config/nvim/lua/plugins/conform.lua b/config/nvim/lua/plugins/conform.lua new file mode 100644 index 000000000..32ccedafe --- /dev/null +++ b/config/nvim/lua/plugins/conform.lua @@ -0,0 +1,10 @@ +return { + "stevearc/conform.nvim", + opts = { + formatters_by_ft = { + python = { "ruff_organize_imports", "ruff_format" }, + + markdown = {}, + }, + }, +} diff --git a/config/nvim/lua/plugins/core.lua b/config/nvim/lua/plugins/core.lua new file mode 100644 index 000000000..84bb0c8f4 --- /dev/null +++ b/config/nvim/lua/plugins/core.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin-macchiato", + }, + }, +} diff --git a/config/nvim/lua/plugins/lsp.lua b/config/nvim/lua/plugins/lsp.lua new file mode 100644 index 000000000..3da2aabf2 --- /dev/null +++ b/config/nvim/lua/plugins/lsp.lua @@ -0,0 +1,30 @@ +return { + { + "neovim/nvim-lspconfig", + opts = { + setup = { + tailwindcss = function(_, opts) + opts.settings = { + tailwindCSS = { + validate = true, + lint = { + cssConflict = "ignore", + invalidApply = "error", + invalidConfigPath = "error", + invalidScreen = "error", + invalidTailwindDirective = "error", + invalidVariant = "error", + recommendedVariantOrder = "ignore", + suggestCanonicalClasses = "ignore", + }, + }, + } + + require("lspconfig").tailwindcss.setup(opts) + + return true + end, + }, + }, + }, +} diff --git a/config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua new file mode 100644 index 000000000..a07bbac9a --- /dev/null +++ b/config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,73 @@ +return { + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function() + local icons = LazyVim.config.icons + + return { + options = { + theme = "auto", + globalstatus = vim.o.laststatus == 3, + disabled_filetypes = { + statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" }, + }, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch" }, + + lualine_c = { + LazyVim.lualine.root_dir(), + { + "diagnostics", + symbols = { + error = icons.diagnostics.Error, + warn = icons.diagnostics.Warn, + info = icons.diagnostics.Info, + hint = icons.diagnostics.Hint, + }, + }, + { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } }, + { LazyVim.lualine.pretty_path() }, + }, + + lualine_x = { + { + "diff", + symbols = { + added = icons.git.added, + modified = icons.git.modified, + removed = icons.git.removed, + }, + source = function() + local gitsigns = vim.b.gitsigns_status_dict + if gitsigns then + return { + added = gitsigns.added, + modified = gitsigns.changed, + removed = gitsigns.removed, + } + end + end, + }, + }, + + lualine_y = {}, + + lualine_z = { + { + function() + local l = vim.fn.line(".") + local c = vim.fn.col(".") + return string.format("%d:%d", l, c) + end, + padding = { left = 1, right = 1 }, + }, + }, + }, + extensions = { "neo-tree", "lazy", "fzf" }, + } + end, + }, +} diff --git a/config/nvim/lua/plugins/renderer-markdown.lua b/config/nvim/lua/plugins/renderer-markdown.lua new file mode 100644 index 000000000..160556a35 --- /dev/null +++ b/config/nvim/lua/plugins/renderer-markdown.lua @@ -0,0 +1,402 @@ +return { + { + "MeanderingProgrammer/render-markdown.nvim", + ft = { "markdown" }, + cmd = { "RenderMarkdown" }, + dependencies = { + "nvim-treesitter/nvim-treesitter", + "nvim-mini/mini.nvim", + }, + opts = { + file_types = { "markdown" }, + + sign = { + enabled = true, + priority = nil, + highlight = "RenderMarkdownSign", + }, + + heading = { + enabled = true, + render_modes = false, + atx = true, + setext = true, + sign = true, + icons = { " ", " ", " ", " ", " ", " " }, + position = "overlay", + signs = { " " }, + width = "full", + left_margin = 0, + left_pad = 0, + right_pad = 0, + min_width = 0, + border = true, + border_virtual = true, + border_prefix = false, + above = "▄", + below = "▀", + backgrounds = { + "RenderMarkdownH1Bg", + "RenderMarkdownH2Bg", + "RenderMarkdownH3Bg", + "RenderMarkdownH4Bg", + "RenderMarkdownH5Bg", + "RenderMarkdownH6Bg", + }, + foregrounds = { + "RenderMarkdownH1", + "RenderMarkdownH2", + "RenderMarkdownH3", + "RenderMarkdownH4", + "RenderMarkdownH5", + "RenderMarkdownH6", + }, + custom = {}, + }, + + code = { + enabled = true, + render_modes = false, + sign = true, + conceal_delimiters = true, + language = true, + position = "left", + language_icon = true, + language_name = true, + language_info = true, + language_pad = 2, + disable = {}, + disable_background = { "diff" }, + width = "block", + left_margin = 0, + left_pad = 2, + right_pad = 4, + min_width = 45, + border = "thick", + language_border = " ", + language_left = "", + language_right = "", + above = "▄", + below = "▀", + inline = true, + inline_left = "", + inline_right = "", + inline_pad = 0, + priority = 140, + highlight = "RenderMarkdownCode", + highlight_info = "RenderMarkdownCodeInfo", + highlight_language = nil, + highlight_border = "RenderMarkdownCodeBorder", + highlight_fallback = "RenderMarkdownCodeFallback", + highlight_inline = "RenderMarkdownCodeInline", + highlight_inline_left = nil, + highlight_inline_right = nil, + style = "language", + }, + + dash = { + enabled = true, + render_modes = false, + icon = "─", + width = "full", + left_margin = 0, + priority = nil, + highlight = "RenderMarkdownDash", + }, + + bullet = { + enabled = true, + render_modes = false, + icons = { "●", "○", "◆", "◇" }, + ordered_icons = function(ctx) + local value = vim.trim(ctx.value) + local index = tonumber(value:sub(1, #value - 1)) + return ("%d."):format(index > 1 and index or ctx.index) + end, + left_pad = 0, + right_pad = 0, + highlight = "RenderMarkdownBullet", + }, + + checkbox = { + enabled = true, + render_modes = false, + bullet = false, + left_pad = 0, + right_pad = 1, + unchecked = { + icon = " ", + highlight = "RenderMarkdownUnchecked", + scope_highlight = nil, + }, + checked = { + icon = " ", + highlight = "RenderMarkdownChecked", + scope_highlight = nil, + }, + }, + + quote = { + enabled = true, + render_modes = false, + icon = "▋", + repeat_linebreak = true, + highlight = { + "RenderMarkdownQuote1", + "RenderMarkdownQuote2", + "RenderMarkdownQuote3", + "RenderMarkdownQuote4", + "RenderMarkdownQuote5", + "RenderMarkdownQuote6", + }, + }, + + pipe_table = { + enabled = true, + render_modes = false, + preset = "round", + cell = "padded", + cell_offset = function() + return 0 + end, + padding = 1, + min_width = 12, + border = { + "┌", + "┬", + "┐", + "├", + "┼", + "┤", + "└", + "┴", + "┘", + "│", + "─", + }, + border_enabled = true, + alignment_indicator = "┅", + }, + + callout = { + note = { + raw = "[!NOTE]", + rendered = " Note", + highlight = "RenderMarkdownInfo", + category = "github", + }, + tip = { + raw = "[!TIP]", + rendered = " Tip", + highlight = "RenderMarkdownSuccess", + category = "github", + }, + important = { + raw = "[!IMPORTANT]", + rendered = " Important", + highlight = "RenderMarkdownHint", + category = "github", + }, + warning = { + raw = "[!WARNING]", + rendered = " Warning", + highlight = "RenderMarkdownWarn", + category = "github", + }, + caution = { + raw = "[!CAUTION]", + rendered = " Caution", + highlight = "RenderMarkdownError", + category = "github", + }, + + abstract = { + raw = "[!ABSTRACT]", + rendered = " Abstract", + highlight = "RenderMarkdownInfo", + category = "obsidian", + }, + summary = { + raw = "[!SUMMARY]", + rendered = " Summary", + highlight = "RenderMarkdownInfo", + category = "obsidian", + }, + tldr = { + raw = "[!TLDR]", + rendered = " Tldr", + highlight = "RenderMarkdownInfo", + category = "obsidian", + }, + info = { + raw = "[!INFO]", + rendered = " Info", + highlight = "RenderMarkdownInfo", + category = "obsidian", + }, + todo = { + raw = "[!TODO]", + rendered = " Todo", + highlight = "RenderMarkdownInfo", + category = "obsidian", + }, + hint = { + raw = "[!HINT]", + rendered = " Hint", + highlight = "RenderMarkdownSuccess", + category = "obsidian", + }, + success = { + raw = "[!SUCCESS]", + rendered = " Success", + highlight = "RenderMarkdownSuccess", + category = "obsidian", + }, + check = { + raw = "[!CHECK]", + rendered = " Check", + highlight = "RenderMarkdownSuccess", + category = "obsidian", + }, + done = { + raw = "[!DONE]", + rendered = " Done", + highlight = "RenderMarkdownSuccess", + category = "obsidian", + }, + question = { + raw = "[!QUESTION]", + rendered = " Question", + highlight = "RenderMarkdownWarn", + category = "obsidian", + }, + help = { + raw = "[!HELP]", + rendered = " Help", + highlight = "RenderMarkdownWarn", + category = "obsidian", + }, + faq = { + raw = "[!FAQ]", + rendered = " Faq", + highlight = "RenderMarkdownWarn", + category = "obsidian", + }, + attention = { + raw = "[!ATTENTION]", + rendered = " Attention", + highlight = "RenderMarkdownWarn", + category = "obsidian", + }, + failure = { + raw = "[!FAILURE]", + rendered = " Failure", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + fail = { + raw = "[!FAIL]", + rendered = " Fail", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + missing = { + raw = "[!MISSING]", + rendered = " Missing", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + danger = { + raw = "[!DANGER]", + rendered = " Danger", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + error = { + raw = "[!ERROR]", + rendered = " Error", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + bug = { + raw = "[!BUG]", + rendered = " Bug", + highlight = "RenderMarkdownError", + category = "obsidian", + }, + example = { + raw = "[!EXAMPLE]", + rendered = " Example", + highlight = "RenderMarkdownHint", + category = "obsidian", + }, + quote = { + raw = "[!QUOTE]", + rendered = " Quote", + highlight = "RenderMarkdownQuote", + category = "obsidian", + }, + cite = { + raw = "[!CITE]", + rendered = " Cite", + highlight = "RenderMarkdownQuote", + category = "obsidian", + }, + }, + + link = { + enabled = true, + render_modes = false, + footnote = { + enabled = true, + icon = " ", + body = function(ctx) + return ctx.text + end, + superscript = true, + prefix = "", + suffix = "", + }, + image = " ", + image_custom = true, + email = " ", + hyperlink = " ", + highlight = "RenderMarkdownLink", + highlight_title = "RenderMarkdownLinkTitle", + wiki = { + enabled = true, + icon = " ", + body = function() + return nil + end, + highlight = "RenderMarkdownWikiLink", + scope_highlight = nil, + }, + custom = { + web = { pattern = "^http", icon = " " }, + github = { pattern = "github%.com", icon = " " }, + python = { pattern = "%.py$", icon = " " }, + }, + }, + + indent = { + enabled = true, + render_modes = false, + per_level = 2, + skip_level = 1, + skip_heading = false, + icon = "▎", + priority = 0, + highlight = "RenderMarkdownIndent", + }, + + paragraph = { + enabled = true, + render_modes = false, + left_margin = 0, + indent = 0, + min_width = 0, + }, + }, + }, +} |
