summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins
diff options
context:
space:
mode:
authorl3wdfut4pwr <l3wdfut4pwr@gmail.com>2026-06-14 19:29:33 +0300
committerl3wdfut4pwr <l3wdfut4pwr@gmail.com>2026-06-14 19:29:33 +0300
commit56082af20a8712570edd6ed523baad4755ecd241 (patch)
tree2366ad69de817a80403cdcbe5cdd48ad90106bd6 /config/nvim/lua/plugins
init
Diffstat (limited to 'config/nvim/lua/plugins')
-rw-r--r--config/nvim/lua/plugins/checkmate.lua40
-rw-r--r--config/nvim/lua/plugins/conform.lua10
-rw-r--r--config/nvim/lua/plugins/core.lua8
-rw-r--r--config/nvim/lua/plugins/lsp.lua30
-rw-r--r--config/nvim/lua/plugins/lualine.lua73
-rw-r--r--config/nvim/lua/plugins/renderer-markdown.lua402
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,
+ },
+ },
+ },
+}