initial personal commit
This commit is contained in:
parent
5bdde24dfb
commit
9885096f0c
|
|
@ -0,0 +1,5 @@
|
|||
repos:
|
||||
- repo: https://github.com/gitleaks/gitleaks
|
||||
rev: v8.24.2
|
||||
hooks:
|
||||
- id: gitleaks
|
||||
132
init.lua
132
init.lua
|
|
@ -1,89 +1,3 @@
|
|||
--[[
|
||||
|
||||
=====================================================================
|
||||
==================== READ THIS BEFORE CONTINUING ====================
|
||||
=====================================================================
|
||||
======== .-----. ========
|
||||
======== .----------------------. | === | ========
|
||||
======== |.-""""""""""""""""""-.| |-----| ========
|
||||
======== || || | === | ========
|
||||
======== || KICKSTART.NVIM || |-----| ========
|
||||
======== || || | === | ========
|
||||
======== || || |-----| ========
|
||||
======== ||:Tutor || |:::::| ========
|
||||
======== |'-..................-'| |____o| ========
|
||||
======== `"")----------------(""` ___________ ========
|
||||
======== /::::::::::| |::::::::::\ \ no mouse \ ========
|
||||
======== /:::========| |==hjkl==:::\ \ required \ ========
|
||||
======== '""""""""""""' '""""""""""""' '""""""""""' ========
|
||||
======== ========
|
||||
=====================================================================
|
||||
=====================================================================
|
||||
|
||||
What is Kickstart?
|
||||
|
||||
Kickstart.nvim is *not* a distribution.
|
||||
|
||||
Kickstart.nvim is a starting point for your own configuration.
|
||||
The goal is that you can read every line of code, top-to-bottom, understand
|
||||
what your configuration is doing, and modify it to suit your needs.
|
||||
|
||||
Once you've done that, you can start exploring, configuring and tinkering to
|
||||
make Neovim your own! That might mean leaving Kickstart just the way it is for a while
|
||||
or immediately breaking it into modular pieces. It's up to you!
|
||||
|
||||
If you don't know anything about Lua, I recommend taking some time to read through
|
||||
a guide. One possible example which will only take 10-15 minutes:
|
||||
- https://learnxinyminutes.com/docs/lua/
|
||||
|
||||
After understanding a bit more about Lua, you can use `:help lua-guide` as a
|
||||
reference for how Neovim integrates Lua.
|
||||
- :help lua-guide
|
||||
- (or HTML version): https://neovim.io/doc/user/lua-guide.html
|
||||
|
||||
Kickstart Guide:
|
||||
|
||||
TODO: The very first thing you should do is to run the command `:Tutor` in Neovim.
|
||||
|
||||
If you don't know what this means, type the following:
|
||||
- <escape key>
|
||||
- :
|
||||
- Tutor
|
||||
- <enter key>
|
||||
|
||||
(If you already know the Neovim basics, you can skip this step.)
|
||||
|
||||
Once you've completed that, you can continue working through **AND READING** the rest
|
||||
of the kickstart init.lua.
|
||||
|
||||
Next, run AND READ `:help`.
|
||||
This will open up a help window with some basic information
|
||||
about reading, navigating and searching the builtin help documentation.
|
||||
|
||||
This should be the first place you go to look when you're stuck or confused
|
||||
with something. It's one of my favorite Neovim features.
|
||||
|
||||
MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation,
|
||||
which is very useful when you're not exactly sure of what you're looking for.
|
||||
|
||||
I have left several `:help X` comments throughout the init.lua
|
||||
These are hints about where to find more information about the relevant settings,
|
||||
plugins or Neovim features used in Kickstart.
|
||||
|
||||
NOTE: Look for lines like this
|
||||
|
||||
Throughout the file. These are for you, the reader, to help you understand what is happening.
|
||||
Feel free to delete them once you know what you're doing, but they should serve as a guide
|
||||
for when you are first encountering a few different constructs in your Neovim config.
|
||||
|
||||
If you experience any errors while trying to install kickstart, run `:checkhealth` for more info.
|
||||
|
||||
I hope you enjoy your Neovim journey,
|
||||
- TJ
|
||||
|
||||
P.S. You can delete this when you're done too. It's your config now! :)
|
||||
--]]
|
||||
|
||||
-- Set <space> as the leader key
|
||||
-- See `:help mapleader`
|
||||
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
||||
|
|
@ -91,7 +5,7 @@ vim.g.mapleader = ' '
|
|||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = false
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
|
|
@ -102,7 +16,7 @@ vim.g.have_nerd_font = false
|
|||
vim.opt.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- Experiment for yourself to see if you like it!
|
||||
-- vim.opt.relativenumber = true
|
||||
vim.opt.relativenumber = false
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.opt.mouse = 'a'
|
||||
|
|
@ -175,10 +89,10 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
|
|||
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
-- Keybinds to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
|
|
@ -203,6 +117,13 @@ vim.api.nvim_create_autocmd('TextYankPost', {
|
|||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = { 'markdown' },
|
||||
callback = function()
|
||||
vim.wo.conceallevel = 2
|
||||
end,
|
||||
})
|
||||
|
||||
-- [[ Install `lazy.nvim` plugin manager ]]
|
||||
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
|
||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
|
|
@ -628,7 +549,6 @@ require('lazy').setup({
|
|||
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
||||
-- ts_ls = {},
|
||||
--
|
||||
|
||||
lua_ls = {
|
||||
-- cmd = { ... },
|
||||
-- filetypes = { ... },
|
||||
|
|
@ -644,6 +564,28 @@ require('lazy').setup({
|
|||
},
|
||||
},
|
||||
}
|
||||
require('lspconfig').ruff.setup {
|
||||
init_options = {
|
||||
settings = {
|
||||
-- Ruff language server settings go here
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
require('lspconfig').basedpyright.setup {
|
||||
settings = {
|
||||
pyright = {
|
||||
-- Using Ruff's import organizer
|
||||
disableOrganizeImports = true,
|
||||
},
|
||||
python = {
|
||||
analysis = {
|
||||
-- Ignore all files for analysis to exclusively use Ruff for linting
|
||||
ignore = { '*' },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Ensure the servers and tools above are installed
|
||||
--
|
||||
|
|
@ -849,7 +791,7 @@ require('lazy').setup({
|
|||
-- Load the colorscheme here.
|
||||
-- Like many other themes, this one has different styles, and you could load
|
||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||
vim.cmd.colorscheme 'tokyonight-night'
|
||||
vim.cmd.colorscheme 'tokyonight'
|
||||
|
||||
-- You can configure highlights by doing something like:
|
||||
vim.cmd.hi 'Comment gui=none'
|
||||
|
|
@ -942,7 +884,7 @@ require('lazy').setup({
|
|||
-- This is the easiest way to modularize your config.
|
||||
--
|
||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||
-- { import = 'custom.plugins' },
|
||||
{ import = 'custom.plugins' },
|
||||
--
|
||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||
-- Or use telescope!
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
config = true,
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
return {
|
||||
'nvim-zh/better-escape.vim',
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
return {
|
||||
{
|
||||
'CopilotC-Nvim/CopilotChat.nvim',
|
||||
dependencies = {
|
||||
{ 'github/copilot.vim' }, -- or zbirenbaum/copilot.lua
|
||||
{ 'nvim-lua/plenary.nvim', branch = 'master' }, -- for curl, log and async functions
|
||||
},
|
||||
build = 'make tiktoken', -- Only on MacOS or Linux
|
||||
opts = {
|
||||
-- See Configuration section for options
|
||||
},
|
||||
-- See Commands section for default commands if you want to lazy load on them
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
'scottmckendry/cyberdream.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
return {
|
||||
-- Git diff viewer
|
||||
{
|
||||
'sindrets/diffview.nvim',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = function()
|
||||
require('diffview').setup {
|
||||
enhanced_diff_hl = true, -- Highlight word differences within lines
|
||||
view = {
|
||||
default = {
|
||||
layout = 'diff2_horizontal', -- Options: diff2_horizontal, diff2_vertical, diff3_horizontal, diff3_vertical
|
||||
},
|
||||
},
|
||||
file_panel = {
|
||||
win_config = {
|
||||
position = 'left', -- Can be "left", "right", "top", "bottom"
|
||||
width = 35,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
'nvim-flutter/flutter-tools.nvim',
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'stevearc/dressing.nvim', -- optional for vim.ui.select
|
||||
},
|
||||
config = true,
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
return {
|
||||
'obsidian-nvim/obsidian.nvim',
|
||||
version = '*', -- recommended, use latest release instead of latest commit
|
||||
lazy = true,
|
||||
ft = 'markdown',
|
||||
-- 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 = '~/Documents/personal-1',
|
||||
},
|
||||
{
|
||||
name = 'zk',
|
||||
path = '~/zk',
|
||||
},
|
||||
},
|
||||
|
||||
-- see below for full list of options 👇
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open Oil file explorer' })
|
||||
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
---@module 'oil'
|
||||
---@type oil.SetupOpts
|
||||
opts = {},
|
||||
-- Optional dependencies
|
||||
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
|
||||
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
|
||||
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
|
||||
lazy = false,
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
return {
|
||||
'epwalsh/pomo.nvim',
|
||||
version = '*', -- Recommended, use latest release instead of latest commit
|
||||
lazy = true,
|
||||
cmd = { 'TimerStart', 'TimerRepeat', 'TimerSession' },
|
||||
dependencies = {
|
||||
-- Optional, but highly recommended if you want to use the "Default" timer
|
||||
'rcarriga/nvim-notify',
|
||||
},
|
||||
opts = {
|
||||
-- See below for full list of options 👇
|
||||
sessions = {
|
||||
norm = {
|
||||
{ name = 'Work', duration = '24m30s' },
|
||||
{ name = 'Status', duration = '30s' },
|
||||
{ name = 'Short Break', duration = '5m' },
|
||||
{ name = 'Work', duration = '24m30s' },
|
||||
{ name = 'Status', duration = '30s' },
|
||||
{ name = 'Short Break', duration = '5m' },
|
||||
{ name = 'Work', duration = '24m30s' },
|
||||
{ name = 'Status', duration = '30s' },
|
||||
{ name = 'Short Break', duration = '5m' },
|
||||
{ name = 'Work', duration = '24m30s' },
|
||||
{ name = 'Status', duration = '30s' },
|
||||
{ name = 'Long Break', duration = '15m' },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
'mrcjkb/rustaceanvim',
|
||||
version = '^5', -- Recommended
|
||||
lazy = false, -- This plugin is already lazy
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
'sphamba/smear-cursor.nvim',
|
||||
opts = {},
|
||||
}
|
||||
|
|
@ -0,0 +1,546 @@
|
|||
return {
|
||||
'folke/snacks.nvim',
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
toggle = { enabled = true },
|
||||
dim = { enabled = true },
|
||||
lazygit = { enabled = true },
|
||||
bigfile = { enabled = true },
|
||||
dashboard = { enabled = true },
|
||||
explorer = { enabled = true },
|
||||
indent = { enabled = true },
|
||||
input = { enabled = true },
|
||||
notifier = {
|
||||
enabled = true,
|
||||
timeout = 3000,
|
||||
},
|
||||
picker = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
statuscolumn = { enabled = true },
|
||||
words = { enabled = true },
|
||||
styles = {
|
||||
notification = {
|
||||
-- wo = { wrap = true } -- Wrap notifications
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
-- Top Pickers & Explorer
|
||||
{
|
||||
'<leader><space>',
|
||||
function()
|
||||
Snacks.picker.smart()
|
||||
end,
|
||||
desc = 'Smart Find Files',
|
||||
},
|
||||
{
|
||||
'<leader>,',
|
||||
function()
|
||||
Snacks.picker.buffers()
|
||||
end,
|
||||
desc = 'Buffers',
|
||||
},
|
||||
{
|
||||
'<leader>/',
|
||||
function()
|
||||
Snacks.picker.grep()
|
||||
end,
|
||||
desc = 'Grep',
|
||||
},
|
||||
{
|
||||
'<leader>:',
|
||||
function()
|
||||
Snacks.picker.command_history()
|
||||
end,
|
||||
desc = 'Command History',
|
||||
},
|
||||
{
|
||||
'<leader>n',
|
||||
function()
|
||||
Snacks.picker.notifications()
|
||||
end,
|
||||
desc = 'Notification History',
|
||||
},
|
||||
{
|
||||
'<leader>e',
|
||||
function()
|
||||
Snacks.explorer()
|
||||
end,
|
||||
desc = 'File Explorer',
|
||||
},
|
||||
-- find
|
||||
{
|
||||
'<leader>fb',
|
||||
function()
|
||||
Snacks.picker.buffers()
|
||||
end,
|
||||
desc = 'Buffers',
|
||||
},
|
||||
{
|
||||
'<leader>fc',
|
||||
function()
|
||||
Snacks.picker.files { cwd = vim.fn.stdpath 'config' }
|
||||
end,
|
||||
desc = 'Find Config File',
|
||||
},
|
||||
{
|
||||
'<leader>ff',
|
||||
function()
|
||||
Snacks.picker.files()
|
||||
end,
|
||||
desc = 'Find Files',
|
||||
},
|
||||
{
|
||||
'<leader>fg',
|
||||
function()
|
||||
Snacks.picker.git_files()
|
||||
end,
|
||||
desc = 'Find Git Files',
|
||||
},
|
||||
{
|
||||
'<leader>fp',
|
||||
function()
|
||||
Snacks.picker.projects()
|
||||
end,
|
||||
desc = 'Projects',
|
||||
},
|
||||
{
|
||||
'<leader>fr',
|
||||
function()
|
||||
Snacks.picker.recent()
|
||||
end,
|
||||
desc = 'Recent',
|
||||
},
|
||||
-- git
|
||||
{
|
||||
'<leader>gb',
|
||||
function()
|
||||
Snacks.picker.git_branches()
|
||||
end,
|
||||
desc = 'Git Branches',
|
||||
},
|
||||
{
|
||||
'<leader>gl',
|
||||
function()
|
||||
Snacks.picker.git_log()
|
||||
end,
|
||||
desc = 'Git Log',
|
||||
},
|
||||
{
|
||||
'<leader>gL',
|
||||
function()
|
||||
Snacks.picker.git_log_line()
|
||||
end,
|
||||
desc = 'Git Log Line',
|
||||
},
|
||||
{
|
||||
'<leader>gs',
|
||||
function()
|
||||
Snacks.picker.git_status()
|
||||
end,
|
||||
desc = 'Git Status',
|
||||
},
|
||||
{
|
||||
'<leader>gS',
|
||||
function()
|
||||
Snacks.picker.git_stash()
|
||||
end,
|
||||
desc = 'Git Stash',
|
||||
},
|
||||
{
|
||||
'<leader>gd',
|
||||
function()
|
||||
Snacks.picker.git_diff()
|
||||
end,
|
||||
desc = 'Git Diff (Hunks)',
|
||||
},
|
||||
{
|
||||
'<leader>gf',
|
||||
function()
|
||||
Snacks.picker.git_log_file()
|
||||
end,
|
||||
desc = 'Git Log File',
|
||||
},
|
||||
-- Grep
|
||||
{
|
||||
'<leader>sb',
|
||||
function()
|
||||
Snacks.picker.lines()
|
||||
end,
|
||||
desc = 'Buffer Lines',
|
||||
},
|
||||
{
|
||||
'<leader>sB',
|
||||
function()
|
||||
Snacks.picker.grep_buffers()
|
||||
end,
|
||||
desc = 'Grep Open Buffers',
|
||||
},
|
||||
{
|
||||
'<leader>sg',
|
||||
function()
|
||||
Snacks.picker.grep()
|
||||
end,
|
||||
desc = 'Grep',
|
||||
},
|
||||
{
|
||||
'<leader>sw',
|
||||
function()
|
||||
Snacks.picker.grep_word()
|
||||
end,
|
||||
desc = 'Visual selection or word',
|
||||
mode = { 'n', 'x' },
|
||||
},
|
||||
-- search
|
||||
{
|
||||
'<leader>s"',
|
||||
function()
|
||||
Snacks.picker.registers()
|
||||
end,
|
||||
desc = 'Registers',
|
||||
},
|
||||
{
|
||||
'<leader>s/',
|
||||
function()
|
||||
Snacks.picker.search_history()
|
||||
end,
|
||||
desc = 'Search History',
|
||||
},
|
||||
{
|
||||
'<leader>sa',
|
||||
function()
|
||||
Snacks.picker.autocmds()
|
||||
end,
|
||||
desc = 'Autocmds',
|
||||
},
|
||||
{
|
||||
'<leader>sb',
|
||||
function()
|
||||
Snacks.picker.lines()
|
||||
end,
|
||||
desc = 'Buffer Lines',
|
||||
},
|
||||
{
|
||||
'<leader>sc',
|
||||
function()
|
||||
Snacks.picker.command_history()
|
||||
end,
|
||||
desc = 'Command History',
|
||||
},
|
||||
{
|
||||
'<leader>sC',
|
||||
function()
|
||||
Snacks.picker.commands()
|
||||
end,
|
||||
desc = 'Commands',
|
||||
},
|
||||
{
|
||||
'<leader>sd',
|
||||
function()
|
||||
Snacks.picker.diagnostics()
|
||||
end,
|
||||
desc = 'Diagnostics',
|
||||
},
|
||||
{
|
||||
'<leader>sD',
|
||||
function()
|
||||
Snacks.picker.diagnostics_buffer()
|
||||
end,
|
||||
desc = 'Buffer Diagnostics',
|
||||
},
|
||||
{
|
||||
'<leader>sh',
|
||||
function()
|
||||
Snacks.picker.help()
|
||||
end,
|
||||
desc = 'Help Pages',
|
||||
},
|
||||
{
|
||||
'<leader>sH',
|
||||
function()
|
||||
Snacks.picker.highlights()
|
||||
end,
|
||||
desc = 'Highlights',
|
||||
},
|
||||
{
|
||||
'<leader>si',
|
||||
function()
|
||||
Snacks.picker.icons()
|
||||
end,
|
||||
desc = 'Icons',
|
||||
},
|
||||
{
|
||||
'<leader>sj',
|
||||
function()
|
||||
Snacks.picker.jumps()
|
||||
end,
|
||||
desc = 'Jumps',
|
||||
},
|
||||
{
|
||||
'<leader>sk',
|
||||
function()
|
||||
Snacks.picker.keymaps()
|
||||
end,
|
||||
desc = 'Keymaps',
|
||||
},
|
||||
{
|
||||
'<leader>sl',
|
||||
function()
|
||||
Snacks.picker.loclist()
|
||||
end,
|
||||
desc = 'Location List',
|
||||
},
|
||||
{
|
||||
'<leader>sm',
|
||||
function()
|
||||
Snacks.picker.marks()
|
||||
end,
|
||||
desc = 'Marks',
|
||||
},
|
||||
{
|
||||
'<leader>sM',
|
||||
function()
|
||||
Snacks.picker.man()
|
||||
end,
|
||||
desc = 'Man Pages',
|
||||
},
|
||||
{
|
||||
'<leader>sp',
|
||||
function()
|
||||
Snacks.picker.lazy()
|
||||
end,
|
||||
desc = 'Search for Plugin Spec',
|
||||
},
|
||||
{
|
||||
'<leader>sq',
|
||||
function()
|
||||
Snacks.picker.qflist()
|
||||
end,
|
||||
desc = 'Quickfix List',
|
||||
},
|
||||
{
|
||||
'<leader>sR',
|
||||
function()
|
||||
Snacks.picker.resume()
|
||||
end,
|
||||
desc = 'Resume',
|
||||
},
|
||||
{
|
||||
'<leader>su',
|
||||
function()
|
||||
Snacks.picker.undo()
|
||||
end,
|
||||
desc = 'Undo History',
|
||||
},
|
||||
{
|
||||
'<leader>uC',
|
||||
function()
|
||||
Snacks.picker.colorschemes()
|
||||
end,
|
||||
desc = 'Colorschemes',
|
||||
},
|
||||
-- LSP
|
||||
{
|
||||
'gd',
|
||||
function()
|
||||
Snacks.picker.lsp_definitions()
|
||||
end,
|
||||
desc = 'Goto Definition',
|
||||
},
|
||||
{
|
||||
'gD',
|
||||
function()
|
||||
Snacks.picker.lsp_declarations()
|
||||
end,
|
||||
desc = 'Goto Declaration',
|
||||
},
|
||||
{
|
||||
'gr',
|
||||
function()
|
||||
Snacks.picker.lsp_references()
|
||||
end,
|
||||
nowait = true,
|
||||
desc = 'References',
|
||||
},
|
||||
{
|
||||
'gI',
|
||||
function()
|
||||
Snacks.picker.lsp_implementations()
|
||||
end,
|
||||
desc = 'Goto Implementation',
|
||||
},
|
||||
{
|
||||
'gy',
|
||||
function()
|
||||
Snacks.picker.lsp_type_definitions()
|
||||
end,
|
||||
desc = 'Goto T[y]pe Definition',
|
||||
},
|
||||
{
|
||||
'<leader>ss',
|
||||
function()
|
||||
Snacks.picker.lsp_symbols()
|
||||
end,
|
||||
desc = 'LSP Symbols',
|
||||
},
|
||||
{
|
||||
'<leader>sS',
|
||||
function()
|
||||
Snacks.picker.lsp_workspace_symbols()
|
||||
end,
|
||||
desc = 'LSP Workspace Symbols',
|
||||
},
|
||||
-- Other
|
||||
{
|
||||
'<leader>z',
|
||||
function()
|
||||
Snacks.zen()
|
||||
end,
|
||||
desc = 'Toggle Zen Mode',
|
||||
},
|
||||
{
|
||||
'<leader>Z',
|
||||
function()
|
||||
Snacks.zen.zoom()
|
||||
end,
|
||||
desc = 'Toggle Zoom',
|
||||
},
|
||||
{
|
||||
'<leader>.',
|
||||
function()
|
||||
Snacks.scratch()
|
||||
end,
|
||||
desc = 'Toggle Scratch Buffer',
|
||||
},
|
||||
{
|
||||
'<leader>S',
|
||||
function()
|
||||
Snacks.scratch.select()
|
||||
end,
|
||||
desc = 'Select Scratch Buffer',
|
||||
},
|
||||
{
|
||||
'<leader>n',
|
||||
function()
|
||||
Snacks.notifier.show_history()
|
||||
end,
|
||||
desc = 'Notification History',
|
||||
},
|
||||
{
|
||||
'<leader>bd',
|
||||
function()
|
||||
Snacks.bufdelete()
|
||||
end,
|
||||
desc = 'Delete Buffer',
|
||||
},
|
||||
{
|
||||
'<leader>cR',
|
||||
function()
|
||||
Snacks.rename.rename_file()
|
||||
end,
|
||||
desc = 'Rename File',
|
||||
},
|
||||
{
|
||||
'<leader>gB',
|
||||
function()
|
||||
Snacks.gitbrowse()
|
||||
end,
|
||||
desc = 'Git Browse',
|
||||
mode = { 'n', 'v' },
|
||||
},
|
||||
{
|
||||
'<leader>gg',
|
||||
function()
|
||||
Snacks.lazygit()
|
||||
end,
|
||||
desc = 'Lazygit',
|
||||
},
|
||||
{
|
||||
'<leader>un',
|
||||
function()
|
||||
Snacks.notifier.hide()
|
||||
end,
|
||||
desc = 'Dismiss All Notifications',
|
||||
},
|
||||
{
|
||||
'<c-/>',
|
||||
function()
|
||||
Snacks.terminal()
|
||||
end,
|
||||
desc = 'Toggle Terminal',
|
||||
},
|
||||
{
|
||||
'<c-_>',
|
||||
function()
|
||||
Snacks.terminal()
|
||||
end,
|
||||
desc = 'which_key_ignore',
|
||||
},
|
||||
{
|
||||
']]',
|
||||
function()
|
||||
Snacks.words.jump(vim.v.count1)
|
||||
end,
|
||||
desc = 'Next Reference',
|
||||
mode = { 'n', 't' },
|
||||
},
|
||||
{
|
||||
'[[',
|
||||
function()
|
||||
Snacks.words.jump(-vim.v.count1)
|
||||
end,
|
||||
desc = 'Prev Reference',
|
||||
mode = { 'n', 't' },
|
||||
},
|
||||
{
|
||||
'<leader>N',
|
||||
desc = 'Neovim News',
|
||||
function()
|
||||
Snacks.win {
|
||||
file = vim.api.nvim_get_runtime_file('doc/news.txt', false)[1],
|
||||
width = 0.6,
|
||||
height = 0.6,
|
||||
wo = {
|
||||
spell = false,
|
||||
wrap = false,
|
||||
signcolumn = 'yes',
|
||||
statuscolumn = ' ',
|
||||
conceallevel = 3,
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
vim.api.nvim_create_autocmd('User', {
|
||||
pattern = 'VeryLazy',
|
||||
callback = function()
|
||||
-- Setup some globals for debugging (lazy-loaded)
|
||||
_G.dd = function(...)
|
||||
Snacks.debug.inspect(...)
|
||||
end
|
||||
_G.bt = function()
|
||||
Snacks.debug.backtrace()
|
||||
end
|
||||
vim.print = _G.dd -- Override print to use snacks for `:=` command
|
||||
|
||||
-- Create some toggle mappings
|
||||
Snacks.toggle.option('spell', { name = 'Spelling' }):map '<leader>us'
|
||||
Snacks.toggle.option('wrap', { name = 'Wrap' }):map '<leader>uw'
|
||||
Snacks.toggle.option('relativenumber', { name = 'Relative Number' }):map '<leader>uL'
|
||||
Snacks.toggle.diagnostics():map '<leader>ud'
|
||||
Snacks.toggle.line_number():map '<leader>ul'
|
||||
Snacks.toggle.option('conceallevel', { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }):map '<leader>uc'
|
||||
Snacks.toggle.treesitter():map '<leader>uT'
|
||||
Snacks.toggle.option('background', { off = 'light', on = 'dark', name = 'Dark Background' }):map '<leader>ub'
|
||||
Snacks.toggle.inlay_hints():map '<leader>uh'
|
||||
Snacks.toggle.indent():map '<leader>ug'
|
||||
Snacks.toggle.dim():map '<leader>uD'
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
'nvim-telescope/telescope-frecency.nvim',
|
||||
-- install the latest stable version
|
||||
version = '*',
|
||||
config = function()
|
||||
require('telescope').load_extension 'frecency'
|
||||
end,
|
||||
}
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
return {
|
||||
'rachartier/tiny-glimmer.nvim',
|
||||
event = 'VeryLazy',
|
||||
priority = 10,
|
||||
opts = {
|
||||
enabled = true,
|
||||
disable_warnings = true,
|
||||
refresh_interval_ms = 8,
|
||||
overwrite = {
|
||||
auto_map = true,
|
||||
yank = {
|
||||
enabled = true,
|
||||
default_animation = 'fade',
|
||||
},
|
||||
search = {
|
||||
enabled = false,
|
||||
default_animation = 'pulse',
|
||||
next_mapping = 'n',
|
||||
prev_mapping = 'N',
|
||||
},
|
||||
paste = {
|
||||
enabled = true,
|
||||
default_animation = 'reverse_fade',
|
||||
paste_mapping = 'p',
|
||||
Paste_mapping = 'P',
|
||||
},
|
||||
undo = {
|
||||
enabled = false,
|
||||
default_animation = {
|
||||
name = 'fade',
|
||||
settings = {
|
||||
from_color = 'DiffDelete',
|
||||
max_duration = 500,
|
||||
min_duration = 500,
|
||||
},
|
||||
},
|
||||
undo_mapping = 'u',
|
||||
},
|
||||
redo = {
|
||||
enabled = false,
|
||||
default_animation = {
|
||||
name = 'fade',
|
||||
settings = {
|
||||
from_color = 'DiffAdd',
|
||||
max_duration = 500,
|
||||
min_duration = 500,
|
||||
},
|
||||
},
|
||||
redo_mapping = '<c-r>',
|
||||
},
|
||||
},
|
||||
support = {
|
||||
substitute = {
|
||||
enabled = false,
|
||||
default_animation = 'fade',
|
||||
},
|
||||
},
|
||||
presets = {
|
||||
pulsar = {
|
||||
enabled = false,
|
||||
on_events = { 'CursorMoved', 'CmdlineEnter', 'WinEnter' },
|
||||
default_animation = {
|
||||
name = 'fade',
|
||||
settings = {
|
||||
max_duration = 1000,
|
||||
min_duration = 1000,
|
||||
from_color = 'DiffDelete',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
transparency_color = nil,
|
||||
animations = {
|
||||
fade = {
|
||||
max_duration = 400,
|
||||
min_duration = 300,
|
||||
easing = 'outQuad',
|
||||
chars_for_max_duration = 10,
|
||||
from_color = 'Visual',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
reverse_fade = {
|
||||
max_duration = 380,
|
||||
min_duration = 300,
|
||||
easing = 'outBack',
|
||||
chars_for_max_duration = 10,
|
||||
from_color = 'Visual',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
bounce = {
|
||||
max_duration = 500,
|
||||
min_duration = 400,
|
||||
chars_for_max_duration = 20,
|
||||
oscillation_count = 1,
|
||||
from_color = 'Visual',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
left_to_right = {
|
||||
max_duration = 350,
|
||||
min_duration = 350,
|
||||
min_progress = 0.85,
|
||||
chars_for_max_duration = 25,
|
||||
lingering_time = 50,
|
||||
from_color = 'Visual',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
pulse = {
|
||||
max_duration = 600,
|
||||
min_duration = 400,
|
||||
chars_for_max_duration = 15,
|
||||
pulse_count = 2,
|
||||
intensity = 1.2,
|
||||
from_color = 'Visual',
|
||||
to_color = 'Normal',
|
||||
},
|
||||
rainbow = {
|
||||
max_duration = 600,
|
||||
min_duration = 350,
|
||||
chars_for_max_duration = 20,
|
||||
},
|
||||
custom = {
|
||||
max_duration = 350,
|
||||
chars_for_max_duration = 40,
|
||||
color = 'Visual', -- You can replace this with a highlight group or hex
|
||||
effect = function(self, progress)
|
||||
return self.settings.color, progress
|
||||
end,
|
||||
},
|
||||
hijack_ft_disabled = {
|
||||
'alpha',
|
||||
'snacks_dashboard',
|
||||
},
|
||||
},
|
||||
virt_text = {
|
||||
priority = 2048,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
'folke/tokyonight.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
opts = {},
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
'tribela/transparent.nvim',
|
||||
event = 'VimEnter',
|
||||
config = true,
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
return {
|
||||
'folke/trouble.nvim',
|
||||
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||
cmd = 'Trouble',
|
||||
keys = {
|
||||
{
|
||||
'<leader>xx',
|
||||
'<cmd>Trouble diagnostics toggle<cr>',
|
||||
desc = 'Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xX',
|
||||
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
|
||||
desc = 'Buffer Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cs',
|
||||
'<cmd>Trouble symbols toggle focus=false<cr>',
|
||||
desc = 'Symbols (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cl',
|
||||
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
|
||||
desc = 'LSP Definitions / references / ... (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xL',
|
||||
'<cmd>Trouble loclist toggle<cr>',
|
||||
desc = 'Location List (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xQ',
|
||||
'<cmd>Trouble qflist toggle<cr>',
|
||||
desc = 'Quickfix List (Trouble)',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
'nvzone/typr',
|
||||
dependencies = 'nvzone/volt',
|
||||
opts = {},
|
||||
cmd = { 'Typr', 'TyprStats' },
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
return {
|
||||
'tummetott/unimpaired.nvim',
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
-- add options here if you wish to override the default settings
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
return {
|
||||
'letieu/wezterm-move.nvim',
|
||||
keys = { -- Lazy loading, don't need call setup() function
|
||||
{
|
||||
'<C-h>',
|
||||
function()
|
||||
require('wezterm-move').move 'h'
|
||||
end,
|
||||
},
|
||||
{
|
||||
'<C-j>',
|
||||
function()
|
||||
require('wezterm-move').move 'j'
|
||||
end,
|
||||
},
|
||||
{
|
||||
'<C-k>',
|
||||
function()
|
||||
require('wezterm-move').move 'k'
|
||||
end,
|
||||
},
|
||||
{
|
||||
'<C-l>',
|
||||
function()
|
||||
require('wezterm-move').move 'l'
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
return {
|
||||
{ -- Add indentation guides even on blank lines
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
-- Enable `lukas-reineke/indent-blankline.nvim`
|
||||
-- See `:help ibl`
|
||||
main = 'ibl',
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
Loading…
Reference in New Issue