summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew <admonty1@protonmail.com>2025-08-30 18:14:23 -0400
committerAndrew <admonty1@protonmail.com>2025-08-30 18:14:23 -0400
commit0114f5320fb6bebc4509469f1b0c8f3ffd87a235 (patch)
treefc7bb17f50b7d1d4022d044cf565cf41f37ab83a
parentchange waybar to match new workspace config (diff)
downloadnixos-0114f5320fb6bebc4509469f1b0c8f3ffd87a235.tar.gz
nixos-0114f5320fb6bebc4509469f1b0c8f3ffd87a235.tar.bz2
nixos-0114f5320fb6bebc4509469f1b0c8f3ffd87a235.zip
inline markdown rendering
-rw-r--r--flake.lock12
-rw-r--r--flake.nix1
-rw-r--r--neovim.nix571
3 files changed, 576 insertions, 8 deletions
diff --git a/flake.lock b/flake.lock
index a186a73..8a508a0 100644
--- a/flake.lock
+++ b/flake.lock
@@ -181,11 +181,11 @@
]
},
"locked": {
- "lastModified": 1756022458,
- "narHash": "sha256-J1i35r4HfNDdPpwL0vOBaZopQudAUVtartEerc1Jryc=",
+ "lastModified": 1756496801,
+ "narHash": "sha256-IYIsnPy+cJxe8RbDHBrCtfJY0ry2bG2H7WvMcewiGS8=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "9e3a33c0bcbc25619e540b9dfea372282f8a9740",
+ "rev": "77a71380c38fb2a440b4b5881bbc839f6230e1cb",
"type": "github"
},
"original": {
@@ -211,11 +211,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1755615617,
- "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
+ "lastModified": 1756542300,
+ "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "20075955deac2583bb12f07151c2df830ef346b4",
+ "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 7b3bb7e..a8951e4 100644
--- a/flake.nix
+++ b/flake.nix
@@ -35,6 +35,7 @@
modules = [
./neovim.nix
];
+ extraSpecialArgs = {inherit inputs;};
};
in {
nixosConfigurations = {
diff --git a/neovim.nix b/neovim.nix
index 7e7797c..552e88a 100644
--- a/neovim.nix
+++ b/neovim.nix
@@ -1,6 +1,8 @@
{
- inputs,
+ config,
+ lib,
pkgs,
+ inputs,
...
}: {
config.vim = {
@@ -48,7 +50,572 @@
# Languages that will be supported in default and maximal configurations.
nix.enable = true;
- markdown.enable = true;
+ markdown = {
+ enable = true;
+ extensions.render-markdown-nvim = {
+ enable = true;
+ setupOpts = {
+ enabled = true;
+ render_modes = ["n" "c" "t"];
+ max_file_size = 10.0;
+ debounce = 100;
+ preset = "none";
+ log_level = "error";
+ log_runtime = false;
+ file_types = ["markdown"];
+ #ignore = ''
+ # function()
+ # return false
+ # end
+ #'';
+ #nested = true;
+ change_events = {};
+ #restart_highlighter = false;
+ injections = {
+ gitcommit = {
+ enabled = true;
+ query = ''
+ ((message) @injection.content
+ (#set! injection.combined)
+ (#set! injection.include-children)
+ (#set! injection.language "markdown"))
+ '';
+ };
+ };
+ patterns = {
+ markdown = {
+ disable = true;
+ directives = [
+ {
+ id = 17;
+ name = "conceal_lines";
+ }
+ {
+ id = 18;
+ name = "conceal_lines";
+ }
+ ];
+ };
+ };
+ anti_conceal = {
+ enabled = true;
+ disabled_modes = false;
+ above = 0;
+ below = 0;
+ ignore = {
+ code_background = true;
+ indent = true;
+ sign = true;
+ virtual_lines = true;
+ };
+ };
+ padding = {
+ highlight = "Normal";
+ };
+ latex = {
+ enabled = false; # Disabled to resolve :checkhealth warnings
+ };
+ #on = {
+ # attach = ''
+ # function() end
+ # '';
+ # initial = ''
+ # function() end
+ # '';
+ # render = ''
+ # function() end
+ # '';
+ # clear = ''
+ # function() end
+ # '';
+ #};
+ #completions = {
+ # blink = {enabled = false;};
+ # coq = {enabled = false;};
+ # lsp = {enabled = false;};
+ # filter = {
+ # callout = ''
+ # function()
+ # return true
+ # end
+ # '';
+ # checkbox = ''
+ # function()
+ # return true
+ # end
+ # '';
+ # };
+ #};
+ 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 = false;
+ border_virtual = false;
+ border_prefix = false;
+ above = "▄";
+ below = "▀";
+ backgrounds = [
+ "RenderMarkdownH1Bg"
+ "RenderMarkdownH2Bg"
+ "RenderMarkdownH3Bg"
+ "RenderMarkdownH4Bg"
+ "RenderMarkdownH5Bg"
+ "RenderMarkdownH6Bg"
+ ];
+ foregrounds = [
+ "RenderMarkdownH1"
+ "RenderMarkdownH2"
+ "RenderMarkdownH3"
+ "RenderMarkdownH4"
+ "RenderMarkdownH5"
+ "RenderMarkdownH6"
+ ];
+ custom = {};
+ };
+ paragraph = {
+ enabled = true;
+ render_modes = false;
+ left_margin = 0;
+ indent = 0;
+ min_width = 0;
+ };
+ 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 = 0;
+ disable_background = ["diff"];
+ width = "full";
+ left_margin = 0;
+ left_pad = 0;
+ right_pad = 0;
+ min_width = 0;
+ border = "hide";
+ language_border = "█";
+ language_left = "";
+ language_right = "";
+ above = "▄";
+ below = "▀";
+ inline = true;
+ inline_left = "";
+ inline_right = "";
+ inline_pad = 0;
+ highlight = "RenderMarkdownCode";
+ highlight_info = "RenderMarkdownCodeInfo";
+ highlight_language = null;
+ highlight_border = "RenderMarkdownCodeBorder";
+ highlight_fallback = "RenderMarkdownCodeFallback";
+ highlight_inline = "RenderMarkdownCodeInline";
+ style = "full";
+ };
+ dash = {
+ enabled = true;
+ render_modes = false;
+ icon = "─";
+ width = "full";
+ left_margin = 0;
+ highlight = "RenderMarkdownDash";
+ };
+ document = {
+ enabled = true;
+ render_modes = false;
+ conceal = {
+ char_patterns = {};
+ line_patterns = {};
+ };
+ };
+ 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";
+ scope_highlight = {};
+ };
+ checkbox = {
+ enabled = true;
+ render_modes = false;
+ bullet = false;
+ right_pad = 1;
+ unchecked = {
+ icon = "󰄱 ";
+ highlight = "RenderMarkdownUnchecked";
+ scope_highlight = null;
+ };
+ checked = {
+ icon = "󰱒 ";
+ highlight = "RenderMarkdownChecked";
+ scope_highlight = null;
+ };
+ custom = {
+ todo = {
+ raw = "[-]";
+ rendered = "󰥔 ";
+ highlight = "RenderMarkdownTodo";
+ scope_highlight = null;
+ };
+ };
+ };
+ quote = {
+ enabled = true;
+ render_modes = false;
+ icon = "▋";
+ repeat_linebreak = false;
+ highlight = [
+ "RenderMarkdownQuote1"
+ "RenderMarkdownQuote2"
+ "RenderMarkdownQuote3"
+ "RenderMarkdownQuote4"
+ "RenderMarkdownQuote5"
+ "RenderMarkdownQuote6"
+ ];
+ };
+ pipe_table = {
+ enabled = true;
+ render_modes = false;
+ preset = "none";
+ cell = "padded";
+ #cell_offset = ''
+ # function()
+ # return 0
+ # end
+ #'';
+ padding = 1;
+ min_width = 0;
+ border = [
+ "┌"
+ "┬"
+ "┐"
+ "├"
+ "┼"
+ "┤"
+ "└"
+ "┴"
+ "┘"
+ "│"
+ "─"
+ ];
+ border_enabled = true;
+ border_virtual = false;
+ alignment_indicator = "━";
+ head = "RenderMarkdownTableHead";
+ row = "RenderMarkdownTableRow";
+ filler = "RenderMarkdownTableFill";
+ style = "full";
+ };
+ 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;
+ superscript = true;
+ prefix = "";
+ suffix = "";
+ };
+ image = "󰥶 ";
+ email = "󰀓 ";
+ hyperlink = "󰌹 ";
+ highlight = "RenderMarkdownLink";
+ wiki = {
+ icon = "󱗖 ";
+ #body = ''
+ # function()
+ # return nil
+ # end
+ #'';
+ highlight = "RenderMarkdownWikiLink";
+ scope_highlight = null;
+ };
+ custom = {
+ web = {
+ pattern = "^http";
+ icon = "󰖟 ";
+ };
+ discord = {
+ pattern = "discord%.com";
+ icon = "󰙯 ";
+ };
+ github = {
+ pattern = "github%.com";
+ icon = "󰊤 ";
+ };
+ gitlab = {
+ pattern = "gitlab%.com";
+ icon = "󰮠 ";
+ };
+ google = {
+ pattern = "google%.com";
+ icon = "󰊭 ";
+ };
+ neovim = {
+ pattern = "neovim%.io";
+ icon = " ";
+ };
+ reddit = {
+ pattern = "reddit%.com";
+ icon = "󰑍 ";
+ };
+ stackoverflow = {
+ pattern = "stackoverflow%.com";
+ icon = "󰓌 ";
+ };
+ wikipedia = {
+ pattern = "wikipedia%.org";
+ icon = "󰖬 ";
+ };
+ youtube = {
+ pattern = "youtube%.com";
+ icon = "󰗃 ";
+ };
+ };
+ };
+ sign = {
+ enabled = true;
+ highlight = "RenderMarkdownSign";
+ };
+ inline_highlight = {
+ enabled = true;
+ render_modes = false;
+ highlight = "RenderMarkdownInlineHighlight";
+ };
+ indent = {
+ enabled = false;
+ render_modes = false;
+ per_level = 2;
+ skip_level = 1;
+ skip_heading = false;
+ icon = "▎";
+ priority = 0;
+ highlight = "RenderMarkdownIndent";
+ };
+ html = {
+ enabled = true;
+ render_modes = false;
+ comment = {
+ conceal = true;
+ text = null;
+ highlight = "RenderMarkdownHtmlComment";
+ };
+ tag = {};
+ };
+ win_options = {
+ conceallevel = {
+ default = "vim.o.conceallevel";
+ rendered = 3;
+ };
+ concealcursor = {
+ default = "vim.o.concealcursor";
+ rendered = "";
+ };
+ };
+ overrides = {
+ buflisted = {};
+ buftype = {
+ nofile = {
+ render_modes = true;
+ padding = {highlight = "NormalFloat";};
+ sign = {enabled = false;};
+ };
+ };
+ filetype = {};
+ };
+ custom_handlers = {};
+ #yaml = {
+ # enabled = true;
+ # render_modes = false;
+ #};
+ };
+ };
+ };
# Languages that are enabled in the maximal configuration.
bash.enable = true;