astro-nvim-v3 - ft: big update
This commit is contained in:
@@ -1,11 +1,10 @@
|
|||||||
{
|
{
|
||||||
"AstroNvim": { "branch": "main", "commit": "161b13bc968e66fa7135910b9d9b970452d94d5f" },
|
"AstroNvim": { "branch": "main", "commit": "002b2ca5719479009d83cc159efe9fb5e6b39372" },
|
||||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||||
"SmoothCursor.nvim": { "branch": "main", "commit": "c082e1e943acec28d95aa05325097426e612047f" },
|
|
||||||
"aerial.nvim": { "branch": "master", "commit": "d5ba0e3cfede432cec7e6ab28724c4a554ea0f09" },
|
"aerial.nvim": { "branch": "master", "commit": "d5ba0e3cfede432cec7e6ab28724c4a554ea0f09" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "36e4baca9533ec87afa948fe20a0a1c4897a6a6e" },
|
"alpha-nvim": { "branch": "main", "commit": "36e4baca9533ec87afa948fe20a0a1c4897a6a6e" },
|
||||||
"astrocommunity": { "branch": "main", "commit": "ece293a5834edb92e5812a8582b47366dc3d207c" },
|
"astrocommunity": { "branch": "main", "commit": "bb8089b72bbb11ad850902ce58a9f1fc64277563" },
|
||||||
"astrocore": { "branch": "main", "commit": "8a66da8b8d4dfd783703195a6448aad75837d947" },
|
"astrocore": { "branch": "main", "commit": "8a66da8b8d4dfd783703195a6448aad75837d947" },
|
||||||
"astrolsp": { "branch": "main", "commit": "e8290b739fa08c181a2149be5d94db0a91a42cd0" },
|
"astrolsp": { "branch": "main", "commit": "e8290b739fa08c181a2149be5d94db0a91a42cd0" },
|
||||||
"astrotheme": { "branch": "main", "commit": "41b7d8430a55fd771e41bd763af4c3fd1c2fc0b5" },
|
"astrotheme": { "branch": "main", "commit": "41b7d8430a55fd771e41bd763af4c3fd1c2fc0b5" },
|
||||||
@@ -20,16 +19,15 @@
|
|||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
"code_runner.nvim": { "branch": "main", "commit": "6c5bfe44a6c7523350cd706e6b3b8101166eed99" },
|
"code_runner.nvim": { "branch": "main", "commit": "6c5bfe44a6c7523350cd706e6b3b8101166eed99" },
|
||||||
"cyberdream.nvim": { "branch": "main", "commit": "31f31f27dbc2517f72656ad4031f15d25a20dcf2" },
|
"cyberdream.nvim": { "branch": "main", "commit": "9454c831c269dbdf2dc63be4afeb09697a442c52" },
|
||||||
"dressing.nvim": { "branch": "master", "commit": "71349f24c6e07b39f33600985843c289ca735308" },
|
"dressing.nvim": { "branch": "master", "commit": "71349f24c6e07b39f33600985843c289ca735308" },
|
||||||
"duplicate.nvim": { "branch": "main", "commit": "ab057af7872c44e6fbd48df9b03983c8e67c50a7" },
|
"duplicate.nvim": { "branch": "main", "commit": "ab057af7872c44e6fbd48df9b03983c8e67c50a7" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" },
|
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" },
|
||||||
"grug-far.nvim": { "branch": "main", "commit": "d308a93ec74917dc827ab8870f5c08d0a112feda" },
|
"grug-far.nvim": { "branch": "main", "commit": "536b23dcf3165a622654544e5f9f395584e73b57" },
|
||||||
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
|
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
|
||||||
"heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" },
|
"heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" },
|
||||||
"hlchunk.nvim": { "branch": "main", "commit": "d49b06762b51209b41577a84dc2925b4969e3954" },
|
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "3fe94b8034dd5241cb882bb73847303b58857ecf" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "3fe94b8034dd5241cb882bb73847303b58857ecf" },
|
||||||
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
|
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||||
@@ -37,16 +35,14 @@
|
|||||||
"lsp_signature.nvim": { "branch": "master", "commit": "a38da0a61c172bb59e34befc12efe48359884793" },
|
"lsp_signature.nvim": { "branch": "master", "commit": "a38da0a61c172bb59e34befc12efe48359884793" },
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
|
"lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
|
||||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||||
"markview.nvim": { "branch": "main", "commit": "7f4639a53b3e3aac3ad5deab99b21097264f07cc" },
|
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" },
|
||||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
|
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
|
||||||
"mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" },
|
|
||||||
"mini.bufremove": { "branch": "main", "commit": "e6044aa28e61d4dd9ec86194d6f81743eced0c1c" },
|
"mini.bufremove": { "branch": "main", "commit": "e6044aa28e61d4dd9ec86194d6f81743eced0c1c" },
|
||||||
"mini.icons": { "branch": "main", "commit": "fe63fe080e76d80713557e5f0c65bc15b14b152d" },
|
"mini.icons": { "branch": "main", "commit": "fe63fe080e76d80713557e5f0c65bc15b14b152d" },
|
||||||
"mini.indentscope": { "branch": "main", "commit": "1222393d9c5e8d92b913ccab6701a7164b21781c" },
|
"mini.indentscope": { "branch": "main", "commit": "d2e7b5f0260789c325f92ab3421ff9884ea01842" },
|
||||||
"mini.move": { "branch": "main", "commit": "cde3747eec9bb3941296e6fa1d874e0da5a10256" },
|
"mini.move": { "branch": "main", "commit": "4caa1c212f5ca3d1633d21cfb184808090ed74b1" },
|
||||||
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
|
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
|
||||||
"multiple-cursors.nvim": { "branch": "main", "commit": "2f5e786c43aa9c0fc34b295cfcc9bfbacef8e926" },
|
"multiple-cursors.nvim": { "branch": "main", "commit": "2f5e786c43aa9c0fc34b295cfcc9bfbacef8e926" },
|
||||||
"neo-tree.nvim": { "branch": "main", "commit": "8c75e8a2949cd6cd35525799200a8d34471ee9eb" },
|
"neo-tree.nvim": { "branch": "main", "commit": "8c75e8a2949cd6cd35525799200a8d34471ee9eb" },
|
||||||
@@ -70,7 +66,7 @@
|
|||||||
"nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" },
|
"nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||||
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" },
|
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" },
|
||||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "97b8238fb6f1dd2b7d4168ee10457c277c9e6ee3" },
|
"rainbow-delimiters.nvim": { "branch": "master", "commit": "c097f728a409d9923a3c70c1507e8389978a9b85" },
|
||||||
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
||||||
"smart-splits.nvim": { "branch": "master", "commit": "1a2b268a7ec7aeef879cdd15973339010ec134f7" },
|
"smart-splits.nvim": { "branch": "master", "commit": "1a2b268a7ec7aeef879cdd15973339010ec134f7" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ return {
|
|||||||
cmp = true, -- enable completion at start
|
cmp = true, -- enable completion at start
|
||||||
diagnostics_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
|
diagnostics_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
|
||||||
highlighturl = true, -- highlight URLs at start
|
highlighturl = true, -- highlight URLs at start
|
||||||
notifications = true, -- enable notifications at start
|
notifications = false, -- enable notifications at start
|
||||||
},
|
},
|
||||||
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ return {
|
|||||||
opts = {
|
opts = {
|
||||||
-- Configuration table of features provided by AstroLSP
|
-- Configuration table of features provided by AstroLSP
|
||||||
features = {
|
features = {
|
||||||
autoformat = true, -- enable or disable auto formatting on start
|
autoformat = false, -- enable or disable auto formatting on start
|
||||||
codelens = true, -- enable/disable codelens refresh on start
|
codelens = true, -- enable/disable codelens refresh on start
|
||||||
inlay_hints = true, -- enable/disable inlay hints on start
|
inlay_hints = true, -- enable/disable inlay hints on start
|
||||||
semantic_tokens = true, -- enable/disable semantic token highlighting
|
semantic_tokens = true, -- enable/disable semantic token highlighting
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ return {
|
|||||||
opts = {
|
opts = {
|
||||||
-- your config goes here
|
-- your config goes here
|
||||||
-- or just leave it empty :)
|
-- or just leave it empty :)
|
||||||
enabled = false, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
|
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
|
||||||
execution_message = {
|
execution_message = {
|
||||||
enabled = false,
|
enabled = true,
|
||||||
message = function() -- message to print on save
|
message = function() -- message to print on save
|
||||||
return ("AutoSave: saved at " .. vim.fn.strftime "%H:%M:%S")
|
return ("AutoSave: saved at " .. vim.fn.strftime "%H:%M:%S")
|
||||||
end,
|
end,
|
||||||
@@ -16,7 +16,7 @@ return {
|
|||||||
},
|
},
|
||||||
trigger_events = { -- See :h events
|
trigger_events = { -- See :h events
|
||||||
immediate_save = { "BufLeave", "FocusLost" }, -- vim events that trigger an immediate save
|
immediate_save = { "BufLeave", "FocusLost" }, -- vim events that trigger an immediate save
|
||||||
defer_save = { "InsertLeave", "TextChanged" }, -- vim events that trigger a deferred save (saves after `debounce_delay`)
|
defer_save = {"TextChanged" }, -- vim events that trigger a deferred save (saves after `debounce_delay`)
|
||||||
cancel_defered_save = { "InsertEnter" }, -- vim events that cancel a pending deferred save
|
cancel_defered_save = { "InsertEnter" }, -- vim events that cancel a pending deferred save
|
||||||
},
|
},
|
||||||
-- function that takes the buffer handle and determines whether to save the current buffer or not
|
-- function that takes the buffer handle and determines whether to save the current buffer or not
|
||||||
@@ -35,6 +35,6 @@ return {
|
|||||||
write_all_buffers = false, -- write all buffers when the current one meets `condition`
|
write_all_buffers = false, -- write all buffers when the current one meets `condition`
|
||||||
noautocmd = false, -- do not execute autocmds when saving
|
noautocmd = false, -- do not execute autocmds when saving
|
||||||
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
|
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
|
||||||
debounce_delay = 500, -- delay after which a pending save is executed
|
debounce_delay = 10000, -- delay after which a pending save is executed
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ return {
|
|||||||
window = {
|
window = {
|
||||||
completion = {
|
completion = {
|
||||||
winhighlight = "Normal:Pmenu,CursorLine:PmenuSel,Search:None",
|
winhighlight = "Normal:Pmenu,CursorLine:PmenuSel,Search:None",
|
||||||
border = "none",
|
-- border = "none",
|
||||||
side_padding = 0,
|
side_padding = 0,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -68,6 +68,9 @@ return {
|
|||||||
end
|
end
|
||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
},
|
},
|
||||||
|
experimental = {
|
||||||
|
ghost_text = false, -- this feature conflict with copilot.vim's preview.
|
||||||
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
if true then return {} end
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"kmontocam/nvim-conda",
|
"kmontocam/nvim-conda",
|
||||||
|
|||||||
@@ -160,6 +160,12 @@ local banners = {
|
|||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠙⠛⠙⠛⠛⠋⠛⠋⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠙⠛⠙⠛⠛⠋⠛⠋⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||||||
},
|
},
|
||||||
[10] = {
|
[10] = {
|
||||||
|
[[ ]],
|
||||||
|
[[ ]],
|
||||||
|
[[ ]],
|
||||||
|
[[ ]],
|
||||||
|
[[ ]],
|
||||||
|
[[ ]],
|
||||||
[[ __ ]],
|
[[ __ ]],
|
||||||
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
||||||
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
|
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
|
||||||
|
|||||||
@@ -1,14 +1,23 @@
|
|||||||
-- Plugins to disable
|
-- Plugins to disable
|
||||||
return {
|
return {
|
||||||
{ "nvim-neo-tree/neo-tree.nvim", enabled = true },
|
{ "nvim-neo-tree/neo-tree.nvim", enabled = true },
|
||||||
{ "lukas-reineke/indent-blankline.nvim", enabled = true},
|
|
||||||
{ "s1n7ax/nvim-window-picker", enabled = false },
|
{ "s1n7ax/nvim-window-picker", enabled = false },
|
||||||
{ "akinsho/toggleterm.nvim", enabled = false },
|
{ "akinsho/toggleterm.nvim", enabled = false },
|
||||||
{ "NvChad/nvim-colorizer.lua", enabled = false },
|
{ "NvChad/nvim-colorizer.lua", enabled = false },
|
||||||
{ "catppuccin/nvim", name = "catppuccin", enabled = false },
|
{ "catppuccin/nvim", name = "catppuccin", enabled = false },
|
||||||
|
|
||||||
{ "rebelot/kanagawa.nvim", enabled = false },
|
{ "rebelot/kanagawa.nvim", enabled = false },
|
||||||
{ "folke/tokyonight.nvim", enabled = false },
|
{ "folke/tokyonight.nvim", enabled = false },
|
||||||
{ "f4z3r/gruvbox-material.nvim", name = "gruvbox-material", enabled = false },
|
{ "f4z3r/gruvbox-material.nvim", name = "gruvbox-material", enabled = false },
|
||||||
{ "b0o/SchemaStore.nvim", enabled = false },
|
{ "b0o/SchemaStore.nvim", enabled = false },
|
||||||
|
|
||||||
|
{ "ray-x/lsp_signature.nvim", enabled = false },
|
||||||
|
{ "kmontocam/nvim-conda", enabled = false },
|
||||||
|
{ "NMAC427/guess-indent.nvim", enabled = false },
|
||||||
|
{ "lukas-reineke/indent-blankline.nvim", enabled = false },
|
||||||
|
{ "chipsenkbeil/distant.nvim", enabled = false },
|
||||||
|
{ "gen740/SmoothCursor.nvim", enabled = false },
|
||||||
|
|
||||||
|
-- { "hrsh7th/nvim-cmp", enabled = false },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- if true then return {} end
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
if true then return {} end
|
|
||||||
|
|
||||||
-- NOTE: control remote pc
|
-- NOTE: control remote pc
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"chipsenkbeil/distant.nvim",
|
"chipsenkbeil/distant.nvim",
|
||||||
branch = "v0.3",
|
branch = "v0.3",
|
||||||
|
|||||||
@@ -5,7 +5,15 @@ return {
|
|||||||
"ray-x/lsp_signature.nvim",
|
"ray-x/lsp_signature.nvim",
|
||||||
event = "User AstroFile",
|
event = "User AstroFile",
|
||||||
config = function()
|
config = function()
|
||||||
require("lsp_signature").setup { bind = true, handler_opts = { border = "rounded" }, hint_enable = false }
|
require("lsp_signature").setup {
|
||||||
|
bind = true,
|
||||||
|
handler_opts = { border = "rounded" },
|
||||||
|
hint_enable = true,
|
||||||
|
|
||||||
|
hint_prefix = "🐼 ",
|
||||||
|
debug = true,
|
||||||
|
verbose = true,
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
-- Additional features for Clangd
|
-- Additional features for Clangd
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
if true then return {} end
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"folke/todo-comments.nvim",
|
"folke/todo-comments.nvim",
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ return {
|
|||||||
"goolord/alpha-nvim",
|
"goolord/alpha-nvim",
|
||||||
opts = function(_, opts)
|
opts = function(_, opts)
|
||||||
-- customize the dashboard header
|
-- customize the dashboard header
|
||||||
opts.section.header.val = require("plugins.configs.ui.alpha")[3]
|
opts.section.header.val = require("plugins.configs.ui.alpha")[10]
|
||||||
opts.section.buttons.val = {}
|
opts.section.buttons.val = {}
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user