Added jdtls for nvim + auto folding for import statements + some minor config updates

master
Wynd 2026-03-14 23:52:37 +02:00
parent 238c6f4628
commit d15b6100c0
12 changed files with 411 additions and 72 deletions

View File

@ -16,7 +16,7 @@ blur = true
[font] [font]
# normal = { family = "FiraCode Nerd Font", style = "Bold" } # normal = { family = "FiraCode Nerd Font", style = "Bold" }
normal = { family = "JetBrainsMonoNerdFont", style = "Regular" } normal = { family = "JetBrainsMonoNerdFont", style = "Regular" }
size = 12 size = 10.5
[cursor] [cursor]
style = { shape = "Block", blinking = "Always" } style = { shape = "Block", blinking = "Always" }

View File

@ -2,34 +2,36 @@
## plugins used ## plugins used
- [nui.nvim](https://github.com/MunifTanjim/nui.nvim.git) - [nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag.git)
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter.git)
- [Comment.nvim](https://github.com/numToStr/Comment.nvim.git) - [Comment.nvim](https://github.com/numToStr/Comment.nvim.git)
- [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git)
- [nvim-surround](https://github.com/kylechui/nvim-surround.git)
- [vim-cool](https://github.com/romainl/vim-cool.git)
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig.git)
- [hurl.nvim](https://github.com/jellydn/hurl.nvim.git)
- [nvim-notify](https://github.com/rcarriga/nvim-notify.git)
- [git-conflict.nvim](https://github.com/akinsho/git-conflict.nvim.git)
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim.git)
- [nvim-colorizer.lua](https://github.com/catgoose/nvim-colorizer.lua.git)
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git)
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim.git)
- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim.git)
- [conform.nvim](https://github.com/stevearc/conform.nvim.git)
- [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons.git)
- [blink.cmp](https://github.com/saghen/blink.cmp.git)
- [nui.nvim](https://github.com/MunifTanjim/nui.nvim.git)
- [friendly-snippets](https://github.com/rafamadriz/friendly-snippets.git) - [friendly-snippets](https://github.com/rafamadriz/friendly-snippets.git)
- [trouble.nvim](https://github.com/folke/trouble.nvim.git) - [trouble.nvim](https://github.com/folke/trouble.nvim.git)
- [which-key.nvim](https://github.com/folke/which-key.nvim.git) - [which-key.nvim](https://github.com/folke/which-key.nvim.git)
- [nvim-surround](https://github.com/kylechui/nvim-surround.git)
- [lazy.nvim](https://github.com/folke/lazy.nvim.git) - [lazy.nvim](https://github.com/folke/lazy.nvim.git)
- [git-conflict.nvim](https://github.com/akinsho/git-conflict.nvim.git)
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig.git)
- [outline.nvim](https://github.com/hedyhli/outline.nvim.git)
- [hurl.nvim](https://github.com/jellydn/hurl.nvim.git)
- [fidget.nvim](https://github.com/j-hui/fidget.nvim.git)
- [vim-cool](https://github.com/romainl/vim-cool.git)
- [lazydev.nvim](https://github.com/folke/lazydev.nvim.git)
- [nvim-notify](https://github.com/rcarriga/nvim-notify.git)
- [catppuccin](https://github.com/catppuccin/nvim.git)
- [luvit-meta](https://github.com/Bilal2453/luvit-meta.git)
- [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git)
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter.git)
- [nvim-lsp-file-operations](https://github.com/antosha417/nvim-lsp-file-operations.git)
- [nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag.git)
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git)
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim.git)
- [dressing.nvim](https://github.com/stevearc/dressing.nvim.git)
- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim.git)
- [blink.cmp](https://github.com/saghen/blink.cmp.git)
- [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) - [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git)
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim.git) - [luvit-meta](https://github.com/Bilal2453/luvit-meta.git)
- [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons.git) - [nvim-lsp-file-operations](https://github.com/antosha417/nvim-lsp-file-operations.git)
- [conform.nvim](https://github.com/stevearc/conform.nvim.git) - [nvim-jdtls](https://github.com/mfussenegger/nvim-jdtls.git)
- [outline.nvim](https://github.com/hedyhli/outline.nvim.git)
- [lazydev.nvim](https://github.com/folke/lazydev.nvim.git)
- [fidget.nvim](https://github.com/j-hui/fidget.nvim.git)
- [dressing.nvim](https://github.com/stevearc/dressing.nvim.git)
- [catppuccin](https://github.com/catppuccin/nvim.git)
- [mini.map](https://github.com/echasnovski/mini.map.git) - [mini.map](https://github.com/echasnovski/mini.map.git)

View File

@ -1,34 +1,134 @@
{ {
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Comment.nvim": {
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, "branch": "master",
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb"
"conform.nvim": { "branch": "master", "commit": "5ac2bb57a9096f00ca50e1a3c46020d5930319b8" }, },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "blink.cmp": {
"fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" }, "branch": "main",
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "commit": "b19413d214068f316c78978b08264ed1c41830ec"
"git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" }, },
"hurl.nvim": { "branch": "main", "commit": "0e5430d5130fe95fc1b8b015491b50274aa2e796" }, "catppuccin": {
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "branch": "main",
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd"
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, },
"luvit-meta": { "branch": "main", "commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682" }, "conform.nvim": {
"mini.map": { "branch": "main", "commit": "32a3a5d9a7c074dbb0a4a1d5943d09cb8edbab3f" }, "branch": "master",
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, "commit": "5ac2bb57a9096f00ca50e1a3c46020d5930319b8"
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, },
"nvim-colorizer.lua": { "branch": "master", "commit": "338409dd8a6ed74767bad3eb5269f1b903ffb3cf" }, "dressing.nvim": {
"nvim-lsp-file-operations": { "branch": "master", "commit": "b9c795d3973e8eec22706af14959bc60c579e771" }, "branch": "master",
"nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639"
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, },
"nvim-surround": { "branch": "main", "commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1" }, "fidget.nvim": {
"nvim-treesitter": { "branch": "main", "commit": "d19def46c112c26c17adeef88dd1253cc6d623a1" }, "branch": "main",
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970"
"nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" }, },
"outline.nvim": { "branch": "main", "commit": "1967ef50036b0b1eac4977aeede55915a741afe0" }, "friendly-snippets": {
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "branch": "main",
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175"
"telescope.nvim": { "branch": "master", "commit": "a8c2223ea6b185701090ccb1ebc7f4e41c4c9784" }, },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "git-conflict.nvim": {
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "branch": "main",
"vim-cool": { "branch": "master", "commit": "9ea940c0d537e55de0de4c0298c04b976960fb12" }, "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4"
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } },
"hurl.nvim": {
"branch": "main",
"commit": "0e5430d5130fe95fc1b8b015491b50274aa2e796"
},
"lazy.nvim": {
"branch": "main",
"commit": "306a05526ada86a7b30af95c5cc81ffba93fef97"
},
"lazydev.nvim": {
"branch": "main",
"commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d"
},
"lualine.nvim": {
"branch": "master",
"commit": "47f91c416daef12db467145e16bed5bbfe00add8"
},
"luvit-meta": {
"branch": "main",
"commit": "0ea4ff636c5bb559ffa78108561d0976f4de9682"
},
"mini.map": {
"branch": "main",
"commit": "32a3a5d9a7c074dbb0a4a1d5943d09cb8edbab3f"
},
"neo-tree.nvim": {
"branch": "v3.x",
"commit": "f3df514fff2bdd4318127c40470984137f87b62e"
},
"nui.nvim": {
"branch": "main",
"commit": "de740991c12411b663994b2860f1a4fd0937c130"
},
"nvim-colorizer.lua": {
"branch": "master",
"commit": "338409dd8a6ed74767bad3eb5269f1b903ffb3cf"
},
"nvim-jdtls": {
"branch": "master",
"commit": "77ccaeb422f8c81b647605da5ddb4a7f725cda90"
},
"nvim-lsp-file-operations": {
"branch": "master",
"commit": "b9c795d3973e8eec22706af14959bc60c579e771"
},
"nvim-lspconfig": {
"branch": "master",
"commit": "92ee7d42320edfbb81f3cad851314ab197fa324a"
},
"nvim-notify": {
"branch": "master",
"commit": "8701bece920b38ea289b457f902e2ad184131a5d"
},
"nvim-surround": {
"branch": "main",
"commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1"
},
"nvim-treesitter": {
"branch": "main",
"commit": "d19def46c112c26c17adeef88dd1253cc6d623a1"
},
"nvim-ts-autotag": {
"branch": "main",
"commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc"
},
"nvim-web-devicons": {
"branch": "master",
"commit": "803353450c374192393f5387b6a0176d0972b848"
},
"outline.nvim": {
"branch": "main",
"commit": "1967ef50036b0b1eac4977aeede55915a741afe0"
},
"plenary.nvim": {
"branch": "master",
"commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509"
},
"telescope-fzf-native.nvim": {
"branch": "main",
"commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c"
},
"telescope.nvim": {
"branch": "master",
"commit": "a8c2223ea6b185701090ccb1ebc7f4e41c4c9784"
},
"todo-comments.nvim": {
"branch": "main",
"commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668"
},
"trouble.nvim": {
"branch": "main",
"commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a"
},
"vim-cool": {
"branch": "master",
"commit": "9ea940c0d537e55de0de4c0298c04b976960fb12"
},
"which-key.nvim": {
"branch": "main",
"commit": "3aab2147e74890957785941f0c1ad87d0a44c15a"
}
} }

View File

@ -7,7 +7,7 @@ map("x", "p", '"_dP')
map({ "n", "v", "x" }, "x", '"_d') map({ "n", "v", "x" }, "x", '"_d')
map({ "n", "v", "x" }, "<Del>", '"_x') map({ "n", "v", "x" }, "<Del>", '"_x')
-- filthy casual save keybind -- filthy casual save keybind
map({ "n", "i" }, "<C-s>", "<cmd>w<cr>", { desc = "File Save" }) map({ "n", "i", "v" }, "<C-s>", "<cmd>w<cr>", { desc = "File Save" })
-- easy way to close the current buffer -- easy way to close the current buffer
map("n", "<C-X>", "<cmd>bd!<cr>", { desc = "Close Buffer" }) map("n", "<C-X>", "<cmd>bd!<cr>", { desc = "Close Buffer" })
-- moves the selection up or down using K and J (uppercase) -- moves the selection up or down using K and J (uppercase)

View File

@ -0,0 +1,130 @@
---@module Foldtext
---Based on https://www.reddit.com/r/neovim/comments/16sqyjz/finally_we_can_have_highlighted_folds/
---Updated with vim.treesitter._fold.foldtext()
---Snatched from https://github.com/Wansmer/nvim-config/blob/9f1bc81e32eb32000bad80f9912238f9e36a903a/lua/modules/foldtext.lua
local function parse_line(linenr)
local bufnr = vim.api.nvim_get_current_buf()
local line = vim.api.nvim_buf_get_lines(bufnr, linenr - 1, linenr, false)[1]
if not line then
return nil
end
local ok, parser = pcall(vim.treesitter.get_parser, bufnr)
if not ok then
return nil
end
local query = vim.treesitter.query.get(parser:lang(), "highlights")
if not query then
return nil
end
local tree = parser:parse({ linenr - 1, linenr })[1]
local result = {}
local line_pos = 0
for id, node, metadata in query:iter_captures(tree:root(), 0, linenr - 1, linenr) do
local name = query.captures[id]
local start_row, start_col, end_row, end_col = node:range()
local priority = tonumber(metadata.priority or vim.highlight.priorities.treesitter)
if start_row == linenr - 1 and end_row == linenr - 1 then
-- check for characters ignored by treesitter
if start_col > line_pos then
table.insert(result, {
line:sub(line_pos + 1, start_col),
{ { "Folded", priority } },
range = { line_pos, start_col },
})
end
line_pos = end_col
local text = line:sub(start_col + 1, end_col)
table.insert(result, { text, { { "@" .. name, priority } }, range = { start_col, end_col } })
end
end
local i = 1
while i <= #result do
-- find first capture that is not in current range and apply highlights on the way
local j = i + 1
while j <= #result and result[j].range[1] >= result[i].range[1] and result[j].range[2] <= result[i].range[2] do
for k, v in ipairs(result[i][2]) do
if not vim.tbl_contains(result[j][2], v) then
table.insert(result[j][2], k, v)
end
end
j = j + 1
end
-- remove the parent capture if it is split into children
if j > i + 1 then
table.remove(result, i)
else
-- highlights need to be sorted by priority, on equal prio, the deeper nested capture (earlier
-- in list) should be considered higher prio
if #result[i][2] > 1 then
table.sort(result[i][2], function(a, b)
return a[2] < b[2]
end)
end
result[i][2] = vim.tbl_map(function(tbl)
return tbl[1]
end, result[i][2])
result[i] = { result[i][1], result[i][2] }
i = i + 1
end
end
return result
end
function HighlightedFoldtext()
local result = parse_line(vim.v.foldstart)
if not result then
return vim.fn.foldtext()
end
local folded = {
{ "", "FoldedIcon" },
{ "+" .. vim.v.foldend - vim.v.foldstart .. " lines", "FoldedText" },
{ "", "FoldedIcon" },
}
for _, item in ipairs(folded) do
table.insert(result, item)
end
local result2 = parse_line(vim.v.foldend)
if result2 and #result2 > 0 then
local first = result2[1]
result2[1] = { vim.trim(first[1]), first[2] }
for _, item in ipairs(result2) do
table.insert(result, item)
end
end
return result
end
local function set_fold_hl()
local nf = vim.api.nvim_get_hl(0, { name = "NormalFloat", link = false })
local comment = vim.api.nvim_get_hl(0, { name = "Comment", link = false })
vim.api.nvim_set_hl(0, "FoldedIcon", { fg = nf.bg })
vim.api.nvim_set_hl(0, "FoldedText", { bg = nf.bg, fg = comment.fg, italic = true })
end
set_fold_hl()
vim.api.nvim_create_autocmd("ColorScheme", {
callback = set_fold_hl,
})
return 'luaeval("HighlightedFoldtext")()'

View File

@ -48,10 +48,12 @@ o.splitbelow = true
o.inccommand = "split" o.inccommand = "split"
-- folding -- folding
o.foldmethod = "indent" o.foldmethod = "expr"
o.foldexpr = "v:lua.vim.treesitter.foldexpr()"
o.foldtext = require("nvwynd.modules.foldtext")
o.foldnestmax = 10 o.foldnestmax = 10
o.foldenable = true o.foldenable = true
o.foldlevel = 5 o.foldlevel = 99
g.markdown_folding = 1 g.markdown_folding = 1
-- tab size -- tab size

View File

@ -41,6 +41,9 @@ return {
vim.api.nvim_create_autocmd("BufEnter", { vim.api.nvim_create_autocmd("BufEnter", {
pattern = { "neo-tree*" }, pattern = { "neo-tree*" },
callback = function() callback = function()
-- prevents the list scrolling when clicking on bottom/top elements due to scrolloff
vim.wo[0][0].scrolloff = 0
local filetype = vim.filetype.match({ buf = 0 }) local filetype = vim.filetype.match({ buf = 0 })
if filetype == nil then if filetype == nil then
vim.cmd("stopinsert") vim.cmd("stopinsert")
@ -52,6 +55,7 @@ return {
filesystem = { filesystem = {
follow_current_file = { enabled = true }, follow_current_file = { enabled = true },
use_libuv_file_watcher = true, use_libuv_file_watcher = true,
group_empty_dirs = true,
}, },
}, },
}, },

View File

@ -5,7 +5,8 @@ return {
cmd = { "ConformInfo" }, cmd = { "ConformInfo" },
keys = { keys = {
{ {
"<leader>fc", -- "<leader>fc",
"<C-f>",
function() function()
require("conform").format({ async = true, lsp_fallback = true }) require("conform").format({ async = true, lsp_fallback = true })
end, end,
@ -39,6 +40,13 @@ return {
}, },
init = function() init = function()
vim.o.formatexpr = "v:lua.require('conform').formatexpr()" vim.o.formatexpr = "v:lua.require('conform').formatexpr()"
vim.api.nvim_create_autocmd("FileType", {
pattern = "java",
callback = function()
vim.b.disable_autoformat = true
end,
})
end, end,
}, },
} }

View File

@ -13,7 +13,6 @@ return {
vim.lsp.enable("pyright") vim.lsp.enable("pyright")
-- Rust -- Rust
vim.lsp.enable("rust_analyzer")
vim.lsp.config("rust_analyzer", { vim.lsp.config("rust_analyzer", {
settings = { settings = {
["rust-analyzer"] = { ["rust-analyzer"] = {
@ -28,9 +27,9 @@ return {
}, },
procMacro = { procMacro = {
enable = true, enable = true,
ignored = "*",
}, },
checkOnSave = { checkOnSave = true,
check = {
command = "clippy", command = "clippy",
}, },
hover = { hover = {
@ -46,6 +45,44 @@ return {
}, },
}, },
}) })
vim.lsp.enable("rust_analyzer")
-- Java
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
local workspace_dir = vim.fn.stdpath("data")
.. package.config:sub(1, 1)
.. "jdtls-workspace"
.. package.config:sub(1, 1)
.. project_name
vim.lsp.config("jdtls", {
cmd = {
"jdtls",
"-data",
workspace_dir,
},
root_dir = vim.fs.root(0, { "gradlew", ".git", "mvnw" }),
settings = {
java = {
format = {
enable = false,
settings = {
-- wget -O ~/.local/share/google-style.xml https://google.github.io/styleguide/eclipse-java-google-style.xml
-- could also set thee url directly but local ftw
url = "~/.local/share/google-style.xml",
profile = "GoogleStyle",
},
},
},
},
init_options = {
bundles = {},
},
})
vim.lsp.enable("jdtls")
-- C -- C
vim.lsp.enable("clangd") vim.lsp.enable("clangd")
@ -55,7 +92,6 @@ return {
table.insert(lua_rtp, "lua/?.lua") table.insert(lua_rtp, "lua/?.lua")
table.insert(lua_rtp, "lua/?/init.lua") table.insert(lua_rtp, "lua/?/init.lua")
vim.lsp.enable("lua_ls")
vim.lsp.config("lua_ls", { vim.lsp.config("lua_ls", {
settings = { settings = {
Lua = { Lua = {
@ -75,6 +111,7 @@ return {
}, },
}, },
}) })
vim.lsp.enable("lua_ls")
-- Zig -- Zig
-- vim.lsp.enable("zls") -- vim.lsp.enable("zls")
@ -92,16 +129,16 @@ return {
vim.lsp.enable("bashls") vim.lsp.enable("bashls")
-- HTML -- HTML
vim.lsp.enable("html")
vim.lsp.config("html", { vim.lsp.config("html", {
filetypes = { "html", "templ", "htmldjango", "handlebars" }, filetypes = { "html", "templ", "htmldjango", "handlebars" },
}) })
vim.lsp.enable("html")
-- HTMX -- HTMX
vim.lsp.enable("htmx")
vim.lsp.config("htmx", { vim.lsp.config("htmx", {
filetypes = { "html", "templ", "htmldjango" }, filetypes = { "html", "templ", "htmldjango" },
}) })
vim.lsp.enable("htmx")
-- CSS -- CSS
vim.lsp.enable("cssls") vim.lsp.enable("cssls")
@ -170,4 +207,6 @@ return {
}, },
opts = {}, opts = {},
}, },
{ "mfussenegger/nvim-jdtls" },
} }

View File

@ -63,20 +63,60 @@ return {
"desktop", "desktop",
}) })
local function close_import_fold()
-- see if there's a parser associated with the current buffer
local ok, parser = pcall(vim.treesitter.get_parser, 0)
if not ok then
return
end
local import_nodes = {
rust = "use_declaration",
java = "import_declaration",
}
local ft = vim.bo.filetype
-- check the language of the buffer and the TS node associated with the import section
local target = import_nodes[ft]
if not target then
return
end
local tree = parser:parse()[1]
local root = tree:root()
-- parse all the nodes until finding the import nodes
for node in root:iter_children() do
if node:type() == target then
local start_row, _, _, _ = node:range()
-- close the fold starting with the first line of the chunk
-- the function usage is to avoid some annoying warning because vim.cmd is seen as a table and pcall takes a function
local _, _ = pcall(function()
vim.cmd(start_row + 1 .. "foldclose")
end)
break
end
end
end
-- Prize for most retarded upgrade goes to.... -- Prize for most retarded upgrade goes to....
-- Auto enable TS if language is installed because it can't do that by myself anymore -- Auto enable TS if language is installed because it can't do that by myself anymore
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("FileType", {
callback = function(args) callback = function(args)
-- highlighting
if vim.list_contains(ts.get_installed(), vim.treesitter.language.get_lang(args.match)) then if vim.list_contains(ts.get_installed(), vim.treesitter.language.get_lang(args.match)) then
vim.treesitter.start(args.buf) vim.treesitter.start(args.buf)
end end
-- indentation
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
close_import_fold()
end, end,
}) })
vim.wo[0][0].foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.wo[0][0].foldmethod = "expr"
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end, end,
}, },
} }

View File

@ -98,8 +98,18 @@ return {
-- { -- {
-- "3rd/image.nvim", -- "3rd/image.nvim",
-- event = "VeryLazy", -- event = "VeryLazy",
-- build = false,
-- opts = { -- opts = {
-- backend = "ueberzug", -- backend = "ueberzug",
-- integrations = {
-- markdown = {
-- enabled = true,
-- clear_in_insert_mode = false,
-- download_remote_images = true,
-- only_render_image_at_cursor = true,
-- filetypes = { "markdown" },
-- },
-- },
-- }, -- },
-- }, -- },
} }

View File

@ -120,13 +120,16 @@ alias gd='git diff'
alias gdc="git diff --cached" alias gdc="git diff --cached"
alias glg="git log --graph --pretty='%Cred%h%Creset %C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short" alias glg="git log --graph --pretty='%Cred%h%Creset %C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short"
alias glo="git log --pretty='format:%C(yellow)%as %C(blue)%cn %C(green)%h %C(reset)%s' --no-merges" alias glo="git log --pretty='format:%C(yellow)%as %C(blue)%cn %C(green)%h %C(reset)%s' --no-merges"
alias gld="git log --pretty='format:%C(yellow)%as %C(blue)%cn %C(green)%h %C(reset)%s' --no-merges HEAD"
alias glm="git_last_modified" alias glm="git_last_modified"
# takes the number of days back to get changes (5 by default)
function git_last_modified() {( function git_last_modified() {(
days=${1:-5} days=${1:-5}
git diff $(git log -1 --before=@{$days.days.ago} --format=%H) --stat git diff $(git log -1 --before=@{$days.days.ago} --format=%H) --stat
)} )}
# takes a date as param such as: 2025-01-01
function days_since() {( function days_since() {(
now=$(date --date="now" +%s) now=$(date --date="now" +%s)
input=$(date --date=$1 +%s) input=$(date --date=$1 +%s)
@ -140,6 +143,7 @@ alias repos5y="~/.local/bin/scripts/repos5y.sh"
alias repoc5y="~/.local/bin/scripts/repoc5y.sh" alias repoc5y="~/.local/bin/scripts/repoc5y.sh"
export PATH="/home/wynd/.local/bin/scripts:$PATH" export PATH="/home/wynd/.local/bin/scripts:$PATH"
export PATH="/home/wynd/.local/lib/jdt-language-server-1.54.0-202511200503/bin:$PATH"
# private SSH stuff # private SSH stuff
source ~/.piwrc source ~/.piwrc