Compare commits
3 Commits
35bcabf921
...
d89a6c4d5f
Author | SHA1 | Date |
---|---|---|
iGor milhit | d89a6c4d5f | |
iGor milhit | 5c7675e938 | |
iGor milhit | bd142e38b1 |
|
@ -102,6 +102,10 @@ I won't provide links for each of these plugins as they are easily to be found.
|
||||||
- `rainbow-csv.nvim` to manage CSV files.
|
- `rainbow-csv.nvim` to manage CSV files.
|
||||||
- `venv-selector.nvim` to ease python virtual env.
|
- `venv-selector.nvim` to ease python virtual env.
|
||||||
- `vim-grammalecte` to get a good grammar checker for French.
|
- `vim-grammalecte` to get a good grammar checker for French.
|
||||||
|
- Quarto:
|
||||||
|
- `nvim-quarto` to add quarto environment configuration.
|
||||||
|
- `otter` for the embedded code completion.
|
||||||
|
- `vim-slime` for the embedded code execution.
|
||||||
|
|
||||||
<!-- references -->
|
<!-- references -->
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,5 @@
|
||||||
-- See :h awa
|
-- See :h awa
|
||||||
|
|
||||||
vim.opt.awa=true
|
vim.opt.awa=true
|
||||||
-- vim.opt.foldmethod = "expr"
|
-- vim.opt.foldlevel = 1
|
||||||
-- vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
-- vim.opt.conceallevel = 2
|
||||||
vim.opt.foldlevel = 1
|
|
||||||
vim.opt.conceallevel = 2
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
-- Temporary setting needed to make otter working
|
||||||
|
-- https://github.com/jmbuhr/otter.nvim/issues/179
|
||||||
|
vim.treesitter.language.register("markdown", { "quarto", "rmd" })
|
||||||
|
|
||||||
-- Search and replace
|
-- Search and replace
|
||||||
-- Ignore case except when using a capital case
|
-- Ignore case except when using a capital case
|
||||||
-- Highlight found occurrences
|
-- Highlight found occurrences
|
||||||
|
|
|
@ -17,6 +17,8 @@ return {
|
||||||
-- Import lspconfig
|
-- Import lspconfig
|
||||||
local lspconfig = require("lspconfig")
|
local lspconfig = require("lspconfig")
|
||||||
|
|
||||||
|
local util = require("lspconfig.util")
|
||||||
|
|
||||||
-- Import mason-tool-installer
|
-- Import mason-tool-installer
|
||||||
local mason_tool_installer = require("mason-tool-installer")
|
local mason_tool_installer = require("mason-tool-installer")
|
||||||
|
|
||||||
|
@ -51,6 +53,7 @@ return {
|
||||||
"html",
|
"html",
|
||||||
"jsonls",
|
"jsonls",
|
||||||
"lua_ls",
|
"lua_ls",
|
||||||
|
"marksman",
|
||||||
"pylsp",
|
"pylsp",
|
||||||
"yamlls",
|
"yamlls",
|
||||||
},
|
},
|
||||||
|
@ -105,7 +108,7 @@ return {
|
||||||
end,
|
end,
|
||||||
|
|
||||||
jsonls = function()
|
jsonls = function()
|
||||||
lspconfig.lua_ls.setup({
|
lspconfig.jsonls.setup({
|
||||||
settings = {
|
settings = {
|
||||||
json = {
|
json = {
|
||||||
schemas = require("schemastore").json.schemas(),
|
schemas = require("schemastore").json.schemas(),
|
||||||
|
@ -113,6 +116,22 @@ return {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
end,
|
||||||
|
|
||||||
|
marksman = function()
|
||||||
|
lspconfig.marksman.setup({
|
||||||
|
setting = {
|
||||||
|
filetypes = {
|
||||||
|
"markdown",
|
||||||
|
"quarto",
|
||||||
|
},
|
||||||
|
root_dir = util.root_pattern(
|
||||||
|
'.git',
|
||||||
|
'.marksman.toml',
|
||||||
|
'_quarto.yml'
|
||||||
|
),
|
||||||
|
}
|
||||||
|
})
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,13 +2,15 @@
|
||||||
-- https://github.com/iamcco/markdown-preview.nvim
|
-- https://github.com/iamcco/markdown-preview.nvim
|
||||||
-- https://github.com/iamcco/markdown-preview.nvim/issues/558#issuecomment-1514701537
|
-- https://github.com/iamcco/markdown-preview.nvim/issues/558#issuecomment-1514701537
|
||||||
|
|
||||||
|
-- Defines the filetypes that should be recognize by markdown-preview.
|
||||||
|
vim.cmd([[ let g:mkdp_filetypes = ['markdown', 'pandoc',] ]])
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"iamcco/markdown-preview.nvim",
|
"iamcco/markdown-preview.nvim",
|
||||||
ft = {
|
ft = {
|
||||||
'pandoc',
|
'pandoc',
|
||||||
'markdown',
|
'markdown',
|
||||||
'pandoc.markdown'
|
|
||||||
},
|
},
|
||||||
lazy = true,
|
lazy = true,
|
||||||
build = "cd app && npm install && git reset --hard",
|
build = "cd app && npm install && git reset --hard",
|
||||||
|
|
|
@ -17,7 +17,7 @@ return {
|
||||||
ft = {
|
ft = {
|
||||||
'pandoc',
|
'pandoc',
|
||||||
'markdown',
|
'markdown',
|
||||||
'pandoc.markdown',
|
'quarto'
|
||||||
},
|
},
|
||||||
lazy = true,
|
lazy = true,
|
||||||
config = function ()
|
config = function ()
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
-- Install and configure Pandoc plugins: vim-pandoc, vim-pandoc-syntax
|
-- Install and configure Pandoc plugins: vim-pandoc, vim-pandoc-syntax
|
||||||
|
|
||||||
-- Defines the filetypes that should be recognize by vim-pandoc. Allows
|
|
||||||
-- mardown-preview to be available with pandoc filetype.
|
|
||||||
vim.cmd([[ let g:mkdp_filetypes = ['markdown', 'pandoc', 'pandoc.markdown'] ]])
|
|
||||||
|
|
||||||
-- Sets the pandoc formatting mode to hardwrap
|
-- Sets the pandoc formatting mode to hardwrap
|
||||||
vim.cmd([[ let g:pandoc#formatting#mode="hA" ]])
|
vim.cmd([[ let g:pandoc#formatting#mode = "hA" ]])
|
||||||
|
|
||||||
|
-- Pandoc folding settings
|
||||||
|
-- Fold level 2 headings
|
||||||
|
vim.cmd([[ let g:pandoc#folding#level=1 ]])
|
||||||
|
-- Enable YAML folding
|
||||||
|
vim.cmd([[ let g:pandoc#folding#fold_yaml=1 ]])
|
||||||
|
-- Fold the entire frontmatter
|
||||||
|
vim.cmd([[ let g:pandoc#folding#foldlevel_yaml=2 ]])
|
||||||
|
-- Fold fenced code blocks
|
||||||
|
vim.cmd([[ let g:pandoc#folding#fold_fenced_codeblocks=1 ]])
|
||||||
|
|
||||||
-- Keymaps to switch to soft or hardwarp, or to toggle.
|
-- Keymaps to switch to soft or hardwarp, or to toggle.
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
|
@ -40,8 +46,7 @@ return {
|
||||||
"vim-pandoc/vim-pandoc",
|
"vim-pandoc/vim-pandoc",
|
||||||
ft = {
|
ft = {
|
||||||
'markdown',
|
'markdown',
|
||||||
'pandoc',
|
'pandoc'
|
||||||
'pandoc.markdown'
|
|
||||||
},
|
},
|
||||||
lazy = true,
|
lazy = true,
|
||||||
},
|
},
|
||||||
|
@ -49,8 +54,7 @@ return {
|
||||||
"vim-pandoc/vim-pandoc-syntax",
|
"vim-pandoc/vim-pandoc-syntax",
|
||||||
ft = {
|
ft = {
|
||||||
'markdown',
|
'markdown',
|
||||||
'pandoc',
|
'pandoc'
|
||||||
'pandoc.markdown'
|
|
||||||
},
|
},
|
||||||
lazy = true,
|
lazy = true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,6 +28,9 @@ return {
|
||||||
"hrsh7th/cmp-emoji",
|
"hrsh7th/cmp-emoji",
|
||||||
-- vs-code pictrograms
|
-- vs-code pictrograms
|
||||||
"onsails/lspkind.nvim",
|
"onsails/lspkind.nvim",
|
||||||
|
|
||||||
|
-- Completion source for code emmbedded in other documents
|
||||||
|
"jmbuh/otter.nvim",
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Configure nvim-cmp
|
-- Configure nvim-cmp
|
||||||
|
@ -40,16 +43,17 @@ return {
|
||||||
|
|
||||||
luasnip.config.setup {
|
luasnip.config.setup {
|
||||||
-- Extend markdown snippets to pandoc filetype
|
-- Extend markdown snippets to pandoc filetype
|
||||||
-- https://github.com/L3MON4D3/LuaSnip/issues/132#issuecomment-1101710309
|
-- https://github.com/L3MON4D3/LuaSnip/issues/132#issuecomment-1101731222
|
||||||
snippets = {
|
snippets = {
|
||||||
markdown = {},
|
markdown = {},
|
||||||
},
|
},
|
||||||
luasnip.filetype_extend("pandoc", {"markdown"}),
|
luasnip.filetype_extend("pandoc", {"markdown"}),
|
||||||
|
luasnip.filetype_extend("quarto", {"markdown"}),
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Load snippets from ~/.config/nvim/my_snippets/
|
-- Load snippets from ~/.config/nvim/my_snippets/
|
||||||
require("luasnip.loaders.from_lua").lazy_load(
|
require("luasnip.loaders.from_lua").lazy_load(
|
||||||
{paths = "~/.config/nvim/my_snippets/"}
|
{ paths = "~/.config/nvim/my_snippets/" }
|
||||||
)
|
)
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
|
||||||
|
@ -107,6 +111,7 @@ return {
|
||||||
},
|
},
|
||||||
{ name = "path" },
|
{ name = "path" },
|
||||||
{ name = "emoji" },
|
{ name = "emoji" },
|
||||||
|
{ name = "cmp_zotcite"} -- zotcite (plugins/markdown/zotcite.lua)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
formatting = {
|
formatting = {
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
-- Install and configure `quarto-nvim`
|
||||||
|
-- https://github.com/quarto-dev/quarto-nvim
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"quarto-dev/quarto-nvim",
|
||||||
|
lazy = true,
|
||||||
|
ft = {
|
||||||
|
"quarto",
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
"jmbuhr/otter.nvim",
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -39,6 +39,7 @@ return {
|
||||||
|
|
||||||
-- Configure treesitter
|
-- Configure treesitter
|
||||||
config = function()
|
config = function()
|
||||||
|
---@diagnostic disable-next-line: missing-fields
|
||||||
local config = require("nvim-treesitter.configs")
|
local config = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
config.setup({
|
config.setup({
|
||||||
|
@ -55,26 +56,28 @@ return {
|
||||||
-- Installed and configured languages
|
-- Installed and configured languages
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"bash",
|
"bash",
|
||||||
|
"css",
|
||||||
"dot",
|
"dot",
|
||||||
"gitignore",
|
"gitignore",
|
||||||
"html",
|
"html",
|
||||||
|
"javascript",
|
||||||
"json",
|
"json",
|
||||||
|
"julia",
|
||||||
"latex",
|
"latex",
|
||||||
"lua",
|
"lua",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"mermaid",
|
||||||
|
"norg",
|
||||||
"python",
|
"python",
|
||||||
|
"query",
|
||||||
|
"r",
|
||||||
|
"typescript",
|
||||||
"vim",
|
"vim",
|
||||||
|
"vimdoc",
|
||||||
"yaml",
|
"yaml",
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Empty option, to avoid warning
|
|
||||||
modules = {},
|
|
||||||
|
|
||||||
-- List of parsers to ignore installing
|
|
||||||
ignore_install = {
|
|
||||||
"markdown",
|
|
||||||
"markdown_inline"
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Do not install parses synchronously
|
-- Do not install parses synchronously
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
-- Install and configure vim-slime
|
||||||
|
-- https://github.com/jpalardy/vim-slime
|
||||||
|
|
||||||
|
return {
|
||||||
|
'jpalardy/vim-slime',
|
||||||
|
dev = false,
|
||||||
|
init = function()
|
||||||
|
vim.b['quarto_is_python_chunk'] = false
|
||||||
|
Quarto_is_in_python_chunk = function()
|
||||||
|
require('otter.tools.functions').is_otter_language_context 'python'
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd [[
|
||||||
|
let g:slime_dispatch_ipython_pause = 100
|
||||||
|
function SlimeOverride_EscapeText_quarto(text)
|
||||||
|
call v:lua.Quarto_is_in_python_chunk()
|
||||||
|
if exists('g:slime_python_ipython') && len(split(a:text,"\n")) > 1 && b:quarto_is_python_chunk && !(exists('b:quarto_is_r_mode') && b:quarto_is_r_mode)
|
||||||
|
return ["%cpaste -q\n", g:slime_dispatch_ipython_pause, a:text, "--", "\n"]
|
||||||
|
else
|
||||||
|
if exists('b:quarto_is_r_mode') && b:quarto_is_r_mode && b:quarto_is_python_chunk
|
||||||
|
return [a:text, "\n"]
|
||||||
|
else
|
||||||
|
return [a:text]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
endfunction
|
||||||
|
]]
|
||||||
|
|
||||||
|
vim.g.slime_target = 'neovim'
|
||||||
|
vim.g.slime_no_mappings = true
|
||||||
|
vim.g.slime_python_ipython = 1
|
||||||
|
end,
|
||||||
|
config = function()
|
||||||
|
vim.g.slime_input_pid = false
|
||||||
|
vim.g.slime_suggest_default = true
|
||||||
|
vim.g.slime_menu_config = false
|
||||||
|
vim.g.slime_neovim_ignore_unlisted = true
|
||||||
|
|
||||||
|
local function mark_terminal()
|
||||||
|
local job_id = vim.b.terminal_job_id
|
||||||
|
vim.print('job_id: ' .. job_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function set_terminal()
|
||||||
|
vim.fn.call('slime#config', {})
|
||||||
|
end
|
||||||
|
vim.keymap.set('n', '<leader>cm', mark_terminal, { desc = '[m]ark terminal' })
|
||||||
|
vim.keymap.set('n', '<leader>cs', set_terminal, { desc = '[s]et terminal' })
|
||||||
|
end
|
||||||
|
}
|
Loading…
Reference in New Issue