mirror of
https://github.com/pratiktri/dotfiles.git
synced 2026-02-04 16:41:43 +05:30
- Link creation: autocommand to add <leader>ml shortcut for converting selected text to link - Formatting: Use markdown-toc to format available TOC - LSP: Add markdown-toc & markdownlint to Mason ensure_installed - Plugin: render-markdown.nvim with pretty colors to make Obsidian-esk rendering - Plugin: bullets.nvim for easier bullet-point operations (auto indent, auto increment numbers, etc.) - Chore: Move all markdown plugins to lang-markdown.lua - Plugin: img-clip.nvim: Paste screenshots from system-clipboard to markdown (also create store the image as webp) - Plugin: image.nvim: Show images across neovim. Renders image tags on markdown
81 lines
3.5 KiB
Lua
81 lines
3.5 KiB
Lua
return {
|
|
{
|
|
"stevearc/conform.nvim",
|
|
cond = require("config.util").is_not_vscode(),
|
|
lazy = true,
|
|
event = { "BufWritePre" },
|
|
opts = {
|
|
formatters_by_ft = {
|
|
cs = { "csharpier" },
|
|
javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
typescript = { "prettierd", "prettier", stop_after_first = true },
|
|
javascriptreact = { "prettierd", "prettier", stop_after_first = true },
|
|
typescriptreact = { "prettierd", "prettier", stop_after_first = true },
|
|
svelte = { "prettierd", "prettier", stop_after_first = true },
|
|
css = { "prettierd", "prettier", stop_after_first = true },
|
|
html = { "prettierd", "prettier", stop_after_first = true },
|
|
json = { "prettierd", "prettier", stop_after_first = true },
|
|
graphql = { "prettierd", "prettier", stop_after_first = true },
|
|
yaml = { "yamlfmt", "prettierd", stop_after_first = true },
|
|
markdown = { "markdownlint", "markdown-toc" },
|
|
lua = { "stylua" },
|
|
python = { "black" },
|
|
sh = { "shfmt", "shellharden", stop_after_first = true },
|
|
bash = { "shfmt", "shellharden", stop_after_first = true },
|
|
zsh = { "shfmt", "shellharden", stop_after_first = true },
|
|
["_"] = { "trim_whitespace" },
|
|
},
|
|
format_on_save = function(bufnr)
|
|
-- Disable "format_on_save lsp_fallback" for languages that don't
|
|
-- have a well standardized coding style. You can add additional
|
|
-- languages here or re-enable it for the disabled ones.
|
|
local disable_filetypes = { c = true, cpp = true }
|
|
local lsp_format_opt
|
|
if disable_filetypes[vim.bo[bufnr].filetype] then
|
|
lsp_format_opt = "never"
|
|
else
|
|
lsp_format_opt = "fallback"
|
|
end
|
|
return {
|
|
quiet = false,
|
|
timeout_ms = 500,
|
|
lsp_format = lsp_format_opt,
|
|
}
|
|
end,
|
|
formatters = {
|
|
injected = { options = { ignore_errors = true } },
|
|
shfmt = {
|
|
prepend_args = { "-i", "4" },
|
|
},
|
|
markdownlint = {
|
|
prepend_args = {
|
|
"--config",
|
|
"~/.config/templates/markdownlint.json",
|
|
},
|
|
},
|
|
["markdown-toc"] = {
|
|
-- Format only if TOC present in the file
|
|
condition = function(_, ctx)
|
|
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
|
|
if line:find("<!%-%- toc %-%->") then
|
|
return true
|
|
end
|
|
end
|
|
end,
|
|
},
|
|
yamlfmt = {
|
|
prepend_args = {
|
|
"-formatter",
|
|
"include_document_start=true,retain_line_breaks_single=true",
|
|
"-gitignore_excludes",
|
|
},
|
|
},
|
|
csharpier = {
|
|
command = "dotnet-csharpier",
|
|
args = { "--write-stdout" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|