Compare commits
3 Commits
35bcabf921
...
2b4328cda4
Author | SHA1 | Date |
---|---|---|
iGor milhit | 2b4328cda4 | |
iGor milhit | e16ea4e3dc | |
iGor milhit | 6aaf345a8a |
|
@ -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 -->
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -39,9 +39,10 @@ return {
|
||||||
{
|
{
|
||||||
"vim-pandoc/vim-pandoc",
|
"vim-pandoc/vim-pandoc",
|
||||||
ft = {
|
ft = {
|
||||||
'markdown',
|
"markdown",
|
||||||
'pandoc',
|
"pandoc",
|
||||||
'pandoc.markdown'
|
"pandoc.markdown",
|
||||||
|
"quarto",
|
||||||
},
|
},
|
||||||
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,13 +39,16 @@ 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({
|
||||||
-- Enable color syntax
|
-- Enable color syntax
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true,
|
enable = true,
|
||||||
disable = { "markdown" },
|
disable = {
|
||||||
|
"markdown"
|
||||||
|
},
|
||||||
},
|
},
|
||||||
-- Enable better indentation management
|
-- Enable better indentation management
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
|
@ -53,21 +56,26 @@ 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",
|
||||||
"python",
|
|
||||||
"vim",
|
|
||||||
"yaml",
|
|
||||||
},
|
|
||||||
|
|
||||||
-- List of parsers to ignore installing
|
|
||||||
ignore_install = {
|
|
||||||
"markdown",
|
"markdown",
|
||||||
"markdown_inline"
|
"markdown_inline",
|
||||||
|
"mermaid",
|
||||||
|
"norg",
|
||||||
|
"python",
|
||||||
|
"query",
|
||||||
|
"r",
|
||||||
|
"typescript",
|
||||||
|
"vim",
|
||||||
|
"vimdoc",
|
||||||
|
"yaml",
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Do not install parses synchronously
|
-- Do not install parses synchronously
|
||||||
|
@ -133,5 +141,3 @@ return {
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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