mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
feat(nvim): LSPs and refractor plugins.lang
This commit is contained in:
parent
9315c6e55d
commit
5f5e41c247
15 changed files with 85 additions and 42 deletions
13
tools/nvim/lua/plugins/lang/beancount.lua
Normal file
13
tools/nvim/lua/plugins/lang/beancount.lua
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
-- 在 init.lua 或者你的配置文件中添加
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||
pattern = "*.bean",
|
||||
callback = function()
|
||||
vim.bo.filetype = "beancount"
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
return {
|
||||
"nathangrigg/vim-beancount",
|
||||
ft = "beancount",
|
||||
}
|
||||
50
tools/nvim/lua/plugins/lang/init.lua
Normal file
50
tools/nvim/lua/plugins/lang/init.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
return {
|
||||
{ import = "plugins.lang.org" },
|
||||
{ import = "plugins.lang.markdown" },
|
||||
{ import = "plugins.lang.just" },
|
||||
{ import = "plugins.lang.typst" },
|
||||
{ import = "plugins.lang.beancount" },
|
||||
{ import = "plugins.lang.tex" },
|
||||
{ import = "plugins.lang.lua" },
|
||||
{ import = "plugins.mod.trouble-nvim" },
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
cmd = "Mason",
|
||||
build = ":MasonUpdate",
|
||||
-- opts_extend = { "ensure_installed" },
|
||||
opts = {
|
||||
-- ensure_installed = require("config.servers").servers,
|
||||
},
|
||||
},
|
||||
-- {
|
||||
-- "williamboman/mason-lspconfig.nvim",
|
||||
-- event = "BufReadPre",
|
||||
-- dependencies = {
|
||||
-- { "williamboman/mason.nvim" },
|
||||
-- { "neovim/nvim-lspconfig" },
|
||||
-- },
|
||||
-- opts = {
|
||||
-- -- ensure_installed = require("config.servers").servers,
|
||||
-- -- automatic_installation = false,
|
||||
-- },
|
||||
-- },
|
||||
{ import = "plugins.mod.conform-nvim" },
|
||||
{ "nvim-treesitter/nvim-treesitter-context", lazy = true },
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
run = ":TSUpdate",
|
||||
cmd = {
|
||||
"TSInstall",
|
||||
"TSUpdate",
|
||||
"TSUpdateSync",
|
||||
},
|
||||
event = {
|
||||
"VeryLazy",
|
||||
},
|
||||
opts = {
|
||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown", "markdown_inline" },
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
},
|
||||
},
|
||||
}
|
||||
4
tools/nvim/lua/plugins/lang/just.lua
Normal file
4
tools/nvim/lua/plugins/lang/just.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
"NoahTheDuke/vim-just",
|
||||
ft = { "just" },
|
||||
}
|
||||
9
tools/nvim/lua/plugins/lang/lua.lua
Normal file
9
tools/nvim/lua/plugins/lang/lua.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
"folke/lazydev.nvim",
|
||||
ft = "lua", -- only load on lua files
|
||||
opts = {
|
||||
library = {
|
||||
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||
},
|
||||
},
|
||||
}
|
||||
6
tools/nvim/lua/plugins/lang/markdown/init.lua
Normal file
6
tools/nvim/lua/plugins/lang/markdown/init.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
{ import = "plugins.lang.markdown.render-markdown" },
|
||||
-- { import = "plugins.mod.lang.markdown.markview" },
|
||||
{ import = "plugins.lang.markdown.obsidian-nvim" },
|
||||
{ "bullets-vim/bullets.vim", ft = "markdown" },
|
||||
}
|
||||
29
tools/nvim/lua/plugins/lang/markdown/markview.lua.bak
Normal file
29
tools/nvim/lua/plugins/lang/markdown/markview.lua.bak
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
-- This won't be loaded
|
||||
-- I keep this since render-markdown sometimes buggy
|
||||
return {
|
||||
{
|
||||
"OXY2DEV/markview.nvim",
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
opts = {
|
||||
checkboxes = require("markview-presets").checkboxes.nerd,
|
||||
headings = {
|
||||
enable = true,
|
||||
shift_width = 1,
|
||||
heading_1 = {
|
||||
style = "label",
|
||||
hl = "MarkviewH1",
|
||||
},
|
||||
},
|
||||
code_blocks = {
|
||||
style = "language",
|
||||
language_direction = "right",
|
||||
hl = "MarkviewCode",
|
||||
info_hl = "MarkviewCodeInfo",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
69
tools/nvim/lua/plugins/lang/markdown/obsidian-nvim.lua
Normal file
69
tools/nvim/lua/plugins/lang/markdown/obsidian-nvim.lua
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
return {
|
||||
"epwalsh/obsidian.nvim",
|
||||
version = "*", -- recommended, use latest release instead of latest commit
|
||||
-- lazy = false,
|
||||
ft = "markdown",
|
||||
|
||||
cmd = {
|
||||
"ObsidianNewFromTemplate",
|
||||
"ObsidianToggleCheckbox",
|
||||
"ObsidianQuickSwitch",
|
||||
"ObsidianExtractNote",
|
||||
"ObsidianFollowLink",
|
||||
"ObsidianBacklinks",
|
||||
"ObsidianWorkspace",
|
||||
"ObsidianYesterday",
|
||||
"ObsidianPasteImg",
|
||||
"ObsidianTomorrow",
|
||||
"ObsidianTemplate",
|
||||
"ObsidianDailies",
|
||||
"ObsidianLinkNew",
|
||||
"ObsidianRename",
|
||||
"ObsidianSearch",
|
||||
"ObsidianCheck",
|
||||
"ObsidianLinks",
|
||||
"ObsidianToday",
|
||||
"ObsidianDebug",
|
||||
"ObsidianOpen",
|
||||
"ObsidianTags",
|
||||
"ObsidianLink",
|
||||
"ObsidianNew",
|
||||
"ObsidianTOC",
|
||||
},
|
||||
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
|
||||
-- event = {
|
||||
-- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
|
||||
-- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md"
|
||||
-- -- refer to `:h file-pattern` for more examples
|
||||
-- "BufReadPre path/to/my-vault/*.md",
|
||||
-- "BufNewFile path/to/my-vault/*.md",
|
||||
-- },
|
||||
dependencies = {
|
||||
-- Required.
|
||||
"nvim-lua/plenary.nvim",
|
||||
|
||||
-- see below for full list of optional dependencies 👇
|
||||
},
|
||||
opts = {
|
||||
workspaces = {
|
||||
{
|
||||
name = "personal",
|
||||
path = "~/Obsidian",
|
||||
},
|
||||
},
|
||||
completion = {
|
||||
nvim_cmp = false,
|
||||
min_chars = 2,
|
||||
},
|
||||
ui = {
|
||||
enable = false,
|
||||
},
|
||||
-- see below for full list of options 👇
|
||||
attachments = {
|
||||
img_folder = "_Global/Assets",
|
||||
img_name_func = function()
|
||||
return string.format("%s-", os.time())
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
74
tools/nvim/lua/plugins/lang/markdown/render-markdown.lua
Normal file
74
tools/nvim/lua/plugins/lang/markdown/render-markdown.lua
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
return {
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
event = "BufRead",
|
||||
ft = { "markdown", "Avante" },
|
||||
opts = {
|
||||
file_types = { "markdown", "Avante" },
|
||||
render_modes = { "n", "c", "t" },
|
||||
latex = {
|
||||
-- enabled = true,
|
||||
enabled = false,
|
||||
converter = "latex2text",
|
||||
highlight = "RenderMarkdownMath",
|
||||
top_pad = 0,
|
||||
bottom_pad = 0,
|
||||
},
|
||||
-- heading = {
|
||||
-- position = "overlay",
|
||||
-- width = "block",
|
||||
-- left_margin = 0.5,
|
||||
-- left_pad = 0.2,
|
||||
-- right_pad = 0.2,
|
||||
-- },
|
||||
link = {
|
||||
custom = {
|
||||
python = { pattern = "%.py", icon = " " },
|
||||
lua = { pattern = "%.lua", icon = " " },
|
||||
markdown = { pattern = "%.md", icon = " " },
|
||||
},
|
||||
},
|
||||
bullet = {
|
||||
icons = { " ", "●", "○", "◆", "◇" },
|
||||
},
|
||||
checkbox = {
|
||||
checked = { scope_highlight = "@markup.strikethrough" },
|
||||
unchecked = { scope_highlight = "@comment.todo" },
|
||||
},
|
||||
code = {
|
||||
position = "right",
|
||||
width = "block",
|
||||
right_pad = 10,
|
||||
},
|
||||
callout = {
|
||||
note = { raw = "[!NOTE]", rendered = " Note", highlight = "RenderMarkdownInfo" },
|
||||
tip = { raw = "[!TIP]", rendered = " Tip", highlight = "RenderMarkdownSuccess" },
|
||||
important = { raw = "[!IMPORTANT]", rendered = " Important", highlight = "RenderMarkdownHint" },
|
||||
warning = { raw = "[!WARNING]", rendered = " Warning", highlight = "RenderMarkdownWarn" },
|
||||
caution = { raw = "[!CAUTION]", rendered = " Caution", highlight = "RenderMarkdownError" },
|
||||
abstract = { raw = "[!ABSTRACT]", rendered = " Abstract", highlight = "RenderMarkdownInfo" },
|
||||
summary = { raw = "[!SUMMARY]", rendered = " Summary", highlight = "RenderMarkdownInfo" },
|
||||
tldr = { raw = "[!TLDR]", rendered = " Tldr", highlight = "RenderMarkdownInfo" },
|
||||
info = { raw = "[!INFO]", rendered = " Info", highlight = "RenderMarkdownInfo" },
|
||||
todo = { raw = "[!TODO]", rendered = " Todo", highlight = "RenderMarkdownInfo" },
|
||||
hint = { raw = "[!HINT]", rendered = " Hint", highlight = "RenderMarkdownSuccess" },
|
||||
success = { raw = "[!SUCCESS]", rendered = " Success", highlight = "RenderMarkdownSuccess" },
|
||||
check = { raw = "[!CHECK]", rendered = " Check", highlight = "RenderMarkdownSuccess" },
|
||||
done = { raw = "[!DONE]", rendered = " Done", highlight = "RenderMarkdownSuccess" },
|
||||
question = { raw = "[!QUESTION]", rendered = " Question", highlight = "RenderMarkdownWarn" },
|
||||
help = { raw = "[!HELP]", rendered = " Help", highlight = "RenderMarkdownWarn" },
|
||||
faq = { raw = "[!FAQ]", rendered = " Faq", highlight = "RenderMarkdownWarn" },
|
||||
attention = { raw = "[!ATTENTION]", rendered = " Attention", highlight = "RenderMarkdownWarn" },
|
||||
failure = { raw = "[!FAILURE]", rendered = " Failure", highlight = "RenderMarkdownError" },
|
||||
fail = { raw = "[!FAIL]", rendered = " Fail", highlight = "RenderMarkdownError" },
|
||||
missing = { raw = "[!MISSING]", rendered = " Missing", highlight = "RenderMarkdownError" },
|
||||
danger = { raw = "[!DANGER]", rendered = " Danger", highlight = "RenderMarkdownError" },
|
||||
error = { raw = "[!ERROR]", rendered = " Error", highlight = "RenderMarkdownError" },
|
||||
bug = { raw = "[!BUG]", rendered = " Bug", highlight = "RenderMarkdownError" },
|
||||
example = { raw = "[!EXAMPLE]", rendered = " Example", highlight = "RenderMarkdownHint" },
|
||||
quote = { raw = "[!QUOTE]", rendered = " Quote", highlight = "RenderMarkdownQuote" },
|
||||
cite = { raw = "[!CITE]", rendered = " Cite", highlight = "RenderMarkdownQuote" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
88
tools/nvim/lua/plugins/lang/org.lua
Normal file
88
tools/nvim/lua/plugins/lang/org.lua
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
return {
|
||||
{
|
||||
"nvim-orgmode/orgmode",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-orgmode/telescope-orgmode.nvim",
|
||||
"nvim-orgmode/org-bullets.nvim",
|
||||
"Saghen/blink.cmp",
|
||||
},
|
||||
cmd = {
|
||||
"Org",
|
||||
},
|
||||
ft = {
|
||||
"org",
|
||||
"orgagenda",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>A", "<cmd>Org agenda<CR>", desc = "Org Agenda" },
|
||||
},
|
||||
event = "BufEnter *.org",
|
||||
config = function()
|
||||
require("orgmode").setup({
|
||||
org_agenda_files = "~/OrgFiles/tasks/*",
|
||||
org_default_notes_file = "~/OrgFiles/tasks/inbox.org",
|
||||
org_archive_location = "~/OrgFiles/.archive/%s_archive::",
|
||||
org_todo_keywords = { "TODO(t)", "NEXT(n)", "WAIT(w)", "|", "DONE(d)", "CANCELLED(c)" },
|
||||
org_hide_leading_stars = true,
|
||||
org_hide_emphasis_markers = true,
|
||||
org_log_into_drawer = "LOGBOOK",
|
||||
org_highlight_latex_and_related = "native",
|
||||
org_startup_indented = true,
|
||||
org_deadline_warning_days = 10,
|
||||
mappings = {
|
||||
agenda = {
|
||||
org_agenda_schedule = "<C-c><C-s>",
|
||||
org_agenda_deadline = "<C-c><C-d>",
|
||||
org_agenda_todo = "<C-c><C-t>",
|
||||
org_agenda_set_tags = "<C-c><C-c>",
|
||||
org_agenda_earlier = { "[[", "<" },
|
||||
org_agenda_later = { "]]", ">" },
|
||||
org_agenda_archive = "$",
|
||||
},
|
||||
org = {
|
||||
org_deadline = "<C-c><C-d>",
|
||||
org_schedule = "<C-c><C-s>",
|
||||
org_todo = "<C-c><C-t>",
|
||||
org_set_tags_command = "<C-c><C-c>",
|
||||
org_archive_subtree = "<C-c>$",
|
||||
},
|
||||
},
|
||||
})
|
||||
require("org-bullets").setup()
|
||||
require("blink.cmp").setup({
|
||||
sources = {
|
||||
per_filetype = {
|
||||
org = { "orgmode" },
|
||||
},
|
||||
providers = {
|
||||
orgmode = {
|
||||
name = "Orgmode",
|
||||
module = "orgmode.org.autocompletion.blink",
|
||||
fallbacks = { "buffer" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require("telescope").setup()
|
||||
require("telescope").load_extension("orgmode")
|
||||
-- vim.keymap.set("n", "<leader>r", require("telescope").extensions.orgmode.refile_heading)
|
||||
vim.keymap.set("n", "<leader>oP", require("telescope").extensions.orgmode.search_headings)
|
||||
vim.keymap.set("n", "<leader>op", "<cmd>Telescope find_files cwd=~/OrgFiles<CR>")
|
||||
-- vim.keymap.set("n", "<leader>li", require("telescope").extensions.orgmode.insert_link)
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- dir = "~/Source/org-pomodoro.nvim",
|
||||
-- name = "org-pomodoro.nvim",
|
||||
-- lazy = false,
|
||||
-- opts = {},
|
||||
-- dependencies = {
|
||||
-- "nvim-orgmode/orgmode",
|
||||
-- },
|
||||
-- cmd = {
|
||||
-- "OrgPomodoro",
|
||||
-- },
|
||||
-- },
|
||||
}
|
||||
7
tools/nvim/lua/plugins/lang/tex.lua
Normal file
7
tools/nvim/lua/plugins/lang/tex.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
return {
|
||||
"lervag/vimtex",
|
||||
ft = { "tex", "bib" },
|
||||
init = function()
|
||||
vim.g.vimtex_view_method = "okular"
|
||||
end,
|
||||
}
|
||||
6
tools/nvim/lua/plugins/lang/typst.lua
Normal file
6
tools/nvim/lua/plugins/lang/typst.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
'chomosuke/typst-preview.nvim',
|
||||
ft = { 'typst' },
|
||||
version = '1.*',
|
||||
opts = {}, -- lazy.nvim will implicitly calls `setup {}`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue