mirror of
https://github.com/Ascyii/nvim.git
synced 2026-01-01 04:04:24 -05:00
Implemented folding and some improvements. Moved functions to the utils module
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
-- Save the last file on exit
|
-- Save the last file on exit
|
||||||
vim.api.nvim_create_autocmd("VimLeave", {
|
vim.api.nvim_create_autocmd("VimLeave", {
|
||||||
callback = function()
|
callback = function()
|
||||||
-- Save the last file path to a file
|
|
||||||
local last_file = vim.fn.expand('%:p') -- Get the absolute path of the current file
|
local last_file = vim.fn.expand('%:p') -- Get the absolute path of the current file
|
||||||
if last_file ~= "" then
|
if last_file ~= "" then -- The operator means not equal in lua
|
||||||
local file = io.open(vim.fn.stdpath('data') .. "/lastfile.txt", "w")
|
local file = io.open(vim.fn.stdpath('data') .. "/lastfile.txt", "w")
|
||||||
if file then
|
if file then
|
||||||
file:write(last_file)
|
file:write(last_file)
|
||||||
@@ -12,3 +11,18 @@ vim.api.nvim_create_autocmd("VimLeave", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_augroup("RememberFolds", {
|
||||||
|
clear = true
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd({"BufWinLeave"}, {
|
||||||
|
group = "RememberFolds",
|
||||||
|
pattern = "*",
|
||||||
|
command = "silent! mkview",
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd({"BufWinEnter"}, {
|
||||||
|
group = "RememberFolds",
|
||||||
|
pattern = "*",
|
||||||
|
command = "silent! loadview",
|
||||||
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,20 @@ vim.keymap.set('n', '<leader>ya', 'ggVG"+y<C-o>')
|
|||||||
vim.keymap.set('n', '<leader>ss', ':wa<CR>')
|
vim.keymap.set('n', '<leader>ss', ':wa<CR>')
|
||||||
vim.keymap.set("n", "<leader>nn", ":e ~/synced/brainstore/zettelkasten/quick<CR>", { silent = true })
|
vim.keymap.set("n", "<leader>nn", ":e ~/synced/brainstore/zettelkasten/quick<CR>", { silent = true })
|
||||||
|
|
||||||
|
-- Folding
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
local is_all_folded = false
|
||||||
|
local function toggle_fold()
|
||||||
|
if is_all_folded then
|
||||||
|
vim.opt.foldlevel = 99
|
||||||
|
else
|
||||||
|
vim.opt.foldlevel = 0
|
||||||
|
end
|
||||||
|
is_all_folded = not is_all_folded
|
||||||
|
end
|
||||||
|
vim.api.nvim_set_keymap("n", "<leader>ft", "za", opts) -- toggle fold under cursor
|
||||||
|
vim.keymap.set("n", "<leader>fs", toggle_fold, opts) -- close all folds
|
||||||
|
|
||||||
-- Quickly open some buffers
|
-- Quickly open some buffers
|
||||||
vim.keymap.set('n', '<leader>occ', ':e ~/.config/nvim/init.lua<CR>`.zz')
|
vim.keymap.set('n', '<leader>occ', ':e ~/.config/nvim/init.lua<CR>`.zz')
|
||||||
vim.keymap.set('n', '<leader>oct', ':e ~/synced/vault/contacts/contacts.txt<CR>`.zz')
|
vim.keymap.set('n', '<leader>oct', ':e ~/synced/vault/contacts/contacts.txt<CR>`.zz')
|
||||||
|
|||||||
@@ -16,3 +16,13 @@ vim.g.loaded_netrw = 1
|
|||||||
vim.g.loaded_netrwPlugin = 1
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
|
||||||
vim.opt.signcolumn = "yes"
|
vim.opt.signcolumn = "yes"
|
||||||
|
|
||||||
|
-- Enable Treesitter-based folding
|
||||||
|
vim.opt.foldmethod = "expr"
|
||||||
|
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||||
|
vim.opt.foldlevelstart = 99 -- open all folds by default
|
||||||
|
vim.opt.fillchars = "fold:╌"
|
||||||
|
|
||||||
|
-- 3. Persist folds using mkview/loadview
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
local base_zet = "~/synced/brainstore/zettelkasten"
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
@@ -43,6 +42,8 @@ return {
|
|||||||
'Ascyii/telekasten.nvim',
|
'Ascyii/telekasten.nvim',
|
||||||
dev = true,
|
dev = true,
|
||||||
config = function()
|
config = function()
|
||||||
|
local base_zet = "~/synced/brainstore/zettelkasten"
|
||||||
|
|
||||||
-- Again can only use opts when not using config
|
-- Again can only use opts when not using config
|
||||||
require("telekasten").setup({
|
require("telekasten").setup({
|
||||||
home = vim.fn.expand(base_zet),
|
home = vim.fn.expand(base_zet),
|
||||||
@@ -61,6 +62,7 @@ return {
|
|||||||
uuid_separator = "-",
|
uuid_separator = "-",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Telekasten occupies the z namespace
|
||||||
vim.keymap.set("n", "<leader>z", "<cmd>Telekasten panel<CR>")
|
vim.keymap.set("n", "<leader>z", "<cmd>Telekasten panel<CR>")
|
||||||
vim.keymap.set("n", "<leader>zf", "<cmd>Telekasten find_notes<CR>")
|
vim.keymap.set("n", "<leader>zf", "<cmd>Telekasten find_notes<CR>")
|
||||||
vim.keymap.set("n", "<leader>zg", "<cmd>Telekasten search_notes<CR>")
|
vim.keymap.set("n", "<leader>zg", "<cmd>Telekasten search_notes<CR>")
|
||||||
|
|||||||
@@ -2,13 +2,16 @@ return {
|
|||||||
"nvim-tree/nvim-tree.lua",
|
"nvim-tree/nvim-tree.lua",
|
||||||
keys = {
|
keys = {
|
||||||
{ "<leader>e", function()
|
{ "<leader>e", function()
|
||||||
require("nvim-tree.api").tree.toggle({ find_file = true, update_root = true, focus = true, })
|
require("nvim-tree.api").tree.toggle({
|
||||||
|
find_file = true,
|
||||||
|
update_root = true,
|
||||||
|
focus = true,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
sort_by = "case_sensitive",
|
sort_by = "case_sensitive",
|
||||||
|
|
||||||
view = {
|
view = {
|
||||||
width = 35,
|
width = 35,
|
||||||
side = "right",
|
side = "right",
|
||||||
@@ -19,7 +22,6 @@ return {
|
|||||||
update_focused_file = {
|
update_focused_file = {
|
||||||
enable = false,
|
enable = false,
|
||||||
},
|
},
|
||||||
|
|
||||||
renderer = {
|
renderer = {
|
||||||
group_empty = true,
|
group_empty = true,
|
||||||
highlight_git = true,
|
highlight_git = true,
|
||||||
@@ -39,25 +41,21 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
filters = {
|
filters = {
|
||||||
dotfiles = false,
|
dotfiles = false,
|
||||||
git_clean = false,
|
git_clean = false,
|
||||||
no_buffer = false,
|
no_buffer = false,
|
||||||
custom = { ".git" },
|
custom = { ".git" },
|
||||||
},
|
},
|
||||||
|
|
||||||
git = {
|
git = {
|
||||||
enable = true,
|
enable = true,
|
||||||
ignore = false,
|
ignore = false,
|
||||||
},
|
},
|
||||||
|
|
||||||
actions = {
|
actions = {
|
||||||
open_file = {
|
open_file = {
|
||||||
quit_on_open = false,
|
quit_on_open = false,
|
||||||
resize_window = true,
|
resize_window = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ return {
|
|||||||
no_ignore = true, -- Also show files in gitignore
|
no_ignore = true, -- Also show files in gitignore
|
||||||
follow = true,
|
follow = true,
|
||||||
disable_devicons = true,
|
disable_devicons = true,
|
||||||
prompt_title = "Find Files - custom",
|
prompt_title = "Find Files",
|
||||||
find_command = {
|
find_command = {
|
||||||
"rg", "--files",
|
"rg", "--files",
|
||||||
"--glob", "!**/.git/*",
|
"--glob", "!**/.git/*",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ return {
|
|||||||
ensure_installed = { "typst", "go", "bash", "python", "nix", "lua" },
|
ensure_installed = { "typst", "go", "bash", "python", "nix", "lua" },
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
|
fold = { enable = true },
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
--- @return string
|
local utils = require("utils.functions")
|
||||||
local function get_cwd()
|
|
||||||
local cwd = vim.fn.getcwd()
|
|
||||||
local home = os.getenv("HOME")
|
|
||||||
|
|
||||||
if cwd:sub(1, #home) == home then
|
|
||||||
return "~" .. cwd:sub(#home + 1)
|
|
||||||
else
|
|
||||||
return cwd
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
@@ -21,15 +11,17 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-lualine/lualine.nvim',
|
'nvim-lualine/lualine.nvim',
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
dependencies = {
|
||||||
|
'nvim-tree/nvim-web-devicons'
|
||||||
|
},
|
||||||
opts = {
|
opts = {
|
||||||
options = {
|
options = {
|
||||||
icons_enabled = false,
|
icons_enabled = true,
|
||||||
theme = 'gruvbox',
|
theme = 'gruvbox',
|
||||||
component_separators = { left = '', right = '' },
|
component_separators = { left = '', right = '' },
|
||||||
section_separators = { left = '', right = '' },
|
section_separators = { left = '', right = '' },
|
||||||
always_divide_middle = true,
|
always_divide_middle = true,
|
||||||
always_show_tabline = true,
|
always_show_tabline = false,
|
||||||
globalstatus = false,
|
globalstatus = false,
|
||||||
refresh = {
|
refresh = {
|
||||||
statusline = 300,
|
statusline = 300,
|
||||||
@@ -40,21 +32,12 @@ return {
|
|||||||
sections = {
|
sections = {
|
||||||
lualine_a = { 'mode' },
|
lualine_a = { 'mode' },
|
||||||
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
||||||
lualine_c = { get_cwd, 'filename' },
|
lualine_c = { utils.get_cwd(), 'filename' },
|
||||||
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
||||||
lualine_y = { 'progress' },
|
lualine_y = { 'progress' },
|
||||||
lualine_z = { 'location' }
|
lualine_z = { 'location' }
|
||||||
},
|
},
|
||||||
inactive_sections = {
|
extensions = { "nvim-tree" } -- show another line on the tree
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = { 'filename' },
|
|
||||||
lualine_x = { 'location' },
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {}
|
|
||||||
},
|
|
||||||
extensions = { "nvim-tree" }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
0
lua/utils/after.lua
Normal file
0
lua/utils/after.lua
Normal file
@@ -5,6 +5,18 @@ function M.sleep(n)
|
|||||||
os.execute("sleep " .. tonumber(n))
|
os.execute("sleep " .. tonumber(n))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @return string
|
||||||
|
function M.get_cwd()
|
||||||
|
local cwd = vim.fn.getcwd()
|
||||||
|
local home = os.getenv("HOME")
|
||||||
|
|
||||||
|
if cwd:sub(1, #home) == home then
|
||||||
|
return "~" .. cwd:sub(#home + 1)
|
||||||
|
else
|
||||||
|
return cwd
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--- @return {}
|
--- @return {}
|
||||||
function M.get_lsp_servers()
|
function M.get_lsp_servers()
|
||||||
local servers = { "lua_ls" }
|
local servers = { "lua_ls" }
|
||||||
|
|||||||
Reference in New Issue
Block a user