Hi, guys.
The version is MacVim 7.4 (Aug 10, 2013). Thats the version information when
typing ':version' in the command line. It is the 'Huge version with MacVim
GUI'.
The slowness is noticed when moving or typing in the problematic commented area.
In Insert or Normal mode.
Below is the result of ':syntime report'. Appears that the '\c', '\ref',
'\e' and '\b' are the culprit. This was tested in a file with 317 lines of
Objective-C code. Sorry that I cannot post the entire file here, since it
belongs to the company where I'm working right now. Even so, below the report,
I put some comment blocks.
TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN
0.835197 16 14 0.195808 0.052200 doxygenSpecialCodeWord \(\_s\+[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.329377 4 4 0.154978 0.082344 doxygenSpecialRefWord \(\_s\+[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.262015 4 4 0.120980 0.065504 doxygenSpecialEmphasisedWord \(\_s\+[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.207733 8 8 0.045915 0.025967 doxygenSpecialBoldWord \(\_s\+[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.035615 71 0 0.001082 0.000502 objcSuperclass \(@\(implementation\|interface\)\s*\k\+\s*:\)\@<=\s*\k*
0.015586 88 56 0.000803 0.000177 objcMethodName \(^\s*[-+]\s*(\_[^)]*)\)\@<=\_\s*\_\k\+
0.015504 10 8 0.003243 0.001550 doxygenCodeWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.015495 10 8 0.003165 0.001550 doxygenCodeWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.005707 234 0 0.000038 0.000024 doxygenHyperLink \(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+
0.005336 562 0 0.000045 0.000009 objcError \v(NSLogv=\(\s*)@<=[^@]=["'].*
0.005140 87 20 0.000184 0.000059 objcSubclass \(@implementation\|@interface\)\@<=\s*\k\+
0.004815 2 2 0.002418 0.002408 doxygenRefWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.004310 606 44 0.000031 0.000007 cFunctions \<\(\i\+\w*\)\s*(
0.004002 576 26 0.000026 0.000007 objcString \(@"\|"\)
0.003881 234 0 0.000028 0.000017 doxygenHashLink \([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+
0.003703 2 2 0.001860 0.001852 doxygenEmphasisedWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.003690 2 2 0.001854 0.001845 doxygenEmphasisedWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.003219 4 4 0.000813 0.000805 doxygenBoldWord \_s\@<=[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\
0.002976 562 0 0.000017 0.000005 cString \%(U\|u8\=\)"
0.002663 56 32 0.000066 0.000048 doxygenBrief \(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=
0.002473 724 162 0.000011 0.000003 cBracket \[\|<::\@!
0.002279 562 0 0.000013 0.000004 cSpecialCharacter L\='\\['\"?\\abfnrtv]'
0.002269 562 0 0.000026 0.000004 cCharacter L\='[^\\]'
0.002232 564 14 0.000015 0.000004 cCppString L\="
0.002231 562 0 0.000012 0.000004 cSpecialError L\='\\[^'\"?\\abfnrtv]'
0.002144 564 14 0.000012 0.000004 cString L\="
0.001844 854 481 0.000011 0.000002 cOperator [%><?!*&|~^=+-]
0.001804 8 0 0.000499 0.000226 objcMessageColon \(\_\S\+\_\s\+\)\@<=\k\+\s*:
0.001733 562 0 0.000008 0.000003 cSpecialCharacter [Uu]'\\['\"?\\abfnrtv]'
0.001636 562 0 0.000009 0.000003 cCharacter [Uu]'[^\\]'
0.001619 562 0 0.000008 0.000003 cCharacter [Uu]'[^']*'
0.001592 562 0 0.000008 0.000003 cSpecialError [Uu]'\\[^'\"?\\abfnrtv]'
0.001562 274 24 0.000014 0.000006 doxygenSmallSpecial [@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=
0.001413 290 174 0.000013 0.000005 doxygenSpecial [@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!
0.001252 68 18 0.000045 0.000018 doxygenBrief \(^\s*\)\@<!\*/\@!
0.001032 602 40 0.000015 0.000002 objcMethod ^\s*[-+]\s*\_.\{-}[\{;]
0.000913 562 0 0.000004 0.000002 cPreProc ^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)
0.000883 562 0 0.000006 0.000002 cDefine ^\s*\(%:\|#\)\s*\(define\|undef\)\>
0.000880 562 0 0.000004 0.000002 cDefine ^\s*\(%:\|#\)\s*\(define\|undef\)\>
0.000855 562 0 0.000004 0.000002 cCppOutWrapper ^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)
0.000855 562 0 0.000008 0.000002 cPreCondit ^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>
0.000852 116 116 0.000020 0.000007 objcMethodArg )\@<=\s*\k\+
0.000849 562 0 0.000007 0.000002 cCppInWrapper ^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)
0.000764 122 0 0.000013 0.000006 cNumbers \<\d\|\.\d
0.000700 148 108 0.000011 0.000005 objcMethodColon \k\+\s*:
0.000678 580 64 0.000005 0.000001 doxygenComment /\*\(\*/\)\@![*!]
0.000643 122 0 0.000012 0.000005 cSpecialCharacter L\='\\\o\{1,3}'
0.000587 642 80 0.000004 0.000001 objcInstMethod ^\s*-\s*
0.000574 562 0 0.000003 0.000001 objcFactMethod ^\s*+\s*
0.000556 598 76 0.000005 0.000001 doxygenCommentL //@\ze[{}]
0.000481 90 24 0.000010 0.000005 doxygenSpecialMultilineDesc ^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t
0.000471 66 66 0.000011 0.000007 doxygenSpecialMultilineDesc .\+
0.000463 134 12 0.000008 0.000003 cParenError [\])]
0.000455 326 116 0.000005 0.000001 doxygenContinueComment ^\s*\*/\@!\s*
0.000448 562 22 0.000021 0.000001 doxygenCommentL //[/!]<\@!
0.000446 122 0 0.000008 0.000004 cSpecialCharacter [Uu]'\\x\x\+'
0.000431 122 0 0.000008 0.000004 cSpecialCharacter [Uu]'\\\o\{1,3}'
0.000416 562 0 0.000003 0.000001 doxygenCommentL //[/!]<
0.000414 120 120 0.000012 0.000003 cBracket ]\|:>
0.000394 90 0 0.000009 0.000004 doxygenPage [\\@]page\>
0.000333 70 22 0.000008 0.000005 doxygenStartSpecial [@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!
0.000315 252 0 0.000099 0.000001 doxygenHtmlTag \v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub
0.000307 70 0 0.000006 0.000004 doxygenFindBriefSpecial [@\\]brief\>
0.000300 570 8 0.000004 0.000001 objcDirective @property\|@synthesize\|@dynamic\|@package
0.000293 562 0 0.000003 0.000001 objcDirective @try\|@catch\|@finally\|@throw\|@synchronized
0.000286 570 8 0.000003 0.000001 objcDirective @encode\|@protocol\|@selector
0.000280 562 11 0.000002 0.000000 objcDirective @class\|@end\|@defs
0.000279 54 0 0.000007 0.000005 doxygenBrief [.]\S\@=
0.000272 952 390 0.000001 0.000000 cParen (
0.000270 56 54 0.000006 0.000005 doxygenBrief [.]
0.000268 562 0 0.000003 0.000000 cocoaClass \<CF\(\i\+\w*\)Ref\>
0.000264 562 0 0.000003 0.000000 objcScopeDecl @public\|@private\|@protected
0.000263 8 0 0.000071 0.000033 objcMessageName \(\[\s*\k\+\s\+\|\]\s*\)\@<=\k*\s*\]
0.000258 578 16 0.000003 0.000000 objcDirective @interface\|@implementation
0.000256 562 0 0.000002 0.000000 cocoaFunction \<CF\(\i\+\w*\)\s*(
0.000245 448 48 0.000002 0.000001 doxygenBody \*/
0.000227 562 0 0.000001 0.000000 cCommentL ////
0.000221 634 138 0.000001 0.000000 cBlock {
0.000212 130 64 0.000003 0.000002 doxygenStart /\*[*!]
0.000211 580 69 0.000001 0.000000 cCommentL //
0.000210 112 112 0.000004 0.000002 doxygenBrief [\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]
0.000210 122 0 0.000004 0.000002 objcProperty ^\s*@property\>\s*([^)]*)
0.000207 562 0 0.000005 0.000000 cocoaFunction \<NS\(\i\+\w*\)\s*(
0.000207 122 0 0.000007 0.000002 objcKeyForMethodParam ^\s*[_a-zA-Z][_a-zA-Z0-9]*\s*:\s*(
0.000204 562 0 0.000002 0.000000 cocoaConstant \<kCF\(\i\+\w*\)\>
0.000201 130 80 0.000003 0.000002 doxygenSyncStart \ze[^*/]
0.000201 562 0 0.000002 0.000000 cCharacter L'[^']*'
0.000201 122 4 0.000004 0.000002 cInclude ^\s*\(%:\|#\)\s*include\>\s*["<]
0.000199 286 254 0.000002 0.000001 cComment \*/
0.000198 562 0 0.000001 0.000000 cComment /\*\*\*
0.000193 122 0 0.000004 0.000002 cPreConditMatch ^\s*\(%:\|#\)\s*\(else\|endif\)\>
0.000193 122 8 0.000004 0.000002 objcImport ^\s*\(%:\|#\)\s*import\>\s*["<]
0.000193 122 0 0.000005 0.000002 cBitField ^\s*\I\i*\s*:\s*[1-9]
0.000193 598 218 0.000001 0.000000 cComment /\*
0.000189 300 66 0.000002 0.000001 doxygenComment \*/
0.000188 570 8 0.000001 0.000000 objcImp @implementation
0.000185 570 8 0.000001 0.000000 objcHeader @interface
0.000180 122 0 0.000005 0.000001 cUserCont ^\s*\I\i*\s*:[^:]
0.000179 122 0 0.000005 0.000001 cUserCont ^\s*\I\i*\s*:$
0.000163 252 0 0.000004 0.000001 doxygenHtmlCode \c<code\>
0.000153 180 90 0.000003 0.000001 doxygenSpecialMultilineDesc ^
0.000148 252 0 0.000001 0.000001 doxygenHtmlSpecial &\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]ci
0.000145 420 48 0.000001 0.000000 cBlock }
0.000145 38 0 0.000006 0.000004 doxygenComment2 /\*\(\*/\)\@![*!]
0.000137 58 58 0.000004 0.000002 doxygenGroupDefine @\@<=[{}]
0.000135 252 0 0.000003 0.000001 doxygenHtmlLink <[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>
0.000131 252 0 0.000002 0.000001 doxygenHtmlItalic \c<i\>
0.000131 252 0 0.000002 0.000001 doxygenHtmlBold \c<b\>
0.000129 252 0 0.000002 0.000001 doxygenHtmlUnderline \c<u\>
0.000119 18 18 0.000008 0.000007 doxygenSpecialTypeOnelineDesc .\+
0.000116 252 0 0.000002 0.000000 doxygenHtmlItalic \c<em\>
0.000109 48 48 0.000004 0.000002 doxygenBody \(/\*[*!]\)\@<!<\|[^<]\|$
0.000109 252 0 0.000002 0.000000 doxygenHtmlBold \c<strong\>
0.000105 280 0 0.000002 0.000000 objcImp @end
0.000104 68 68 0.000002 0.000002 doxygenBrief \<\k
0.000089 32 32 0.000003 0.000003 doxygenParamName [A-Za-z0-9_:]\+
0.000087 165 0 0.000001 0.000001 cBadContinuation \\\s\+$
0.000081 110 46 0.000003 0.000001 doxygenStartSkip ^\s*\*[^/]
0.000080 22 22 0.000005 0.000004 doxygenBriefL @\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]
0.000080 240 240 0.000001 0.000000 cParen )
0.000074 122 36 0.000001 0.000001 cCommentError \*/
0.000073 240 0 0.000001 0.000000 cParen }
0.000073 44 22 0.000002 0.000002 doxygenStartL //[/!]
0.000072 64 0 0.000003 0.000001 doxygenStartSkip ^\s*\*$
0.000072 122 0 0.000003 0.000001 objcDirective @synthesize\|@property\|@optional\|@required
0.000071 122 0 0.000002 0.000001 cUserCont ;\s*\I\i*\s*:[^:]
0.000071 122 0 0.000002 0.000001 cBitField ;\s*\I\i*\s*:\s*[1-9]
0.000070 54 54 0.000002 0.000001 doxygenCommentL $
0.000070 20 20 0.000004 0.000004 doxygenStartSpecial $
0.000070 22 22 0.000004 0.000003 doxygenCommentL $
0.000064 122 0 0.000002 0.000001 cUserCont ;\s*\I\i*\s*:$
0.000063 112 22 0.000003 0.000001 doxygenSpecialContinueComment ^\s*\*/\@!\s*
0.000050 122 0 0.000001 0.000000 objcMessage \[
0.000048 122 0 0.000001 0.000000 cSpecialCharacter L'\\x\x\+'
0.000045 122 0 0.000001 0.000000 objcProtocol <[_a-zA-Z][_a-zA-Z0-9]*>
0.000043 60 0 0.000001 0.000001 cCommentStartError /\*
0.000042 122 0 0.000001 0.000000 cSpecialCharacter '\\x\x\{1,2}'
0.000041 12 8 0.000007 0.000003 cErrInParen [\]{}]\|<%\|%>
0.000037 120 0 0.000001 0.000000 cBracket }
0.000034 22 22 0.000002 0.000002 doxygenBriefL \<
0.000033 14 10 0.000004 0.000002 doxygenSymbol [$\\&<>#n]
0.000033 50 0 0.000001 0.000001 doxygenBriefEndComment \*/
0.000032 11 11 0.000004 0.000003 cCommentL $
0.000029 36 18 0.000002 0.000001 doxygenGroupDefineSpecial @\ze[{}]
0.000025 66 7 0.000002 0.000000 objcHeader @end
0.000025 64 0 0.000001 0.000000 doxygenPrev <
0.000023 18 18 0.000002 0.000001 doxygenSpecialTypeOnelineDesc $
0.000021 22 0 0.000002 0.000001 doxygenCodeRegion \<code\>
0.000019 22 0 0.000002 0.000001 doxygenDotRegion \<dot\>
0.000018 22 4 0.000005 0.000001 doxygenSkipComment ^\s*\*/\@!
0.000014 22 0 0.000002 0.000001 doxygenVerbatimRegion \<verbatim\>
0.000013 20 18 0.000001 0.000001 doxygenStartSpecial \*/
0.000012 12 0 0.000002 0.000001 doxygenOtherLink \<link\>
0.000012 32 0 0.000001 0.000000 doxygenParamDirection \v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]
0.000008 14 10 0.000001 0.000001 doxygenSpecialEmphasisedWord e
0.000008 14 14 0.000001 0.000001 doxygenSpecialCodeWord c
0.000008 16 8 0.000001 0.000001 objcImported "
0.000007 12 0 0.000001 0.000001 doxygenFormula f\[
0.000007 12 0 0.000001 0.000001 doxygenFormula f\$
0.000006 16 0 0.000001 0.000000 objcImported <[-_0-9a-zA-Z.\/]*>
0.000006 12 4 0.000001 0.000001 doxygenSpecialRefWord ref
0.000006 22 0 0.000001 0.000000 doxygenPrevL <
0.000005 12 0 0.000001 0.000000 doxygenSpecialEmphasisedWord em
0.000005 14 8 0.000001 0.000000 doxygenSpecialArgumentWord a
0.000004 11 0 0.000001 0.000000 cCommentL \\$
0.000004 12 2 0.000001 0.000000 doxygenSpecialCodeWord p
0.000004 4 4 0.000001 0.000001 cIncluded "
0.000003 14 4 0.000001 0.000000 doxygenSpecialBoldWord b
0.000003 8 0 0.000001 0.000000 objcSpecial %@
0.000003 4 4 0.000001 0.000001 cIncluded "
0.000002 4 0 0.000001 0.000001 cIncluded <[^>]*>
0.000002 8 0 0.000001 0.000000 objcImported \\\\\|\\"
0.000002 4 0 0.000001 0.000001 cIncluded \\\\\|\\"
0.000001 8 8 0.000001 0.000000 objcImported "
0.000000 2 2 0.000000 0.000000 objcString "
0.000000 2 0 0.000000 0.000000 objcString \\\\\|\\"
1.823260 39809
Comment blocks (they are in Portuguese), these are the problematic ones:
/**
* Define ou retorna a instância da implementação de HCRequestHandler
* responsável pela comunicação com o equipamento.
* Quando a View é criada, esta propriedade é \b nil até que uma referência
* seja definida pela implementação especializada da tela.
* \note A referência deste objeto será retido nesta operação.
*//* --------------------------------------------------------------------- */
/**
* Obtém a instância do controle ISlider responsável pela dimerização.
* Esta propriedade é \b nil até que o método \c showSliderDimmer seja
* executado.
*//* --------------------------------------------------------------------- */
/**
* Inicializa esta instância da View.
* \param aRect retângulo de tamanho e localização da View. Normalmente
* preenchendo toda a área interna do \e controller.
* \param type Código do tipo do equipamento representado por esta View. Os
* códigos estão disponíveis na lista \ref hc_equipments.
* \param avID Identificador do equipamento conforme lista recebida do
* console.
* \return Este objeto inicializado.
*//* --------------------------------------------------------------------- */
/**
* Chamada quando o usuário faz uma alteração na posição do slider.
* \param position Posição atual do slider. Varia de 0 à 100.
* \remarks Esta função pode ser sobrescrita por classes derivadas para
* obter o valor atualizado imediatamente. A implementação de HCAvdView envia
* a mensagem de alteração ao console e atualiza a propriedade \c
* generalLights do aplicativo.
*//* --------------------------------------------------------------------- */
/**
* Intercepta a notificação \c SM_CONNECTING da comunicação.
* \param socketMsg Objeto que carrega a mensagem.
*//* --------------------------------------------------------------------- */
Thanks for your attention.