function Active_whichkey()
	VSCodeNotify("whichkey.show")
end

function Top_screen()
	Cmd("call <SNR>3_reveal('top', 0)")
end

function Bottom_screen()
	Cmd("call <SNR>3_reveal('bottom', 0)")
end

function Move_to_top_screen()
	Cmd("call <SNR>3_moveCursor('top')")
end

function Move_to_bottom_screen()
	Cmd("call <SNR>3_moveCursor('bottom')")
end

function Scroll_line_down()
	VSCodeCall("scrollLineDown")
end

function Scroll_line_up()
	VSCodeCall("scrollLineUp")
end

function Vscode_ctrl_d()
	VSCodeNotify("vscode-neovim.ctrl-d")
end

function Vscode_ctrl_u()
	VSCodeNotify("vscode-neovim.ctrl-u")
end

function Move_to_bottom_screen__center_screen()
	Move_to_bottom_screen()
	Center_screen()
end

function Move_to_top_screen__center_screen()
	Move_to_top_screen()
	Center_screen()
end

function Trim_trailing_whitespace()
	VSCodeCall("editor.action.trimTrailingWhitespace")
end

function Save()
	VSCodeCall("workbench.action.files.save")
end

function Save_no_format()
	VSCodeCall("workbench.action.files.saveWithoutFormatting")
end

function Trim__save__no_format()
	Trim_trailing_whitespace()
	Save_no_format()
end

function Trim__save__no_highlight()
	Trim_trailing_whitespace()
	Save()
	Remove_highlighting()
end

function Format()
	VSCodeCall("editor.action.formatDocument")
	print("formatted!")
end

function Trim__save__format()
	Trim_trailing_whitespace()
	Format()
	Save()
end

function Reveal_definition_aside()
	VSCodeNotify("editor.action.revealDefinitionAside")
end

function Go_to_implementation()
	VSCodeNotify("editor.action.goToImplementation")
end

function Go_to_reference()
	VSCodeNotify("editor.action.goToReferences")
end

function Rename_symbol()
	VSCodeNotify("editor.action.rename")
end

function Outdent()
	---@diagnostic disable-next-line: unused-local
	for i = 1, vim.v.count1 do
		VSCodeNotify("editor.action.outdentLines")
	end
end

function Indent()
	---@diagnostic disable-next-line: unused-local
	for i = 1, vim.v.count1 do
		VSCodeNotify("editor.action.indentLines")
	end
end

function Outdent_vis()
	VSCodeNotify("editor.action.outdentLines", false)
end

function Indent_vis()
	VSCodeNotify("editor.action.indentLines", false)
end

function Comment()
	VSCodeNotify("editor.action.commentLine")
end

function Convert_to_spaces()
	VSCodeNotify("editor.action.indentationToSpaces")
end

function Convert_to_tabs()
	VSCodeNotify("editor.action.indentationToTabs")
end

function Indent_with_spaces()
	VSCodeNotify("editor.action.indentUsingSpaces")
end

function Indent_with_tabs()
	VSCodeNotify("editor.action.indentUsingTabs")
end

function CloseEditor()
	VSCodeNotify("workbench.action.closeActiveEditor")
end

function UndoCloseEditor()
	VSCodeNotify("workbench.action.reopenClosedEditor")
end

function Git_stage_file()
	Trim_trailing_whitespace()
	Save()
	VSCodeNotify("git.stage")
end

function Git_unstage_file()
	Save()
	VSCodeNotify("git.unstage")
end

function Git_revert_change()
	VSCodeNotify("git.revertSelectedRanges")
end

function Git_stage_change()
	VSCodeNotify("git.stageSelectedRanges")
end

function Git_unstage_change()
	VSCodeNotify("git.unstageSelectedRanges")
end

function Git_open_changes()
	VSCodeNotify("git.openChange")
end

function Git_open_all_changes()
	VSCodeNotify("git.openAllChanges")
end

function Accept_merge_both()
	VSCodeNotify("merge-conflict.accept.both")
end

function Accept_merge_all_both()
	VSCodeNotify("merge-conflict.accept.all-both")
end

function Accept_merge_current()
	VSCodeNotify("merge-conflict.accept.current")
end

function Accept_merge_all_current()
	VSCodeNotify("merge-conflict.accept.all-current")
end

function Accept_merge_incoming()
	VSCodeNotify("merge-conflict.accept.incoming")
end

function Accept_merge_all_incoming()
	VSCodeNotify("merge-conflict.accept.all-incoming")
end

function Accept_merge_selection()
	VSCodeNotify("merge-conflict.accept.selection")
end

function Codesnap()
	VSCodeNotify("codesnap.start", true)
end

function Comment_vis()
	VSCodeNotify("editor.action.commentLine", false)
end

function Toggle_breakpoint()
	VSCodeNotify("editor.debug.action.toggleBreakpoint")
end

function Copy_path()
	VSCodeNotify("copyFilePath")
end

function Copy_relative_path()
	VSCodeNotify("copyRelativeFilePath")
end

function Active_whichkey()
	VSCodeNotify("whichkey.show")
end

function Navigation_down()
	VSCodeNotify("workbench.action.navigateDown")
end

function Navigation_up()
	VSCodeNotify("workbench.action.navigateUp")
end

function Navigation_left()
	VSCodeNotify("workbench.action.navigateLeft")
end

function Navigation_right()
	VSCodeNotify("workbench.action.navigateRight")
end

function Select_all()
	VSCodeNotify("editor.action.selectAll")
end

function Copy_clipboard()
	VSCodeNotify("editor.action.clipboardCopyAction")
end

function Paste_clipboard()
	VSCodeNotify("editor.action.clipboardPasteAction")
end

function Save()
	VSCodeNotify("workbench.action.files.save")
	VSCodeNotify("workbench.action.files.saveAll")
end

function Close()
	VSCodeNotify("workbench.action.closeActiveEditor")
end