mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-12-25 12:14:19 +01:00
## Description Most of the "visual mode" mappings use "v" instead of "x", and therefore also affect select mode. If the key is a printable character, it is now unusable in select mode. This is most prominent with `<leader>`, which is space by default, a printable character. The most common use of select mode is when it is automatically triggered by snippets. Currently, trying to type space, g, <, >, etc. as the first character of a snippet field will trigger their bind instead of actually inserting the character. I cannot currently think of any good reason why anyone would rely on using select mode to execute any of these mapped actions. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines.
100 lines
2.9 KiB
Lua
100 lines
2.9 KiB
Lua
return {
|
|
recommended = function()
|
|
return LazyVim.extras.wants({
|
|
ft = { "clojure", "edn" },
|
|
root = { "project.clj", "deps.edn", "build.boot", "shadow-cljs.edn", "bb.edn" },
|
|
})
|
|
end,
|
|
|
|
-- Add Clojure & related to treesitter
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = { ensure_installed = { "clojure" } },
|
|
},
|
|
|
|
-- Extend auto completion
|
|
{
|
|
"hrsh7th/nvim-cmp",
|
|
optional = true,
|
|
dependencies = {
|
|
"PaterJason/cmp-conjure",
|
|
},
|
|
opts = function(_, opts)
|
|
if type(opts.sources) == "table" then
|
|
vim.list_extend(opts.sources, { name = "conjure" })
|
|
end
|
|
end,
|
|
},
|
|
|
|
-- Add s-exp mappings
|
|
{ "julienvincent/nvim-paredit", opts = {}, event = "LazyFile" },
|
|
|
|
-- Colorize the output of the log buffer
|
|
{
|
|
"m00qek/baleia.nvim",
|
|
opts = {
|
|
line_starts_at = 3,
|
|
},
|
|
config = function(_, opts)
|
|
vim.g.conjure_baleia = require("baleia").setup(opts)
|
|
|
|
vim.api.nvim_create_user_command("BaleiaColorize", function()
|
|
vim.g.conjure_baleia.once(vim.api.nvim_get_current_buf())
|
|
end, { bang = true })
|
|
|
|
vim.api.nvim_create_user_command("BaleiaLogs", vim.g.conjure_baleia.logger.show, { bang = true })
|
|
end,
|
|
},
|
|
|
|
-- Use Clojure REPL
|
|
{
|
|
"Olical/conjure",
|
|
event = "LazyFile",
|
|
config = function(_, _)
|
|
require("conjure.main").main()
|
|
require("conjure.mapping")["on-filetype"]()
|
|
end,
|
|
init = function()
|
|
-- print color codes if baleia.nvim is available
|
|
local colorize = require("lazyvim.util").has("baleia.nvim")
|
|
|
|
if colorize then
|
|
vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 0
|
|
else
|
|
vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 1
|
|
end
|
|
|
|
-- disable diagnostics in log buffer and colorize it
|
|
vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
|
|
pattern = "conjure-log-*",
|
|
callback = function()
|
|
local buffer = vim.api.nvim_get_current_buf()
|
|
vim.diagnostic.enable(false, { bufnr = buffer })
|
|
|
|
if colorize and vim.g.conjure_baleia then
|
|
vim.g.conjure_baleia.automatically(buffer)
|
|
end
|
|
|
|
vim.keymap.set(
|
|
{ "n", "x" },
|
|
"[c",
|
|
"<CMD>call search('^; -\\+$', 'bw')<CR>",
|
|
{ silent = true, buffer = true, desc = "Jumps to the begining of previous evaluation output." }
|
|
)
|
|
vim.keymap.set(
|
|
{ "n", "x" },
|
|
"]c",
|
|
"<CMD>call search('^; -\\+$', 'w')<CR>",
|
|
{ silent = true, buffer = true, desc = "Jumps to the begining of next evaluation output." }
|
|
)
|
|
end,
|
|
})
|
|
|
|
-- prefer LSP for jump-to-definition and symbol-doc, and use conjure
|
|
-- alternatives with <localleader>K and <localleader>gd
|
|
vim.g["conjure#mapping#doc_word"] = "K"
|
|
vim.g["conjure#mapping#def_word"] = "gd"
|
|
end,
|
|
},
|
|
}
|