{
    let mut commands: HashMap<&'static str, Command> = HashMap::new();
    commands.insert("workspace::next_buffer", workspace::next_buffer);
    commands.insert("workspace::new_buffer", workspace::new_buffer);
    commands.insert("view::scroll_up", view::scroll_up);
    commands.insert("view::scroll_down", view::scroll_down);
    commands.insert("view::scroll_to_cursor", view::scroll_to_cursor);
    commands.insert("view::scroll_cursor_to_center", view::scroll_cursor_to_center);
    commands.insert("selection::delete", selection::delete);
    commands.insert("selection::copy_and_delete", selection::copy_and_delete);
    commands.insert("selection::change", selection::change);
    commands.insert("selection::copy", selection::copy);
    commands.insert("selection::select_all", selection::select_all);
    commands.insert("selection::justify", selection::justify);
    commands.insert("search_select::accept", search_select::accept);
    commands.insert("search_select::search", search_select::search);
    commands.insert("search_select::select_next", search_select::select_next);
    commands.insert("search_select::select_previous", search_select::select_previous);
    commands.insert("search_select::enable_insert", search_select::enable_insert);
    commands.insert("search_select::disable_insert", search_select::disable_insert);
    commands.insert("search_select::push_search_char", search_select::push_search_char);
    commands.insert("search_select::pop_search_token", search_select::pop_search_token);
    commands.insert("search_select::step_back", search_select::step_back);
    commands.insert("search::move_to_previous_result", search::move_to_previous_result);
    commands.insert("search::move_to_next_result", search::move_to_next_result);
    commands.insert("search::move_to_current_result", search::move_to_current_result);
    commands.insert("search::accept_query", search::accept_query);
    commands.insert("search::reset", search::reset);
    commands.insert("search::push_search_char", search::push_search_char);
    commands.insert("search::pop_search_char", search::pop_search_char);
    commands.insert("search::run", search::run);
    commands.insert("preferences::edit", preferences::edit);
    commands.insert("preferences::reload", preferences::reload);
    commands.insert("path::push_char", path::push_char);
    commands.insert("path::pop_char", path::pop_char);
    commands.insert("path::accept_path", path::accept_path);
    commands.insert("line_jump::accept_input", line_jump::accept_input);
    commands.insert("line_jump::push_search_char", line_jump::push_search_char);
    commands.insert("line_jump::pop_search_char", line_jump::pop_search_char);
    commands.insert("jump::match_tag", jump::match_tag);
    commands.insert("jump::push_search_char", jump::push_search_char);
    commands.insert("git::add", git::add);
    commands.insert("git::copy_remote_url", git::copy_remote_url);
    commands.insert("cursor::move_up", cursor::move_up);
    commands.insert("cursor::move_down", cursor::move_down);
    commands.insert("cursor::move_left", cursor::move_left);
    commands.insert("cursor::move_right", cursor::move_right);
    commands.insert("cursor::move_to_start_of_line", cursor::move_to_start_of_line);
    commands.insert("cursor::move_to_end_of_line", cursor::move_to_end_of_line);
    commands.insert("cursor::move_to_first_line", cursor::move_to_first_line);
    commands.insert("cursor::move_to_last_line", cursor::move_to_last_line);
    commands.insert("cursor::move_to_first_word_of_line", cursor::move_to_first_word_of_line);
    commands.insert("cursor::insert_at_end_of_line", cursor::insert_at_end_of_line);
    commands.insert("cursor::insert_at_first_word_of_line", cursor::insert_at_first_word_of_line);
    commands.insert("cursor::insert_with_newline", cursor::insert_with_newline);
    commands.insert("cursor::insert_with_newline_above", cursor::insert_with_newline_above);
    commands.insert("cursor::move_to_start_of_previous_token", cursor::move_to_start_of_previous_token);
    commands.insert("cursor::move_to_start_of_next_token", cursor::move_to_start_of_next_token);
    commands.insert("cursor::move_to_end_of_current_token", cursor::move_to_end_of_current_token);
    commands.insert("cursor::append_to_current_token", cursor::append_to_current_token);
    commands.insert("confirm::confirm_command", confirm::confirm_command);
    commands.insert("buffer::save", buffer::save);
    commands.insert("buffer::reload", buffer::reload);
    commands.insert("buffer::delete", buffer::delete);
    commands.insert("buffer::delete_token", buffer::delete_token);
    commands.insert("buffer::delete_current_line", buffer::delete_current_line);
    commands.insert("buffer::copy_current_line", buffer::copy_current_line);
    commands.insert("buffer::merge_next_line", buffer::merge_next_line);
    commands.insert("buffer::close", buffer::close);
    commands.insert("buffer::close_others", buffer::close_others);
    commands.insert("buffer::close_others_confirm", buffer::close_others_confirm);
    commands.insert("buffer::backspace", buffer::backspace);
    commands.insert("buffer::insert_char", buffer::insert_char);
    commands.insert("buffer::display_current_scope", buffer::display_current_scope);
    commands.insert("buffer::insert_newline", buffer::insert_newline);
    commands.insert("buffer::indent_line", buffer::indent_line);
    commands.insert("buffer::outdent_line", buffer::outdent_line);
    commands.insert("buffer::toggle_line_comment", buffer::toggle_line_comment);
    commands.insert("buffer::change_token", buffer::change_token);
    commands.insert("buffer::delete_rest_of_line", buffer::delete_rest_of_line);
    commands.insert("buffer::change_rest_of_line", buffer::change_rest_of_line);
    commands.insert("buffer::start_command_group", buffer::start_command_group);
    commands.insert("buffer::end_command_group", buffer::end_command_group);
    commands.insert("buffer::undo", buffer::undo);
    commands.insert("buffer::redo", buffer::redo);
    commands.insert("buffer::paste", buffer::paste);
    commands.insert("buffer::paste_above", buffer::paste_above);
    commands.insert("buffer::remove_trailing_whitespace", buffer::remove_trailing_whitespace);
    commands.insert("buffer::ensure_trailing_newline", buffer::ensure_trailing_newline);
    commands.insert("buffer::insert_tab", buffer::insert_tab);
    commands.insert("buffer::format", buffer::format);
    commands.insert("application::handle_input", application::handle_input);
    commands.insert("application::switch_to_normal_mode", application::switch_to_normal_mode);
    commands.insert("application::switch_to_insert_mode", application::switch_to_insert_mode);
    commands.insert("application::switch_to_jump_mode", application::switch_to_jump_mode);
    commands.insert("application::switch_to_second_stage_jump_mode", application::switch_to_second_stage_jump_mode);
    commands.insert("application::switch_to_line_jump_mode", application::switch_to_line_jump_mode);
    commands.insert("application::switch_to_open_mode", application::switch_to_open_mode);
    commands.insert("application::switch_to_command_mode", application::switch_to_command_mode);
    commands.insert("application::switch_to_symbol_jump_mode", application::switch_to_symbol_jump_mode);
    commands.insert("application::switch_to_theme_mode", application::switch_to_theme_mode);
    commands.insert("application::switch_to_select_mode", application::switch_to_select_mode);
    commands.insert("application::switch_to_select_line_mode", application::switch_to_select_line_mode);
    commands.insert("application::switch_to_search_mode", application::switch_to_search_mode);
    commands.insert("application::switch_to_path_mode", application::switch_to_path_mode);
    commands.insert("application::switch_to_syntax_mode", application::switch_to_syntax_mode);
    commands.insert("application::display_default_keymap", application::display_default_keymap);
    commands.insert("application::display_quick_start_guide", application::display_quick_start_guide);
    commands.insert("application::display_available_commands", application::display_available_commands);
    commands.insert("application::display_last_error", application::display_last_error);
    commands.insert("application::suspend", application::suspend);
    commands.insert("application::exit", application::exit);
    commands
}
