Index: src/view/kateview.cpp =================================================================== --- src/view/kateview.cpp +++ src/view/kateview.cpp @@ -2716,42 +2716,74 @@ void KTextEditor::ViewPrivate::keyReturn() { - m_viewInternal->doReturn(); + doc()->newLine(this); + m_viewInternal->iconBorder()->updateForCursorLineChange(); + m_viewInternal->updateView(); } void KTextEditor::ViewPrivate::smartNewline() { - m_viewInternal->doSmartNewline(); + const KTextEditor::Cursor cursor = cursorPosition(); + const int ln = cursor.line(); + Kate::TextLine line = doc()->kateTextLine(ln); + int col = qMin(cursor.column(), line->firstChar()); + if (col != -1) { + while (line->length() > col && + !(line->at(col).isLetterOrNumber() || line->at(col) == QLatin1Char('_')) && + col < cursor.column()) { + ++col; + } + } else { + col = line->length(); // stay indented + } + doc()->editStart(); + doc()->editWrapLine(ln, cursor.column()); + doc()->insertText(KTextEditor::Cursor(ln + 1, 0), line->string(0, col)); + doc()->editEnd(); + + m_viewInternal->updateView(); } void KTextEditor::ViewPrivate::backspace() { - m_viewInternal->doBackspace(); + doc()->backspace(this, m_viewInternal->m_cursor); } void KTextEditor::ViewPrivate::insertTab() { - m_viewInternal->doTabulator(); + doc()->insertTab(this, m_viewInternal->m_cursor); } void KTextEditor::ViewPrivate::deleteWordLeft() { - m_viewInternal->doDeletePrevWord(); + doc()->editStart(); + m_viewInternal->wordPrev(true); + KTextEditor::Range selection = selectionRange(); + removeSelectedText(); + doc()->editEnd(); + m_viewInternal->tagRange(selection, true); + m_viewInternal->updateDirty(); } void KTextEditor::ViewPrivate::keyDelete() { - m_viewInternal->doDelete(); + doc()->del(this, cursorPosition()); } void KTextEditor::ViewPrivate::deleteWordRight() { - m_viewInternal->doDeleteNextWord(); + doc()->editStart(); + m_viewInternal->wordNext(true); + KTextEditor::Range selection = selectionRange(); + removeSelectedText(); + doc()->editEnd(); + m_viewInternal->tagRange(selection, true); + m_viewInternal->updateDirty(); } void KTextEditor::ViewPrivate::transpose() { - m_viewInternal->doTranspose(); + doc()->transpose(m_viewInternal->m_cursor); } void KTextEditor::ViewPrivate::cursorLeft() Index: src/view/kateviewinternal.h =================================================================== --- src/view/kateviewinternal.h +++ src/view/kateviewinternal.h @@ -172,15 +172,6 @@ void viewSelectionChanged(); public: - void doReturn(); - void doSmartNewline(); - void doDelete(); - void doBackspace(); - void doTabulator(); - void doTranspose(); - void doDeletePrevWord(); - void doDeleteNextWord(); - void cursorPrevChar(bool sel = false); void cursorNextChar(bool sel = false); void wordPrev(bool sel = false); Index: src/view/kateviewinternal.cpp =================================================================== --- src/view/kateviewinternal.cpp +++ src/view/kateviewinternal.cpp @@ -877,76 +877,6 @@ return c; } -void KateViewInternal::doReturn() -{ - doc()->newLine(m_view); - m_leftBorder->updateForCursorLineChange(); - updateView(); -} - -void KateViewInternal::doSmartNewline() -{ - int ln = m_cursor.line(); - Kate::TextLine line = doc()->kateTextLine(ln); - int col = qMin(m_cursor.column(), line->firstChar()); - if (col != -1) { - while (line->length() > col && - !(line->at(col).isLetterOrNumber() || line->at(col) == QLatin1Char('_')) && - col < m_cursor.column()) { - ++col; - } - } else { - col = line->length(); // stay indented - } - doc()->editStart(); - doc()->editWrapLine(ln, m_cursor.column()); - doc()->insertText(KTextEditor::Cursor(ln + 1, 0), line->string(0, col)); - doc()->editEnd(); - - updateView(); -} - -void KateViewInternal::doDelete() -{ - doc()->del(m_view, m_cursor); -} - -void KateViewInternal::doBackspace() -{ - doc()->backspace(m_view, m_cursor); -} - -void KateViewInternal::doTabulator() -{ - doc()->insertTab(m_view, m_cursor); -} - -void KateViewInternal::doTranspose() -{ - doc()->transpose(m_cursor); -} - -void KateViewInternal::doDeletePrevWord() -{ - doc()->editStart(); - wordPrev(true); - KTextEditor::Range selection = m_view->selectionRange(); - m_view->removeSelectedText(); - doc()->editEnd(); - tagRange(selection, true); - updateDirty(); -} - -void KateViewInternal::doDeleteNextWord() -{ - doc()->editStart(); - wordNext(true); - KTextEditor::Range selection = m_view->selectionRange(); - m_view->removeSelectedText(); - doc()->editEnd(); - tagRange(selection, true); - updateDirty(); -} class CalculatingCursor { @@ -2460,7 +2390,7 @@ } if ((key == Qt::Key_Return) || (key == Qt::Key_Enter) || (key == Qt::SHIFT + Qt::Key_Return) || (key == Qt::SHIFT + Qt::Key_Enter)) { - doReturn(); + m_view->keyReturn(); e->accept(); return; }