Files
neovim-config/after/ftplugin/markdown.lua
T
2026-06-01 21:34:45 +02:00

43 lines
1.7 KiB
Lua

-- ┌─────────────────────────┐
-- │ Filetype config example │
-- └─────────────────────────┘
--
-- This is an example of a configuration that will apply only to a particular
-- filetype, which is the same as file's basename ('markdown' in this example;
-- which is for '*.md' files).
--
-- It can contain any code which will be usually executed when the file is opened
-- (strictly speaking, on every 'filetype' option value change to target value).
-- Usually it needs to define buffer/window local options and variables.
-- So instead of `vim.o` to set options, use `vim.bo` for buffer-local options and
-- `vim.cmd('setlocal ...')` for window-local options (currently more robust).
--
-- This is also a good place to set buffer-local 'mini.nvim' variables.
-- See `:h mini.nvim-buffer-local-config` and `:h mini.nvim-disabling-recipes`.
-- Enable spelling and wrap for window
vim.cmd('setlocal spell wrap')
-- Fold with tree-sitter
vim.cmd('setlocal foldmethod=expr foldexpr=v:lua.vim.treesitter.foldexpr()')
-- Disable built-in `gO` mapping in favor of 'mini.basics'
vim.keymap.del('n', 'gO', { buffer = 0 })
-- Set markdown-specific surrounding in 'mini.surround'
vim.b.minisurround_config = {
custom_surroundings = {
-- Markdown link. Common usage:
-- `saiwL` + [type/paste link] + <CR> - add link
-- `sdL` - delete link
-- `srLL` + [type/paste link] + <CR> - replace link
L = {
input = { '%[().-()%]%(.-%)' },
output = function()
local link = require('mini.surround').user_input('Link: ')
return { left = '[', right = '](' .. link .. ')' }
end,
},
},
}