• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • applications API Reference
  • KDE Home
  • Contact Us
 

Kate

  • sources
  • kde-4.12
  • applications
  • kate
  • part
  • vimode
katevivisualmode.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE libraries and the Kate part.
2  *
3  * Copyright (C) 2008 Erlend Hamberg <ehamberg@gmail.com>
4  * Copyright (C) 2011 Svyatoslav Kuzmich <svatoslav1@gmail.com>
5  * Copyright (C) 2012 - 2013 Simon St James <kdedevel@etotheipiplusone.com>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public License
18  * along with this library; see the file COPYING.LIB. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 #include "kateglobal.h"
24 #include "kateviglobal.h"
25 #include "katevivisualmode.h"
26 #include "katevirange.h"
27 
28 using KTextEditor::Cursor;
29 using KTextEditor::Range;
30 using KTextEditor::View;
31 
32 #define ADDCMD(STR,FUNC, FLGS) m_commands.push_back( \
33  new KateViCommand( this, STR, &KateViNormalMode::FUNC, FLGS ) );
34 
35 #define ADDMOTION(STR, FUNC, FLGS) m_motions.push_back( new \
36  KateViMotion( this, STR, &KateViNormalMode::FUNC, FLGS ) );
37 
38 KateViVisualMode::KateViVisualMode( KateViInputModeManager* viInputModeManager, KateView *view, KateViewInternal *viewInternal )
39  : KateViNormalMode( viInputModeManager, view, viewInternal )
40 {
41  m_start.setPosition( -1, -1 );
42 
43  m_mode = VisualMode;
44 
45  initializeCommands();
46  connect(m_view, SIGNAL(selectionChanged(KTextEditor::View*)), this, SLOT(updateSelection()));
47 }
48 
49 KateViVisualMode::~KateViVisualMode()
50 {
51 }
52 
53 void KateViVisualMode::SelectInclusive(Cursor c1, Cursor c2) {
54  if ( c1 >= c2 )
55  m_view->setSelection(Range(c1.line(), c1.column() + 1,
56  c2.line(), c2.column()));
57  else
58  m_view->setSelection(Range(c1.line(), c1.column(),
59  c2.line(), c2.column() + 1));
60 }
61 
62 void KateViVisualMode::SelectBlockInclusive(Cursor c1, Cursor c2) {
63  m_view->setBlockSelection(true);
64  if ( c1.column() >= c2.column() )
65  m_view->setSelection(Range(c1.line(), c1.column() + 1,
66  c2.line(), c2.column()));
67  else
68  m_view->setSelection(Range(c1.line(), c1.column(),
69  c2.line(), c2.column() + 1));
70 }
71 
72 
73 
74 void KateViVisualMode::SelectLines(Range range) {
75  int startline = qMin(range.start().line(),range.end().line());
76  int endline = qMax(range.start().line(),range.end().line());
77  m_view->setSelection(Range(Cursor(startline,0),
78  Cursor(endline,m_view->doc()->lineLength(endline)+1)));
79 }
80 
81 void KateViVisualMode::goToPos( const KateViRange &r )
82 {
83  Cursor c = m_view->cursorPosition();
84 
85  if ( r.startLine != -1 && r.startColumn != -1 && c == m_start ) {
86  m_start.setLine( r.startLine );
87  m_start.setColumn( r.startColumn );
88  c.setLine( r.endLine );
89  c.setColumn( r.endColumn );
90  }
91  else if ( r.startLine != -1 && r.startColumn != -1 && m_motionCanChangeWholeVisualModeSelection )
92  {
93  const Cursor textObjectBegin(r.startLine, r.startColumn);
94  if (textObjectBegin < m_start)
95  {
96  m_start.setLine( r.startLine );
97  m_start.setColumn( r.startColumn );
98  c.setLine( r.endLine );
99  c.setColumn( r.endColumn );
100  }
101  }
102  else {
103  c.setLine( r.endLine );
104  c.setColumn( r.endColumn );
105  }
106 
107  if ( c.line() >= doc()->lines() ) {
108  c.setLine( doc()->lines()-1 );
109  }
110 
111  updateCursor( c );
112 
113  // Setting range for a command
114  m_commandRange.startLine = m_start.line();
115  m_commandRange.startColumn = m_start.column();
116  m_commandRange.endLine = c.line();
117  m_commandRange.endColumn = c.column();
118 
119  // If visual mode is blockwise
120  if (isVisualBlock()){
121  SelectBlockInclusive(m_start,c);
122 
123  // Need to correct command range to make it inclusive.
124  if ( (c.line() < m_start.line() && c.column() > m_start.column()) ||
125  (c.line() > m_start.line() && c.column() < m_start.column()) )
126  qSwap(m_commandRange.endColumn, m_commandRange.startColumn);
127 
128  return;
129  } else {
130  m_view->setBlockSelection(false);
131  }
132 
133  // If visual mode is linewise
134  if (isVisualLine()){
135  SelectLines(Range(m_start,c));
136  return;
137  }
138 
139  // If visual mode is charwise
140  SelectInclusive(m_start,c);
141 }
142 
143 void KateViVisualMode::reset()
144 {
145  m_mode = VisualMode;
146 
147  // only switch to normal mode if still in visual mode. commands like c, s, ...
148  // can have switched to insert mode
149  if ( m_viInputModeManager->getCurrentViMode() == VisualMode
150  || m_viInputModeManager->getCurrentViMode() == VisualLineMode
151  || m_viInputModeManager->getCurrentViMode() == VisualBlockMode ) {
152 
153  saveRangeMarks();
154  m_lastVisualMode = m_viInputModeManager->getCurrentViMode();
155 
156  // Return the cursor back to start of selection after.
157  if (!m_pendingResetIsDueToExit)
158  {
159  Cursor c = m_view->cursorPosition();
160  if (m_start.line() != -1 && m_start.column() != -1) {
161  if (m_viInputModeManager->getCurrentViMode() == VisualLineMode) {
162  if (m_start.line() < c.line()) {
163  updateCursor(Cursor(m_start.line(),0));
164  m_stickyColumn = -1;
165  }
166  } else {
167  updateCursor(qMin(m_start,c));
168  m_stickyColumn = -1;
169  }
170  }
171  }
172 
173  startNormalMode();
174  }
175 
176  if (!m_commandShouldKeepSelection)
177  m_view->removeSelection();
178  else
179  m_commandShouldKeepSelection = false;
180 
181  m_start.setPosition( -1, -1 );
182 
183  m_pendingResetIsDueToExit = false;
184 }
185 
186 void KateViVisualMode::saveRangeMarks()
187 {
188  // DO NOT save these marks if the
189  // action that exited visual mode deleted the selection
190  if (m_deleteCommand == false) {
191  m_view->getViInputModeManager()->addMark( doc(), '<', m_start );
192  m_view->getViInputModeManager()->addMark( doc(), '>', m_view->cursorPosition() );
193  }
194 }
195 
196 void KateViVisualMode::init()
197 {
198  // when using "gv" we already have a start position
199  if ( !m_start.isValid() ) {
200  m_start = m_view->cursorPosition();
201  }
202 
203  if (isVisualLine()){
204  Cursor c = m_view->cursorPosition();
205  SelectLines(Range(c,c));
206 
207  }
208 
209  m_commandRange.startLine = m_commandRange.endLine = m_start.line();
210  m_commandRange.startColumn = m_commandRange.endColumn = m_start.column();
211 
212 
213 }
214 
215 void KateViVisualMode::setVisualLine( bool l )
216 {
217  if ( l ) {
218  m_mode = VisualLineMode;
219  } else {
220  m_mode = VisualMode;
221  }
222 }
223 
224 void KateViVisualMode::setVisualBlock( bool l )
225 {
226  if ( l ) {
227  m_mode = VisualBlockMode;
228  } else {
229  m_mode = VisualMode;
230  }
231 }
232 
233 void KateViVisualMode::setVisualModeType( ViMode mode )
234 {
235  Q_ASSERT( mode == VisualMode || mode == VisualLineMode || mode == VisualBlockMode );
236  m_mode = mode;
237 }
238 
239 void KateViVisualMode::switchStartEnd()
240 {
241  Cursor c = m_start;
242  m_start = m_view->cursorPosition();
243 
244  updateCursor( c );
245 
246  m_stickyColumn = -1;
247 }
248 
249 void KateViVisualMode::goToPos(const Cursor& c)
250 {
251  KateViRange r;
252  r.endColumn = c.column();
253  r.endLine = c.line();
254  goToPos(r);
255 }
256 
257 void KateViVisualMode::updateSelection( ) {
258  if(!m_view->viInputMode() || (m_viInputModeManager->isHandlingKeypress() && !m_isUndo))
259  return;
260 
261  // If we are there it's already not VisualBlock mode.
262  m_view->setBlockSelection(false);
263 
264  Range r = m_view->selectionRange();
265 
266  // If not valid going back to normal mode
267  if (!r.isValid()) {
268  reset();
269  return;
270  }
271 
272  // If alredy not in visual mode, it's time to go there.
273  if (m_viInputModeManager->getCurrentViMode() != VisualMode)
274  commandEnterVisualMode();
275 
276  if (m_view->cursorPosition() == r.start()) {
277  m_start = r.end();
278  } else {
279  m_start = r.start();
280  }
281 
282  // Set range for commands
283  m_commandRange.startLine = r.start().line();
284  m_commandRange.startColumn = r.start().column();
285  m_commandRange.endLine = r.end().line();
286  // The end of the selectionRange seems to be one space forward of where it should be.
287  m_commandRange.endColumn = r.end().column() - 1;
288 }
289 
290 void KateViVisualMode::initializeCommands()
291 {
292  // Remove the commands put in here by KateViNormalMode
293  qDeleteAll(m_commands);
294  m_commands.clear();
295 
296  // Remove the motions put in here by KateViNormalMode
297  qDeleteAll(m_motions);
298  m_motions.clear();
299 
300  ADDCMD("J", commandJoinLines, IS_CHANGE );
301  ADDCMD("c", commandChange, IS_CHANGE );
302  ADDCMD("s", commandChange, IS_CHANGE );
303  ADDCMD("C", commandChangeToEOL, IS_CHANGE );
304  ADDCMD("S", commandChangeToEOL, IS_CHANGE );
305  ADDCMD("d", commandDelete, IS_CHANGE );
306  ADDCMD("<del>", commandDelete, IS_CHANGE );
307  ADDCMD("D", commandDeleteToEOL, IS_CHANGE );
308  ADDCMD("x", commandDeleteChar, IS_CHANGE );
309  ADDCMD("X", commandDeleteCharBackward, IS_CHANGE );
310  ADDCMD("gu", commandMakeLowercase, IS_CHANGE );
311  ADDCMD("u", commandMakeLowercase, IS_CHANGE );
312  ADDCMD("gU", commandMakeUppercase, IS_CHANGE );
313  ADDCMD("g~", commandChangeCaseRange, IS_CHANGE );
314  ADDCMD("U", commandMakeUppercase, IS_CHANGE );
315  ADDCMD("y", commandYank, 0 );
316  ADDCMD("Y", commandYankToEOL, 0 );
317  ADDCMD("p", commandPaste, IS_CHANGE );
318  ADDCMD("P", commandPasteBefore, IS_CHANGE );
319  ADDCMD("r.", commandReplaceCharacter, IS_CHANGE | REGEX_PATTERN );
320  ADDCMD(":", commandSwitchToCmdLine, 0 );
321  ADDCMD("m.", commandSetMark, REGEX_PATTERN | SHOULD_NOT_RESET );
322  ADDCMD(">", commandIndentLines, 0 );
323  ADDCMD("<", commandUnindentLines, 0 );
324  ADDCMD("<c-c>", commandAbort, 0 );
325  ADDCMD("<c-[>", commandAbort, 0 );
326  ADDCMD("ga", commandPrintCharacterCode, SHOULD_NOT_RESET );
327  ADDCMD("v", commandEnterVisualMode, SHOULD_NOT_RESET );
328  ADDCMD("V", commandEnterVisualLineMode, SHOULD_NOT_RESET );
329  ADDCMD("o", commandToOtherEnd, SHOULD_NOT_RESET );
330  ADDCMD("=", commandAlignLines, SHOULD_NOT_RESET );
331  ADDCMD("~", commandChangeCase, IS_CHANGE );
332  ADDCMD("I", commandPrependToBlock, IS_CHANGE );
333  ADDCMD("A", commandAppendToBlock, IS_CHANGE );
334  ADDCMD("gq", commandFormatLines, IS_CHANGE );
335 
336  ADDCMD("q.", commandStartRecordingMacro, REGEX_PATTERN | SHOULD_NOT_RESET);
337  ADDCMD("@.", commandReplayMacro, REGEX_PATTERN | SHOULD_NOT_RESET);
338 
339  // regular motions
340  ADDMOTION("h", motionLeft, 0 );
341  ADDMOTION("<left>", motionLeft, 0 );
342  ADDMOTION("<backspace>", motionLeft, 0 );
343  ADDMOTION("j", motionDown, 0 );
344  ADDMOTION("<down>", motionDown, 0 );
345  ADDMOTION("k", motionUp, 0 );
346  ADDMOTION("<up>", motionUp, 0 );
347  ADDMOTION("l", motionRight, 0 );
348  ADDMOTION("<right>", motionRight, 0 );
349  ADDMOTION(" ", motionRight, 0 );
350  ADDMOTION("$", motionToEOL, 0 );
351  ADDMOTION("<end>", motionToEOL, 0 );
352  ADDMOTION("0", motionToColumn0, 0 );
353  ADDMOTION("<home>", motionToColumn0, 0 );
354  ADDMOTION("^", motionToFirstCharacterOfLine, 0 );
355  ADDMOTION("f.", motionFindChar, REGEX_PATTERN );
356  ADDMOTION("F.", motionFindCharBackward, REGEX_PATTERN );
357  ADDMOTION("t.", motionToChar, REGEX_PATTERN );
358  ADDMOTION("T.", motionToCharBackward, REGEX_PATTERN );
359  ADDMOTION(";", motionRepeatlastTF, 0 );
360  ADDMOTION(",", motionRepeatlastTFBackward, 0 );
361  ADDMOTION("n", motionFindNext, 0 );
362  ADDMOTION("N", motionFindPrev, 0 );
363  ADDMOTION("gg", motionToLineFirst, 0 );
364  ADDMOTION("G", motionToLineLast, 0 );
365  ADDMOTION("w", motionWordForward, 0 );
366  ADDMOTION("W", motionWORDForward, 0 );
367  ADDMOTION("<c-right>", motionWordForward, IS_NOT_LINEWISE);
368  ADDMOTION("<c-left>", motionWordBackward, IS_NOT_LINEWISE);
369  ADDMOTION("b", motionWordBackward, 0 );
370  ADDMOTION("B", motionWORDBackward, 0 );
371  ADDMOTION("e", motionToEndOfWord, 0 );
372  ADDMOTION("E", motionToEndOfWORD, 0 );
373  ADDMOTION("ge", motionToEndOfPrevWord, 0 );
374  ADDMOTION("gE", motionToEndOfPrevWORD, 0 );
375  ADDMOTION("|", motionToScreenColumn, 0 );
376  ADDMOTION("%", motionToMatchingItem, 0 );
377  ADDMOTION("`.", motionToMark, REGEX_PATTERN );
378  ADDMOTION("'.", motionToMarkLine, REGEX_PATTERN );
379  ADDMOTION("[[", motionToPreviousBraceBlockStart, 0 );
380  ADDMOTION("]]", motionToNextBraceBlockStart, 0 );
381  ADDMOTION("[]", motionToPreviousBraceBlockEnd, 0 );
382  ADDMOTION("][", motionToNextBraceBlockEnd, 0 );
383  ADDMOTION("*", motionToNextOccurrence, 0 );
384  ADDMOTION("#", motionToPrevOccurrence, 0 );
385  ADDMOTION("<c-f>", motionPageDown, 0 );
386  ADDMOTION("<pagedown>", motionPageDown, 0 );
387  ADDMOTION("<c-b>", motionPageUp, 0 );
388  ADDMOTION("<pageup>", motionPageUp, 0 );
389  ADDMOTION("gj", motionToNextVisualLine, 0 );
390  ADDMOTION("gk", motionToPrevVisualLine, 0);
391  ADDMOTION("{", motionToBeforeParagraph, 0 );
392  ADDMOTION("}", motionToAfterParagraph, 0 );
393 
394  // text objects
395  ADDMOTION("iw", textObjectInnerWord, 0 );
396  ADDMOTION("aw", textObjectAWord, 0 );
397  ADDMOTION("i\"", textObjectInnerQuoteDouble, CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION);
398  ADDMOTION("a\"", textObjectAQuoteDouble, 0 );
399  ADDMOTION("i'", textObjectInnerQuoteSingle, CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION );
400  ADDMOTION("a'", textObjectAQuoteSingle, 0 );
401  ADDMOTION("i[()b]", textObjectInnerParen, REGEX_PATTERN | CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION );
402  ADDMOTION("a[()b]", textObjectAParen, REGEX_PATTERN );
403  ADDMOTION("i[{}B]", textObjectInnerCurlyBracket, REGEX_PATTERN | IS_NOT_LINEWISE | CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION);
404  ADDMOTION("a[{}B]", textObjectACurlyBracket, REGEX_PATTERN | IS_NOT_LINEWISE);
405  ADDMOTION("i[><]", textObjectInnerInequalitySign, REGEX_PATTERN | IS_NOT_LINEWISE | CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION);
406  ADDMOTION("i[\\[\\]]", textObjectInnerBracket, REGEX_PATTERN | CAN_CHANGE_WHOLE_VISUAL_MODE_SELECTION);
407  ADDMOTION("a[\\[\\]]", textObjectABracket, REGEX_PATTERN );
408  ADDMOTION("i,", textObjectInnerComma, 0 );
409  ADDMOTION("a,", textObjectAComma, 0 );
410 
411  ADDMOTION("/<enter>", motionToIncrementalSearchMatch, 0);
412  ADDMOTION("?<enter>", motionToIncrementalSearchMatch, 0);
413 }
KateViNormalMode::motionToLineLast
KateViRange motionToLineLast()
Definition: katevinormalmode.cpp:2455
ADDCMD
#define ADDCMD(STR, FUNC, FLGS)
Definition: katevivisualmode.cpp:32
KateViRange::endLine
int endLine
Definition: katevirange.h:44
KateViNormalMode::motionLeft
KateViRange motionLeft()
Definition: katevinormalmode.cpp:1892
KateViNormalMode::commandFormatLines
bool commandFormatLines()
Definition: katevinormalmode.cpp:1799
KTextEditor::Range::start
Cursor & start()
katevirange.h
KateViNormalMode::commandSetMark
bool commandSetMark()
Definition: katevinormalmode.cpp:1492
KateViVisualMode::reset
void reset()
Definition: katevivisualmode.cpp:143
KateViVisualMode::setVisualLine
void setVisualLine(bool l)
Definition: katevivisualmode.cpp:215
KateViNormalMode::m_commandShouldKeepSelection
bool m_commandShouldKeepSelection
Definition: katevinormalmode.h:318
KateViNormalMode::commandPrintCharacterCode
bool commandPrintCharacterCode()
Definition: katevinormalmode.cpp:1609
KateViNormalMode::commandAbort
bool commandAbort()
Definition: katevinormalmode.cpp:1602
KateViNormalMode::motionToEndOfWORD
KateViRange motionToEndOfWORD()
Definition: katevinormalmode.cpp:2095
katevivisualmode.h
KateViNormalMode::motionToNextBraceBlockEnd
KateViRange motionToNextBraceBlockEnd()
Definition: katevinormalmode.cpp:2705
KTextEditor::Range::isValid
virtual bool isValid() const
KateViNormalMode::motionToIncrementalSearchMatch
KateViRange motionToIncrementalSearchMatch()
Definition: katevinormalmode.cpp:2915
KateViVisualMode::SelectInclusive
void SelectInclusive(Cursor c1, Cursor c2)
Definition: katevivisualmode.cpp:53
KateViNormalMode::motionToNextBraceBlockStart
KateViRange motionToNextBraceBlockStart()
Definition: katevinormalmode.cpp:2649
KateViInputModeManager::addMark
void addMark(KateDocument *doc, const QChar &mark, const KTextEditor::Cursor &pos, const bool moveoninsert=true, const bool showmark=true)
Add a mark to the document.
Definition: kateviinputmodemanager.cpp:725
KateViNormalMode::commandMakeUppercase
bool commandMakeUppercase()
Definition: katevinormalmode.cpp:863
KateViModeBase::doc
KateDocument * doc() const
Definition: katevimodebase.h:172
KateViNormalMode::commandEnterVisualLineMode
bool commandEnterVisualLineMode()
Definition: katevinormalmode.cpp:638
KateDocument::lineLength
virtual int lineLength(int line) const
Definition: katedocument.cpp:758
KateViNormalMode::motionToEOL
KateViRange motionToEOL()
Definition: katevinormalmode.cpp:2170
KateViNormalMode::commandEnterVisualMode
bool commandEnterVisualMode()
Definition: katevinormalmode.cpp:693
KateViNormalMode::commandJoinLines
bool commandJoinLines()
Definition: katevinormalmode.cpp:1051
KateViNormalMode::motionWORDForward
KateViRange motionWORDForward()
Definition: katevinormalmode.cpp:2034
KateViNormalMode::motionToMarkLine
KateViRange motionToMarkLine()
Definition: katevinormalmode.cpp:2515
VisualMode
Definition: kateviinputmodemanager.h:51
KateView::removeSelection
virtual bool removeSelection()
Definition: kateview.h:257
KateViVisualMode::SelectBlockInclusive
void SelectBlockInclusive(Cursor c1, Cursor c2)
Definition: katevivisualmode.cpp:62
KateViInputModeManager
Definition: kateviinputmodemanager.h:68
KateViNormalMode::textObjectAWord
KateViRange textObjectAWord()
Definition: katevinormalmode.cpp:2927
KateViNormalMode::motionToBeforeParagraph
KateViRange motionToBeforeParagraph()
Definition: katevinormalmode.cpp:2856
KateViNormalMode::textObjectAComma
KateViRange textObjectAComma()
Definition: katevinormalmode.cpp:3276
KateViNormalMode::m_pendingResetIsDueToExit
bool m_pendingResetIsDueToExit
Definition: katevinormalmode.h:335
KTextEditor::Cursor
KateViNormalMode::motionToLineFirst
KateViRange motionToLineFirst()
Definition: katevinormalmode.cpp:2442
KateViModeBase::m_commandRange
KateViRange m_commandRange
Definition: katevimodebase.h:160
KateViRange::startColumn
int startColumn
Definition: katevirange.h:41
KateViNormalMode::motionToPrevVisualLine
KateViRange motionToPrevVisualLine()
Definition: katevinormalmode.cpp:2852
KateViNormalMode::commandReplayMacro
bool commandReplayMacro()
Definition: katevinormalmode.cpp:1821
KateViNormalMode::m_commands
QVector< KateViCommand * > m_commands
Definition: katevinormalmode.h:301
KateViNormalMode::motionToFirstCharacterOfLine
KateViRange motionToFirstCharacterOfLine()
Definition: katevinormalmode.cpp:2195
KateViNormalMode::commandReplaceCharacter
bool commandReplaceCharacter()
Definition: katevinormalmode.cpp:1375
KateViVisualMode::updateSelection
void updateSelection()
Updates the visual mode's range to reflect a new cursor position.
Definition: katevivisualmode.cpp:257
KateView::getViInputModeManager
KateViInputModeManager * getViInputModeManager()
Definition: kateview.cpp:1567
KateViNormalMode::motionPageDown
KateViRange motionPageDown()
Definition: katevinormalmode.cpp:1921
KateViNormalMode::commandToOtherEnd
bool commandToOtherEnd()
Definition: katevinormalmode.cpp:703
KateViVisualMode::goToPos
void goToPos(const Cursor &c)
Definition: katevivisualmode.cpp:249
KateViNormalMode::commandChangeToEOL
bool commandChangeToEOL()
Definition: katevinormalmode.cpp:1144
KateView::selectionRange
virtual const KTextEditor::Range & selectionRange() const
Definition: kateview.cpp:2760
KateViNormalMode::motionPageUp
KateViRange motionPageUp()
Definition: katevinormalmode.cpp:1935
KateViNormalMode::commandChangeCaseRange
bool commandChangeCaseRange()
Definition: katevinormalmode.cpp:984
KateViNormalMode::commandDeleteToEOL
bool commandDeleteToEOL()
Definition: katevinormalmode.cpp:759
KateViVisualMode::setVisualBlock
void setVisualBlock(bool l)
Definition: katevivisualmode.cpp:224
KateViNormalMode::motionToScreenColumn
KateViRange motionToScreenColumn()
Definition: katevinormalmode.cpp:2473
KateViNormalMode::motionToNextVisualLine
KateViRange motionToNextVisualLine()
Definition: katevinormalmode.cpp:2848
KateViModeBase::m_view
KateView * m_view
Definition: katevimodebase.h:172
KateViVisualMode::isVisualBlock
bool isVisualBlock() const
Definition: katevivisualmode.h:47
KateViNormalMode::motionUp
KateViRange motionUp()
Definition: katevinormalmode.cpp:1887
KTextEditor::Cursor::isValid
virtual bool isValid() const
KateViRange
Definition: katevirange.h:33
KateViRange::endColumn
int endColumn
Definition: katevirange.h:44
KateView::setSelection
virtual bool setSelection(const KTextEditor::Range &selection)
Definition: kateview.cpp:1931
KateViVisualMode::init
void init()
Definition: katevivisualmode.cpp:196
KateViNormalMode::motionToPreviousBraceBlockEnd
KateViRange motionToPreviousBraceBlockEnd()
Definition: katevinormalmode.cpp:2736
KateViModeBase::startNormalMode
bool startNormalMode()
Definition: katevimodebase.cpp:1176
KateViNormalMode::textObjectInnerQuoteSingle
KateViRange textObjectInnerQuoteSingle()
Definition: katevinormalmode.cpp:3165
KateViNormalMode::textObjectInnerQuoteDouble
KateViRange textObjectInnerQuoteDouble()
Definition: katevinormalmode.cpp:3155
kateglobal.h
KateViNormalMode::motionToEndOfPrevWORD
KateViRange motionToEndOfPrevWORD()
Definition: katevinormalmode.cpp:2144
KateViewInternal
Definition: kateviewinternal.h:57
KateViModeBase::updateCursor
void updateCursor(const Cursor &c) const
Definition: katevimodebase.cpp:937
qSwap
void qSwap(KParts::SelectorInterface::Element &lhs, KParts::SelectorInterface::Element &rhs)
KateDocument::lines
virtual int lines() const
Definition: katedocument.cpp:753
KateViNormalMode::m_isUndo
bool m_isUndo
Definition: katevinormalmode.h:345
ADDMOTION
#define ADDMOTION(STR, FUNC, FLGS)
Definition: katevivisualmode.cpp:35
KateViNormalMode::commandUnindentLines
bool commandUnindentLines()
Definition: katevinormalmode.cpp:1539
KateViNormalMode::commandYank
bool commandYank()
Definition: katevinormalmode.cpp:1204
ViMode
ViMode
The four vi modes supported by Kate's vi input mode.
Definition: kateviinputmodemanager.h:48
KateViNormalMode::motionToEndOfPrevWord
KateViRange motionToEndOfPrevWord()
Definition: katevinormalmode.cpp:2117
KateViNormalMode::commandPasteBefore
bool commandPasteBefore()
Definition: katevinormalmode.cpp:1292
KateViNormalMode::motionRepeatlastTFBackward
KateViRange motionRepeatlastTFBackward()
Definition: katevinormalmode.cpp:2379
KateViNormalMode::motionFindPrev
KateViRange motionFindPrev()
Definition: katevinormalmode.cpp:2403
KateViModeBase::m_stickyColumn
int m_stickyColumn
Definition: katevimodebase.h:168
KateViNormalMode::motionToChar
KateViRange motionToChar()
Definition: katevinormalmode.cpp:2277
KateView
Definition: kateview.h:78
VisualBlockMode
Definition: kateviinputmodemanager.h:53
KTextEditor::Range
KateViNormalMode::motionWordForward
KateViRange motionWordForward()
Definition: katevinormalmode.cpp:1977
KateViNormalMode::motionToNextOccurrence
KateViRange motionToNextOccurrence()
Definition: katevinormalmode.cpp:2760
KateViNormalMode::motionWORDBackward
KateViRange motionWORDBackward()
Definition: katevinormalmode.cpp:2056
KateViNormalMode::commandChangeCase
bool commandChangeCase()
Definition: katevinormalmode.cpp:910
KateViNormalMode
Commands for the vi normal mode.
Definition: katevinormalmode.h:49
KateViNormalMode::commandSwitchToCmdLine
bool commandSwitchToCmdLine()
Definition: katevinormalmode.cpp:1416
KateViNormalMode::m_motions
QVector< KateViMotion * > m_motions
Definition: katevinormalmode.h:302
KateViNormalMode::commandDeleteChar
bool commandDeleteChar()
Definition: katevinormalmode.cpp:1324
KateViVisualMode::setVisualModeType
void setVisualModeType(ViMode mode)
Definition: katevivisualmode.cpp:233
VisualLineMode
Definition: kateviinputmodemanager.h:52
KateViNormalMode::motionToAfterParagraph
KateViRange motionToAfterParagraph()
Definition: katevinormalmode.cpp:2884
KateViNormalMode::motionToCharBackward
KateViRange motionToCharBackward()
Definition: katevinormalmode.cpp:2315
KateViNormalMode::commandPrependToBlock
bool commandPrependToBlock()
Definition: katevinormalmode.cpp:1682
KateViNormalMode::motionDown
KateViRange motionDown()
Definition: katevinormalmode.cpp:1882
KateView::cursorPosition
KTextEditor::Cursor cursorPosition() const
Definition: kateview.cpp:2398
KateViVisualMode::SelectLines
void SelectLines(Range range)
Definition: katevivisualmode.cpp:74
KTextEditor::Cursor::line
virtual int line() const
KateViNormalMode::textObjectABracket
KateViRange textObjectABracket()
Definition: katevinormalmode.cpp:3193
KTextEditor::Cursor::setLine
virtual void setLine(int line)
KateViNormalMode::commandAlignLines
bool commandAlignLines()
Definition: katevinormalmode.cpp:1655
KateView::viInputMode
bool viInputMode() const
Definition: kateview.cpp:1515
KateViVisualMode::KateViVisualMode
KateViVisualMode(KateViInputModeManager *viInputModeManager, KateView *view, KateViewInternal *viewInternal)
Definition: katevivisualmode.cpp:38
KTextEditor::Cursor::setPosition
virtual void setPosition(const Cursor &position)
KateViNormalMode::commandDelete
bool commandDelete()
Definition: katevinormalmode.cpp:753
KTextEditor::Range::end
Cursor & end()
KateViModeBase::m_viInputModeManager
KateViInputModeManager * m_viInputModeManager
Definition: katevimodebase.h:177
KateViNormalMode::textObjectInnerInequalitySign
KateViRange textObjectInnerInequalitySign()
Definition: katevinormalmode.cpp:3270
KateViNormalMode::textObjectAQuoteDouble
KateViRange textObjectAQuoteDouble()
Definition: katevinormalmode.cpp:3150
KateViNormalMode::motionToColumn0
KateViRange motionToColumn0()
Definition: katevinormalmode.cpp:2186
KateViNormalMode::textObjectInnerComma
KateViRange textObjectInnerComma()
Definition: katevinormalmode.cpp:3281
KateViNormalMode::textObjectAParen
KateViRange textObjectAParen()
Definition: katevinormalmode.cpp:3181
KateViNormalMode::m_deleteCommand
bool m_deleteCommand
Definition: katevinormalmode.h:320
KateViNormalMode::m_motionCanChangeWholeVisualModeSelection
bool m_motionCanChangeWholeVisualModeSelection
Definition: katevinormalmode.h:316
KateViNormalMode::textObjectInnerParen
KateViRange textObjectInnerParen()
Definition: katevinormalmode.cpp:3187
KateViNormalMode::commandYankToEOL
bool commandYankToEOL()
Definition: katevinormalmode.cpp:1243
KateViNormalMode::motionToEndOfWord
KateViRange motionToEndOfWord()
Definition: katevinormalmode.cpp:2078
KateViVisualMode::saveRangeMarks
void saveRangeMarks()
Definition: katevivisualmode.cpp:186
KateViNormalMode::motionToMark
KateViRange motionToMark()
Definition: katevinormalmode.cpp:2488
KateViVisualMode::switchStartEnd
void switchStartEnd()
Definition: katevivisualmode.cpp:239
KateViNormalMode::commandDeleteCharBackward
bool commandDeleteCharBackward()
Definition: katevinormalmode.cpp:1349
KateViNormalMode::motionToPreviousBraceBlockStart
KateViRange motionToPreviousBraceBlockStart()
Definition: katevinormalmode.cpp:2680
KateViNormalMode::motionFindChar
KateViRange motionFindChar()
Definition: katevinormalmode.cpp:2208
KateViNormalMode::motionToMatchingItem
KateViRange motionToMatchingItem()
Definition: katevinormalmode.cpp:2527
KateView::setBlockSelection
virtual bool setBlockSelection(bool on)
Definition: kateview.cpp:2201
KateView::doc
KateDocument * doc()
accessor to katedocument pointer
Definition: kateview.h:552
KateViNormalMode::motionRight
KateViRange motionRight()
Definition: katevinormalmode.cpp:1906
KateViNormalMode::textObjectInnerCurlyBracket
KateViRange textObjectInnerCurlyBracket()
Definition: katevinormalmode.cpp:3211
KateViNormalMode::textObjectInnerWord
KateViRange textObjectInnerWord()
Definition: katevinormalmode.cpp:3003
KateViVisualMode::~KateViVisualMode
~KateViVisualMode()
Definition: katevivisualmode.cpp:49
KateViNormalMode::commandPaste
bool commandPaste()
Definition: katevinormalmode.cpp:1286
KTextEditor::View
KateViNormalMode::motionFindNext
KateViRange motionFindNext()
Definition: katevinormalmode.cpp:2422
KateViInputModeManager::getCurrentViMode
ViMode getCurrentViMode() const
Definition: kateviinputmodemanager.cpp:449
KateViNormalMode::textObjectACurlyBracket
KateViRange textObjectACurlyBracket()
Definition: katevinormalmode.cpp:3205
KateViNormalMode::textObjectInnerBracket
KateViRange textObjectInnerBracket()
Definition: katevinormalmode.cpp:3199
KateViNormalMode::commandStartRecordingMacro
bool commandStartRecordingMacro()
Definition: katevinormalmode.cpp:1814
kateviglobal.h
KTextEditor::Cursor::setColumn
virtual void setColumn(int column)
KTextEditor::Cursor::column
int column() const
KateViVisualMode::isVisualLine
bool isVisualLine() const
Definition: katevivisualmode.h:46
KateViNormalMode::commandAppendToBlock
bool commandAppendToBlock()
Definition: katevinormalmode.cpp:1697
KateViNormalMode::motionRepeatlastTF
KateViRange motionRepeatlastTF()
Definition: katevinormalmode.cpp:2356
KateViNormalMode::motionWordBackward
KateViRange motionWordBackward()
Definition: katevinormalmode.cpp:2011
KateViRange::startLine
int startLine
Definition: katevirange.h:41
KateViNormalMode::commandChange
bool commandChange()
Definition: katevinormalmode.cpp:1105
KateViNormalMode::commandMakeLowercase
bool commandMakeLowercase()
Definition: katevinormalmode.cpp:820
KateViNormalMode::textObjectAQuoteSingle
KateViRange textObjectAQuoteSingle()
Definition: katevinormalmode.cpp:3160
KateViNormalMode::motionToPrevOccurrence
KateViRange motionToPrevOccurrence()
Definition: katevinormalmode.cpp:2775
KateViInputModeManager::isHandlingKeypress
bool isHandlingKeypress() const
Determines whether we are currently processing a Vi keypress.
Definition: kateviinputmodemanager.cpp:265
KateViNormalMode::commandIndentLines
bool commandIndentLines()
Definition: katevinormalmode.cpp:1524
KateViNormalMode::motionFindCharBackward
KateViRange motionFindCharBackward()
Definition: katevinormalmode.cpp:2239
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:31:53 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Kate

Skip menu "Kate"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Applications
  •   Libraries
  •     libkonq
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal