mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-16 17:07:14 +03:00
vim: Empty pane improvements (#13624)
Release Notes: - vim: Fixed `:` in empty diagnostics view - vim: Fixed `g/` outside of an editor
This commit is contained in:
parent
97159bd88d
commit
363ac6bc96
@ -47,19 +47,16 @@
|
|||||||
"{": "vim::StartOfParagraph",
|
"{": "vim::StartOfParagraph",
|
||||||
"}": "vim::EndOfParagraph",
|
"}": "vim::EndOfParagraph",
|
||||||
"|": "vim::GoToColumn",
|
"|": "vim::GoToColumn",
|
||||||
|
|
||||||
// Word motions
|
// Word motions
|
||||||
"w": "vim::NextWordStart",
|
"w": "vim::NextWordStart",
|
||||||
"e": "vim::NextWordEnd",
|
"e": "vim::NextWordEnd",
|
||||||
"b": "vim::PreviousWordStart",
|
"b": "vim::PreviousWordStart",
|
||||||
"g e": "vim::PreviousWordEnd",
|
"g e": "vim::PreviousWordEnd",
|
||||||
|
|
||||||
// Subword motions
|
// Subword motions
|
||||||
// "w": "vim::NextSubwordStart",
|
// "w": "vim::NextSubwordStart",
|
||||||
// "b": "vim::PreviousSubwordStart",
|
// "b": "vim::PreviousSubwordStart",
|
||||||
// "e": "vim::NextSubwordEnd",
|
// "e": "vim::NextSubwordEnd",
|
||||||
// "g e": "vim::PreviousSubwordEnd",
|
// "g e": "vim::PreviousSubwordEnd",
|
||||||
|
|
||||||
"shift-w": [
|
"shift-w": [
|
||||||
"vim::NextWordStart",
|
"vim::NextWordStart",
|
||||||
{
|
{
|
||||||
@ -78,8 +75,12 @@
|
|||||||
"ignorePunctuation": true
|
"ignorePunctuation": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"g shift-e": ["vim::PreviousWordEnd", { "ignorePunctuation": true }],
|
"g shift-e": [
|
||||||
|
"vim::PreviousWordEnd",
|
||||||
|
{
|
||||||
|
"ignorePunctuation": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"/": "vim::Search",
|
"/": "vim::Search",
|
||||||
"g /": "pane::DeploySearch",
|
"g /": "pane::DeploySearch",
|
||||||
"?": [
|
"?": [
|
||||||
@ -125,16 +126,39 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"m": ["vim::PushOperator", "Mark"],
|
"m": [
|
||||||
"'": ["vim::PushOperator", { "Jump": { "line": true } }],
|
"vim::PushOperator",
|
||||||
"`": ["vim::PushOperator", { "Jump": { "line": false } }],
|
"Mark"
|
||||||
|
],
|
||||||
|
"'": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
{
|
||||||
|
"Jump": {
|
||||||
|
"line": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"`": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
{
|
||||||
|
"Jump": {
|
||||||
|
"line": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
";": "vim::RepeatFind",
|
";": "vim::RepeatFind",
|
||||||
",": "vim::RepeatFindReversed",
|
",": "vim::RepeatFindReversed",
|
||||||
"ctrl-o": "pane::GoBack",
|
"ctrl-o": "pane::GoBack",
|
||||||
"ctrl-i": "pane::GoForward",
|
"ctrl-i": "pane::GoForward",
|
||||||
"ctrl-]": "editor::GoToDefinition",
|
"ctrl-]": "editor::GoToDefinition",
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"escape": [
|
||||||
"ctrl-[": ["vim::SwitchMode", "Normal"],
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
|
"ctrl-[": [
|
||||||
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
"v": "vim::ToggleVisual",
|
"v": "vim::ToggleVisual",
|
||||||
"shift-v": "vim::ToggleVisualLine",
|
"shift-v": "vim::ToggleVisualLine",
|
||||||
"ctrl-v": "vim::ToggleVisualBlock",
|
"ctrl-v": "vim::ToggleVisualBlock",
|
||||||
@ -260,7 +284,10 @@
|
|||||||
// z commands
|
// z commands
|
||||||
"z t": "editor::ScrollCursorTop",
|
"z t": "editor::ScrollCursorTop",
|
||||||
"z z": "editor::ScrollCursorCenter",
|
"z z": "editor::ScrollCursorCenter",
|
||||||
"z .": ["workspace::SendKeystrokes", "z z ^"],
|
"z .": [
|
||||||
|
"workspace::SendKeystrokes",
|
||||||
|
"z z ^"
|
||||||
|
],
|
||||||
"z b": "editor::ScrollCursorBottom",
|
"z b": "editor::ScrollCursorBottom",
|
||||||
"z c": "editor::Fold",
|
"z c": "editor::Fold",
|
||||||
"z o": "editor::UnfoldLines",
|
"z o": "editor::UnfoldLines",
|
||||||
@ -278,36 +305,123 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
// Count support
|
// Count support
|
||||||
"1": ["vim::Number", 1],
|
"1": [
|
||||||
"2": ["vim::Number", 2],
|
"vim::Number",
|
||||||
"3": ["vim::Number", 3],
|
1
|
||||||
"4": ["vim::Number", 4],
|
],
|
||||||
"5": ["vim::Number", 5],
|
"2": [
|
||||||
"6": ["vim::Number", 6],
|
"vim::Number",
|
||||||
"7": ["vim::Number", 7],
|
2
|
||||||
"8": ["vim::Number", 8],
|
],
|
||||||
"9": ["vim::Number", 9],
|
"3": [
|
||||||
|
"vim::Number",
|
||||||
|
3
|
||||||
|
],
|
||||||
|
"4": [
|
||||||
|
"vim::Number",
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"5": [
|
||||||
|
"vim::Number",
|
||||||
|
5
|
||||||
|
],
|
||||||
|
"6": [
|
||||||
|
"vim::Number",
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"7": [
|
||||||
|
"vim::Number",
|
||||||
|
7
|
||||||
|
],
|
||||||
|
"8": [
|
||||||
|
"vim::Number",
|
||||||
|
8
|
||||||
|
],
|
||||||
|
"9": [
|
||||||
|
"vim::Number",
|
||||||
|
9
|
||||||
|
],
|
||||||
// window related commands (ctrl-w X)
|
// window related commands (ctrl-w X)
|
||||||
"ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],
|
"ctrl-w left": [
|
||||||
"ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],
|
"workspace::ActivatePaneInDirection",
|
||||||
"ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],
|
"Left"
|
||||||
"ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],
|
],
|
||||||
"ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],
|
"ctrl-w right": [
|
||||||
"ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],
|
"workspace::ActivatePaneInDirection",
|
||||||
"ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],
|
"Right"
|
||||||
"ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],
|
],
|
||||||
"ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
|
"ctrl-w up": [
|
||||||
"ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
|
"workspace::ActivatePaneInDirection",
|
||||||
"ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
|
"Up"
|
||||||
"ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],
|
],
|
||||||
"ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],
|
"ctrl-w down": [
|
||||||
"ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],
|
"workspace::ActivatePaneInDirection",
|
||||||
"ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],
|
"Down"
|
||||||
"ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],
|
],
|
||||||
"ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],
|
"ctrl-w h": [
|
||||||
"ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],
|
"workspace::ActivatePaneInDirection",
|
||||||
"ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],
|
"Left"
|
||||||
"ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],
|
],
|
||||||
|
"ctrl-w l": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Right"
|
||||||
|
],
|
||||||
|
"ctrl-w k": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
|
"ctrl-w j": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Down"
|
||||||
|
],
|
||||||
|
"ctrl-w ctrl-h": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Left"
|
||||||
|
],
|
||||||
|
"ctrl-w ctrl-l": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Right"
|
||||||
|
],
|
||||||
|
"ctrl-w ctrl-k": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
|
"ctrl-w ctrl-j": [
|
||||||
|
"workspace::ActivatePaneInDirection",
|
||||||
|
"Down"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-left": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Left"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-right": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Right"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-up": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-down": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Down"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-h": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Left"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-l": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Right"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-k": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
|
"ctrl-w shift-j": [
|
||||||
|
"workspace::SwapPaneInDirection",
|
||||||
|
"Down"
|
||||||
|
],
|
||||||
"ctrl-w g t": "pane::ActivateNextItem",
|
"ctrl-w g t": "pane::ActivateNextItem",
|
||||||
"ctrl-w ctrl-g t": "pane::ActivateNextItem",
|
"ctrl-w ctrl-g t": "pane::ActivateNextItem",
|
||||||
"ctrl-w g shift-t": "pane::ActivatePrevItem",
|
"ctrl-w g shift-t": "pane::ActivatePrevItem",
|
||||||
@ -329,9 +443,14 @@
|
|||||||
"ctrl-w ctrl-q": "pane::CloseAllItems",
|
"ctrl-w ctrl-q": "pane::CloseAllItems",
|
||||||
"ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
|
"ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
|
||||||
"ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
|
"ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
|
||||||
"ctrl-w n": ["workspace::NewFileInDirection", "Up"],
|
"ctrl-w n": [
|
||||||
"ctrl-w ctrl-n": ["workspace::NewFileInDirection", "Up"],
|
"workspace::NewFileInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
|
"ctrl-w ctrl-n": [
|
||||||
|
"workspace::NewFileInDirection",
|
||||||
|
"Up"
|
||||||
|
],
|
||||||
"ctrl-w d": "editor::GoToDefinitionSplit",
|
"ctrl-w d": "editor::GoToDefinitionSplit",
|
||||||
"ctrl-w g d": "editor::GoToDefinitionSplit",
|
"ctrl-w g d": "editor::GoToDefinitionSplit",
|
||||||
"ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",
|
"ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",
|
||||||
@ -353,12 +472,21 @@
|
|||||||
"context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
|
"context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
".": "vim::Repeat",
|
".": "vim::Repeat",
|
||||||
"c": ["vim::PushOperator", "Change"],
|
"c": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Change"
|
||||||
|
],
|
||||||
"shift-c": "vim::ChangeToEndOfLine",
|
"shift-c": "vim::ChangeToEndOfLine",
|
||||||
"d": ["vim::PushOperator", "Delete"],
|
"d": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Delete"
|
||||||
|
],
|
||||||
"shift-d": "vim::DeleteToEndOfLine",
|
"shift-d": "vim::DeleteToEndOfLine",
|
||||||
"shift-j": "vim::JoinLines",
|
"shift-j": "vim::JoinLines",
|
||||||
"y": ["vim::PushOperator", "Yank"],
|
"y": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Yank"
|
||||||
|
],
|
||||||
"shift-y": "vim::YankLine",
|
"shift-y": "vim::YankLine",
|
||||||
"i": "vim::InsertBefore",
|
"i": "vim::InsertBefore",
|
||||||
"shift-i": "vim::InsertFirstNonWhitespace",
|
"shift-i": "vim::InsertFirstNonWhitespace",
|
||||||
@ -380,15 +508,36 @@
|
|||||||
],
|
],
|
||||||
"u": "editor::Undo",
|
"u": "editor::Undo",
|
||||||
"ctrl-r": "editor::Redo",
|
"ctrl-r": "editor::Redo",
|
||||||
"r": ["vim::PushOperator", "Replace"],
|
"r": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Replace"
|
||||||
|
],
|
||||||
"s": "vim::Substitute",
|
"s": "vim::Substitute",
|
||||||
"shift-s": "vim::SubstituteLine",
|
"shift-s": "vim::SubstituteLine",
|
||||||
">": ["vim::PushOperator", "Indent"],
|
">": [
|
||||||
"<": ["vim::PushOperator", "Outdent"],
|
"vim::PushOperator",
|
||||||
"g u": ["vim::PushOperator", "Lowercase"],
|
"Indent"
|
||||||
"g shift-u": ["vim::PushOperator", "Uppercase"],
|
],
|
||||||
"g ~": ["vim::PushOperator", "OppositeCase"],
|
"<": [
|
||||||
"\"": ["vim::PushOperator", "Register"],
|
"vim::PushOperator",
|
||||||
|
"Outdent"
|
||||||
|
],
|
||||||
|
"g u": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Lowercase"
|
||||||
|
],
|
||||||
|
"g shift-u": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Uppercase"
|
||||||
|
],
|
||||||
|
"g ~": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"OppositeCase"
|
||||||
|
],
|
||||||
|
"\"": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Register"
|
||||||
|
],
|
||||||
"ctrl-pagedown": "pane::ActivateNextItem",
|
"ctrl-pagedown": "pane::ActivateNextItem",
|
||||||
"ctrl-pageup": "pane::ActivatePrevItem",
|
"ctrl-pageup": "pane::ActivatePrevItem",
|
||||||
// tree-sitter related commands
|
// tree-sitter related commands
|
||||||
@ -403,7 +552,10 @@
|
|||||||
{
|
{
|
||||||
"context": "Editor && vim_mode == visual && vim_operator == none && !VimWaiting",
|
"context": "Editor && vim_mode == visual && vim_operator == none && !VimWaiting",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"\"": ["vim::PushOperator", "Register"],
|
"\"": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Register"
|
||||||
|
],
|
||||||
// tree-sitter related commands
|
// tree-sitter related commands
|
||||||
"[ x": "editor::SelectLargerSyntaxNode",
|
"[ x": "editor::SelectLargerSyntaxNode",
|
||||||
"] x": "editor::SelectSmallerSyntaxNode"
|
"] x": "editor::SelectSmallerSyntaxNode"
|
||||||
@ -412,7 +564,10 @@
|
|||||||
{
|
{
|
||||||
"context": "Editor && VimCount && vim_mode != insert",
|
"context": "Editor && VimCount && vim_mode != insert",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"0": ["vim::Number", 0]
|
"0": [
|
||||||
|
"vim::Number",
|
||||||
|
0
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -463,7 +618,10 @@
|
|||||||
{
|
{
|
||||||
"context": "Editor && vim_mode == normal && vim_operator == d",
|
"context": "Editor && vim_mode == normal && vim_operator == d",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"s": ["vim::PushOperator", "DeleteSurrounds"]
|
"s": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"DeleteSurrounds"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -585,10 +743,22 @@
|
|||||||
"shift-i": "vim::InsertBefore",
|
"shift-i": "vim::InsertBefore",
|
||||||
"shift-a": "vim::InsertAfter",
|
"shift-a": "vim::InsertAfter",
|
||||||
"shift-j": "vim::JoinLines",
|
"shift-j": "vim::JoinLines",
|
||||||
"r": ["vim::PushOperator", "Replace"],
|
"r": [
|
||||||
"ctrl-c": ["vim::SwitchMode", "Normal"],
|
"vim::PushOperator",
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"Replace"
|
||||||
"ctrl-[": ["vim::SwitchMode", "Normal"],
|
],
|
||||||
|
"ctrl-c": [
|
||||||
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
|
"escape": [
|
||||||
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
|
"ctrl-[": [
|
||||||
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
">": "vim::Indent",
|
">": "vim::Indent",
|
||||||
"<": "vim::Outdent",
|
"<": "vim::Outdent",
|
||||||
"i": [
|
"i": [
|
||||||
@ -636,7 +806,10 @@
|
|||||||
"ctrl-u": "editor::DeleteToBeginningOfLine",
|
"ctrl-u": "editor::DeleteToBeginningOfLine",
|
||||||
"ctrl-t": "vim::Indent",
|
"ctrl-t": "vim::Indent",
|
||||||
"ctrl-d": "vim::Outdent",
|
"ctrl-d": "vim::Outdent",
|
||||||
"ctrl-r": ["vim::PushOperator", "Register"]
|
"ctrl-r": [
|
||||||
|
"vim::PushOperator",
|
||||||
|
"Register"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -655,8 +828,14 @@
|
|||||||
"bindings": {
|
"bindings": {
|
||||||
"tab": "vim::Tab",
|
"tab": "vim::Tab",
|
||||||
"enter": "vim::Enter",
|
"enter": "vim::Enter",
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"escape": [
|
||||||
"ctrl-[": ["vim::SwitchMode", "Normal"]
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
],
|
||||||
|
"ctrl-[": [
|
||||||
|
"vim::SwitchMode",
|
||||||
|
"Normal"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -676,7 +855,8 @@
|
|||||||
{
|
{
|
||||||
"context": "EmptyPane || SharedScreen",
|
"context": "EmptyPane || SharedScreen",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
":": "command_palette::Toggle"
|
":": "command_palette::Toggle",
|
||||||
|
"g /": "pane::DeploySearch"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -102,6 +102,9 @@ impl Render for ProjectDiagnosticsEditor {
|
|||||||
|
|
||||||
div()
|
div()
|
||||||
.track_focus(&self.focus_handle)
|
.track_focus(&self.focus_handle)
|
||||||
|
.when(self.path_states.is_empty(), |el| {
|
||||||
|
el.key_context("EmptyPane")
|
||||||
|
})
|
||||||
.size_full()
|
.size_full()
|
||||||
.on_action(cx.listener(Self::toggle_warnings))
|
.on_action(cx.listener(Self::toggle_warnings))
|
||||||
.child(child)
|
.child(child)
|
||||||
|
@ -114,6 +114,15 @@ For vim-specific shortcuts, you may find the following template a good place to
|
|||||||
// e.g.
|
// e.g.
|
||||||
// "j j": "vim::NormalBefore" // remap jj in insert mode to escape.
|
// "j j": "vim::NormalBefore" // remap jj in insert mode to escape.
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"context": "EmptyPane || SharedScreen",
|
||||||
|
"bindings": {
|
||||||
|
// put key-bindings here (in addition to above) if you want them to
|
||||||
|
// work when no editor exists
|
||||||
|
// e.g.
|
||||||
|
// "space f": "file_finder::Toggle"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user