updated markdown in nvim

This commit is contained in:
liph22
2025-12-21 14:25:58 +01:00
parent 11c0f0a7e1
commit 37b59b8d19
12 changed files with 624 additions and 214 deletions

View File

@@ -1,41 +1,42 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ vim.fn.system({
"git", "git",
"clone", "clone",
"--filter=blob:none", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git", "https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release "--branch=stable", -- latest stable release
lazypath, lazypath,
}) })
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- Only enable spell checking for specific filetypes -- Only enable spell checking for specific filetypes
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("FileType", {
pattern = { "markdown", "text", "gitcommit", "tex" }, pattern = { "markdown", "text", "gitcommit", "tex" },
callback = function() callback = function()
vim.opt_local.spell = true vim.opt_local.spell = true
vim.opt_local.spelllang = "en_us,de" vim.opt_local.spelllang = "en_us,de"
end, end,
}) })
require("vim-options") require("vim-options")
require("lazy").setup("plugins") require("lazy").setup("plugins")
require("lualine").setup({ require("lualine").setup({
sections = { sections = {
lualine_x = { lualine_x = {
{ {
require("noice").api.statusline.mode.get, require("noice").api.statusline.mode.get,
cond = require("noice").api.statusline.mode.has, cond = require("noice").api.statusline.mode.has,
color = { fg = "#ff9e64" }, color = { fg = "#ff9e64" },
}, },
}, },
}, },
}) })
require("lazy").setup({ require("lazy").setup({
{ {
"tzachar/cmp-tabnine", "tzachar/cmp-tabnine",
build = "./install.sh", build = "./install.sh",
dependencies = "hrsh7th/nvim-cmp", dependencies = "hrsh7th/nvim-cmp",
}, },
}) })

View File

@@ -1,35 +1,41 @@
vim.cmd("set expandtab")
vim.cmd("set tabstop=2")
vim.cmd("set softtabstop=2")
vim.cmd("set shiftwidth=2")
vim.g.mapleader = " "
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then if not vim.loop.fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git" vim.fn.system({
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) "git",
if vim.v.shell_error ~= 0 then "clone",
vim.api.nvim_echo({ "--filter=blob:none",
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" }, "https://github.com/folke/lazy.nvim.git",
{ out, "WarningMsg" }, "--branch=stable", -- latest stable release
{ "\nPress any key to exit..." }, lazypath,
}, true, {}) })
vim.fn.getchar()
os.exit(1)
end
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before -- Only enable spell checking for specific filetypes
-- loading lazy.nvim so that mappings are correct. vim.api.nvim_create_autocmd("FileType", {
-- This is also a good place to setup other settings (vim.opt) pattern = { "markdown", "text", "gitcommit", "tex" },
vim.g.mapleader = " " callback = function()
vim.g.maplocalleader = "\\" vim.opt_local.spell = true
vim.opt_local.spelllang = "en_us,de"
-- Setup lazy.nvim end,
})
require("vim-options") require("vim-options")
require("lazy").setup("plugins") require("lazy").setup("plugins")
require("lualine").setup({
sections = {
lualine_x = {
{
require("noice").api.statusline.mode.get,
cond = require("noice").api.statusline.mode.has,
color = { fg = "#ff9e64" },
},
},
},
})
require("lazy").setup({
{
"tzachar/cmp-tabnine",
build = "./install.sh",
dependencies = "hrsh7th/nvim-cmp",
},
})

View File

@@ -10,7 +10,7 @@
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-tabnine": { "branch": "main", "commit": "c0167cdc86c15e782c5461ee62aebee89231c2ed" }, "cmp-tabnine": { "branch": "main", "commit": "c0167cdc86c15e782c5461ee62aebee89231c2ed" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "328c2f1dda56f933d3337a1316e1020ba30ba6aa" }, "conform.nvim": { "branch": "master", "commit": "5f5152fae39a57e3a04cbce09fb21e10c49c9d95" },
"dashboard-nvim": { "branch": "master", "commit": "0775e567b6c0be96d01a61795f7b64c1758262f6" }, "dashboard-nvim": { "branch": "master", "commit": "0775e567b6c0be96d01a61795f7b64c1758262f6" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
@@ -25,7 +25,8 @@
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"luvit-meta": { "branch": "main", "commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682" }, "luvit-meta": { "branch": "main", "commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "3b3571b4dadbcb464804466e9872e7246c316af7" }, "markview.nvim": { "branch": "main", "commit": "0a5033326f703d99a8788e2d47753d6298195e8a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "8f1a3e6eecb638817e8999aaa16ada27cd54d867" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
@@ -35,23 +36,23 @@
"nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" },
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, "nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
"nvim-lint": { "branch": "master", "commit": "7a64f4067065c16a355d40d0d599b8ca6b25de6d" }, "nvim-lint": { "branch": "master", "commit": "7a64f4067065c16a355d40d0d599b8ca6b25de6d" },
"nvim-lspconfig": { "branch": "master", "commit": "c4f67bf85b01a57e3c130352c0a0e453ab8cd5b9" }, "nvim-lspconfig": { "branch": "master", "commit": "d20d83b3f24f5884da73a9fc92fdc47e778b8d0d" },
"nvim-navic": { "branch": "master", "commit": "7d914a39a1ef8f4e22c2c4381abeef7c556f5a13" }, "nvim-navic": { "branch": "master", "commit": "7d914a39a1ef8f4e22c2c4381abeef7c556f5a13" },
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
"nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" }, "nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" }, "nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"portal.nvim": { "branch": "main", "commit": "77d9d53fec945bfa407d5fd7120f1b4f117450ed" }, "portal.nvim": { "branch": "main", "commit": "77d9d53fec945bfa407d5fd7120f1b4f117450ed" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "8aafe2cbd89cd4090f573a98cab6b20366576fde" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "8aafe2cbd89cd4090f573a98cab6b20366576fde" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "3d757e586ff0bfc85bdb7b46c9d3d932147a0cde" }, "telescope.nvim": { "branch": "master", "commit": "e709d31454ee6e6157f0537f861f797bd44c0bad" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"vim-test": { "branch": "master", "commit": "1eeb12774a0f251571700ccf68da27789b2f0852" }, "vim-test": { "branch": "master", "commit": "aa619692ff48a3cf3e6bdb893765039488d4e5f3" },
"vimux": { "branch": "master", "commit": "614f0bb1fb598f97accdcea71d5f7b18d7d62436" }, "vimux": { "branch": "master", "commit": "614f0bb1fb598f97accdcea71d5f7b18d7d62436" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
"yazi.nvim": { "branch": "main", "commit": "275c195596c857955f4627a8b48b68144d79478f" } "yazi.nvim": { "branch": "main", "commit": "d87cd885e06d50e1bb5607e48d96c1094d3b10e3" }
} }

View File

@@ -0,0 +1,166 @@
return {
{
"OXY2DEV/markview.nvim",
ft = "markdown",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("markview").setup({
modes = { "n", "no", "c" },
hybrid_modes = { "n" },
callbacks = {
on_enable = function(_, win)
vim.wo[win].conceallevel = 2
vim.wo[win].concealcursor = ""
end,
},
checkboxes = {
enable = true,
checked = {
text = "",
hl = "MarkviewCheckboxChecked",
},
unchecked = {
text = "",
hl = "MarkviewCheckboxUnchecked",
},
custom = {
{
match_string = "!",
text = "!",
hl = "MarkviewCheckboxUrgent",
},
},
},
headings = {
enable = true,
shift_width = 0,
heading_1 = {
style = "icon",
icon = "# ",
hl = "MarkviewHeading1",
},
heading_2 = {
style = "icon",
icon = "## ",
hl = "MarkviewHeading2",
},
heading_3 = {
style = "icon",
icon = "### ",
hl = "MarkviewHeading3",
},
heading_4 = {
style = "icon",
icon = "#### ",
hl = "MarkviewHeading4",
},
heading_5 = {
style = "icon",
icon = "##### ",
hl = "MarkviewHeading5",
},
heading_6 = {
style = "icon",
icon = "###### ",
hl = "MarkviewHeading6",
},
},
code_blocks = {
enable = true,
style = "language",
hl = "MarkviewCode",
min_width = 60,
pad_amount = 1,
},
list_items = {
enable = true,
indent_size = 2,
marker_minus = {
text = "",
hl = "MarkviewListItemMinus",
},
marker_plus = {
text = "",
hl = "MarkviewListItemPlus",
},
marker_star = {
text = "",
hl = "MarkviewListItemStar",
},
},
links = {
enable = true,
hyperlinks = {
icon = "",
hl = "MarkviewHyperlink",
},
images = {
icon = "",
hl = "MarkviewImageLink",
},
},
})
-- Catppuccin Mocha colors
vim.cmd([[
" Checkboxes - Catppuccin Mocha palette
highlight MarkviewCheckboxChecked guifg=#a6e3a1 " Green
highlight MarkviewCheckboxUnchecked guifg=#6c7086 " Surface2 (gray)
highlight MarkviewCheckboxUrgent guifg=#f38ba8 gui=bold " Red
" Headings - Catppuccin Mocha subtle
highlight MarkviewHeading1 guifg=#f38ba8 gui=bold " Red
highlight MarkviewHeading2 guifg=#fab387 gui=bold " Peach
highlight MarkviewHeading3 guifg=#f9e2af " Yellow
highlight MarkviewHeading4 guifg=#a6e3a1 " Green
highlight MarkviewHeading5 guifg=#89b4fa " Blue
highlight MarkviewHeading6 guifg=#cba6f7 " Mauve
" Code blocks - Catppuccin Mocha mantle
highlight MarkviewCode guibg=#181825
" Lists - Catppuccin Mocha blue
highlight MarkviewListItemMinus guifg=#89b4fa
highlight MarkviewListItemPlus guifg=#89b4fa
highlight MarkviewListItemStar guifg=#89b4fa
" Links - Catppuccin Mocha sapphire
highlight MarkviewHyperlink guifg=#74c7ec gui=underline
highlight MarkviewImageLink guifg=#74c7ec
]])
end,
},
{
"dhruvasagar/vim-table-mode",
ft = { "markdown" },
cmd = { "TableModeToggle" },
keys = {
{ "<leader>tm", "<cmd>TableModeToggle<cr>", desc = "Toggle Table Mode" },
},
config = function()
vim.g.table_mode_corner = "|"
vim.g.table_mode_corner_corner = "|"
vim.g.table_mode_header_fillchar = "-"
end,
},
{
"bullets-vim/bullets.vim",
ft = { "markdown", "text" },
config = function()
vim.g.bullets_enabled_file_types = { "markdown", "text" }
vim.g.bullets_enable_in_empty_buffers = 0
vim.g.bullets_checkbox_markers = " x!"
end,
},
}

View File

@@ -1,21 +0,0 @@
return {
"nvimtools/none-ls.nvim",
config = function()
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.prettier,
-- null_ls.builtins.diagnostics.eslint_d,
null_ls.builtins.diagnostics.rubocop,
null_ls.builtins.formatting.rubocop,
null_ls.builtins.formatting.black,
null_ls.builtins.formatting.isort,
null_ls.builtins.diagnostics.pylint,
},
})
vim.keymap.set("n", "<leader>gf", vim.lsp.buf.format, {})
end,
}

View File

@@ -1,8 +1,92 @@
-- return { return {
-- "stevearc/oil.nvim", {
-- config = function() "stevearc/oil.nvim",
-- local oil = require("oil") dependencies = { "nvim-tree/nvim-web-devicons" },
-- oil.setup() config = function()
-- vim.keymap.set("n", "-", oil.toggle_float, {}) require("oil").setup({
-- end, -- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
--} default_file_explorer = true,
-- Columns to show
columns = {
"icon",
-- "permissions",
-- "size",
-- "mtime",
},
-- Buffer-local options
buf_options = {
buflisted = false,
bufhidden = "hide",
},
-- Window-local options
win_options = {
wrap = false,
signcolumn = "no",
cursorcolumn = false,
foldcolumn = "0",
spell = false,
list = false,
conceallevel = 3,
concealcursor = "nvic",
},
-- Delete to trash instead of permanently deleting
delete_to_trash = true,
-- Skip confirmation for simple operations
skip_confirm_for_simple_edits = false,
-- Prompt for confirmation on certain actions
prompt_save_on_select_new_entry = true,
-- Keymaps in oil buffer
keymaps = {
["g?"] = "actions.show_help",
["<CR>"] = "actions.select",
["<C-v>"] = "actions.select_vsplit",
["<C-x>"] = "actions.select_split",
["<C-t>"] = "actions.select_tab",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",
["<C-l>"] = "actions.refresh",
["-"] = "actions.parent",
["_"] = "actions.open_cwd",
["`"] = "actions.cd",
["~"] = "actions.tcd",
["gs"] = "actions.change_sort",
["gx"] = "actions.open_external",
["g."] = "actions.toggle_hidden",
["g\\"] = "actions.toggle_trash",
},
-- Set to false to disable all of the above keymaps
use_default_keymaps = true,
view_options = {
-- Show files and directories that start with "."
show_hidden = false,
-- This function defines what is considered a "hidden" file
is_hidden_file = function(name, bufnr)
return vim.startswith(name, ".")
end,
-- Sort file names in a more intuitive order
sort = {
{ "type", "asc" },
{ "name", "asc" },
},
},
})
-- Open parent directory in current window
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
-- Open parent directory in floating window
vim.keymap.set("n", "<leader>-", require("oil").toggle_float, { desc = "Open Oil in floating window" })
end,
},
}

View File

@@ -0,0 +1,225 @@
return {
{
"OXY2DEV/markview.nvim",
lazy = false,
ft = "markdown",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons",
},
config = function()
local presets = require("markview.presets")
require("markview").setup({
modes = { "n", "no", "c" },
hybrid_modes = { "n" },
callbacks = {
on_enable = function(_, win)
vim.wo[win].conceallevel = 2
vim.wo[win].concealcursor = ""
end,
},
-- Glow headings preset
headings = presets.headings.glow,
-- Code blocks configuration
code_blocks = {
enable = true,
style = "language",
position = "overlay",
min_width = 60,
pad_amount = 2,
pad_char = " ",
language_names = {
{ "py", "python" },
{ "cpp", "C++" },
{ "js", "javascript" },
{ "ts", "typescript" },
{ "sh", "bash" },
},
hl = "MarkviewCode",
sign = true,
sign_hl = "MarkviewCodeSign",
},
-- Block quotes configuration
block_quotes = {
enable = true,
default = {
border = "",
border_hl = "MarkviewBlockQuoteBorder",
},
callouts = {
{
match_string = "NOTE",
callout_preview = "󰋽 Note",
callout_preview_hl = "MarkviewBlockQuoteNote",
border = "",
border_hl = "MarkviewBlockQuoteNote",
},
{
match_string = "TIP",
callout_preview = "󰌶 Tip",
callout_preview_hl = "MarkviewBlockQuoteTip",
border = "",
border_hl = "MarkviewBlockQuoteTip",
},
{
match_string = "IMPORTANT",
callout_preview = " Important",
callout_preview_hl = "MarkviewBlockQuoteImportant",
border = "",
border_hl = "MarkviewBlockQuoteImportant",
},
{
match_string = "WARNING",
callout_preview = " Warning",
callout_preview_hl = "MarkviewBlockQuoteWarn",
border = "",
border_hl = "MarkviewBlockQuoteWarn",
},
{
match_string = "CAUTION",
callout_preview = " Caution",
callout_preview_hl = "MarkviewBlockQuoteError",
border = "",
border_hl = "MarkviewBlockQuoteError",
},
},
},
-- Checkboxes configuration
checkboxes = {
enable = true,
checked = {
text = "",
hl = "MarkviewCheckboxChecked",
scope_hl = nil,
},
unchecked = {
text = "",
hl = "MarkviewCheckboxUnchecked",
scope_hl = nil,
},
custom = {
{
match_string = "!",
text = "!",
hl = "MarkviewCheckboxImportant",
scope_hl = nil,
},
{
match_string = "-",
text = "",
hl = "MarkviewCheckboxPending",
scope_hl = nil,
},
{
match_string = "~",
text = "",
hl = "MarkviewCheckboxProgress",
scope_hl = nil,
},
},
},
-- Tables with rounded borders
tables = {
enable = true,
parts = {
top = { "", "", "", "", "" },
header = { "", "", "", "", "" },
separator = { "", "", "", "", "" },
row = { "", " ", "", " ", "" },
bottom = { "", "", "", "", "" },
overlap = { "" },
},
hl = {
"MarkviewTableHeader",
"MarkviewTableBorder",
"MarkviewTableBorder",
"MarkviewTableBorder",
"MarkviewTableBorder",
},
use_virt_lines = true,
},
-- List items
list_items = {
enable = true,
indent_size = 2,
shift_width = 2,
marker_minus = {
add_padding = true,
text = "",
hl = "MarkviewListItemMinus",
},
marker_plus = {
add_padding = true,
text = "",
hl = "MarkviewListItemPlus",
},
marker_star = {
add_padding = true,
text = "",
hl = "MarkviewListItemStar",
},
},
})
-- Catppuccin Mocha colors
vim.cmd([[
" Code blocks - Catppuccin Mocha
highlight MarkviewCode guibg=#181825
highlight MarkviewCodeSign guifg=#89b4fa
" Block quotes - Catppuccin Mocha
highlight MarkviewBlockQuoteBorder guifg=#6c7086
highlight MarkviewBlockQuoteNote guifg=#89b4fa
highlight MarkviewBlockQuoteTip guifg=#a6e3a1
highlight MarkviewBlockQuoteImportant guifg=#cba6f7
highlight MarkviewBlockQuoteWarn guifg=#fab387
highlight MarkviewBlockQuoteError guifg=#f38ba8
" Checkboxes - Catppuccin Mocha
highlight MarkviewCheckboxChecked guifg=#a6e3a1
highlight MarkviewCheckboxUnchecked guifg=#6c7086
highlight MarkviewCheckboxImportant guifg=#f38ba8 gui=bold
highlight MarkviewCheckboxPending guifg=#fab387
highlight MarkviewCheckboxProgress guifg=#89b4fa
" List items - Catppuccin Mocha
highlight MarkviewListItemMinus guifg=#89b4fa
highlight MarkviewListItemPlus guifg=#a6e3a1
highlight MarkviewListItemStar guifg=#cba6f7
" Tables - Catppuccin Mocha
highlight MarkviewTableHeader guifg=#cba6f7 gui=bold
highlight MarkviewTableBorder guifg=#6c7086
]])
-- Setup checkbox toggle extras
require("markview.extras.checkboxes").setup({
default = "X",
remove_markers = false,
exit = true,
default_marker = "-",
default_state = "X",
})
-- Keymaps
vim.keymap.set("n", "<leader>mt", "<cmd>Markview toggle<cr>", { desc = "Toggle Markview" })
vim.keymap.set("n", "<leader>ch", "<cmd>Checkboxes toggle<cr>", { desc = "Toggle checkbox" })
end,
},
}

View File

@@ -1,110 +1,53 @@
return { return {
{ {
"epwalsh/obsidian.nvim", "epwalsh/obsidian.nvim",
version = "*", version = "*",
lazy = true, lazy = true,
ft = "markdown", ft = "markdown",
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
}, },
opts = { opts = {
workspaces = { workspaces = {
{ {
name = "nvim", name = "personal",
path = "~/Documents/obsidian/vault", -- Change to your vault path path = "~/Documents/obsidian",
}, },
-- { },
-- name = "work",
-- path = "~/obsidian/work", -- Optional: add more vaults
-- },
},
-- Daily notes completion = {
daily_notes = { nvim_cmp = true,
folder = "daily", min_chars = 2,
date_format = "%Y-%m-%d", },
template = nil,
},
-- Templates mappings = {
templates = { ["<leader>ch"] = {
folder = "templates", action = function()
date_format = "%Y-%m-%d", return require("obsidian").util.toggle_checkbox()
time_format = "%H:%M", end,
}, opts = { buffer = true, desc = "Toggle checkbox" },
},
["<cr>"] = {
action = function()
return require("obsidian").util.smart_action()
end,
opts = { buffer = true, expr = true },
},
["gf"] = {
action = function()
return require("obsidian").util.gf_passthrough()
end,
opts = { noremap = false, expr = true, buffer = true },
},
},
-- Completion note_id_func = function(title)
completion = { return title
nvim_cmp = true, end,
min_chars = 2,
},
-- Use note title as filename ui = {
note_id_func = function(title) enable = false, -- DISABLE Obsidian UI, use markview instead
if title ~= nil then },
return title },
else },
return tostring(os.time())
end
end,
-- Disable UI features if you don't want them
ui = {
enable = true, -- Set to false to disable and suppress warning
},
-- Mappings (only active in markdown files)
mappings = {
-- Follow link under cursor
["gf"] = {
action = function()
return require("obsidian").util.gf_passthrough()
end,
opts = { noremap = false, expr = true, buffer = true },
},
-- Toggle checkbox
["<leader>ch"] = {
action = function()
return require("obsidian").util.toggle_checkbox()
end,
opts = { buffer = true },
},
-- Smart action (follow link or toggle checkbox)
["<cr>"] = {
action = function()
return require("obsidian").util.smart_action()
end,
opts = { buffer = true, expr = true },
},
},
},
config = function(_, opts)
require("obsidian").setup(opts)
-- Set conceallevel for markdown files (for UI features)
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function()
vim.opt_local.conceallevel = 2
end,
})
end,
-- Global keymaps
keys = {
{ "<leader>on", "<cmd>ObsidianNew<cr>", desc = "New Obsidian note" },
{ "<leader>oo", "<cmd>ObsidianQuickSwitch<cr>", desc = "Quick switch notes" },
{ "<leader>os", "<cmd>ObsidianSearch<cr>", desc = "Search notes" },
{ "<leader>ot", "<cmd>ObsidianToday<cr>", desc = "Today's note" },
{ "<leader>oy", "<cmd>ObsidianYesterday<cr>", desc = "Yesterday's note" },
{ "<leader>ob", "<cmd>ObsidianBacklinks<cr>", desc = "Show backlinks" },
{ "<leader>og", "<cmd>ObsidianTags<cr>", desc = "Search tags" },
{ "<leader>ol", "<cmd>ObsidianLink<cr>", mode = "v", desc = "Link selection" },
{ "<leader>oL", "<cmd>ObsidianLinkNew<cr>", mode = "v", desc = "Link to new note" },
{ "<leader>of", "<cmd>ObsidianFollowLink<cr>", desc = "Follow link" },
{ "<leader>oT", "<cmd>ObsidianTemplate<cr>", desc = "Insert template" },
{ "<leader>op", "<cmd>ObsidianOpen<cr>", desc = "Open in Obsidian app" },
},
},
} }

View File

@@ -1,14 +1,20 @@
return { return {
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate", build = ":TSUpdate",
config = function() config = function()
local config = require("nvim-treesitter.configs") local config = require("nvim-treesitter.configs")
config.setup({ config.setup({
auto_install = true, ensure_installed = {
highlight = { enable = true }, "bash", -- For bash code blocks
indent = { enable = true }, "html", -- For HTML code blocks
}) "sql", -- For SQL code blocks
end, "dockerfile", -- For Docker code blocks
}, },
auto_install = true,
highlight = { enable = true },
indent = { enable = true },
})
end,
},
} }

View File

@@ -8,11 +8,10 @@ vim.g.background = "light"
vim.opt.swapfile = false vim.opt.swapfile = false
-- Navigate vim panes better -- Navigate vim panes better
vim.keymap.set('n', '<c-k>', ':wincmd k<CR>') vim.keymap.set("n", "<c-k>", ":wincmd k<CR>")
vim.keymap.set('n', '<c-j>', ':wincmd j<CR>') vim.keymap.set("n", "<c-j>", ":wincmd j<CR>")
vim.keymap.set('n', '<c-h>', ':wincmd h<CR>') vim.keymap.set("n", "<c-h>", ":wincmd h<CR>")
vim.keymap.set('n', '<c-l>', ':wincmd l<CR>') vim.keymap.set("n", "<c-l>", ":wincmd l<CR>")
vim.keymap.set('n', '<leader>h', ':nohlsearch<CR>') vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>")
vim.wo.number = true vim.wo.number = true