added auto-session support

This commit is contained in:
Nareshkumar Rao 2025-05-16 14:03:39 +02:00
parent fca859c4cb
commit 78c1905cab
5 changed files with 188 additions and 149 deletions

1
after/plugin/session.lua Normal file
View File

@ -0,0 +1 @@
vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"

View File

@ -2,5 +2,6 @@ local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>pf', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<C-p>', builtin.git_files, {})
vim.keymap.set('n', '<leader>ps', function()
builtin.grep_string({ search = vim.fn.input("Grep > ") })
-- builtin.grep_string({ search = vim.fn.input("Grep > ") })
builtin.live_grep()
end)

View File

@ -1,4 +1,5 @@
{
"auto-session": { "branch": "main", "commit": "00334ee24b9a05001ad50221c8daffbeedaa0842" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
@ -6,13 +7,16 @@
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"conform.nvim": { "branch": "master", "commit": "2b2b30260203af3b93a7470ac6c8457ddd6e32d9" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" },
"mason.nvim": { "branch": "main", "commit": "888d6ee499d8089a3a4be4309d239d6be1c1e6c0" },
"none-ls.nvim": { "branch": "main", "commit": "90e4a27ccaa25979a6b732b9f06dfa43b54957b7" },
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-lspconfig": { "branch": "master", "commit": "ac1dfbe3b60e5e23a2cff90e3bd6a3bc88031a57" },
"nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" },
"nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-web-devicons": { "branch": "master", "commit": "d360317f8f509b99229bb31d42269987696df6ff" },
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
"outline.nvim": { "branch": "main", "commit": "321f89ef79f168a78685f70d70c52d0e7b563abb" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },

View File

@ -1,6 +1,5 @@
local function config_lsp()
vim.lsp.enable("rust_analyzer")
vim.lsp.enable("lua_ls")
end
return {
@ -8,17 +7,17 @@ return {
"neovim/nvim-lspconfig",
lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-vsnip',
'hrsh7th/vim-vsnip'
"neovim/nvim-lspconfig",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/nvim-cmp",
"hrsh7th/cmp-vsnip",
"hrsh7th/vim-vsnip",
},
config = function()
local cmp = require'cmp'
local cmp = require("cmp")
cmp.setup({
snippet = {
@ -42,21 +41,21 @@ return {
-- documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'vsnip' }, -- For vsnip users.
{ name = "nvim_lsp" },
{ name = "vsnip" }, -- For vsnip users.
-- { name = 'luasnip' }, -- For luasnip users.
-- { name = 'ultisnips' }, -- For ultisnips users.
-- { name = 'snippy' }, -- For snippy users.
}, {
{ name = 'buffer' },
})
{ name = "buffer" },
}),
})
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
@ -68,27 +67,28 @@ return {
{ name = 'buffer' },
})
})
require("cmp_git").setup() ]]--
require("cmp_git").setup() ]]
--
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
cmp.setup.cmdline({ "/", "?" }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
{ name = "buffer" },
},
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
{ name = "path" },
}, {
{ name = 'cmdline' }
{ name = "cmdline" },
}),
matching = { disallow_symbol_nonprefix_matching = false }
matching = { disallow_symbol_nonprefix_matching = false },
})
config_lsp()
end
}
end,
},
}

View File

@ -1,11 +1,11 @@
return {
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-lua/plenary.nvim" }
dependencies = { "nvim-lua/plenary.nvim" },
},
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate"
build = ":TSUpdate",
},
{ "mbbill/undotree" },
{ "tpope/vim-fugitive" },
@ -18,43 +18,60 @@ return {
"<leader>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
}
}
},
},
},
{
"nvim-tree/nvim-tree.lua",
version = "*",
lazy = false,
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
require("nvim-tree").setup {
update_focused_file = { enable = true }
}
end,
cmd = {
"NvimTreeToggle",
},
opts = {
update_focused_file = { enable = true },
},
},
{
"mason-org/mason.nvim"
"mason-org/mason.nvim",
opts = {},
},
{
"mason-org/mason-lspconfig.nvim",
opts = {
automatic_enable = true,
ensure_installed = { "lua_ls", "ts_ls" },
},
},
{
"jay-babu/mason-null-ls.nvim",
dependencies = {
"mason-org/mason.nvim",
"nvimtools/none-ls.nvim",
},
opts = { ensure_installed = { "prettier", "stylua" } },
},
{
"hedyhli/outline.nvim",
config = function()
-- Example mapping to toggle outline
vim.keymap.set("n", "<leader>o", "<cmd>Outline<CR>",
{ desc = "Toggle Outline" })
vim.keymap.set("n", "<leader>o", "<cmd>Outline<CR>", { desc = "Toggle Outline" })
require("outline").setup {
require("outline").setup({
-- Your setup opts here (leave empty to use defaults)
}
})
end,
},
{
'stevearc/conform.nvim',
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
typescript = { "prettier" },
jsx = { "prettier" },
lua = { "stylua" },
rust = { "rustfmt", lsp_format = "fallback" }
rust = { "rustfmt", lsp_format = "fallback" },
},
format_on_save = {
timeout_ms = 500,
@ -63,10 +80,26 @@ return {
},
},
{
'windwp/nvim-autopairs',
"windwp/nvim-autopairs",
event = "InsertEnter",
config = true
config = true,
-- use opts = {} for passing setup options
-- this is equivalent to setup({}) function
}
},
{
"rmagatti/auto-session",
lazy = false,
opts = {
suppressed_dirs = { "~/", "~/Downloads", "/" },
post_restore_cmds = {
function()
-- Restore nvim-tree after a session is restored
local nvim_tree_api = require("nvim-tree.api")
nvim_tree_api.tree.open()
nvim_tree_api.tree.change_root(vim.fn.getcwd())
nvim_tree_api.tree.reload()
end,
},
},
},
}