nvim/lua/custom/plugins.lua
Dane Sabo 4028ceade0 Auto sync: 2025-08-18 15:31:09 (5 files changed)
M  lazy-lock.json

M  lua/custom/configs/lspconfig.lua

D  lua/custom/language_specific_commands/markdown.lua

A  lua/custom/language_specific_commands/markdown_and_tex.lua

M  lua/custom/plugins.lua
2025-08-18 15:31:09 -04:00

201 lines
4.9 KiB
Lua

local cmp = require "cmp"
local plugins = {
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
--- lsp
"rust-analyzer",
"haskell-language-server",
"matlab-language-server",
"lua-language-server",
"clangd",
"marksman",
"ruff",
"jedi-language-server",
--- formatters
"stylua",
"clang-format",
"fourmolu",
--- other
"tree-sitter-cli",
},
},
},
{
"neovim/nvim-lspconfig",
config = function()
require "plugins.configs.lspconfig"
require "custom.configs.lspconfig"
end,
},
{
"mrcjkb/rustaceanvim",
version = "^4",
ft = { "rust" },
},
{
"mfussenegger/nvim-dap",
init = function()
require("core.utils").load_mappings "dap"
end,
},
{
"saecki/crates.nvim",
ft = { "rust", "toml" },
config = function(_, opts)
local crates = require "crates"
crates.setup(opts)
require("cmp").setup.buffer {
sources = { { name = "crates" } },
}
crates.show()
require("core.utils").load_mappings "crates"
end,
},
{
"rust-lang/rust.vim",
ft = "rust",
init = function()
vim.g.rustfmt_autosave = 1
end,
config = function()
require "custom.language_specific_commands.rust"
end,
},
{
"theHamsta/nvim-dap-virtual-text",
lazy = false,
config = function(_, opts)
require("nvim-dap-virtual-text").setup()
end,
},
{
"hrsh7th/nvim-cmp",
opts = function()
local M = require "plugins.configs.cmp"
M.completion.completeopt = "menu,menuone,noselect"
M.mapping["<CR>"] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Insert,
select = false,
}
table.insert(M.sources, { name = "crates" })
return M
end,
},
{
"susliko/tla.nvim",
ft = { "tla" },
config = function()
require("tla").setup {
java_executable = "/usr/bin/java",
java_opts = { "-XX:+UseParallelGC" },
}
end,
},
{
"florentc/vim-tla",
ft = { "tla" },
-- Optional: specify events or commands for lazy loading
event = "BufRead",
cmd = { "TLAPlusCommand" },
},
{
"rmagatti/auto-session",
lazy = false,
keys = {
-- Will use Telescope if installed or a vim.ui.select picker otherwise
{ "<leader>fs", "<cmd>SessionSearch<CR>", desc = "Session search" },
{
"<leader>ws",
function()
-- prompt for a session name using the built-in input function:
local session_name = vim.fn.input "Enter session name: "
-- optionally check if the user provided something
if session_name ~= nil and session_name ~= "" then
-- construct the command with the chosen name
vim.cmd("SessionSave " .. session_name)
else
print "No session name given. Session not saved."
end
end,
desc = "Save session (prompts for name)",
},
{ "<leader>wa", "<cmd>SessionToggleAutoSave<CR>", desc = "Toggle autosave" },
},
---enables autocomplete for opts
---@module "auto-session"
---@type AutoSession.Config
opts = {
suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" },
root_dir = os.getenv "HOME" .. "/Documents/Dane's Vault/.sessions/",
},
},
{
"stevearc/conform.nvim",
event = { "BufWritePre" },
cmd = { "ConformInfo" },
keys = {
{
-- Customize or remove this keymap to your liking
"<leader>F",
function()
require("conform").format { async = true }
end,
mode = "",
desc = "Format buffer",
},
},
-- This will provide type hinting with LuaLS
---@module "conform"
---@type conform.setupOpts
opts = {
-- Define your formatters
formatters_by_ft = {
lua = { "stylua" },
python = { "black" },
rust = { "rustfmt" },
haskell = { "fourmolu" },
c = { "clang-format" },
},
-- Set default options
default_format_opts = {
lsp_format = "fallback",
},
-- Set up format-on-save
format_on_save = { timeout_ms = 500 },
-- Customize formatters
formatters = {
shfmt = {
prepend_args = { "-i", "2" },
},
},
},
init = function()
-- If you want the formatexpr, here is the place to set it
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
end,
},
{
"lervag/vimtex",
lazy = false, -- we don't want to lazy load VimTeX
-- tag = "v2.15", -- uncomment to pin to a specific release
init = function()
-- VimTeX configuration goes here, e.g.
vim.g.vimtex_view_method = "zathura"
end,
},
{
"jbyuki/nabla.nvim",
lazy = true,
ft = { "markdown", "tex" }, -- load only when editing Markdown/TeX
},
}
return plugins