feat: add my plugins

This commit is contained in:
khaydarov 2025-04-12 23:11:51 +05:00
parent d350db2449
commit 41e7418c01
8 changed files with 1072 additions and 897 deletions

1515
init.lua

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
return {
"akinsho/bufferline.nvim",
version = "*",
dependencies = { "nvim-tree/nvim-web-devicons" },
init = function()
vim.opt.termguicolors = true
require("bufferline").setup({
options = {
diagnostics = "nvim_lsp",
diagnostics_indicator = function(count, level, diagnostics_dict, context)
local s = " "
for e, n in pairs(diagnostics_dict) do
local sym = e == "error" and "" or (e == "warning" and "" or "")
s = s .. n .. sym
end
return s
end,
},
--buffline stuff
vim.keymap.set("n", "<D-'>", "<CMD>BufferLineCycleNext<CR>", { desc = "Next tab" }),
vim.keymap.set("n", "<D-;>", "<CMD>BufferLineCyclePrev<CR>", { desc = "Prev tab" }),
vim.keymap.set("n", "<D-k>", "<CMD>bd<CR>", { desc = "[K]ill tab" }),
})
end,
}

View file

@ -0,0 +1,15 @@
return {
"ray-x/go.nvim",
dependencies = { -- optional packages
"ray-x/guihua.lua",
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
config = function()
require("go").setup()
end,
event = { "CmdlineEnter" },
ft = { "go", "gomod" },
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
-- GoGenerate - генерация моков
}

View file

@ -0,0 +1,15 @@
return {
"lukas-reineke/indent-blankline.nvim",
event = { "BufReadPost", "BufNewFile" },
main = "ibl",
opts = {
indent = {
char = "",
tab_char = "",
},
scope = {
show_start = false,
show_end = false,
},
},
}

View file

@ -0,0 +1,48 @@
---@module "neominimap.config.meta"
return {
"Isrothy/neominimap.nvim",
version = "v3.x.x",
lazy = false, -- NOTE: NO NEED to Lazy load
-- Optional. You can alse set your own keybindings
keys = {
-- Global Minimap Controls
{ "<leader>nm", "<cmd>Neominimap toggle<cr>", desc = "Toggle global minimap" },
{ "<leader>no", "<cmd>Neominimap on<cr>", desc = "Enable global minimap" },
{ "<leader>nc", "<cmd>Neominimap off<cr>", desc = "Disable global minimap" },
{ "<leader>nr", "<cmd>Neominimap refresh<cr>", desc = "Refresh global minimap" },
-- Window-Specific Minimap Controls
{ "<leader>nwt", "<cmd>Neominimap winToggle<cr>", desc = "Toggle minimap for current window" },
{ "<leader>nwr", "<cmd>Neominimap winRefresh<cr>", desc = "Refresh minimap for current window" },
{ "<leader>nwo", "<cmd>Neominimap winOn<cr>", desc = "Enable minimap for current window" },
{ "<leader>nwc", "<cmd>Neominimap winOff<cr>", desc = "Disable minimap for current window" },
-- Tab-Specific Minimap Controls
{ "<leader>ntt", "<cmd>Neominimap tabToggle<cr>", desc = "Toggle minimap for current tab" },
{ "<leader>ntr", "<cmd>Neominimap tabRefresh<cr>", desc = "Refresh minimap for current tab" },
{ "<leader>nto", "<cmd>Neominimap tabOn<cr>", desc = "Enable minimap for current tab" },
{ "<leader>ntc", "<cmd>Neominimap tabOff<cr>", desc = "Disable minimap for current tab" },
-- Buffer-Specific Minimap Controls
{ "<leader>nbt", "<cmd>Neominimap bufToggle<cr>", desc = "Toggle minimap for current buffer" },
{ "<leader>nbr", "<cmd>Neominimap bufRefresh<cr>", desc = "Refresh minimap for current buffer" },
{ "<leader>nbo", "<cmd>Neominimap bufOn<cr>", desc = "Enable minimap for current buffer" },
{ "<leader>nbc", "<cmd>Neominimap bufOff<cr>", desc = "Disable minimap for current buffer" },
---Focus Controls
{ "<leader>nf", "<cmd>Neominimap focus<cr>", desc = "Focus on minimap" },
{ "<leader>nu", "<cmd>Neominimap unfocus<cr>", desc = "Unfocus minimap" },
{ "<leader>ns", "<cmd>Neominimap toggleFocus<cr>", desc = "Switch focus on minimap" },
},
init = function()
-- The following options are recommended when layout == "float"
vim.opt.wrap = false
vim.opt.sidescrolloff = 36 -- Set a large value
--- Put your configuration here
---@type Neominimap.UserConfig
vim.g.neominimap = {
auto_enable = true,
}
end,
}

View file

@ -0,0 +1,15 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
event = "VeryLazy",
opts = {
sections = {
lualine_a = { "mode" },
lualine_b = { "branch" },
lualine_c = { "filename" },
lualine_x = { "ddiff", "diagnostics" },
lualine_y = { "progress" },
lualine_z = { "location" },
},
},
}

View file

@ -6,47 +6,47 @@
--]] --]]
local check_version = function() local check_version = function()
local verstr = tostring(vim.version()) local verstr = tostring(vim.version())
if not vim.version.ge then if not vim.version.ge then
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr)) vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
return return
end end
if vim.version.ge(vim.version(), '0.10-dev') then if vim.version.ge(vim.version(), "0.10-dev") then
vim.health.ok(string.format("Neovim version is: '%s'", verstr)) vim.health.ok(string.format("Neovim version is: '%s'", verstr))
else else
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr)) vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
end end
end end
local check_external_reqs = function() local check_external_reqs = function()
-- Basic utils: `git`, `make`, `unzip` -- Basic utils: `git`, `make`, `unzip`
for _, exe in ipairs { 'git', 'make', 'unzip', 'rg' } do for _, exe in ipairs({ "git", "make", "unzip", "rg" }) do
local is_executable = vim.fn.executable(exe) == 1 local is_executable = vim.fn.executable(exe) == 1
if is_executable then if is_executable then
vim.health.ok(string.format("Found executable: '%s'", exe)) vim.health.ok(string.format("Found executable: '%s'", exe))
else else
vim.health.warn(string.format("Could not find executable: '%s'", exe)) vim.health.warn(string.format("Could not find executable: '%s'", exe))
end end
end end
return true return true
end end
return { return {
check = function() check = function()
vim.health.start 'kickstart.nvim' vim.health.start("kickstart.nvim")
vim.health.info [[NOTE: Not every warning is a 'must-fix' in `:checkhealth` vim.health.info([[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
Fix only warnings for plugins and languages you intend to use. Fix only warnings for plugins and languages you intend to use.
Mason will give warnings for languages that are not installed. Mason will give warnings for languages that are not installed.
You do not need to install, unless you want to use those languages!]] You do not need to install, unless you want to use those languages!]])
local uv = vim.uv or vim.loop local uv = vim.uv or vim.loop
vim.health.info('System Information: ' .. vim.inspect(uv.os_uname())) vim.health.info("System Information: " .. vim.inspect(uv.os_uname()))
check_version() check_version()
check_external_reqs() check_external_reqs()
end, end,
} }

View file

@ -7,142 +7,164 @@
-- kickstart.nvim and not kitchen-sink.nvim ;) -- kickstart.nvim and not kitchen-sink.nvim ;)
return { return {
-- NOTE: Yes, you can install new plugins here! "mfussenegger/nvim-dap",
'mfussenegger/nvim-dap', dependencies = {
-- NOTE: And you can specify dependencies as well -- Creates a beautiful debugger UI
dependencies = { "rcarriga/nvim-dap-ui",
-- Creates a beautiful debugger UI
'rcarriga/nvim-dap-ui',
-- Required dependency for nvim-dap-ui -- Required dependency for nvim-dap-ui
'nvim-neotest/nvim-nio', "nvim-neotest/nvim-nio",
-- Installs the debug adapters for you -- Installs the debug adapters for you
'williamboman/mason.nvim', "williamboman/mason.nvim",
'jay-babu/mason-nvim-dap.nvim', "jay-babu/mason-nvim-dap.nvim",
-- Add your own debuggers here -- Add your own debuggers here
'leoluz/nvim-dap-go', "leoluz/nvim-dap-go",
}, },
keys = { keys = {
-- Basic debugging keymaps, feel free to change to your liking! -- Basic debugging keymaps, feel free to change to your liking!
{ {
'<F5>', "<F5>",
function() function()
require('dap').continue() require("dap").continue()
end, end,
desc = 'Debug: Start/Continue', desc = "Debug: Start/Continue",
}, },
{ {
'<F1>', "<F11>",
function() function()
require('dap').step_into() require("dap").step_into()
end, end,
desc = 'Debug: Step Into', desc = "Debug: Step Into",
}, },
{ {
'<F2>', "<F10>",
function() function()
require('dap').step_over() require("dap").step_over()
end, end,
desc = 'Debug: Step Over', desc = "Debug: Step Over",
}, },
{ {
'<F3>', "<F9>",
function() function()
require('dap').step_out() require("dap").step_out()
end, end,
desc = 'Debug: Step Out', desc = "Debug: Step Out",
}, },
{ {
'<leader>b', "<leader>b",
function() function()
require('dap').toggle_breakpoint() require("dap").toggle_breakpoint()
end, end,
desc = 'Debug: Toggle Breakpoint', desc = "Debug: Toggle Breakpoint",
}, },
{ {
'<leader>B', "<leader>B",
function() function()
require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ') require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: "))
end, end,
desc = 'Debug: Set Breakpoint', desc = "Debug: Set Breakpoint",
}, },
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
{ {
'<F7>', "<F7>",
function() function()
require('dapui').toggle() require("dapui").toggle()
end, end,
desc = 'Debug: See last session result.', desc = "Debug: See last session result.",
}, },
}, },
config = function() config = function()
local dap = require 'dap' local dap = require("dap")
local dapui = require 'dapui' local dapui = require("dapui")
require('mason-nvim-dap').setup { require("mason-nvim-dap").setup({
-- Makes a best effort to setup the various debuggers with -- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations -- reasonable debug configurations
automatic_installation = true, automatic_installation = true,
-- You can provide additional configuration to the handlers, -- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information -- see mason-nvim-dap README for more information
handlers = {}, handlers = {},
-- You'll need to check that you have the required things installed -- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :) -- online, please don't ask me how to install them :)
ensure_installed = { ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want -- Update this to ensure that you have the debuggers for the langs you want
'delve', "delve",
}, },
} })
-- Dap UI setup -- Dap UI setup
-- For more information, see |:help nvim-dap-ui| -- For more information, see |:help nvim-dap-ui|
dapui.setup { -- dapui.setup()
-- Set icons to characters that are more likely to work in every terminal.
-- Feel free to remove or use ones that you like more! :)
-- Don't feel like these are good choices.
icons = { expanded = '', collapsed = '', current_frame = '*' },
controls = {
icons = {
pause = '',
play = '',
step_into = '',
step_over = '',
step_out = '',
step_back = 'b',
run_last = '▶▶',
terminate = '',
disconnect = '',
},
},
}
-- Change breakpoint icons -- Change breakpoint icons
-- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' }) -- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' })
-- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' }) -- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' })
-- local breakpoint_icons = vim.g.have_nerd_font -- local breakpoint_icons = vim.g.have_nerd_font
-- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' } -- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' }
-- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' } -- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' }
-- for type, icon in pairs(breakpoint_icons) do -- for type, icon in pairs(breakpoint_icons) do
-- local tp = 'Dap' .. type -- local tp = 'Dap' .. type
-- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak' -- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak'
-- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl }) -- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl })
-- end -- end
--
dap.adapters.go = {
type = "executable",
command = "node",
args = {
os.getenv("HOME") .. "/Terminal-Stuff/vscode-go/extension/dist/debugAdapter.js",
},
}
dapui.setup()
dap.listeners.after.event_initialized['dapui_config'] = dapui.open dap.listeners.before.attach.dapui_config = function()
dap.listeners.before.event_terminated['dapui_config'] = dapui.close dapui.open()
dap.listeners.before.event_exited['dapui_config'] = dapui.close end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
-- Install golang specific config -- dap.listeners.after.event_initialized["dapui_config"] = dapui.open
require('dap-go').setup { -- dap.listeners.before.event_terminated["dapui_config"] = dapui.close
delve = { -- dap.listeners.before.event_exited["dapui_config"] = dapui.close
-- On Windows delve must be run attached or it crashes.
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring -- Install golang specific config
detached = vim.fn.has 'win32' == 0, -- require("dap-go").setup({
}, -- delve = {
} -- path = "/Users/linux_enjoyer/Terminal-Stuff/go/bin/dlv",
end, -- cwd = nil,
-- -- On Windows delve must be run attached or it crashes.
-- -- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
-- detached = vim.fn.has("win32") == 0,
-- },
--
-- -- svoi no vstoroenii
-- dap_configurations = {
-- {
-- type = "go",
-- name = "AAAAA magic",
-- request = "launch",
-- program = os.getenv("HOME") .. "/Code-Stuff/Work/order/cmd/order/",
-- envFile = os.getenv("HOME") .. "/Code-Stuff/Work/order/ci/dev/.env",
-- },
-- },
-- })
--kakoi-to parser s vscode
-- local vscode = require("dap.ext.vscode")
-- local json = require("plenary.json")
-- vscode.json_decode = function(str)
-- return vim.json.decode(json.json_strip_comments(str))
-- end
end,
} }