Warning, file /frameworks/ktexteditor/src/inputmode/kateviinputmode.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: KDE Developers
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KATE_VI_INPUT_MODE_H
0008 #define KATE_VI_INPUT_MODE_H
0009 
0010 #include <memory>
0011 
0012 #include "kateabstractinputmode.h"
0013 
0014 #include <vimode/inputmodemanager.h>
0015 
0016 namespace KateVi
0017 {
0018 class GlobalState;
0019 class EmulatedCommandBar;
0020 }
0021 class KateViInputModeFactory;
0022 
0023 class KTEXTEDITOR_EXPORT KateViInputMode : public KateAbstractInputMode
0024 {
0025     explicit KateViInputMode(KateViewInternal *viewInternal, KateVi::GlobalState *global);
0026     friend KateViInputModeFactory;
0027 
0028 public:
0029     KTextEditor::View::ViewMode viewMode() const override;
0030     QString viewModeHuman() const override;
0031     KTextEditor::View::InputMode viewInputMode() const override;
0032     QString viewInputModeHuman() const override;
0033 
0034     void activate() override;
0035     void deactivate() override;
0036     void reset() override;
0037 
0038     bool overwrite() const override;
0039     void overwrittenChar(const QChar &) override;
0040 
0041     void clearSelection() override;
0042     bool stealKey(QKeyEvent *) override;
0043 
0044     void gotFocus() override;
0045     void lostFocus() override;
0046 
0047     void readSessionConfig(const KConfigGroup &config) override;
0048     void writeSessionConfig(KConfigGroup &config) override;
0049     void updateRendererConfig() override;
0050     void updateConfig() override;
0051     void readWriteChanged(bool rw) override;
0052 
0053     void find() override;
0054     void findSelectedForwards() override;
0055     void findSelectedBackwards() override;
0056     void findReplace() override;
0057     void findNext() override;
0058     void findPrevious() override;
0059 
0060     void activateCommandLine() override;
0061 
0062     bool keyPress(QKeyEvent *) override;
0063     bool blinkCaret() const override;
0064     KateRenderer::caretStyles caretStyle() const override;
0065 
0066     void toggleInsert() override;
0067     void launchInteractiveCommand(const QString &command) override;
0068 
0069     QString bookmarkLabel(int line) const override;
0070 
0071 public:
0072     void showViModeEmulatedCommandBar();
0073     KateVi::EmulatedCommandBar *viModeEmulatedCommandBar();
0074     inline KateVi::GlobalState *globalState() const
0075     {
0076         return m_viGlobal;
0077     }
0078     inline KateVi::InputModeManager *viInputModeManager() const
0079     {
0080         return m_viModeManager.get();
0081     }
0082     inline bool isActive() const
0083     {
0084         return m_activated;
0085     }
0086     void setCaretStyle(const KateRenderer::caretStyles caret);
0087 
0088 private:
0089     KateVi::EmulatedCommandBar *m_viModeEmulatedCommandBar;
0090     KateVi::GlobalState *m_viGlobal;
0091     KateRenderer::caretStyles m_caret;
0092 
0093     bool m_nextKeypressIsOverriddenShortCut;
0094 
0095     // configs
0096     bool m_relLineNumbers;
0097     bool m_activated;
0098 
0099     std::unique_ptr<KateVi::InputModeManager> m_viModeManager;
0100 };
0101 
0102 #endif