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

Kate

  • kde-4.14
  • applications
  • kate
  • part
  • vimode
kateviglobal.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-2011 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 <stdio.h>
24 
25 #include "kateviglobal.h"
26 #include "katevikeyparser.h"
27 #include "kateviemulatedcommandbar.h"
28 
29 #include "kconfiggroup.h"
30 #include "kdebug.h"
31 #include <ktexteditor/movingcursor.h>
32 #include <QApplication>
33 #include <QClipboard>
34 
35 KateViGlobal::KateViGlobal()
36 {
37 }
38 
39 KateViGlobal::~KateViGlobal()
40 {
41 }
42 
43 void KateViGlobal::writeConfig( KConfigGroup &config ) const
44 {
45  writeMappingsToConfig(config, "Normal", NormalModeMapping);
46  writeMappingsToConfig(config, "Visual", VisualModeMapping);
47  writeMappingsToConfig(config, "Insert", InsertModeMapping);
48  writeMappingsToConfig(config, "Command", CommandModeMapping);
49 
50  QStringList macroRegisters;
51  foreach(const QChar& macroRegister, m_macroForRegister.keys())
52  {
53  macroRegisters.append(macroRegister);
54  }
55  QStringList macroContents;
56  foreach(const QChar& macroRegister, m_macroForRegister.keys())
57  {
58  macroContents.append(KateViKeyParser::self()->decodeKeySequence(m_macroForRegister[macroRegister]));
59  }
60  QStringList macroCompletions;
61  foreach(const QChar& macroRegister, m_macroForRegister.keys())
62  {
63  macroCompletions.append(QString::number(m_macroCompletionsForRegister[macroRegister].length()));
64  foreach(KateViInputModeManager::Completion completionForMacro, m_macroCompletionsForRegister[macroRegister])
65  {
66  macroCompletions.append(encodeMacroCompletionForConfig(completionForMacro));
67  }
68  }
69  config.writeEntry("Macro Registers", macroRegisters);
70  config.writeEntry("Macro Contents", macroContents);
71  config.writeEntry("Macro Completions", macroCompletions);
72 }
73 
74 void KateViGlobal::readConfig( const KConfigGroup &config )
75 {
76  readMappingsFromConfig(config, "Normal", NormalModeMapping);
77  readMappingsFromConfig(config, "Visual", VisualModeMapping);
78  readMappingsFromConfig(config, "Insert", InsertModeMapping);
79  readMappingsFromConfig(config, "Command", CommandModeMapping);
80 
81  const QStringList macroRegisters = config.readEntry("Macro Registers", QStringList());
82  const QStringList macroContents = config.readEntry("Macro Contents", QStringList());
83  const QStringList macroCompletions = config.readEntry("Macro Completions", QStringList());
84  int macroCompletionsIndex = 0;
85  if (macroRegisters.length() == macroContents.length())
86  {
87  for (int macroIndex = 0; macroIndex < macroRegisters.length(); macroIndex++)
88  {
89  const QChar macroRegister = macroRegisters[macroIndex].at(0);
90  m_macroForRegister[macroRegister] = KateViKeyParser::self()->encodeKeySequence(macroContents[macroIndex]);
91  macroCompletionsIndex = readMacroCompletions(macroRegister, macroCompletions, macroCompletionsIndex);
92  }
93  }
94 }
95 
96 KateViRegister KateViGlobal::getRegister( const QChar &reg ) const
97 {
98  KateViRegister regPair;
99  QChar _reg = ( reg != '"' ? reg : m_defaultRegister );
100 
101  if ( _reg >= '1' && _reg <= '9' ) { // numbered register
102  int index = QString( _reg ).toInt()-1;
103  if ( m_numberedRegisters.size() > index) {
104  regPair = m_numberedRegisters.at( index );
105  }
106  } else if ( _reg == '+' ) { // system clipboard register
107  QString regContent = QApplication::clipboard()->text( QClipboard::Clipboard );
108  regPair = KateViRegister( regContent, CharWise );
109  } else if ( _reg == '*' ) { // system selection register
110  QString regContent = QApplication::clipboard()->text( QClipboard::Selection );
111  regPair = KateViRegister( regContent, CharWise );
112  } else { // regular, named register
113  if ( m_registers.contains( _reg ) ) {
114  regPair = m_registers.value( _reg );
115  }
116  }
117 
118  return regPair;
119 }
120 
121 QString KateViGlobal::getRegisterContent( const QChar &reg ) const
122 {
123  return getRegister( reg ).first;
124 }
125 
126 OperationMode KateViGlobal::getRegisterFlag( const QChar &reg ) const
127 {
128  return getRegister( reg ).second;
129 }
130 
131 void KateViGlobal::addToNumberedRegister( const QString &text, OperationMode flag )
132 {
133  if ( m_numberedRegisters.size() == 9 ) {
134  m_numberedRegisters.removeLast();
135  }
136 
137  // register 0 is used for the last yank command, so insert at position 1
138  m_numberedRegisters.prepend( KateViRegister(text, flag ) );
139 
140  kDebug( 13070 ) << "Register 1-9:";
141  for ( int i = 0; i < m_numberedRegisters.size(); i++ ) {
142  kDebug( 13070 ) << "\t Register " << i+1 << ": " << m_numberedRegisters.at( i );
143  }
144 }
145 
146 void KateViGlobal::fillRegister( const QChar &reg, const QString &text, OperationMode flag )
147 {
148  // the specified register is the "black hole register", don't do anything
149  if ( reg == '_' ) {
150  return;
151  }
152 
153  if ( reg >= '1' && reg <= '9' ) { // "kill ring" registers
154  addToNumberedRegister( text );
155  } else if ( reg == '+' ) { // system clipboard register
156  QApplication::clipboard()->setText( text, QClipboard::Clipboard );
157  } else if ( reg == '*' ) { // system selection register
158  QApplication::clipboard()->setText( text, QClipboard::Selection );
159  } else {
160  m_registers.insert( reg, KateViRegister(text, flag) );
161  }
162 
163  kDebug( 13070 ) << "Register " << reg << " set to " << getRegisterContent( reg );
164 
165  if ( reg == '0' || reg == '1' || reg == '-' ) {
166  m_defaultRegister = reg;
167  kDebug( 13070 ) << "Register " << '"' << " set to point to \"" << reg;
168  }
169 }
170 
171 void KateViGlobal::addMapping( MappingMode mode, const QString& from, const QString& to, KateViGlobal::MappingRecursion recursion )
172 {
173  const QString encodedMapping = KateViKeyParser::self()->encodeKeySequence( from );
174  const QString encodedTo = KateViKeyParser::self()->encodeKeySequence( to );
175  const Mapping mapping(encodedTo, recursion == KateViGlobal::Recursive);
176  if ( !from.isEmpty() ) {
177  m_mappingsForMode[mode][encodedMapping] = mapping;
178  }
179 }
180 
181 void KateViGlobal::removeMapping(MappingMode mode, const QString& from)
182 {
183  m_mappingsForMode[mode].remove(from);
184 }
185 
186 const QString KateViGlobal::getMapping( MappingMode mode, const QString& from, bool decode ) const
187 {
188  const QString ret = m_mappingsForMode[mode][from].mappedKeyPresses;
189 
190  if ( decode ) {
191  return KateViKeyParser::self()->decodeKeySequence( ret );
192  }
193  return ret;
194 }
195 
196 const QStringList KateViGlobal::getMappings( MappingMode mode, bool decode ) const
197 {
198  const QHash <QString, Mapping> mappingsForMode = m_mappingsForMode[mode];
199 
200  QStringList mappings;
201  foreach(const QString mapping, mappingsForMode.keys())
202  {
203  if ( decode ) {
204  mappings << KateViKeyParser::self()->decodeKeySequence(mapping);
205  } else {
206  mappings << mapping;
207  }
208  }
209 
210  return mappings;
211 }
212 
213 bool KateViGlobal::isMappingRecursive(MappingMode mode, const QString& from) const
214 {
215  return m_mappingsForMode[mode][from].isRecursive;
216 }
217 
218 KateViGlobal::MappingMode KateViGlobal::mappingModeForCurrentViMode(KateView* view)
219 {
220  if (view->viModeEmulatedCommandBar()->isActive())
221  {
222  return CommandModeMapping;
223  }
224  const ViMode mode = view->getCurrentViMode();
225  switch(mode)
226  {
227  case NormalMode:
228  return NormalModeMapping;
229  case VisualMode:
230  case VisualLineMode:
231  case VisualBlockMode:
232  return VisualModeMapping;
233  case InsertMode:
234  case ReplaceMode:
235  return InsertModeMapping;
236  default:
237  Q_ASSERT(false && "unrecognised ViMode!");
238  return NormalModeMapping; // Return arbitrary mode to satisfy compiler.
239  }
240 }
241 
242 void KateViGlobal::clearMappings( MappingMode mode )
243 {
244  m_mappingsForMode[mode].clear();
245 }
246 
247 void KateViGlobal::clearSearchHistory()
248 {
249  m_searchHistory.clear();
250 }
251 
252 QStringList KateViGlobal::searchHistory()
253 {
254  return m_searchHistory.items();
255 }
256 
257 void KateViGlobal::appendSearchHistoryItem(const QString& searchHistoryItem)
258 {
259  m_searchHistory.appendItem(searchHistoryItem);
260 }
261 
262 QStringList KateViGlobal::commandHistory()
263 {
264  return m_commandHistory.items();
265 }
266 
267 void KateViGlobal::clearCommandHistory()
268 {
269  m_commandHistory.clear();
270 }
271 
272 void KateViGlobal::appendCommandHistoryItem(const QString& commandHistoryItem)
273 {
274  m_commandHistory.appendItem(commandHistoryItem);
275 }
276 
277 QStringList KateViGlobal::replaceHistory()
278 {
279  return m_replaceHistory.items();
280 }
281 
282 void KateViGlobal::appendReplaceHistoryItem(const QString& replaceHistoryItem)
283 {
284  m_replaceHistory.appendItem(replaceHistoryItem);
285 }
286 
287 void KateViGlobal::clearReplaceHistory()
288 {
289  m_replaceHistory.clear();
290 }
291 
292 void KateViGlobal::clearAllMacros()
293 {
294  m_macroForRegister.clear();
295 }
296 
297 void KateViGlobal::clearMacro(QChar macroRegister)
298 {
299  m_macroForRegister[macroRegister].clear();
300 }
301 
302 void KateViGlobal::storeMacro(QChar macroRegister, const QList< QKeyEvent > macroKeyEventLog, const QList< KateViInputModeManager::Completion > completions)
303 {
304  m_macroForRegister[macroRegister].clear();
305  QList <QKeyEvent> withoutClosingQ = macroKeyEventLog;
306  Q_ASSERT(!macroKeyEventLog.isEmpty() && macroKeyEventLog.last().key() == Qt::Key_Q);
307  withoutClosingQ.pop_back();
308  foreach(QKeyEvent keyEvent, withoutClosingQ)
309  {
310  const QChar key = KateViKeyParser::self()->KeyEventToQChar(keyEvent);
311  m_macroForRegister[macroRegister].append(key);
312  }
313  m_macroCompletionsForRegister[macroRegister] = completions;
314 }
315 
316 QString KateViGlobal::getMacro(QChar macroRegister)
317 {
318  return m_macroForRegister[macroRegister];
319 }
320 
321 QList< KateViInputModeManager::Completion > KateViGlobal::getMacroCompletions(QChar macroRegister)
322 {
323  return m_macroCompletionsForRegister[macroRegister];
324 }
325 
326 void KateViGlobal::writeMappingsToConfig(KConfigGroup& config, const QString& mappingModeName, MappingMode mappingMode) const
327 {
328  config.writeEntry( mappingModeName + " Mode Mapping Keys", getMappings( mappingMode, true ) );
329  QStringList l;
330  QList<bool> isRecursive;
331  foreach( const QString &s, getMappings( mappingMode ) ) {
332  l << KateViKeyParser::self()->decodeKeySequence( getMapping( mappingMode, s ) );
333  isRecursive << isMappingRecursive( mappingMode, s );
334  }
335  config.writeEntry( mappingModeName + " Mode Mappings", l );
336  config.writeEntry( mappingModeName + " Mode Mappings Recursion", isRecursive );
337 }
338 
339 void KateViGlobal::readMappingsFromConfig(const KConfigGroup& config, const QString& mappingModeName, MappingMode mappingMode)
340 {
341  const QStringList keys = config.readEntry( mappingModeName + " Mode Mapping Keys", QStringList() );
342  const QStringList mappings = config.readEntry( mappingModeName + " Mode Mappings", QStringList() );
343  const QList<bool> isRecursive = config.readEntry( mappingModeName + " Mode Mappings Recursion", QList<bool>());
344 
345  // sanity check
346  if ( keys.length() == mappings.length() ) {
347  for ( int i = 0; i < keys.length(); i++ ) {
348  // "Recursion" is a newly-introduced part of the config that some users won't have,
349  // so rather than abort (and lose our mappings) if there are not enough entries, simply
350  // treat any missing ones as Recursive (for backwards compatibility).
351  MappingRecursion recursion = Recursive;
352  if (isRecursive.size() > i && !isRecursive.at(i))
353  {
354  recursion = NonRecursive;
355  }
356  addMapping( mappingMode, keys.at( i ), mappings.at( i ), recursion);
357  kDebug( 13070 ) << + " mapping " << keys.at( i ) << " -> " << mappings.at( i );
358  }
359  } else {
360  kDebug( 13070 ) << "Error when reading mappings from " + mappingModeName + " config: number of keys != number of values";
361  }
362 }
363 
364 int KateViGlobal::readMacroCompletions(QChar macroRegister, const QStringList& encodedMacroCompletions, int macroCompletionsIndex)
365 {
366  if (macroCompletionsIndex < encodedMacroCompletions.length())
367  {
368  bool parsedNumCompletionsSuccessfully = false;
369  const QString numCompletionsAsString = encodedMacroCompletions[macroCompletionsIndex++];
370  const int numCompletions = numCompletionsAsString.toInt(&parsedNumCompletionsSuccessfully);
371  int count = 0;
372  m_macroCompletionsForRegister[macroRegister].clear();
373  while (count < numCompletions && macroCompletionsIndex < encodedMacroCompletions.length())
374  {
375  const QString encodedMacroCompletion = encodedMacroCompletions[macroCompletionsIndex++];
376  count++;
377  m_macroCompletionsForRegister[macroRegister].append(decodeMacroCompletionFromConfig(encodedMacroCompletion));
378 
379  }
380  }
381  return macroCompletionsIndex;
382 }
383 
384 QString KateViGlobal::encodeMacroCompletionForConfig(const KateViInputModeManager::Completion& completionForMacro) const
385 {
386  const bool endedWithSemiColon = completionForMacro.completedText().endsWith(";");
387  QString encodedMacroCompletion = completionForMacro.completedText().remove("()").remove(";");
388  if (completionForMacro.completionType() == KateViInputModeManager::Completion::FunctionWithArgs)
389  {
390  encodedMacroCompletion += "(...)";
391  }
392  else if (completionForMacro.completionType() == KateViInputModeManager::Completion::FunctionWithoutArgs)
393  {
394  encodedMacroCompletion += "()";
395  }
396  if (endedWithSemiColon)
397  {
398  encodedMacroCompletion += ';';
399  }
400  if (completionForMacro.removeTail())
401  {
402  encodedMacroCompletion += '|';
403  }
404  return encodedMacroCompletion;
405 }
406 
407 KateViInputModeManager::Completion KateViGlobal::decodeMacroCompletionFromConfig(const QString& encodedMacroCompletion)
408 {
409  const bool removeTail = encodedMacroCompletion.endsWith("|");
410  KateViInputModeManager::Completion::CompletionType completionType = KateViInputModeManager::Completion::PlainText;
411  if (encodedMacroCompletion.contains("(...)"))
412  {
413  completionType = KateViInputModeManager::Completion::FunctionWithArgs;
414  }
415  else if (encodedMacroCompletion.contains("()"))
416  {
417  completionType = KateViInputModeManager::Completion::FunctionWithoutArgs;
418  }
419  QString completionText = encodedMacroCompletion;
420  completionText.replace("(...)", "()").remove("|");
421 
422  kDebug(13070) << "Loaded completion: " << completionText << " , " << removeTail << " , " << completionType;
423 
424  return KateViInputModeManager::Completion(completionText, removeTail, completionType);
425 
426 }
KateViGlobal::clearReplaceHistory
void clearReplaceHistory()
Definition: kateviglobal.cpp:287
InsertMode
Definition: kateviinputmodemanager.h:50
kateviemulatedcommandbar.h
KateViEmulatedCommandBar::isActive
bool isActive()
Definition: kateviemulatedcommandbar.cpp:434
KateViGlobal::clearSearchHistory
void clearSearchHistory()
Definition: kateviglobal.cpp:247
KateViGlobal::getMapping
const QString getMapping(MappingMode mode, const QString &from, bool decode=false) const
Definition: kateviglobal.cpp:186
CharWise
Definition: katevimodebase.h:50
KateViGlobal::clearMappings
void clearMappings(MappingMode mode)
Definition: kateviglobal.cpp:242
KateViGlobal::clearCommandHistory
void clearCommandHistory()
Definition: kateviglobal.cpp:267
KateViGlobal::~KateViGlobal
~KateViGlobal()
Definition: kateviglobal.cpp:39
QList::length
int length() const
QChar
KateViGlobal::storeMacro
void storeMacro(QChar macroRegister, const QList< QKeyEvent > macroKeyEventLog, const QList< KateViInputModeManager::Completion > completions)
Definition: kateviglobal.cpp:302
KateViGlobal::MappingRecursion
MappingRecursion
Definition: kateviglobal.h:60
KateViGlobal::InsertModeMapping
Definition: kateviglobal.h:61
KateViGlobal::getMappings
const QStringList getMappings(MappingMode mode, bool decode=false) const
Definition: kateviglobal.cpp:196
QList::at
const T & at(int i) const
VisualMode
Definition: kateviinputmodemanager.h:51
ReplaceMode
Definition: kateviinputmodemanager.h:54
KateViGlobal::replaceHistory
QStringList replaceHistory()
Definition: kateviglobal.cpp:277
KateViGlobal::clearMacro
void clearMacro(QChar macroRegister)
Definition: kateviglobal.cpp:297
NormalMode
Definition: kateviinputmodemanager.h:49
QString::remove
QString & remove(int position, int n)
KateViKeyParser::KeyEventToQChar
const QChar KeyEventToQChar(const QKeyEvent &keyEvent)
Definition: katevikeyparser.cpp:674
KateViGlobal::VisualModeMapping
Definition: kateviglobal.h:61
KateViGlobal::removeMapping
void removeMapping(MappingMode mode, const QString &from)
Definition: kateviglobal.cpp:181
KateViGlobal::addMapping
void addMapping(MappingMode mode, const QString &from, const QString &to, MappingRecursion recursion)
Definition: kateviglobal.cpp:171
QList::size
int size() const
KateViInputModeManager::Completion::completedText
QString completedText() const
Definition: kateviinputmodemanager.cpp:929
KateViGlobal::commandHistory
QStringList commandHistory()
Definition: kateviglobal.cpp:262
KateViGlobal::getMacro
QString getMacro(QChar macroRegister)
Get the named macro in a format suitable for passing to feedKeyPresses.
Definition: kateviglobal.cpp:316
QString::number
QString number(int n, int base)
QList::append
void append(const T &value)
KateViInputModeManager::Completion::completionType
CompletionType completionType() const
Definition: kateviinputmodemanager.cpp:937
QApplication::clipboard
QClipboard * clipboard()
QHash
KateViInputModeManager::Completion::PlainText
Definition: kateviinputmodemanager.h:188
KateViGlobal::addToNumberedRegister
void addToNumberedRegister(const QString &text, OperationMode flag=CharWise)
Definition: kateviglobal.cpp:131
KateViRegister
QPair< QString, OperationMode > KateViRegister
Definition: kateviglobal.h:44
QString::toInt
int toInt(bool *ok, int base) const
QList::isEmpty
bool isEmpty() const
QString::isEmpty
bool isEmpty() const
KateViKeyParser::decodeKeySequence
const QString decodeKeySequence(const QString &keys) const
Definition: katevikeyparser.cpp:632
QString::endsWith
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
KateViInputModeManager::Completion::removeTail
bool removeTail() const
Definition: kateviinputmodemanager.cpp:933
ViMode
ViMode
The four vi modes supported by Kate's vi input mode.
Definition: kateviinputmodemanager.h:48
QString
QList< QKeyEvent >
QHash::remove
int remove(const Key &key)
KateViGlobal::searchHistory
QStringList searchHistory()
Definition: kateviglobal.cpp:252
QStringList
QList::pop_back
void pop_back()
KateViKeyParser::encodeKeySequence
const QString encodeKeySequence(const QString &keys) const
Definition: katevikeyparser.cpp:520
QHash::keys
QList< Key > keys() const
QPair
KateViGlobal::readConfig
void readConfig(const KConfigGroup &config)
Definition: kateviglobal.cpp:74
KateView
Definition: kateview.h:77
VisualBlockMode
Definition: kateviinputmodemanager.h:53
KateViGlobal::NonRecursive
Definition: kateviglobal.h:60
QHash::clear
void clear()
KateViGlobal::isMappingRecursive
bool isMappingRecursive(MappingMode mode, const QString &from) const
Definition: kateviglobal.cpp:213
KateViGlobal::NormalModeMapping
Definition: kateviglobal.h:61
QString::contains
bool contains(QChar ch, Qt::CaseSensitivity cs) const
KateViInputModeManager::Completion::CompletionType
CompletionType
Definition: kateviinputmodemanager.h:188
KateViInputModeManager::Completion
Definition: kateviinputmodemanager.h:185
katevikeyparser.h
VisualLineMode
Definition: kateviinputmodemanager.h:52
QClipboard::text
QString text(Mode mode) const
QString::replace
QString & replace(int position, int n, QChar after)
QKeyEvent
KateViGlobal::Recursive
Definition: kateviglobal.h:60
KateViGlobal::getRegisterFlag
OperationMode getRegisterFlag(const QChar &reg) const
Definition: kateviglobal.cpp:126
KateViGlobal::CommandModeMapping
Definition: kateviglobal.h:61
KateView::viModeEmulatedCommandBar
KateViEmulatedCommandBar * viModeEmulatedCommandBar()
Definition: kateview.cpp:3051
KateView::getCurrentViMode
ViMode getCurrentViMode() const
Definition: kateview.cpp:1582
QList::last
T & last()
KateViGlobal::mappingModeForCurrentViMode
static MappingMode mappingModeForCurrentViMode(KateView *view)
Returns CommandModeMapping if the emulated command bar is active, else the mapping mode corresponding...
Definition: kateviglobal.cpp:218
OperationMode
OperationMode
Definition: katevimodebase.h:49
KateViGlobal::clearAllMacros
void clearAllMacros()
Definition: kateviglobal.cpp:292
KateViGlobal::writeConfig
void writeConfig(KConfigGroup &config) const
Definition: kateviglobal.cpp:43
KateViGlobal::appendReplaceHistoryItem
void appendReplaceHistoryItem(const QString &replaceHistoryItem)
Definition: kateviglobal.cpp:282
KateViGlobal::appendCommandHistoryItem
void appendCommandHistoryItem(const QString &commandHistoryItem)
Definition: kateviglobal.cpp:272
QClipboard::setText
void setText(const QString &text, Mode mode)
KateViGlobal::MappingMode
MappingMode
Definition: kateviglobal.h:61
KateViGlobal::KateViGlobal
KateViGlobal()
Definition: kateviglobal.cpp:35
KateViGlobal::appendSearchHistoryItem
void appendSearchHistoryItem(const QString &searchHistoryItem)
Definition: kateviglobal.cpp:257
KateViGlobal::getMacroCompletions
QList< KateViInputModeManager::Completion > getMacroCompletions(QChar macroRegister)
Definition: kateviglobal.cpp:321
KateViKeyParser::self
static KateViKeyParser * self()
Definition: katevikeyparser.cpp:38
kateviglobal.h
KateViGlobal::getRegisterContent
QString getRegisterContent(const QChar &reg) const
Definition: kateviglobal.cpp:121
KateViGlobal::fillRegister
void fillRegister(const QChar &reg, const QString &text, OperationMode flag=CharWise)
Definition: kateviglobal.cpp:146
KateViInputModeManager::Completion::FunctionWithArgs
Definition: kateviinputmodemanager.h:188
KateViInputModeManager::Completion::FunctionWithoutArgs
Definition: kateviinputmodemanager.h:188
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:59 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
  • 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