Compare commits

...
Sign in to create a new pull request.

3 commits

20 changed files with 543 additions and 595 deletions

View file

@ -7,38 +7,3 @@ require("pika.lazy")
-- ╰──────────────────────────────────────────────────────╯
vim.cmd.colorscheme("oldschool")
-- Keybind for saving clipboard screenshot and inserting a Markdown link
vim.api.nvim_set_keymap("n", "<leader>ps", ":lua SaveScreenshotAndInsertLink()<CR>", { noremap = true, silent = true })
function SaveScreenshotAndInsertLink()
-- Prompt for Hugo base directory if needed
-- Define the Hugo base directory and screenshot subfolder path
local base_dir
local current_file_dir = vim.fn.expand("%:p:h")
-- Detect base dir by looking for the Hugo structure, or prompt if not found
if current_file_dir:match("/content/") then
base_dir = current_file_dir:match("(.*)/content/")
else
-- Prompt for Hugo base directory if automatic detection fails
base_dir = vim.fn.input("Enter base directory of your Hugo site: ", "", "file")
end
local img_folder = base_dir .. "/static/images/screenshots/"
vim.fn.mkdir(img_folder, "p") -- Ensure the directory exists
-- Define the image name and full path
local img_name = os.date("%Y-%m-%d_%H-%M-%S") .. ".png"
local full_path = img_folder .. img_name
-- Save clipboard image as binary PNG file using wl-paste
os.execute("wl-paste --type image/png > " .. full_path)
-- Insert markdown image link at cursor position
local img_markdown = "![](/images/screenshots/" .. img_name .. ")\n"
vim.api.nvim_put({ img_markdown }, "c", true, true)
print("Screenshot saved and link added: " .. full_path)
end

View file

@ -16,10 +16,6 @@ map("n", "<Esc>", "<cmd>nohlsearch<CR>")
map("n", "<S-c>", "gcc", { desc = "comment toggle", remap = true })
map("v", "<S-c>", "gc", { desc = "comment toggle", remap = true })
-- ─< cmd line >────────────────────────────────────────────────────────────────────────
vim.api.nvim_set_keymap("n", ":", "<cmd>FineCmdline<CR>", { noremap = true })
map("n", "T", "<cmd>FineCmdline<CR>")
-- ─< Terminal >────────────────────────────────────────────────────────────────────────
map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" })

View file

@ -1,30 +0,0 @@
return {
"windwp/nvim-autopairs",
event = { "InsertEnter" },
dependencies = {
"hrsh7th/nvim-cmp",
},
config = function()
-- import nvim-autopairs
local autopairs = require("nvim-autopairs")
-- configure autopairs
autopairs.setup({
check_ts = true, -- enable treesitter
ts_config = {
lua = { "string" }, -- don't add pairs in lua string treesitter nodes
javascript = { "template_string" }, -- don't add pairs in javascript template_string treesitter nodes
java = false, -- don't check treesitter on java
},
})
-- import nvim-autopairs completion functionality
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
-- import nvim-cmp plugin (completions plugin)
local cmp = require("cmp")
-- make autopairs and completion work together
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
}

View file

@ -1,59 +0,0 @@
return {
"yetone/avante.nvim",
event = "VeryLazy",
version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes.
opts = {
-- add any opts here
-- for example
provider = "openai",
openai = {
endpoint = "https://api.openai.com/v1",
model = "gpt-4o", -- your desired model (or use gpt-4o, etc.)
timeout = 30000, -- timeout in milliseconds
temperature = 0, -- adjust if needed
max_tokens = 4096,
-- reasoning_effort = "high" -- only supported for reasoning models (o1, etc.)
},
},
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
build = "make",
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
dependencies = {
"nvim-treesitter/nvim-treesitter",
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
--- The below dependencies are optional,
"echasnovski/mini.pick", -- for file_selector provider mini.pick
"nvim-telescope/telescope.nvim", -- for file_selector provider telescope
"hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions
"ibhagwan/fzf-lua", -- for file_selector provider fzf
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
"zbirenbaum/copilot.lua", -- for providers='copilot'
{
-- support for image pasting
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
{
-- Make sure to set this up properly if you have lazy=true
"MeanderingProgrammer/render-markdown.nvim",
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
},
}

View file

@ -1,55 +0,0 @@
return {
"utilyre/barbecue.nvim",
name = "barbecue",
version = "*",
dependencies = {
"SmiteshP/nvim-navic",
"echasnovski/mini.icons", -- optional dependency
},
opts = {
theme = {
-- this highlight is used to override other highlights
-- you can take advantage of its `bg` and set a background throughout your winbar
-- (e.g. basename will look like this: { fg = "#c0caf5", bold = true })
normal = { fg = "#c0caf5" },
-- these highlights correspond to symbols table from config
ellipsis = { fg = "#737aa2" },
separator = { fg = "#737aa2" },
modified = { fg = "#737aa2" },
-- these highlights represent the _text_ of three main parts of barbecue
dirname = { fg = "#737aa2" },
basename = { bold = true },
context = {},
-- these highlights are used for context/navic icons
context_file = { fg = "#ac8fe4" },
context_module = { fg = "#ac8fe4" },
context_namespace = { fg = "#ac8fe4" },
context_package = { fg = "#ac8fe4" },
context_class = { fg = "#ac8fe4" },
context_method = { fg = "#ac8fe4" },
context_property = { fg = "#ac8fe4" },
context_field = { fg = "#ac8fe4" },
context_constructor = { fg = "#ac8fe4" },
context_enum = { fg = "#ac8fe4" },
context_interface = { fg = "#ac8fe4" },
context_function = { fg = "#ac8fe4" },
context_variable = { fg = "#ac8fe4" },
context_constant = { fg = "#ac8fe4" },
context_string = { fg = "#ac8fe4" },
context_number = { fg = "#ac8fe4" },
context_boolean = { fg = "#ac8fe4" },
context_array = { fg = "#ac8fe4" },
context_object = { fg = "#ac8fe4" },
context_key = { fg = "#ac8fe4" },
context_null = { fg = "#ac8fe4" },
context_enum_member = { fg = "#ac8fe4" },
context_struct = { fg = "#ac8fe4" },
context_event = { fg = "#ac8fe4" },
context_operator = { fg = "#ac8fe4" },
context_type_parameter = { fg = "#ac8fe4" },
},
},
}

View file

@ -1,49 +0,0 @@
return {
"akinsho/bufferline.nvim",
dependencies = { "echasnovski/mini.icons" },
version = "*",
opts = {
options = {
diagnostics = "nvim_lsp",
diagnostics_update_on_event = true, -- use nvim's diagnostic handler
diagnostics_indicator = function(count, level)
local icon = level:match("error") and "" or ""
return " " .. icon .. count
end,
offsets = { { filetype = "neo-tree", text = "File Explorer", highlight = "Directory" } },
-- ─< style >───────────────────────────────────────────────────────────────────────────
indicator = {
icon = "", -- this should be omitted if indicator style is not 'icon'
style = "icon",
},
move_wraps_at_ends = true, -- whether or not the move command "wraps" at the first or last position
separator_style = "slope",
-- ─< icons >───────────────────────────────────────────────────────────────────────────
modified_icon = "󱞇",
left_trunc_marker = "󰬩",
right_trunc_marker = "󰬫",
themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default
close_icon = "󱄊",
buffer_close_icon = "󱄊",
show_buffer_icons = true, -- disable filetype icons for buffers
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
hover = {
enabled = true,
delay = 80,
reveal = { "close" },
hide = { "nvim_lsp" },
},
-- You can set buffer_mode to "list" or "tabbed" based on your preference.
buffer_mode = "list",
color_icons = true, -- whether or not to add the filetype icon highlights
},
},
config = function(_, opts)
require("bufferline").setup(opts)
-- Remap the tab key for buffer navigation (you can adjust the keys as needed)
vim.keymap.set("n", "<Tab>", "<cmd>BufferLineCycleNext<CR>")
vim.keymap.set("n", "<S-Tab>", "<cmd>BufferLineCyclePrev<CR>")
end,
}

View file

@ -1,41 +0,0 @@
return {
"VonHeikemen/fine-cmdline.nvim",
dependencies = {
{ "MunifTanjim/nui.nvim" },
},
config = function()
require("fine-cmdline").setup({
cmdline = {
enable_keymaps = true,
smart_history = true,
prompt = "",
},
popup = {
position = {
row = "10%",
col = "50%",
},
size = {
width = "60%",
},
border = {
style = "rounded",
},
win_options = {
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
},
},
hooks = {
before_mount = function(input)
-- code
end,
after_mount = function(input)
-- code
end,
set_keymaps = function(imap, feedkeys)
-- code
end,
},
})
end,
}

View file

@ -1,72 +0,0 @@
return {
-- {
-- 'norcalli/nvim-colorizer.lua',
-- opts = {
-- 'css',
-- 'html',
-- 'php',
-- 'bash',
-- 'fish',
-- 'lua',
-- 'toml',
-- html = {
-- mode = 'foreground',
-- },
-- },
-- },
"brenoprata10/nvim-highlight-colors",
opts = {
---Render style
---@usage 'background'|'foreground'|'virtual'
render = "background",
---Set virtual symbol (requires render to be set to 'virtual')
virtual_symbol = "",
---Set virtual symbol suffix (defaults to '')
virtual_symbol_prefix = "",
---Set virtual symbol suffix (defaults to ' ')
virtual_symbol_suffix = " ",
---Set virtual symbol position()
---@usage 'inline'|'eol'|'eow'
---inline mimics VS Code style
---eol stands for `end of column` - Recommended to set `virtual_symbol_suffix = ''` when used.
---eow stands for `end of word` - Recommended to set `virtual_symbol_prefix = ' ' and virtual_symbol_suffix = ''` when used.
virtual_symbol_position = "inline",
---Highlight hex colors, e.g. '#FFFFFF'
enable_hex = true,
---Highlight short hex colors e.g. '#fff'
enable_short_hex = true,
---Highlight rgb colors, e.g. 'rgb(0 0 0)'
enable_rgb = true,
---Highlight hsl colors, e.g. 'hsl(150deg 30% 40%)'
enable_hsl = true,
---Highlight CSS variables, e.g. 'var(--testing-color)'
enable_var_usage = true,
---Highlight named colors, e.g. 'green'
enable_named_colors = true,
---Highlight tailwind colors, e.g. 'bg-blue-500'
enable_tailwind = false,
---Set custom colors
---Label must be properly escaped with '%' to adhere to `string.gmatch`
--- :help string.gmatch
custom_colors = {
{ label = "%-%-theme%-primary%-color", color = "#0f1219" },
{ label = "%-%-theme%-secondary%-color", color = "#5a5d64" },
},
-- Exclude filetypes or buftypes from highlighting e.g. 'exclude_buftypes = {'text'}'
exclude_filetypes = {},
exclude_buftypes = {},
},
}

View file

@ -10,20 +10,7 @@ return {
{ "eldritch-theme/eldritch.nvim" },
-- { "sainnhe/sonokai" },
{ "samharju/synthweave.nvim" },
{ "sainnhe/gruvbox-material" },
{ "pauchiner/pastelnight.nvim" },
{ "ptdewey/darkearth-nvim" },
{ "marko-cerovac/material.nvim" },
-- {
-- "ferdinandrau/lavish.nvim",
-- opts = {
-- style = {
-- italic_comments = false,
-- italic_strings = false,
-- transparent = false,
-- },
-- },
-- },
{
"neko-night/nvim",
lazy = false,
@ -44,16 +31,6 @@ return {
},
},
},
{
"scottmckendry/cyberdream.nvim",
name = "cyberdream",
lazy = false,
opts = {
transparent = true,
hide_fillchars = true,
terminal_colors = true,
},
},
{
"ribru17/bamboo.nvim",
opts = {

View file

@ -1,40 +0,0 @@
return {
"LudoPinelli/comment-box.nvim",
lazy = false,
opts = {
comment_style = "line",
doc_width = 90, -- width of the document
box_width = 75, -- width of the boxes
line_width = 120, -- width of the lines
},
-- ─< Comment-Box mappings >────────────────────────────────────────────────────────────
vim.keymap.set("n", "<leader>cd", "<Cmd>CBd<CR>", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" }),
vim.keymap.set("v", "<leader>cd", "<Cmd>CBd<CR>", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" }),
vim.keymap.set("n", "<leader>cy", "<Cmd>CBy<CR>", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" }),
vim.keymap.set("v", "<leader>cy", "<Cmd>CBy<CR>", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" }),
vim.keymap.set("n", "<leader>cb", "<Cmd>CBlabox1<CR>", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" }),
vim.keymap.set("v", "<leader>cb", "<Cmd>CBlabox1<CR>", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" }),
vim.keymap.set(
"n",
"<leader>cB",
"<Cmd>CBcabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" }
),
vim.keymap.set(
"v",
"<leader>cB",
"<Cmd>CBcabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" }
),
vim.keymap.set("n", "<leader>cc", "<Cmd>CBllbox14<CR>", { noremap = true, silent = true, desc = "[c]reate [c]omment" }),
vim.keymap.set("v", "<leader>cc", "<Cmd>CBllbox14<CR>", { noremap = true, silent = true, desc = "[c]reate [c]omment" }),
vim.keymap.set("n", "<leader>cC", "<Cmd>CBclbox14<CR>", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" }),
vim.keymap.set("v", "<leader>cC", "<Cmd>CBclbox14<CR>", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" }),
vim.keymap.set("n", "<leader>cl", "<Cmd>CBllline8<CR>", { noremap = true, silent = true, desc = "[c]reate comment [l]ine" }),
vim.keymap.set("n", "<leader>cL", "<Cmd>CBlcline8<CR>", { noremap = true, silent = true, desc = "[c]reate comment [L]ine" }),
}

View file

@ -1,19 +0,0 @@
return {
"numToStr/Comment.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"JoosepAlviste/nvim-ts-context-commentstring",
},
config = function()
-- import comment plugin safely
local comment = require("Comment")
local ts_context_commentstring = require("ts_context_commentstring.integrations.comment_nvim")
-- enable comment
comment.setup({
-- for commenting tsx, jsx, svelte, html files
pre_hook = ts_context_commentstring.create_pre_hook(),
})
end,
}

View file

@ -1,15 +0,0 @@
return {
"folke/flash.nvim",
event = "VeryLazy",
vscode = true,
-- @type Flash.Config
opts = {},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
{ "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
}

View file

@ -1,22 +0,0 @@
return {
"MagicDuck/grug-far.nvim",
opts = { headerMaxWidth = 80 },
cmd = "GrugFar",
keys = {
{
"<leader>sr",
function()
local grug = require("grug-far")
local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")
grug.grug_far({
transient = true,
prefills = {
filesFilter = ext and ext ~= "" and "*." .. ext or nil,
},
})
end,
mode = { "n", "v" },
desc = "Search and Replace",
},
},
}

View file

@ -1,13 +0,0 @@
return {
"lukas-reineke/indent-blankline.nvim",
event = { "BufReadPre", "BufNewFile" },
main = "ibl",
opts = {
indent = {
char = "",
tab_char = "",
-- char = "│",
-- tab_char = "│",
},
},
}

View file

@ -1,29 +0,0 @@
return {
"rcarriga/nvim-notify",
config = function()
require("notify").setup({
stages = "slide",
background_colour = "FloatShadow",
max_width = 120,
timeout = 2750,
render = "wrapped-compact",
-- Minimum/Maximum width for notification windows
minimum_width = 30,
maximum_width = 120,
-- Function called when a new window is opened, use for changing win settings/config
on_open = nil,
-- Function called when a window is closed
on_close = nil,
icons = {
ERROR = "", -- alternate symbol 
WARN = "",
INFO = "",
DEBUG = "",
TRACE = "",
},
})
vim.notify = require("notify")
end,
}

263
lua/pika/plugins/qol.lua Normal file
View file

@ -0,0 +1,263 @@
return {
-- ╭───────────╮
-- │ autopairs │
-- ╰───────────╯
{
"windwp/nvim-autopairs",
event = { "InsertEnter" },
dependencies = {
"hrsh7th/nvim-cmp",
},
config = function()
-- import nvim-autopairs
local autopairs = require("nvim-autopairs")
-- configure autopairs
autopairs.setup({
check_ts = true, -- enable treesitter
ts_config = {
lua = { "string" }, -- don't add pairs in lua string treesitter nodes
javascript = { "template_string" }, -- don't add pairs in javascript template_string treesitter nodes
java = false, -- don't check treesitter on java
},
})
-- import nvim-autopairs completion functionality
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
-- import nvim-cmp plugin (completions plugin)
local cmp = require("cmp")
-- make autopairs and completion work together
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
},
-- ╭─────────────────────────────────────╮
-- │ ╭───────────────╮ │
-- │ │ comment boxes │<- yes, those ones │
-- │ ╰───────────────╯ │
-- ╰─────────────────────────────────────╯
{
"LudoPinelli/comment-box.nvim",
lazy = false,
opts = {
comment_style = "line",
doc_width = 90, -- width of the document
box_width = 75, -- width of the boxes
line_width = 120, -- width of the lines
},
-- ───────────────────────────────< keymaps - commentboxes >───────────────────────────────
vim.keymap.set(
"n",
"<leader>cd",
"<Cmd>CBd<CR>",
{ noremap = true, silent = true, desc = "[c]ommentbox [d]elete" }
),
vim.keymap.set(
"v",
"<leader>cd",
"<Cmd>CBd<CR>",
{ noremap = true, silent = true, desc = "[c]ommentbox [d]elete" }
),
vim.keymap.set(
"n",
"<leader>cy",
"<Cmd>CBy<CR>",
{ noremap = true, silent = true, desc = "[y]ank content of Commentbox" }
),
vim.keymap.set(
"v",
"<leader>cy",
"<Cmd>CBy<CR>",
{ noremap = true, silent = true, desc = "[y]ank content of Commentbox" }
),
vim.keymap.set(
"n",
"<leader>cb",
"<Cmd>CBlabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox" }
),
vim.keymap.set(
"v",
"<leader>cb",
"<Cmd>CBlabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox" }
),
vim.keymap.set(
"n",
"<leader>cB",
"<Cmd>CBcabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" }
),
vim.keymap.set(
"v",
"<leader>cB",
"<Cmd>CBcabox1<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" }
),
vim.keymap.set(
"n",
"<leader>cc",
"<Cmd>CBllbox14<CR>",
{ noremap = true, silent = true, desc = "[c]reate [c]omment" }
),
vim.keymap.set(
"v",
"<leader>cc",
"<Cmd>CBllbox14<CR>",
{ noremap = true, silent = true, desc = "[c]reate [c]omment" }
),
vim.keymap.set(
"n",
"<leader>cC",
"<Cmd>CBclbox14<CR>",
{ noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" }
),
vim.keymap.set(
"v",
"<leader>cC",
"<Cmd>CBclbox14<CR>",
{ noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" }
),
vim.keymap.set(
"n",
"<leader>cl",
"<Cmd>CBllline8<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [l]ine" }
),
vim.keymap.set(
"n",
"<leader>cL",
"<Cmd>CBlcline8<CR>",
{ noremap = true, silent = true, desc = "[c]reate comment [L]ine" }
),
},
-- ╭───────────╮
-- │ colorizer │
-- ╰───────────╯
{
"brenoprata10/nvim-highlight-colors",
opts = {
---Render style
---@usage 'background'|'foreground'|'virtual'
render = "background",
---Set virtual symbol (requires render to be set to 'virtual')
virtual_symbol = "",
---Set virtual symbol suffix (defaults to '')
virtual_symbol_prefix = "",
---Set virtual symbol suffix (defaults to ' ')
virtual_symbol_suffix = " ",
---Set virtual symbol position()
---@usage 'inline'|'eol'|'eow'
---inline mimics VS Code style
---eol stands for `end of column` - Recommended to set `virtual_symbol_suffix = ''` when used.
---eow stands for `end of word` - Recommended to set `virtual_symbol_prefix = ' ' and virtual_symbol_suffix = ''` when used.
virtual_symbol_position = "inline",
---Highlight hex colors, e.g. '#FFFFFF'
enable_hex = true,
---Highlight short hex colors e.g. '#fff'
enable_short_hex = true,
---Highlight rgb colors, e.g. 'rgb(0 0 0)'
enable_rgb = true,
---Highlight hsl colors, e.g. 'hsl(150deg 30% 40%)'
enable_hsl = true,
---Highlight CSS variables, e.g. 'var(--testing-color)'
enable_var_usage = true,
---Highlight named colors, e.g. 'green'
enable_named_colors = true,
---Highlight tailwind colors, e.g. 'bg-blue-500'
enable_tailwind = false,
---Set custom colors
---Label must be properly escaped with '%' to adhere to `string.gmatch`
--- :help string.gmatch
custom_colors = {
{ label = "%-%-theme%-primary%-color", color = "#0f1219" },
{ label = "%-%-theme%-secondary%-color", color = "#5a5d64" },
},
-- Exclude filetypes or buftypes from highlighting e.g. 'exclude_buftypes = {'text'}'
exclude_filetypes = {},
exclude_buftypes = {},
},
},
-- ╭──────────────────────────────────────╮
-- │ flash - to navigate more efficiently │
-- ╰──────────────────────────────────────╯
{
"folke/flash.nvim",
event = "VeryLazy",
vscode = true,
-- @type Flash.Config
opts = {},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
{ "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
},
-- ╭──────────────────────────────╮
-- │ renaming (also project wide) │
-- ╰──────────────────────────────╯
{
"MagicDuck/grug-far.nvim",
opts = { headerMaxWidth = 80 },
cmd = "GrugFar",
-- ────────────────────────────────────< keybindings >─────────────────────────────────
keys = {
{
"<leader>sr",
function()
local grug = require("grug-far")
local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")
grug.grug_far({
transient = true,
prefills = {
filesFilter = ext and ext ~= "" and "*." .. ext or nil,
},
})
end,
mode = { "n", "v" },
desc = "Search and Replace",
},
},
},
-- ╭──────────╮
-- │ snippets │
-- ╰──────────╯
{
{
"chrisgrieser/nvim-scissors",
lazy = false,
dependencies = { "nvim-telescope/telescope.nvim", "garymjr/nvim-snippets" },
opts = {
snippetDir = "~/.config/nvim/snippets", -- <- i have this as a submodule in my neovim config to have a seperate repo https://git.k4li.de/dotfiles/nvim-snippets.git
},
},
-- ──────────────────────────< keybindings for snippets engine >───────────────────────
vim.keymap.set("n", "<leader>sm", "<CMD>:ScissorsEditSnippet<cr>"),
vim.keymap.set("v", "<leader>sa", "<CMD>:ScissorsAddNewSnippet<cr>"),
},
}

View file

@ -1,12 +0,0 @@
return {
{
"chrisgrieser/nvim-scissors",
lazy = false,
dependencies = { "nvim-telescope/telescope.nvim", "garymjr/nvim-snippets" },
opts = {
snippetDir = "~/.config/nvim/snippets",
},
},
vim.keymap.set("n", "<leader>sm", "<CMD>:ScissorsEditSnippet<cr>"),
vim.keymap.set("v", "<leader>sa", "<CMD>:ScissorsAddNewSnippet<cr>"),
}

View file

@ -1,64 +0,0 @@
return {
-- Calls `require('slimline').setup({})`
"sschleemilch/slimline.nvim",
opts = {
bold = true, -- makes primary parts and mode bold
verbose_mode = false, -- Mode as single letter or as a word
style = "bg", -- or "fg". Whether highlights should be applied to bg or fg of components
mode_follow_style = true, -- Whether the mode color components should follow the style option
components = { -- Choose components and their location
left = {
"mode",
-- "path",
-- "git",
},
center = {
"path",
"git",
},
right = {
"diagnostics",
"filetype_lsp",
"progress",
},
},
spaces = {
components = " ", -- string between components
left = " ", -- string at the start of the line
right = " ", -- string at the end of the line
},
sep = {
hide = {
first = false, -- hides the first separator
last = false, -- hides the last separator
},
left = "", -- left separator of components
right = "", -- right separator of components
},
hl = {
modes = {
normal = "Type", -- highlight base of modes
insert = "Function",
pending = "Boolean",
visual = "Keyword",
command = "String",
},
base = "Comment", -- highlight of everything in in between components
primary = "Normal", -- highlight of primary parts (e.g. filename)
secondary = "Comment", -- highlight of secondary parts (e.g. filepath)
},
icons = {
diagnostics = {
ERROR = "",
WARN = "",
HINT = "",
INFO = "",
},
git = {
branch = "",
},
folder = "",
lines = "",
},
},
}

280
lua/pika/plugins/ui.lua Normal file
View file

@ -0,0 +1,280 @@
return {
-- ╭───────────────────────────────────────╮
-- │ bufferline - for mistakes and stuff.. │
-- ╰───────────────────────────────────────╯
{
"akinsho/bufferline.nvim",
dependencies = { "echasnovski/mini.icons" },
version = "*",
opts = {
options = {
diagnostics = "nvim_lsp",
diagnostics_update_on_event = true, -- use nvim's diagnostic handler
diagnostics_indicator = function(count, level)
local icon = level:match("error") and "" or ""
return " " .. icon .. count
end,
offsets = { { filetype = "neo-tree", text = "File Explorer", highlight = "Directory" } },
-- ─< style >───────────────────────────────────────────────────────────────────────────
indicator = {
icon = "", -- this should be omitted if indicator style is not 'icon'
style = "icon",
},
move_wraps_at_ends = true, -- whether or not the move command "wraps" at the first or last position
separator_style = "slope",
-- ─< icons >───────────────────────────────────────────────────────────────────────────
modified_icon = "󱞇",
left_trunc_marker = "󰬩",
right_trunc_marker = "󰬫",
themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default
close_icon = "󱄊",
buffer_close_icon = "󱄊",
show_buffer_icons = true, -- disable filetype icons for buffers
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
hover = {
enabled = true,
delay = 80,
reveal = { "close" },
hide = { "nvim_lsp" },
},
-- You can set buffer_mode to "list" or "tabbed" based on your preference.
buffer_mode = "list",
color_icons = true, -- whether or not to add the filetype icon highlights
},
},
config = function(_, opts)
require("bufferline").setup(opts)
-- Remap the tab key for buffer navigation (you can adjust the keys as needed)
vim.keymap.set("n", "<Tab>", "<cmd>BufferLineCycleNext<CR>")
vim.keymap.set("n", "<S-Tab>", "<cmd>BufferLineCyclePrev<CR>")
end,
},
-- ╭───────────────────────────────────╮
-- │ cmdline - for nice command inputs │
-- ╰───────────────────────────────────╯
{
"VonHeikemen/fine-cmdline.nvim",
dependencies = {
{ "MunifTanjim/nui.nvim" },
},
config = function()
require("fine-cmdline").setup({
cmdline = {
enable_keymaps = true,
smart_history = true,
prompt = "",
},
popup = {
position = {
row = "10%",
col = "50%",
},
size = {
width = "60%",
},
border = {
style = "rounded",
},
win_options = {
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
},
},
})
end,
vim.api.nvim_set_keymap("n", ":", "<cmd>FineCmdline<CR>", { noremap = true }),
vim.keymap.set("n", "T", "<cmd>FineCmdline<CR>"),
},
-- ╭───────────────────────────────────────╮
-- │ barbecue - for a nice breadcrump menu │
-- ╰───────────────────────────────────────╯
{
"utilyre/barbecue.nvim",
name = "barbecue",
version = "*",
dependencies = {
"SmiteshP/nvim-navic",
"echasnovski/mini.icons", -- optional dependency
},
opts = {
theme = {
-- this highlight is used to override other highlights
-- you can take advantage of its `bg` and set a background throughout your winbar
-- (e.g. basename will look like this: { fg = "#c0caf5", bold = true })
normal = { fg = "#c0caf5" },
-- these highlights correspond to symbols table from config
ellipsis = { fg = "#737aa2" },
separator = { fg = "#737aa2" },
modified = { fg = "#737aa2" },
-- these highlights represent the _text_ of three main parts of barbecue
dirname = { fg = "#737aa2" },
basename = { bold = true },
context = {},
-- these highlights are used for context/navic icons
context_file = { fg = "#ac8fe4" },
context_module = { fg = "#ac8fe4" },
context_namespace = { fg = "#ac8fe4" },
context_package = { fg = "#ac8fe4" },
context_class = { fg = "#ac8fe4" },
context_method = { fg = "#ac8fe4" },
context_property = { fg = "#ac8fe4" },
context_field = { fg = "#ac8fe4" },
context_constructor = { fg = "#ac8fe4" },
context_enum = { fg = "#ac8fe4" },
context_interface = { fg = "#ac8fe4" },
context_function = { fg = "#ac8fe4" },
context_variable = { fg = "#ac8fe4" },
context_constant = { fg = "#ac8fe4" },
context_string = { fg = "#ac8fe4" },
context_number = { fg = "#ac8fe4" },
context_boolean = { fg = "#ac8fe4" },
context_array = { fg = "#ac8fe4" },
context_object = { fg = "#ac8fe4" },
context_key = { fg = "#ac8fe4" },
context_null = { fg = "#ac8fe4" },
context_enum_member = { fg = "#ac8fe4" },
context_struct = { fg = "#ac8fe4" },
context_event = { fg = "#ac8fe4" },
context_operator = { fg = "#ac8fe4" },
context_type_parameter = { fg = "#ac8fe4" },
},
},
},
-- ╭─────────────────────────────────╮
-- │ indentlines - nice indent lines │
-- ╰─────────────────────────────────╯
{
"lukas-reineke/indent-blankline.nvim",
event = { "BufReadPre", "BufNewFile" },
main = "ibl",
opts = {
indent = {
char = "",
tab_char = "",
-- char = "│",
-- tab_char = "│",
},
},
},
-- ╭────────────────────────────────────╮
-- │ notify for excellent notifications │
-- ╰────────────────────────────────────╯
{
"rcarriga/nvim-notify",
config = function()
require("notify").setup({
stages = "slide",
background_colour = "FloatShadow",
max_width = 120,
timeout = 2750,
render = "wrapped-compact",
-- Minimum/Maximum width for notification windows
minimum_width = 30,
maximum_width = 120,
-- Function called when a new window is opened, use for changing win settings/config
on_open = nil,
-- Function called when a window is closed
on_close = nil,
icons = {
ERROR = "", -- alternate symbol 
WARN = "",
INFO = "",
DEBUG = "",
TRACE = "",
},
})
vim.notify = require("notify")
end,
},
-- ╭──────────────────────────────╮
-- │ slimline - nice bar for nvim │
-- ╰──────────────────────────────╯
{
-- Calls `require('slimline').setup({})`
"sschleemilch/slimline.nvim",
opts = {
bold = true, -- makes primary parts and mode bold
verbose_mode = false, -- Mode as single letter or as a word
style = "bg", -- or "fg". Whether highlights should be applied to bg or fg of components
mode_follow_style = true, -- Whether the mode color components should follow the style option
components = { -- Choose components and their location
left = {
"mode",
-- "path",
-- "git",
},
center = {
"path",
"git",
},
right = {
"diagnostics",
"filetype_lsp",
"progress",
},
},
spaces = {
components = " ", -- string between components
left = " ", -- string at the start of the line
right = " ", -- string at the end of the line
},
sep = {
hide = {
first = false, -- hides the first separator
last = false, -- hides the last separator
},
left = "", -- left separator of components
right = "", -- right separator of components
},
hl = {
modes = {
normal = "Type", -- highlight base of modes
insert = "Function",
pending = "Boolean",
visual = "Keyword",
command = "String",
},
base = "Comment", -- highlight of everything in in between components
primary = "Normal", -- highlight of primary parts (e.g. filename)
secondary = "Comment", -- highlight of secondary parts (e.g. filepath)
},
icons = {
diagnostics = {
ERROR = "",
WARN = "",
HINT = "",
INFO = "",
},
git = {
branch = "",
},
folder = "",
lines = "",
},
},
},
-- ╭────────────────────────────────────────╮
-- │ which key - to know what to press next │
-- ╰────────────────────────────────────────╯
{
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 350
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
},
}

View file

@ -1,13 +0,0 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 350
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
}