/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing ** ** This file is part of Qt Creator. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms and ** conditions see http://www.qt.io/terms-conditions. For further information ** use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 or version 3 as published by the Free ** Software Foundation and appearing in the file LICENSE.LGPLv21 and ** LICENSE.LGPLv3 included in the packaging of this file. Please review the ** following information to ensure the GNU Lesser General Public License ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, The Qt Company gives you certain additional ** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ****************************************************************************/ #ifndef FAKEVIMPLUGIN_H #define FAKEVIMPLUGIN_H #include namespace FakeVim { namespace Internal { class FakeVimHandler; class FakeVimPluginPrivate; class FakeVimPlugin : public ExtensionSystem::IPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "FakeVim.json") public: FakeVimPlugin(); ~FakeVimPlugin(); private: // implementation of ExtensionSystem::IPlugin bool initialize(const QStringList &arguments, QString *errorMessage); ShutdownFlag aboutToShutdown(); void extensionsInitialized(); private: friend class FakeVimPluginPrivate; FakeVimPluginPrivate *d; #ifdef WITH_TESTS private slots: void cleanup(); void test_vim_movement(); void test_vim_target_column_normal(); void test_vim_target_column_visual_char(); void test_vim_target_column_visual_block(); void test_vim_target_column_visual_line(); void test_vim_target_column_insert(); void test_vim_target_column_replace(); void test_vim_insert(); void test_vim_fFtT(); void test_vim_transform_numbers(); void test_vim_delete(); void test_vim_delete_inner_word(); void test_vim_delete_a_word(); void test_vim_change_a_word(); void test_vim_change_replace(); void test_vim_block_selection(); void test_vim_block_selection_insert(); void test_vim_delete_inner_paragraph(); void test_vim_delete_a_paragraph(); void test_vim_change_inner_paragraph(); void test_vim_change_a_paragraph(); void test_vim_select_inner_paragraph(); void test_vim_select_a_paragraph(); void test_vim_repeat(); void test_vim_search(); void test_vim_indent(); void test_vim_marks(); void test_vim_jumps(); void test_vim_current_column(); void test_vim_copy_paste(); void test_vim_undo_redo(); void test_vim_letter_case(); void test_vim_code_autoindent(); void test_vim_code_folding(); void test_vim_code_completion(); void test_vim_substitute(); void test_vim_ex_commandbuffer_paste(); void test_vim_ex_yank(); void test_vim_ex_delete(); void test_vim_ex_change(); void test_vim_ex_shift(); void test_vim_ex_move(); void test_vim_ex_join(); void test_advanced_commands(); //public slots: // void changeStatusData(const QString &info) { m_statusData = info; } // void changeStatusMessage(const QString &info, int) { m_statusMessage = info; } // void changeExtraInformation(const QString &info) { m_infoMessage = info; } //private slots: // // functional tests void test_vim_indentation(); // command mode void test_vim_command_oO(); void test_vim_command_put_at_eol(); void test_vim_command_Cxx_down_dot(); void test_vim_command_Gyyp(); void test_vim_command_J(); void test_vim_command_Yp(); void test_vim_command_cc(); void test_vim_command_cw(); void test_vim_command_cj(); void test_vim_command_ck(); void test_vim_command_c_dollar(); void test_vim_command_C(); void test_vim_command_dd(); void test_vim_command_dd_2(); void test_vim_command_d_dollar(); void test_vim_command_dgg(); void test_vim_command_dG(); void test_vim_command_dj(); void test_vim_command_dk(); void test_vim_command_D(); void test_vim_command_dfx_down(); void test_vim_command_dollar(); void test_vim_command_down(); void test_vim_command_dw(); void test_vim_command_e(); void test_vim_command_i(); void test_vim_command_left(); void test_vim_command_ma_yank(); void test_vim_command_r(); void test_vim_command_right(); void test_vim_command_up(); void test_vim_command_w(); void test_vim_command_x(); void test_vim_command_yyp(); void test_vim_command_y_dollar(); void test_vim_command_percent(); void test_vim_visual_d(); void test_vim_Visual_d(); void test_vim_visual_block_D(); void test_macros(); void test_vim_qtcreator(); // special tests void test_i_cw_i(); // map test should be last one since it changes default behaviour void test_map(); //private: // QString m_statusMessage; // QString m_statusData; // QString m_infoMessage; private: struct TestData; void setup(TestData *data); void setupTest(QString *title, FakeVimHandler **handler, QWidget **edit); #endif }; } // namespace Internal } // namespace FakeVim #endif // FAKEVIMPLUGIN_H