nvim: in-line Markdown rendering
This commit is contained in:
88
.config/alacritty/alacritty.toml
Normal file
88
.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
[general]
|
||||||
|
working_directory = "None"
|
||||||
|
live_config_reload = true
|
||||||
|
|
||||||
|
[env]
|
||||||
|
TERM = "xterm-256color"
|
||||||
|
WINIT_X11_SCALE_FACTOR = "1.0"
|
||||||
|
|
||||||
|
[window]
|
||||||
|
dimensions = { columns = 100, lines = 30 }
|
||||||
|
dynamic_padding = true
|
||||||
|
decorations = "Full"
|
||||||
|
opacity = 0.8
|
||||||
|
title = "Alacritty@CachyOS"
|
||||||
|
class = { instance = "Alacritty", general = "Alacritty" }
|
||||||
|
decorations_theme_variant = "Dark"
|
||||||
|
|
||||||
|
[scrolling]
|
||||||
|
history = 10000
|
||||||
|
multiplier = 3
|
||||||
|
|
||||||
|
[font]
|
||||||
|
normal = { family = "MesloLGS Nerd Font Mono", style = "Regular" }
|
||||||
|
bold = { family = "MesloLGS Nerd Font Mono", style = "Bold" }
|
||||||
|
italic = { family = "MesloLGS Nerd Font Mono", style = "Italic" }
|
||||||
|
bold_italic = { family = "MesloLGS Nerd Font Mono", style = "Bold Italic" }
|
||||||
|
size = 12.0
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
draw_bold_text_with_bright_colors = true
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "0x2E3440"
|
||||||
|
foreground = "0xD8DEE9"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "0x3B4252"
|
||||||
|
red = "0xBF616A"
|
||||||
|
green = "0xA3BE8C"
|
||||||
|
yellow = "0xEBCB8B"
|
||||||
|
blue = "0x81A1C1"
|
||||||
|
magenta = "0xB48EAD"
|
||||||
|
cyan = "0x88C0D0"
|
||||||
|
white = "0xE5E9F0"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "0x4C566A"
|
||||||
|
red = "0xBF616A"
|
||||||
|
green = "0xA3BE8C"
|
||||||
|
yellow = "0xEBCB8B"
|
||||||
|
blue = "0x81A1C1"
|
||||||
|
magenta = "0xB48EAD"
|
||||||
|
cyan = "0x8FBCBB"
|
||||||
|
white = "0xECEFF4"
|
||||||
|
|
||||||
|
[selection]
|
||||||
|
semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
|
||||||
|
save_to_clipboard = true
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
style = { shape = "Underline", blinking = "Off" }
|
||||||
|
unfocused_hollow = true
|
||||||
|
thickness = 0.15
|
||||||
|
|
||||||
|
[mouse]
|
||||||
|
hide_when_typing = true
|
||||||
|
bindings = [
|
||||||
|
{ mouse = "Middle", mods = "None", action = "PasteSelection" },
|
||||||
|
]
|
||||||
|
|
||||||
|
[keyboard]
|
||||||
|
bindings = [
|
||||||
|
{ key = "Paste", mods = "None", action = "Paste" },
|
||||||
|
{ key = "Copy", mods = "None", action = "Copy" },
|
||||||
|
{ key = "L", mods = "Control", action = "ClearLogNotice" },
|
||||||
|
{ key = "L", mods = "Control", mode = "~Vi", chars = "\f" },
|
||||||
|
{ key = "PageUp", mods = "Shift", mode = "~Alt", action = "ScrollPageUp" },
|
||||||
|
{ key = "PageDown", mods = "Shift", mode = "~Alt", action = "ScrollPageDown" },
|
||||||
|
{ key = "Home", mods = "Shift", mode = "~Alt", action = "ScrollToTop" },
|
||||||
|
{ key = "End", mods = "Shift", mode = "~Alt", action = "ScrollToBottom" },
|
||||||
|
{ key = "V", mods = "Control|Shift", action = "Paste" },
|
||||||
|
{ key = "C", mods = "Control|Shift", action = "Copy" },
|
||||||
|
{ key = "F", mods = "Control|Shift", action = "SearchForward" },
|
||||||
|
{ key = "B", mods = "Control|Shift", action = "SearchBackward" },
|
||||||
|
{ key = "C", mods = "Control|Shift", mode = "Vi", action = "ClearSelection" },
|
||||||
|
{ key = "Key0", mods = "Control", action = "ResetFontSize" },
|
||||||
|
]
|
||||||
|
|
||||||
@@ -12,6 +12,15 @@ config, git identity, the `dot` function itself, and more. To see everything
|
|||||||
tracked, run `dot ls-tree -r --name-only HEAD` from `$HOME` (paths are shown
|
tracked, run `dot ls-tree -r --name-only HEAD` from `$HOME` (paths are shown
|
||||||
relative to cwd, so running it from elsewhere silently truncates the list).
|
relative to cwd, so running it from elsewhere silently truncates the list).
|
||||||
|
|
||||||
|
For an agent driving this through separate tool calls: `cd ~` in one call does
|
||||||
|
not reliably carry over to the next, since each call may reset to the
|
||||||
|
project's working directory. Always `cd "$HOME"` and run the `ls-tree` (or any
|
||||||
|
other cwd-sensitive `dot`/`git` command) in that *same* call — e.g.
|
||||||
|
`cd "$HOME" && dot ls-tree -r --name-only HEAD` — rather than trusting a prior
|
||||||
|
`cd` to have stuck. Getting this wrong silently narrows the listing to
|
||||||
|
whatever the leftover cwd happens to be, which reads as "this file isn't
|
||||||
|
tracked" when it actually is.
|
||||||
|
|
||||||
## Always add by explicit path
|
## Always add by explicit path
|
||||||
|
|
||||||
`status.showUntrackedFiles=no` is set locally (see `dot init` below), and
|
`status.showUntrackedFiles=no` is set locally (see `dot init` below), and
|
||||||
|
|||||||
1
.config/nvim/after/ftplugin/markdown.lua
Normal file
1
.config/nvim/after/ftplugin/markdown.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
vim.opt_local.conceallevel = 2
|
||||||
@@ -1,2 +1,3 @@
|
|||||||
require("config.options")
|
require("config.options")
|
||||||
require("config.keymaps")
|
require("config.keymaps")
|
||||||
|
require("config.lazy")
|
||||||
|
|||||||
6
.config/nvim/lazy-lock.json
Normal file
6
.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
|
"nord.nvim": { "branch": "main", "commit": "87394d4fc35c901bbe38326a78d31ab1ead826b6" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
|
||||||
|
"render-markdown.nvim": { "branch": "main", "commit": "f422cb5c6855f150e2ddcfaf44e7157b98b34f6a" }
|
||||||
|
}
|
||||||
23
.config/nvim/lua/config/lazy.lua
Normal file
23
.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.uv.fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "nord" } },
|
||||||
|
checker = { enabled = false },
|
||||||
|
})
|
||||||
@@ -15,12 +15,6 @@ opt.expandtab = true
|
|||||||
|
|
||||||
opt.mouse = "a"
|
opt.mouse = "a"
|
||||||
|
|
||||||
-- Neovim's built-in default colors paint their own dark/light background even
|
|
||||||
-- without a colorscheme; clear it so the terminal's own background shows through.
|
|
||||||
for _, group in ipairs({ "Normal", "NormalNC", "NormalFloat", "SignColumn" }) do
|
|
||||||
vim.api.nvim_set_hl(0, group, { bg = "none" })
|
|
||||||
end
|
|
||||||
|
|
||||||
opt.undofile = true
|
opt.undofile = true
|
||||||
|
|
||||||
opt.ignorecase = true
|
opt.ignorecase = true
|
||||||
|
|||||||
12
.config/nvim/lua/plugins/nord.lua
Normal file
12
.config/nvim/lua/plugins/nord.lua
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
return {
|
||||||
|
"gbprod/nord.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
opts = {
|
||||||
|
transparent = true,
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nord").setup(opts)
|
||||||
|
vim.cmd.colorscheme("nord")
|
||||||
|
end,
|
||||||
|
}
|
||||||
6
.config/nvim/lua/plugins/render-markdown.lua
Normal file
6
.config/nvim/lua/plugins/render-markdown.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
"MeanderingProgrammer/render-markdown.nvim",
|
||||||
|
ft = { "markdown" },
|
||||||
|
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||||
|
opts = {},
|
||||||
|
}
|
||||||
30
.config/nvim/lua/plugins/treesitter.lua
Normal file
30
.config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
return {
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
branch = "master",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"lua",
|
||||||
|
"bash",
|
||||||
|
"fish",
|
||||||
|
"rust",
|
||||||
|
"javascript",
|
||||||
|
"typescript",
|
||||||
|
"java",
|
||||||
|
"kotlin",
|
||||||
|
"c",
|
||||||
|
"cpp",
|
||||||
|
"html",
|
||||||
|
"css",
|
||||||
|
"python",
|
||||||
|
},
|
||||||
|
auto_install = false,
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-treesitter.configs").setup(opts)
|
||||||
|
end,
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user