3/15/26
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
|
||||
wallpaper {
|
||||
monitor = DP-1
|
||||
path = /home/mahalo/photos/art7_adeptasororitas-nov14-5-ude5rm3tkl.jpg
|
||||
path = /home/mahalo/photos/wallhaven-l81qdq.jpg
|
||||
fit_mode = cover
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -2,7 +2,7 @@
|
||||
"LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" },
|
||||
"barbar.nvim": { "branch": "master", "commit": "539d73def39c9172b4d4d769f14090e08f37b29d" },
|
||||
"buffer-vacuum": { "branch": "main", "commit": "917986d31cce6501c929ab6088c0887beff56b69" },
|
||||
"catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
|
||||
"catppuccin": { "branch": "main", "commit": "12c004cde3f36cb1d57242f1e6aac46b09a0e5b4" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||
@@ -16,25 +16,25 @@
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
|
||||
"none-ls-extras.nvim": { "branch": "main", "commit": "517f87c1e6cd511e787d77127d7fdb12b7b79db3" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "f61f46ded0ca9edce7a09b674f8e162d10921426" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "9d6826582a3e8c84787bd7355df22a2812a1ad59" },
|
||||
"none-ls-extras.nvim": { "branch": "main", "commit": "c6fa39ac52814182c05552cb5d3750cae23ff0f0" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "c9317c2a8629d4e39e7cf47be74cb67f3ab37cda" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "fe9eed4d48f530fc9ffe4d785a936a49fa344e1a" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "5a855bcfec7973767a1a472335684bbd71d2fa2b" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "ef211089af881bea206c7aa3f2693a81feee7e90" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "0203a9608d63eda57679b01e69f33a7b4c34b0d1" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" },
|
||||
"oil.nvim": { "branch": "master", "commit": "f55b25e493a7df76371cfadd0ded5004cb9cd48a" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" },
|
||||
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "e2858c43caafec291f915ef25fbed27bbe78abbd" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "01993eb20c6cdc1d33e7e98252368840309f99b9" },
|
||||
"ruffer": { "branch": "plugin", "commit": "5248604605bf1039147f3f29dcd46aa296557e9c" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"undotree": { "branch": "master", "commit": "d8f99084d98c32f651860eb0baaf89759f91debc" },
|
||||
"undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" },
|
||||
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
|
||||
"vim-devicons": { "branch": "master", "commit": "71f239af28b7214eebb60d4ea5bd040291fb7e33" },
|
||||
"vim-floaterm": { "branch": "master", "commit": "0ab5eb8135dc884bc543a819ac7033c15e72a76b" },
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
local opts = { noremap = true, silent = true }
|
||||
-- Require functions file
|
||||
local functions = require('functions')
|
||||
|
||||
local functions = require("functions")
|
||||
|
||||
vim.keymap.set("n", "<leader><TAB>", ":bnext<CR>") -- Tab next
|
||||
vim.keymap.set({"x",'v','n'}, "E", "ge") -- go back
|
||||
vim.keymap.set({ "x", "v", "n" }, "E", "ge") -- go back
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") -- move block
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv") -- move block
|
||||
vim.keymap.set("n", "<leader>r", [[:%s#\<<C-r><C-w>\>#<C-r><C-w>#gI<Left><Left><Left>]]) -- global remap
|
||||
vim.keymap.set('v', '<leader>r',functions.replace_word_under_cursor_in_selection, opts) -- visual remap
|
||||
vim.keymap.set("v", "<leader>r", functions.replace_word_under_cursor_in_selection, opts) -- visual remap
|
||||
vim.keymap.set("n", "J", "mzJ`z") -- append line
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz") --move half page
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz") --move half page
|
||||
|
||||
-- Close all buffers (tabs) but the current one
|
||||
vim.keymap.set('n', '<leader>b', functions.bufonly, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>b", functions.bufonly, opts)
|
||||
|
||||
-- ############################
|
||||
-- Default behavior overrides #
|
||||
@@ -23,119 +21,122 @@ vim.keymap.set('n', '<leader>b', functions.bufonly, opts)
|
||||
|
||||
vim.keymap.set("n", "x", [["_x]]) --void x
|
||||
vim.keymap.set("x", "p", [["_dP]]) -- void paste
|
||||
vim.keymap.set('n', 'Q', 'q', opts) -- Remap 'Q' to start recording macros
|
||||
vim.keymap.set('x', 'W', 'iW', opts) -- remaps viW to just vW
|
||||
vim.keymap.set('v', 'w', 'iw', opts) -- remaps viw to just vw
|
||||
vim.keymap.set('n', 'P', 'o<Esc>p', opts) --void P
|
||||
vim.keymap.set('n', 'd', '"_d', opts) --void d
|
||||
vim.keymap.set('v', 'd', '"_d', opts)
|
||||
vim.keymap.set('n', '<leader>d', 'daw', opts)
|
||||
vim.keymap.set('n', 'cw', 'ciw', { noremap = true, nowait = true, silent = true }) -- cw = ciw
|
||||
|
||||
vim.keymap.set("n", "Q", "q", opts) -- Remap 'Q' to start recording macros
|
||||
vim.keymap.set("x", "W", "iW", opts) -- remaps viW to just vW
|
||||
vim.keymap.set("v", "w", "iw", opts) -- remaps viw to just vw
|
||||
vim.keymap.set("n", "P", "o<Esc>p", opts) --void P
|
||||
vim.keymap.set("n", "d", '"_d', opts) --void d
|
||||
vim.keymap.set("v", "d", '"_d', opts)
|
||||
vim.keymap.set("n", "<leader>d", "daw", opts)
|
||||
vim.keymap.set("n", "cw", "ciw", { noremap = true, nowait = true, silent = true }) -- cw = ciw
|
||||
|
||||
--use Tab to navigate menu snippets menu
|
||||
vim.keymap.set('i', '<Tab>', function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return '<C-n>'
|
||||
else
|
||||
return '<Tab>'
|
||||
end
|
||||
vim.keymap.set("i", "<Tab>", function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return "<C-n>"
|
||||
else
|
||||
return "<Tab>"
|
||||
end
|
||||
end, { expr = true, noremap = true })
|
||||
|
||||
-- Disable
|
||||
vim.keymap.set({'x','v','n'}, '<F1>', '<Nop>', opts)
|
||||
vim.keymap.set('n', 's', '<Nop>', opts)
|
||||
vim.keymap.set('n', 'S', '<Nop>', opts)
|
||||
vim.keymap.set('n', 'q', '<Nop>', opts)
|
||||
vim.keymap.set({ "x", "v", "n" }, "<F1>", "<Nop>", opts)
|
||||
vim.keymap.set("n", "s", "<Nop>", opts)
|
||||
vim.keymap.set("n", "S", "<Nop>", opts)
|
||||
vim.keymap.set("n", "q", "<Nop>", opts)
|
||||
|
||||
-- ############################
|
||||
-- Plugins keymaps #
|
||||
-- ############################
|
||||
|
||||
vim.cmd([[nnoremap \ :Neotree toggle<cr>]])
|
||||
vim.keymap.set('n', '<F12>', functions.toggle_floaterm, opts)
|
||||
vim.keymap.set("n", "<F12>", functions.toggle_floaterm, opts)
|
||||
|
||||
-- To avoid neotree from crashing all vim, closes the tab
|
||||
vim.keymap.set("n", "<leader>q", functions.bufremove, { desc = "Delete buffer" })
|
||||
|
||||
--telescope
|
||||
vim.keymap.set('n', '<leader>ff', "<cmd>lua require'telescope.builtin'.find_files({ find_command = {'rg', '--files', '--hidden', '-g', '!.git' }})<cr>")
|
||||
vim.keymap.set('n', '<leader>fr', "<cmd>lua require'telescope.builtin'.buffers({ show_all_buffers = true })<cr>")
|
||||
vim.keymap.set('n', '<leader>fg', "<cmd>lua require('telescope.builtin').live_grep()<cr>")
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>ff",
|
||||
"<cmd>lua require'telescope.builtin'.find_files({ find_command = {'rg', '--files', '--hidden', '-g', '!.git' }})<cr>"
|
||||
)
|
||||
vim.keymap.set("n", "<leader>fr", "<cmd>lua require'telescope.builtin'.buffers({ show_all_buffers = true })<cr>")
|
||||
vim.keymap.set("n", "<leader>fg", "<cmd>lua require('telescope.builtin').live_grep()<cr>")
|
||||
|
||||
-- Splelling suggestions on s
|
||||
vim.keymap.set('n','s',function()
|
||||
local win = 0
|
||||
local pos = vim.api.nvim_win_get_cursor(win)
|
||||
local w = vim.fn.expand('<cword>')
|
||||
local info = vim.fn.spellbadword()
|
||||
vim.api.nvim_win_set_cursor(win, pos)
|
||||
|
||||
if info[1] == w and info[2] ~= '' then
|
||||
require('telescope.builtin').spell_suggest(
|
||||
require('telescope.themes').get_cursor{ winblend = 5 }
|
||||
)
|
||||
end
|
||||
end,{desc='Telescope spell suggestions'})
|
||||
|
||||
vim.keymap.set('n', '<leader>u', ':UndotreeToggle<CR>', opts)
|
||||
vim.keymap.set('n', '<leader>-', ':IBLToggle<CR>', opts)
|
||||
vim.keymap.set("n", "s", function()
|
||||
local win = 0
|
||||
local pos = vim.api.nvim_win_get_cursor(win)
|
||||
local w = vim.fn.expand("<cword>")
|
||||
local info = vim.fn.spellbadword()
|
||||
vim.api.nvim_win_set_cursor(win, pos)
|
||||
|
||||
if info[1] == w and info[2] ~= "" then
|
||||
require("telescope.builtin").spell_suggest(require("telescope.themes").get_cursor({ winblend = 5 }))
|
||||
end
|
||||
end, { desc = "Telescope spell suggestions" })
|
||||
|
||||
vim.keymap.set("n", "<leader>u", ":UndotreeToggle<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>-", ":IBLToggle<CR>", opts)
|
||||
|
||||
-- show diagnostics
|
||||
vim.keymap.set('n', '<F3>', function()
|
||||
require('telescope.builtin').diagnostics(
|
||||
require('telescope.themes').get_ivy{
|
||||
severity_limit = vim.diagnostic.severity.WARN,
|
||||
layout_config = { height = 0.3 },
|
||||
}
|
||||
)
|
||||
end, { desc = 'Telescope: show all diagnostics' })
|
||||
vim.keymap.set("n", "<F3>", function()
|
||||
require("telescope.builtin").diagnostics(require("telescope.themes").get_ivy({
|
||||
severity_limit = vim.diagnostic.severity.WARN,
|
||||
layout_config = { height = 0.3 },
|
||||
}))
|
||||
end, { desc = "Telescope: show all diagnostics" })
|
||||
|
||||
-- show code actions
|
||||
vim.keymap.set('n', '<F4>', function()
|
||||
vim.lsp.buf.code_action()
|
||||
end, { desc = 'LSP: show code actions' })
|
||||
|
||||
vim.keymap.set("n", "<F4>", function()
|
||||
vim.lsp.buf.code_action()
|
||||
end, { desc = "LSP: show code actions" })
|
||||
|
||||
-- Harpoon
|
||||
local harpoon = require("harpoon.ui")
|
||||
vim.keymap.set("n", "<leader>h", harpoon.toggle_quick_menu)
|
||||
vim.keymap.set("n", "<leader>ha", require("harpoon.mark").add_file)
|
||||
vim.keymap.set("n", "<leader>1", function() harpoon.nav_file(1) end)
|
||||
vim.keymap.set("n", "<leader>2", function() harpoon.nav_file(2) end)
|
||||
vim.keymap.set("n", "<leader>3", function() harpoon.nav_file(3) end)
|
||||
vim.keymap.set("n", "<leader>4", function() harpoon.nav_file(4) end)
|
||||
|
||||
vim.keymap.set("n", "<leader>1", function()
|
||||
harpoon.nav_file(1)
|
||||
end)
|
||||
vim.keymap.set("n", "<leader>2", function()
|
||||
harpoon.nav_file(2)
|
||||
end)
|
||||
vim.keymap.set("n", "<leader>3", function()
|
||||
harpoon.nav_file(3)
|
||||
end)
|
||||
vim.keymap.set("n", "<leader>4", function()
|
||||
harpoon.nav_file(4)
|
||||
end)
|
||||
|
||||
-- ########
|
||||
-- Macros #
|
||||
-- ########
|
||||
|
||||
local esc = vim.api.nvim_replace_termcodes("<Esc>",true,true,true)
|
||||
local cr = vim.api.nvim_replace_termcodes("<C-R>\"", true, true, true)
|
||||
local esc = vim.api.nvim_replace_termcodes("<Esc>", true, true, true)
|
||||
local cr = vim.api.nvim_replace_termcodes('<C-R>"', true, true, true)
|
||||
|
||||
-- Python: set up a single-keystroke macro in register ‘@l’
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "python",
|
||||
callback = function()
|
||||
vim.fn.setreg("l", "y" .. "oprint('" .. cr .. ":' , " .. cr .. ")" .. esc)
|
||||
end,
|
||||
pattern = "python",
|
||||
callback = function()
|
||||
vim.fn.setreg("l", "y" .. "oprint('" .. cr .. ":' , " .. cr .. ")" .. esc)
|
||||
end,
|
||||
})
|
||||
|
||||
-- JavaScript/TypeScript: same idea with console.log
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = { "javascript", "typescript" },
|
||||
callback = function()
|
||||
vim.fn.setreg("l", "y" .. "oconsole.log('" .. cr .. ":' , " .. cr .. ");" .. esc)
|
||||
end,
|
||||
pattern = { "javascript", "typescript" },
|
||||
callback = function()
|
||||
vim.fn.setreg("l", "y" .. "oconsole.log('" .. cr .. ":' , " .. cr .. ");" .. esc)
|
||||
end,
|
||||
})
|
||||
|
||||
-- for go
|
||||
-- go
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "go",
|
||||
callback = function()
|
||||
vim.fn.setreg("l", "y" .. "ofmt.Println(\"" .. cr .. ":\", " .. cr .. ");" .. esc)
|
||||
end,
|
||||
pattern = "go",
|
||||
callback = function()
|
||||
vim.fn.setreg("l", 'yofmt.Printf("' .. cr .. ': %v\\n", ' .. cr .. ");" .. esc)
|
||||
end,
|
||||
})
|
||||
|
||||
+61
-67
@@ -1,99 +1,93 @@
|
||||
local ls = require "luasnip"
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local t = ls.text_node
|
||||
local i = ls.insert_node
|
||||
|
||||
-- Keybindings for LuaSnip jumping (forward)
|
||||
vim.keymap.set({"i", "s"}, "<C-j>", function()
|
||||
if require("luasnip").expand_or_jumpable() then
|
||||
require("luasnip").jump(1)
|
||||
end
|
||||
end, {silent = true})
|
||||
vim.keymap.set({ "i", "s" }, "<C-j>", function()
|
||||
if require("luasnip").expand_or_jumpable() then
|
||||
require("luasnip").jump(1)
|
||||
end
|
||||
end, { silent = true })
|
||||
|
||||
vim.keymap.set({"i", "s"}, "<C-l>", function()
|
||||
if require("luasnip").expand_or_jumpable() then
|
||||
require("luasnip").jump(1)
|
||||
end
|
||||
end, {silent = true})
|
||||
vim.keymap.set({ "i", "s" }, "<C-l>", function()
|
||||
if require("luasnip").expand_or_jumpable() then
|
||||
require("luasnip").jump(1)
|
||||
end
|
||||
end, { silent = true })
|
||||
|
||||
-- Keybindings for LuaSnip jumping (backward)
|
||||
vim.keymap.set({"i", "s"}, "<C-k>", function()
|
||||
if require("luasnip").jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
end
|
||||
end, {silent = true})
|
||||
|
||||
vim.keymap.set({"i", "s"}, "<C-h>", function()
|
||||
if require("luasnip").jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
end
|
||||
end, {silent = true})
|
||||
|
||||
|
||||
ls.config.set_config {
|
||||
history = true,
|
||||
-- treesitter-hl has 100, use something higher (default is 200).
|
||||
ext_base_prio = 200,
|
||||
-- minimal increase in priority.
|
||||
ext_prio_increase = 1,
|
||||
enable_autosnippets = false,
|
||||
store_selection_keys = "<TAB>",
|
||||
}
|
||||
|
||||
vim.keymap.set({ "i", "s" }, "<C-k>", function()
|
||||
if require("luasnip").jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
end
|
||||
end, { silent = true })
|
||||
|
||||
vim.keymap.set({ "i", "s" }, "<C-h>", function()
|
||||
if require("luasnip").jumpable(-1) then
|
||||
require("luasnip").jump(-1)
|
||||
end
|
||||
end, { silent = true })
|
||||
|
||||
ls.config.set_config({
|
||||
history = true,
|
||||
-- treesitter-hl has 100, use something higher (default is 200).
|
||||
ext_base_prio = 200,
|
||||
-- minimal increase in priority.
|
||||
ext_prio_increase = 1,
|
||||
enable_autosnippets = false,
|
||||
store_selection_keys = "<TAB>",
|
||||
})
|
||||
|
||||
-- Define shared snippets js, ts, jsx,tsx
|
||||
local common_snippets = {
|
||||
s("soto", {
|
||||
t('console.log('),
|
||||
i(1),
|
||||
t(')')
|
||||
}),
|
||||
s("soto", {
|
||||
t("console.log("),
|
||||
i(1),
|
||||
t(")"),
|
||||
}),
|
||||
|
||||
s("fore", {
|
||||
i(1),
|
||||
t(".forEach(item => {"),
|
||||
t({"", " "}),
|
||||
i(0),
|
||||
t({"", "})"})
|
||||
}),
|
||||
s("fore", {
|
||||
i(1),
|
||||
t(".forEach(item => {"),
|
||||
t({ "", " " }),
|
||||
i(0),
|
||||
t({ "", "})" }),
|
||||
}),
|
||||
|
||||
s("for", {
|
||||
t("for (let i = 0; i < "),
|
||||
i(1, 'array'),
|
||||
t('.length; i++) {'),
|
||||
t({"", " "}),
|
||||
i(2),
|
||||
t({"", "}"})
|
||||
})
|
||||
s("for", {
|
||||
t("for (let i = 0; i < "),
|
||||
i(1, "array"),
|
||||
t(".length; i++) {"),
|
||||
t({ "", " " }),
|
||||
i(2),
|
||||
t({ "", "}" }),
|
||||
}),
|
||||
}
|
||||
|
||||
-- Filetypes to apply snippets to
|
||||
local filetypes = {
|
||||
"javascript",
|
||||
"typescript",
|
||||
"javascriptreact",
|
||||
"typescriptreact"
|
||||
"javascript",
|
||||
"typescript",
|
||||
"javascriptreact",
|
||||
"typescriptreact",
|
||||
}
|
||||
|
||||
-- Apply snippets to each filetype
|
||||
for _, ft in ipairs(filetypes) do
|
||||
ls.add_snippets(ft, common_snippets)
|
||||
ls.add_snippets(ft, common_snippets)
|
||||
end
|
||||
|
||||
-- go
|
||||
ls.add_snippets("go", {
|
||||
s("iferr", {
|
||||
t("if err != nil {"),
|
||||
t({ "", "\treturn " }),
|
||||
i(1, "err"),
|
||||
t({ "", "}" }),
|
||||
}),
|
||||
s("iferr", {
|
||||
t("if err != nil {"),
|
||||
t({ "", "\treturn " }),
|
||||
i(1, "err"),
|
||||
t({ "", "}" }),
|
||||
}),
|
||||
})
|
||||
|
||||
|
||||
-- Markdown
|
||||
-- ls.add_snippets("markdown",{
|
||||
-- })
|
||||
|
||||
|
||||
Reference in New Issue
Block a user