Update 2024-05-23

This commit is contained in:
Kristofers Solo
2024-05-23 12:26:18 +03:00
parent a39793d744
commit 772a83c24f
50 changed files with 832 additions and 319 deletions

View File

@@ -4,6 +4,7 @@ return {
opts = {
inlay_hints = {
inline = vim.fn.has("nvim-0.10") == 1,
autoSetHints = false,
-- Options other than `highlight' and `priority' only work
-- if `inline' is disabled
-- Only show inlay hints for the current line

View File

@@ -1,7 +1,6 @@
return {
"hrsh7th/nvim-cmp",
event = { "InsertEnter", "CmdlineEnter" },
-- commit = "b356f2c",
dependencies = {
"hrsh7th/cmp-buffer", -- buffer completions
"hrsh7th/cmp-cmdline",
@@ -18,11 +17,8 @@ return {
"SergioRibera/cmp-dotenv",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-emoji",
"hrsh7th/cmp-calc",
{ "zbirenbaum/copilot-cmp", opts = {}, dependencies = { "zbirenbaum/copilot.lua" } },
"Exafunction/codeium.nvim",
"chrisgrieser/cmp-nerdfont",
"petertriho/cmp-git",
"davidsierradz/cmp-conventionalcommits",
"ryo33/nvim-cmp-rust",
@@ -63,8 +59,8 @@ return {
cmp.setup({
mapping = {
["<C-k>"] = cmp.mapping.select_prev_item(),
["<C-j>"] = cmp.mapping.select_next_item(),
["<C-p>"] = cmp.mapping.select_prev_item({behavior=cmp.SelectBehavior.Insert}),
["<C-n>"] = cmp.mapping.select_next_item({behavior=cmp.SelectBehavior.Insert}),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-u>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
@@ -74,7 +70,7 @@ return {
}),
-- Accept currently selected item. If none selected, `select` first item.
-- Set `select` to `false` to only confirm explicitly selected items.
["<enter>"] = cmp.mapping.confirm({ select = true }),
["<CR>"] = cmp.mapping.confirm({ select = true }),
},
sources = {
{ name = "nvim_lua" },
@@ -88,10 +84,7 @@ return {
{ name = "vim-dadbod-completion" },
{ name = "env" },
{ name = "calc" },
{ name = "emoji" },
{ name = "copilot" },
{ name = "codeium" },
{ name = "nerdfont" },
{ name = "git" },
{ name = "conventionalcommits" },
},
@@ -108,12 +101,9 @@ return {
git = "[git]",
conventionalcommits = "[CC]",
calc = "[calc]",
emoji = "[emoji]",
nerdfont = "[nerdfont]",
nvim_lsp = "[LSP]",
nvim_lua = "[lua]",
async_path = "[path]",
copilot = "[copilot]",
codeium = "[codeium]",
luasnip = "[snip]",
neorg = "[neorg]",

View File

@@ -1,8 +1,10 @@
return {
"Exafunction/codeium.nvim",
event = "BufEnter",
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
opts = {},
config = function()
require("codeium").setup({})
end,
}

View File

@@ -1,7 +1,20 @@
return {
"NvChad/nvim-colorizer.lua",
opts = {
filetypes = { "html", "css", "javascript", "lua", "yaml", "conf", "toml", "scss", "python", "typst" },
filetypes = {
"html",
"javascriptreact",
"css",
"javascript",
"lua",
"yaml",
"conf",
"toml",
"scss",
"python",
"typst",
"htmldjango",
},
user_default_options = {
RGB = true, -- #RGB hex codes
RRGGBB = true, -- #RRGGBB hex codes

View File

@@ -3,6 +3,16 @@ return {
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "night",
transparent = true,
styles = {
keywords = { italic = false },
sidebars = "transparent",
floats = "transparent",
},
lualine_bold = true,
},
config = function()
require("tokyonight").setup({
style = "night",

47
lua/plugins/conform.lua Normal file
View File

@@ -0,0 +1,47 @@
local js = { "biome", "biome-check", "rustywind" }
return {
"stevearc/conform.nvim",
event = { "BufWritePre" },
cmd = { "ConformInfo" },
keys = {
{
-- Customize or remove this keymap to your liking
"<leader>f",
function()
require("conform").format({ async = true, lsp_fallback = true })
end,
mode = "",
desc = "[F]ormat buffer",
},
},
opts = {
formatters_by_ft = {
lua = { "stylua" },
python = { "auto_optional", "ruff", "ruff_fix", "ruff_organize_imports" },
go = { "goimports", "gofmt" },
-- toml = { "taplo" },
javascript = js,
javascriptreact = js,
typescript = js,
typescriptreact = js,
markdown = { "cbfmt", "markdownlint" },
vimwiki = { "cbfmt", "markdownlint" },
c = { "clang-format" },
cpp = { "clang-format" },
cmake = { "cmake_format" },
htmldjango = { "djlint", "rustywind" },
html = { "djlint", "rustywind" },
typst = { "typstyle" },
rust = { "rustfmt", "leptosfmt", "yew-fmt" },
sql = { "pg_format" },
yaml = { "yamlfmt" },
["_"] = { "trim_whitespace" },
},
format_on_save = {
lsp_fallback = true,
timeout_ms = 500,
},
log_level = vim.log.levels.ERROR,
notify_on_error = true,
},
}

View File

@@ -1,48 +0,0 @@
return {
"zbirenbaum/copilot.lua",
event = "InsertEnter",
enabled = false,
opts = {
panel = {
enabled = false,
auto_refresh = false,
keymap = {
jump_prev = "[[",
jump_next = "]]",
accept = "<CR>",
refresh = "gr",
open = "<M-CR>",
},
layout = {
position = "bottom", -- | top | left | right
ratio = 0.4,
},
},
suggestion = {
enabled = false,
auto_trigger = false,
debounce = 75,
keymap = {
accept = "<M-l>",
accept_word = false,
accept_line = false,
next = "<M-]>",
prev = "<M-[>",
dismiss = "<C-]>",
},
},
filetypes = {
yaml = false,
markdown = false,
help = false,
gitcommit = false,
gitrebase = false,
hgcommit = false,
svn = false,
cvs = false,
["."] = false,
},
copilot_node_command = "node", -- Node.js version must be > 18.x
server_opts_overrides = {},
},
}

43
lua/plugins/gitpad.lua Normal file
View File

@@ -0,0 +1,43 @@
return {
"yujinyuz/gitpad.nvim",
keys = {
{
"<leader><leader>p",
function()
require("gitpad").toggle_gitpad() -- or require('gitpad').toggle_gitpad({ title = 'Project notes' })
end,
desc = "gitpad project",
},
{
"<leader><leader>b",
function()
require("gitpad").toggle_gitpad_branch() -- or require('gitpad').toggle_gitpad_branch({ title = 'Branch notes' })
end,
desc = "gitpad branch",
},
-- Daily notes
{
"<leader><leader>d",
function()
local date_filename = "daily-" .. os.date("%Y-%m-%d.md")
require("gitpad").toggle_gitpad({ filename = date_filename }) -- or require('gitpad').toggle_gitpad({ filename = date_filename, title = 'Daily notes' })
end,
desc = "gitpad daily notes",
},
-- Per file notes
{
"<leader><leader>f",
function()
local filename = vim.fn.expand("%:p") -- or just use vim.fn.bufname()
if filename == "" then
vim.notify("empty bufname")
return
end
filename = vim.fn.pathshorten(filename, 2) .. ".md"
require("gitpad").toggle_gitpad({ filename = filename }) -- or require('gitpad').toggle_gitpad({ filename = filename, title = 'Current file notes' })
end,
desc = "gitpad per file notes",
},
},
opts = {},
}

View File

@@ -6,7 +6,7 @@ return {
{
"<leader>a",
function()
require("harpoon"):list():append()
require("harpoon"):list():add()
end,
desc = "Harpoon [A]dd File",
},
@@ -19,28 +19,28 @@ return {
desc = "Toggle Harpoon Menu",
},
{
"<F1>",
"<A-1>",
function()
require("harpoon"):list():select(1)
end,
desc = "Harpoon [1]",
},
{
"<F2>",
"<A-2>",
function()
require("harpoon"):list():select(2)
end,
desc = "Harpoon [2]",
},
{
"<F3>",
"<A-3>",
function()
require("harpoon"):list():select(3)
end,
desc = "Harpoon [3]",
},
{
"<F4>",
"<A-4>",
function()
require("harpoon"):list():select(4)
end,

View File

@@ -1,41 +1,39 @@
return {
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
config = function()
require("ibl").setup({
enabled = true,
indent = {
smart_indent_cap = true,
version = "3.5.0",
opts = {
enabled = true,
indent = {
smart_indent_cap = true,
},
whitespace = {
remove_blankline_trail = true,
},
scope = {
show_start = true,
show_end = true,
show_exact_scope = true,
},
exclude = {
filetypes = {
"NvimTree",
"Trouble",
"alpha",
"dashboard",
"help",
"lazy",
"neogitstatus",
"packer",
"startify",
"lspinfo",
},
whitespace = {
remove_blankline_trail = true,
buftypes = {
"terminal",
"nofile",
"quickfix",
"prompt",
},
scope = {
show_start = true,
show_end = true,
show_exact_scope = true,
},
exclude = {
filetypes = {
"NvimTree",
"Trouble",
"alpha",
"dashboard",
"help",
"lazy",
"neogitstatus",
"packer",
"startify",
"lspinfo",
},
buftypes = {
"terminal",
"nofile",
"quickfix",
"prompt",
},
},
})
end,
},
},
}

View File

@@ -0,0 +1,8 @@
return {
"MysticalDevil/inlay-hints.nvim",
name = "inlay",
event = "LspAttach",
enabled = false,
dependencies = { "neovim/nvim-lspconfig" },
opts = {},
}

View File

@@ -1,38 +0,0 @@
return {
"simrat39/inlay-hints.nvim",
opts = {
hints = {
parameter = {
show = true,
highlight = "Comment",
},
type = {
show = true,
highlight = "Comment",
},
},
only_current_line = true,
eol = {
-- whether to align to the extreme right or not
right_align = false,
-- padding from the right if right_align is true
right_align_padding = 7,
parameter = {
separator = ", ",
format = function(hints)
return string.format(" <- (%s)", hints)
end,
},
type = {
separator = ", ",
format = function(hints)
return string.format(" => (%s)", hints)
end,
},
},
},
}

View File

@@ -1,9 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.clangd.setup({
capabilities = capabilities,
})
end
return M

View File

@@ -0,0 +1,21 @@
local M = {}
M.setup = function(lsp, capabilities)
capabilities = capabilities
lsp.clangd.setup({
capabilities = capabilities,
--[[ settings = {
clangd = {
InlayHints = {
Designators = true,
Enabled = true,
ParameterNames = true,
DeducedTypes = true,
},
fallbackFlags = { "-std=c++20" },
},
}, ]]
})
end
return M

View File

@@ -6,8 +6,8 @@ M.setup = function(lsp, capabilities)
filetypes = {
"html",
"htmldjango",
"typescriptreact",
"javascriptreact",
-- "typescriptreact",
-- "javascriptreact",
"css",
"sass",
"scss",

14
lua/plugins/lsp/ruff.lua Normal file
View File

@@ -0,0 +1,14 @@
local M = {}
M.setup = function(lsp, capabilities)
capabilities = capabilities
lsp.ruff_lsp.setup({
init_options = {
settings = {
args = {},
},
},
})
end
return M

View File

@@ -0,0 +1,35 @@
local M = {}
M.setup = function(lsp, capabilities)
capabilities = capabilities
lsp.tsserver.setup({
ssettings = {
typescript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = true,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
},
javascript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = true,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
},
},
})
end
return M

12
lua/plugins/lsp/typst.lua Normal file
View File

@@ -0,0 +1,12 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.typst_lsp.setup({
capabilities = capabilities,
settings = {
exportPdf = "onType", -- Choose onType, onSave or never.
},
})
end
return M

View File

@@ -40,7 +40,7 @@ return {
nmap("gi", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
vim.keymap.set(
"i",
"<C-k>",
"<C-l>",
vim.lsp.buf.signature_help,
{ buffer = event.buf, desc = "LSP: Signature Documentation" }
)
@@ -75,9 +75,6 @@ return {
require("trouble").toggle("lsp_references")
end, "[G]oto [R]eferences")
nmap("gR", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
nmap("<leader>f", function()
vim.lsp.buf.format({ async = true })
end, "[F]ormat")
end,
})
@@ -115,6 +112,9 @@ return {
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = "rounded",
})
local html_opts = {
filetypes = { "html", "htmldjango" },
}
require("mason-lspconfig").setup({
automatic_installation = true,
@@ -132,20 +132,20 @@ return {
"tailwindcss",
"texlab",
"tsserver",
"rust_analyzer",
-- "rust_analyzer",
},
handlers = {
default_setup,
clangd = function()
lsp_capabilities.offsetEncoding = { "utf-16" }
vim.api.nvim_create_autocmd("LspAttach", {
desc = "Enable Inlay Hints",
desc = "enable inlay hints",
callback = function()
require("clangd_extensions.inlay_hints").setup_autocmd()
require("clangd_extensions.inlay_hints").set_inlay_hints()
end,
})
require("plugins.lsp.c").setup(lsp, lsp_capabilities)
require("plugins.lsp.clangd").setup(lsp, lsp_capabilities)
end,
bashls = function()
require("plugins.lsp.bash").setup(lsp, lsp_capabilities)
@@ -159,12 +159,37 @@ return {
lua_ls = function()
require("plugins.lsp.lua").setup(lsp, lsp_capabilities)
end,
htmx = function()
local opts = {
filetypes = { "html", "htmldjango" },
}
require("lspconfig").htmx.setup(opts)
typst_lsp = function()
require("plugins.lsp.typst").setup(lsp, lsp_capabilities)
end,
htmx = function()
lsp.htmx.setup(html_opts)
end,
ruff_lsp = function()
require("plugins.lsp.ruff").setup(lsp, lsp_capabilities)
end,
jinja_lsp = function()
lsp.jinja_lsp.setup(html_opts)
end,
html = function()
lsp.html.setup(html_opts)
end,
tsserver = function()
require("plugins.lsp.tsserver").setup(lsp, lsp_capabilities)
end,
--[[ eslint = function()
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(client, bufnr)
vim.api.nvim_create_autocmd("BufWritePre", {
buffer = bufnr,
command = "EslintFixAll",
})
end,
})
lsp.eslint.setup({
capabilities = lsp_capabilities,
})
end, ]]
},
})
end,

View File

@@ -35,7 +35,7 @@ return {
lua_ls = {
-- by default, lua_ls annotations are only enabled in your neovim config directory
enabled_for_neovim_config = true,
-- explicitely enable adding annotations. Mostly relevant to put in your local .nvim.settings.json file
-- explicitly enable adding annotations. Mostly relevant to put in your local .nvim.settings.json file
enabled = false,
},
},

View File

@@ -1,13 +1,13 @@
return {
"NeogitOrg/neogit",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration
-- Only one of these is needed, not both.
"nvim-telescope/telescope.nvim", -- optional
"sindrets/diffview.nvim", -- Diff integration
"nvim-telescope/telescope.nvim",
},
cmd = { "Neogit" },
version = "*",
keys = {
{
"<leader>gg",
@@ -43,6 +43,7 @@ return {
["github.com"] = "https://github.com/${owner}/${repository}/compare/${branch_name}?expand=1",
["bitbucket.org"] = "https://bitbucket.org/${owner}/${repository}/pull-requests/new?source=${branch_name}&t=1",
["gitlab.com"] = "https://gitlab.com/${owner}/${repository}/merge_requests/new?merge_request[source_branch]=${branch_name}",
["git.modulation.lv"] = "https://git.modulation.lv/${owner}/${repository}/merge_requests/new?merge_request[source_branch]=${branch_name}",
},
-- Allows a different telescope sorter. Defaults to 'fuzzy_with_index_bias'. The example below will use the native fzf
-- sorter instead. By default, this function returns `nil`.
@@ -256,7 +257,7 @@ return {
["u"] = "Unstage",
["U"] = "UnstageStaged",
["$"] = "CommandHistory",
["#"] = "Console",
-- ["#"] = "Console",
["Y"] = "YankSelected",
["<c-r>"] = "RefreshBuffer",
["<enter>"] = "GoToFile",

View File

@@ -1,9 +1,10 @@
return {
"nvim-neorg/neorg",
dependencies = {
"vhyrro/luarocks.nvim",
{ "vhyrro/luarocks.nvim", config = true },
},
-- cmd = { "Neorg" },
lazy = false,
version = "*",
ft = "norg",
opts = {
@@ -24,7 +25,8 @@ return {
name = "[Neorg]",
},
},
["core.export.markdown"] = {},
["core.export"] = {},
-- ["core.export.markdown"] = {},
["core.summary"] = {
config = {
strategy = "default",

View File

@@ -1,6 +1,7 @@
return {
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
enabled = false,
dependencies = {
"williamboman/mason.nvim",
"nvim-lua/plenary.nvim",
@@ -21,7 +22,7 @@ return {
-- make sure the source name is supported by null-ls
-- https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md
formatting.cbfmt.with({ extra_filetypes = { "vimwiki" } }),
formatting.prettier.with({
--[[ formatting.prettier.with({
extra_filetypes = { "toml" },
extra_args = {
"--no-semi",
@@ -33,7 +34,7 @@ return {
"--html-whitespace-sensitivity",
"strict",
},
}),
}), ]]
formatting.sql_formatter.with({
extra_args = {
"-c",
@@ -57,7 +58,7 @@ return {
]],
},
}),
formatting.rustywind.with({ extra_filetypes = { "htmldjango" } }),
formatting.rustywind.with({ extra_filetypes = { "htmldjango", "javascriptreact" } }),
},
})
require("mason-null-ls").setup({
@@ -65,10 +66,8 @@ return {
"clang_format",
"cmake_format",
"cmake_lint",
"djlint",
"google_java_format",
"selene",
"mypy",
"stylua",
"yamlfmt",
"rustywind",

39
lua/plugins/nvim-lint.lua Normal file
View File

@@ -0,0 +1,39 @@
local js = { "biomejs" }
return {
"mfussenegger/nvim-lint",
opts = {
events = { "InsertLeave", "BufWritePost", "BufReadPost", "InsertEnter" },
linters_by_ft = {
javascript = js,
javascriptreact = js,
typescript = js,
typescriptreact = js,
python = { "mypy" },
htmldjango = { "djlint" },
html = { "djlint" },
lua = { "selene" },
cmake = { "cmakelint" },
json = { "jsonlint" },
["*"] = { "codespell", "typos" },
},
},
config = function(_, opts)
local lint = require("lint")
lint.linters_by_ft = opts.linters_by_ft
vim.api.nvim_create_autocmd(opts.events, {
group = vim.api.nvim_create_augroup("nvim-lint", { clear = true }),
callback = function()
lint.try_lint()
end,
})
end,
}
-- ◍ biome
-- ◍ cmakelang
-- ◍ cmakelint
-- ◍ cpplint
-- ◍ djlint
-- ◍ jinja-lsp jinja_lsp
-- ◍ markdownlint
-- ◍ mypy

9
lua/plugins/octo.lua Normal file
View File

@@ -0,0 +1,9 @@
return {
"pwntester/octo.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
"nvim-tree/nvim-web-devicons",
},
opts = {},
}

View File

@@ -4,7 +4,7 @@ return {
{
"<leader>oh",
vim.cmd.OhneAccidents,
desc = "",
desc = "Run OhneAccidents",
},
},
opts = {},

View File

@@ -56,8 +56,8 @@ return {
keymaps = {
["g?"] = "actions.show_help",
["<cr>"] = "actions.select",
["v"] = "actions.select_vsplit",
["s"] = "actions.select_split",
["<C-v>"] = "actions.select_vsplit",
["<C-s>"] = "actions.select_split",
["t"] = "actions.select_tab",
["<C-p>"] = "actions.preview",
["<C-c>"] = "actions.close",

View File

@@ -0,0 +1,36 @@
return {
"folke/persistence.nvim",
event = "BufReadPre",
keys = {
{
"<leader>qs",
function()
require("persistence").load()
end,
desc = "Restore the session for the current directory",
},
{
"<leader>ql",
function()
require("persistence").load({ last = true })
end,
desc = "Restore the last session",
},
{
"<leader>qd",
function()
require("persistence").stop()
end,
desc = "Stop Persistence => session won't be saved on exit",
},
},
opts = {
dir = vim.fn.expand(vim.fn.stdpath("state") .. "/sessions/"), -- directory where session files are saved
options = { "buffers", "curdir", "tabpages", "winsize" }, -- sessionoptions used for saving
pre_save = nil, -- a function to call before saving the session
post_save = nil, -- a function to call after saving the session
save_empty = false, -- don't save if there are no open file buffers
pre_load = nil, -- a function to call before loading the session
post_load = nil, -- a function to call after loading the session
},
}

View File

@@ -1,6 +1,6 @@
return {
"andweeb/presence.nvim",
--[[ opts = {
opts = {
-- General options
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
@@ -22,5 +22,5 @@ return {
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
}, ]]
},
}

View File

@@ -0,0 +1,10 @@
return {
"HiPhish/rainbow-delimiters.nvim",
config = function()
require("rainbow-delimiters.setup").setup({
strategy = {},
query = {},
highlight = {},
})
end,
}

View File

@@ -2,18 +2,6 @@ return {
"simrat39/rust-tools.nvim",
dependencies = { "neovim/nvim-lspconfig" },
ft = "rust",
keys = {
{ "<leader>re", vim.cmd.RustExpandMacro, desc = "[E]xpand macro" },
{ "<leader>rc", vim.cmd.RustOpenCargo, desc = "Open [C]argo.toml" },
{ "<leader>rp", vim.cmd.RustParentModule, desc = "[P]arent module" },
{ "<leader>rh", vim.cmd.RustHoverActions, desc = "[H]over actions" },
{ "<leader>rg", vim.cmd.RustViewCrateGraph, desc = "View Create [G]raph" },
{ "<leader>rd", vim.cmd.RustOpenExternalDocs, desc = "Open External [D]ocs" },
{ "<leader>rr", vim.cmd.RustRunnables, desc = "Open [R]unnables" },
{ "<leader>ra", vim.cmd.RustCodeAction, desc = "Code [A]ction Groups" },
{ "<leader>rD", vim.cmd.RustDebuggables, desc = "[D]ebug" },
{ "<leader>drd", vim.cmd.RustDebuggables, desc = "[D]ebug" },
},
opts = {
tools = {
-- on_initialized = nil,

View File

@@ -0,0 +1,48 @@
return {
"mrcjkb/rustaceanvim",
version = "^4", -- Recommended
lazy = false, -- This plugin is already lazy
enabled = false,
config = function()
vim.g.rustaceanvim = {
server = {
settings = {
["rust-analyzer"] = {
inlayHints = {
bindingModeHints = {
enable = false,
},
chainingHints = {
enable = true,
},
closingBraceHints = {
enable = true,
minLines = 25,
},
closureReturnTypeHints = {
enable = true,
},
lifetimeElisionHints = {
enable = true,
useParameterNames = true,
},
maxLength = 25,
parameterHints = {
enable = true,
},
reborrowHints = {
enable = true,
},
renderColons = true,
typeHints = {
enable = true,
hideClosureInitialization = true,
hideNamedConstructor = true,
},
},
},
},
},
}
end,
}

View File

@@ -0,0 +1,7 @@
return {
"razak17/tailwind-fold.nvim",
opts = {},
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = { "TailwindFoldEnable", "TailwindFoldDisable", "TailwindFoldToggle" },
ft = { "html", "htmldjango", "svelte", "astro", "vue", "javascriptreact", "typescriptreact", "php", "blade" },
}

View File

@@ -0,0 +1,34 @@
return {
"luckasRanarison/tailwind-tools.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
enabled = false,
ft = { "html", "htmldjango", "svelte", "astro", "vue", "javascriptreact", "typescriptreact", "php", "blade" },
cmd = {
"TailwindConcealEnable",
"TailwindConcealDisable",
"TailwindConcealToggle",
"TailwindColorEnable",
"TailwindColorDisable",
"TailwindColorToggle",
"TailwindSort",
"TailwindSortSelection",
"TailwindNextClass",
"TailwindPrevClass",
},
opts = {
document_color = {
enabled = true, -- can be toggled by commands
kind = "background", -- "inline" | "foreground" | "background"
inline_symbol = "󰝤 ", -- only used in inline mode
debounce = 200, -- in milliseconds, only applied in insert mode
},
conceal = {
enabled = false, -- can be toggled by commands
symbol = "󱏿", -- only a single character is allowed
highlight = { -- extmark highlight options, see :h 'highlight'
fg = "#38BDF8",
},
},
custom_filetypes = {}, -- see the extension section to learn how it works
},
}

View File

@@ -1,6 +1,7 @@
return {
"luckasRanarison/tailwind-tools.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
enabled = false,
ft = { "html" },
opts = {
document_color = {

View File

@@ -1,6 +1,6 @@
return {
"christoomey/vim-tmux-navigator",
cmds = {
cmd = {
"TmuxNavigateLeft",
"TmuxNavigateDown",
"TmuxNavigateUp",

View File

@@ -2,7 +2,6 @@ return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
dependencies = {
"p00f/nvim-ts-rainbow",
"nvim-treesitter/nvim-treesitter-context",
"mechatroner/rainbow_csv",
"JoosepAlviste/nvim-ts-context-commentstring",
@@ -49,40 +48,6 @@ return {
indent = {
enable = true,
},
autotag = {
enable = true,
enable_rename = true,
enable_close = true,
enable_close_on_slash = true,
filetypes = {
"astro",
"glimmer",
"handlebars",
"hbs",
"html",
"htmldjango",
"javascript",
"javascriptreact",
"jsx",
"markdown",
"php",
"rescript",
"svelte",
"tsx",
"typescript",
"typescriptreact",
"vue",
"xml",
},
},
rainbow = {
enable = true,
-- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
max_file_lines = nil, -- Do not enable for files with more than n lines, int
-- colors = {}, -- table of hex strings
-- termcolors = {}, -- table of colour name strings
},
incremenral_selection = {
enable = true,
keymaps = {

View File

@@ -0,0 +1,17 @@
return {
"windwp/nvim-ts-autotag",
ft = { "javascriptreact", "typescriptreact", "php" },
events = { "BufReadPre" },
opts = {
opts = {
-- Defaults
enable_close = true, -- Auto close tags
enable_rename = true, -- Auto rename pairs of tags
enable_close_on_slash = true, -- Auto close on trailing </
},
-- Also override individual filetype configs, these take priority.
-- Empty by default, useful if one of the "opts" global settings
-- doesn't work well in a specific filetype
per_filetype = {},
},
}

16
lua/plugins/typecheck.lua Normal file
View File

@@ -0,0 +1,16 @@
return {
"jellydn/typecheck.nvim",
dependencies = { "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" } },
ft = { "javascript", "javascriptreact", "json", "jsonc", "typescript", "typescriptreact" },
opts = {
debug = true,
mode = "trouble", -- "quickfix" | "trouble"
},
keys = {
{
"<leader>lt",
vim.cmd.Typecheck,
desc = "Run Type Check",
},
},
}

View File

@@ -0,0 +1,59 @@
return {
"pmizio/typescript-tools.nvim",
dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" },
opts = {
handlers = {},
settings = {
-- spawn additional tsserver instance to calculate diagnostics on it
separate_diagnostic_server = true,
-- "change"|"insert_leave" determine when the client asks the server about diagnostic
publish_diagnostic_on = "insert_leave",
-- array of strings("fix_all"|"add_missing_imports"|"remove_unused"|
-- "remove_unused_imports"|"organize_imports") -- or string "all"
-- to include all supported code actions
-- specify commands exposed as code_actions
expose_as_code_action = {},
-- string|nil - specify a custom path to `tsserver.js` file, if this is nil or file under path
-- not exists then standard path resolution strategy is applied
tsserver_path = nil,
-- specify a list of plugins to load by tsserver, e.g., for support `styled-components`
-- (see 💅 `styled-components` support section)
tsserver_plugins = {},
-- this value is passed to: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes
-- memory limit in megabytes or "auto"(basically no limit)
tsserver_max_memory = "auto",
-- described below
tsserver_format_options = {},
tsserver_file_preferences = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = false,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
-- locale of all tsserver messages, supported locales you can find here:
-- https://github.com/microsoft/TypeScript/blob/3c221fc086be52b19801f6e8d82596d04607ede6/src/compiler/utilitiesPublic.ts#L620
tsserver_locale = "en",
-- mirror of VSCode's `typescript.suggest.completeFunctionCalls`
complete_function_calls = false,
include_completions_with_insert_text = true,
-- CodeLens
-- WARNING: Experimental feature also in VSCode, because it might hit performance of server.
-- possible values: ("off"|"all"|"implementations_only"|"references_only")
code_lens = "all",
-- by default code lenses are displayed on all referencable values and for some of you it can
-- be too much this option reduce count of them by removing member references from lenses
disable_member_code_lens = true,
-- JSXCloseTag
-- WARNING: it is disabled by default (maybe you configuration or distro already uses nvim-ts-autotag,
-- that maybe have a conflict if enable this feature. )
jsx_close_tag = {
enable = false,
filetypes = { "javascriptreact", "typescriptreact" },
},
},
},
}

View File

@@ -1,14 +1,21 @@
return {
"kaarmu/typst.vim",
ft = "typst",
keys = {
{
"<leader>ow",
vim.cmd.TypstWatch,
desc = "Typst watch",
},
},
config = function()
vim.g.typst_cmd = "typst" -- Specifies the location of the Typst executable. Default: 'typst'
vim.g.typst_pdf_viewer = "zathura" -- Specifies pdf viewer that typst watch --open will use. Default: ''
vim.g.typst_conceal = 0 -- Enable concealment. Default: 0
vim.g.typst_conceal_math = vim.g.typst_conceal -- Enable concealment for math symbols in math mode (i.e. replaces symbols with their actual unicode character). Default: g:typst_conceal
vim.g.typst_conceal_emoji = vim.g.typst_conceal -- Enable concealing emojis, e.g. #emoji.alien becomes 👽. Default: g:typst_conceal
vim.g.typst_auto_close_toc = 0 -- Specifies whether TOC will be automatically closed after using it. Default: 0
vim.g.typst_auto_open_quickfix = 1 -- Specifies whether the quickfix list should automatically open when there are errors from typst. Default: 1
vim.g.typst_embedded_languages = { "python", "rust", "c", "cpp" } -- A list of languages that will be highlighted in code blocks. Typst is always highlighted. Default: []
-- vim.g.typst_cmd = "typst" -- Specifies the location of the Typst executable. Default: 'typst'
-- vim.g.typst_pdf_viewer = "zathura" -- Specifies pdf viewer that typst watch --open will use. Default: ''
-- vim.g.typst_conceal = 0 -- Enable concealment. Default: 0
-- vim.g.typst_conceal_math = vim.g.typst_conceal -- Enable concealment for math symbols in math mode (i.e. replaces symbols with their actual unicode character). Default: g:typst_conceal
-- vim.g.typst_conceal_emoji = vim.g.typst_conceal -- Enable concealing emojis, e.g. #emoji.alien becomes 👽. Default: g:typst_conceal
-- vim.g.typst_auto_close_toc = 0 -- Specifies whether TOC will be automatically closed after using it. Default: 0
-- vim.g.typst_auto_open_quickfix = 1 -- Specifies whether the quickfix list should automatically open when there are errors from typst. Default: 1
-- vim.g.typst_embedded_languages = { "python", "rust", "c", "cpp" } -- A list of languages that will be highlighted in code blocks. Typst is always highlighted. Default: []
end,
}