plugins: update the treesitter configuration

- Updates the treesitter configruation according to the API
  documentation.
- Adds XML to the treesitter configuration.
- Updates the mkdnflow configuration according to the documentation.
- Forces the filetype of *.md files before mkdnflow is loaded.

Co-Authored-by: iGor milhit <igor@milhit.ch>
main
iGor milhit 2026-02-18 20:01:36 +01:00
parent f38196b573
commit 75c9a73bfd
Signed by: igor
GPG Key ID: 692D97C3D0228A99
7 changed files with 79 additions and 115 deletions

View File

@ -3,4 +3,3 @@
-- See :h awa
vim.opt.awa=true
vim.opt.foldlevel = 1

View File

@ -3,5 +3,3 @@
-- See :h awa
vim.opt.awa=true
-- vim.opt.foldlevel = 1
-- vim.opt.conceallevel = 2

View File

@ -1,3 +1,4 @@
-- Load all module files
require("core.set-md-filetype")
require("core.keymaps")
require("core.options")

View File

@ -0,0 +1,9 @@
-- Ensure vim-pandoc sets the filetype
-- This is a workaround to avoid that during the mkdnflow loading, neovim
-- sets the filetype to .md files to markdown
-- "Solution" provided by the Quick assistant of Kagi.
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = "*.md",
command = "set filetype=pandoc"
})

View File

@ -28,9 +28,13 @@ return {
qmd = true,
rmd = true,
},
perspective = {
modules = {
folds = false,
foldtext = false,
},
path_resolution = {
-- Ensure that paths are relative to the current file
priority = "current"
primary = "current"
},
links = {
conceal = true,

View File

@ -48,14 +48,9 @@ return {
'markdown',
'pandoc'
},
dependencies = {
"vim-pandoc/vim-pandoc-syntax",
},
lazy = true,
},
{
"vim-pandoc/vim-pandoc-syntax",
ft = {
'markdown',
'pandoc'
},
lazy = true,
},
}
}

View File

@ -21,109 +21,67 @@ return {
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
build = ":TSUpdate",
lazy = false,
build = ":TSUpdate",
-- Configure treesitter
config = function()
---@diagnostic disable-next-line: missing-fields
local config = require("nvim-treesitter.config")
config = function ()
local treesitter = require('nvim-treesitter')
treesitter.setup()
treesitter.install({
'bash',
'css',
'dot',
'gitignore',
'html',
'javascript',
'json',
'julia',
'latex',
'lua',
'mermaid',
'python',
'query',
'r',
'typescript',
'vim',
'vimdoc',
'xml',
'yaml',
})
config.setup({
-- Enable color syntax
highlight = {
enable = true,
disable = {
"markdown"
},
},
-- Enable better indentation management
indent = { enable = true },
vim.api.nvim_create_autocmd('FileType', {
pattern = {
'bash',
'css',
'dot',
'gitignore',
'html',
'javascript',
'json',
'julia',
'latex',
'lua',
'mermaid',
'python',
'query',
'r',
'typescript',
'vim',
'vimdoc',
'xml',
'yaml',
},
callback = function()
-- syntax highlighting, provided by Neovim
vim.treesitter.start()
-- folds, provided by Neovim
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo.foldmethod = 'expr'
-- indentation, provided by nvim-treesitter
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end,
})
-- Installed and configured languages
ensure_installed = {
"bash",
"css",
"dot",
"gitignore",
"html",
"javascript",
"json",
"julia",
"latex",
"lua",
"markdown",
"markdown_inline",
"mermaid",
"norg",
"python",
"query",
"r",
"typescript",
"vim",
"vimdoc",
"yaml",
},
-- Do not install parses synchronously
sync_install = false,
-- Do not install automatically missing parsers
auto_install = false,
-- <Ctrl-space> select the current bloc
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
textobjects = {
select = {
enable = true,
lookahead = true, -- Automatically jump forward to textobj
keymaps = {
-- You can use the capture groups defined in textobjects.scm
['aa'] = '@parameter.outer',
['ia'] = '@parameter.inner',
['af'] = '@function.outer',
['if'] = '@function.inner',
['ac'] = '@class.outer',
['ic'] = '@class.inner',
},
},
move = {
enable = true,
set_jumps = true, -- whether to set jumps in the jumplist
goto_next_start = {
[']m'] = '@function.outer',
[']]'] = '@class.outer',
},
goto_next_end = {
[']M'] = '@function.outer',
[']['] = '@class.outer',
},
goto_previous_start = {
['[m'] = '@function.outer',
['[['] = '@class.outer',
},
goto_previous_end = {
['[M'] = '@function.outer',
['[]'] = '@class.outer',
},
},
swap = {
enable = true,
swap_next = {
['<leader>a'] = '@parameter.inner',
},
swap_previous = {
['<leader>A'] = '@parameter.inner',
},
},
},
})
end,
end
}