forked from qt-creator/qt-creator
		
	Make ZZ and ZQ work in FakeVim as aliases for :x and :q!
This commit is contained in:
		@@ -142,7 +142,8 @@ enum SubMode
 | 
			
		||||
    ShiftRightSubMode, // used for >
 | 
			
		||||
    WindowSubMode,     // used for Ctrl-w
 | 
			
		||||
    YankSubMode,       // used for y
 | 
			
		||||
    ZSubMode,
 | 
			
		||||
    ZSubMode,          // used for z
 | 
			
		||||
    CapitalZSubMode    // used for Z
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum SubSubMode
 | 
			
		||||
@@ -939,6 +940,13 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
 | 
			
		||||
            qDebug() << "IGNORED Z_MODE " << key << text;
 | 
			
		||||
        }
 | 
			
		||||
        m_submode = NoSubMode;
 | 
			
		||||
    } else if (m_submode == CapitalZSubMode) {
 | 
			
		||||
        // Recognize ZZ and ZQ as aliases for ":x" and ":q!".
 | 
			
		||||
        m_submode = NoSubMode;
 | 
			
		||||
        if (key == 'Z')
 | 
			
		||||
            handleExCommand("x");
 | 
			
		||||
        else if (key == 'Q')
 | 
			
		||||
            handleExCommand("q!");
 | 
			
		||||
    } else if (m_subsubmode == FtSubSubMode) {
 | 
			
		||||
        m_semicolonType = m_subsubdata;
 | 
			
		||||
        m_semicolonKey = key;
 | 
			
		||||
@@ -1228,7 +1236,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
 | 
			
		||||
        }
 | 
			
		||||
    } else if (key == 'j' || key == Key_Down) {
 | 
			
		||||
        if (m_submode == NoSubMode || m_submode == ZSubMode
 | 
			
		||||
                || m_submode == RegisterSubMode) {
 | 
			
		||||
                || m_submode == CapitalZSubMode || m_submode == RegisterSubMode) {
 | 
			
		||||
            moveDown(count());
 | 
			
		||||
        } else {
 | 
			
		||||
            m_moveType = MoveLineWise;
 | 
			
		||||
@@ -1254,7 +1262,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
 | 
			
		||||
        }
 | 
			
		||||
    } else if (key == 'k' || key == Key_Up) {
 | 
			
		||||
        if (m_submode == NoSubMode || m_submode == ZSubMode
 | 
			
		||||
                || m_submode == RegisterSubMode) {
 | 
			
		||||
                || m_submode == CapitalZSubMode || m_submode == RegisterSubMode) {
 | 
			
		||||
            moveUp(count());
 | 
			
		||||
        } else {
 | 
			
		||||
            m_moveType = MoveLineWise;
 | 
			
		||||
@@ -1434,6 +1442,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
 | 
			
		||||
        finishMovement();
 | 
			
		||||
    } else if (key == 'z') {
 | 
			
		||||
        m_submode = ZSubMode;
 | 
			
		||||
    } else if (key == 'Z') {
 | 
			
		||||
        m_submode = CapitalZSubMode;
 | 
			
		||||
    } else if (key == '~' && !atEndOfLine()) {
 | 
			
		||||
        setAnchor();
 | 
			
		||||
        moveRight(qMin(count(), rightDist()));
 | 
			
		||||
@@ -2260,7 +2270,7 @@ void FakeVimHandler::Private::moveToMatchingParanthesis()
 | 
			
		||||
    emit q->moveToMatchingParenthesis(&moved, &forward, &m_tc);
 | 
			
		||||
 | 
			
		||||
    if (moved && forward) {
 | 
			
		||||
       if (m_submode == NoSubMode || m_submode == ZSubMode || m_submode == RegisterSubMode)
 | 
			
		||||
       if (m_submode == NoSubMode || m_submode == ZSubMode || m_submode == CapitalZSubMode || m_submode == RegisterSubMode)
 | 
			
		||||
            m_tc.movePosition(Left, KeepAnchor, 1);
 | 
			
		||||
    }
 | 
			
		||||
    setTargetColumn();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user