<div>Ok, I&#39;ve found new problems, here is the sequence to reproduce:</div><div><br></div><div>1. At the beginning of a empty line, I typed &quot;i&quot;</div><div>2. Type &quot;aaa&quot; and the line becomes &quot;aaa&quot;</div>
<div>3. &quot;Esc&quot;</div><div>4. &quot;i&quot;</div><div>5. &quot;eee&quot; and the line becomes &quot;aaaeee&quot;</div><div>6. &quot;Esc&quot;</div><div>7. Type &quot;.&quot; and the line becomes &quot;aaaeeeeee&quot;</div>
<div>8. Type &quot;C-.&quot; and the becomes &quot;aaaeeeaaa&quot; while it should be &quot;aaaeeeeeeaaa&quot;</div><div><br></div><div>Hope this helps.</div><div><br></div><div><br></div><div>York</div><div><br></div><div>
<br></div><div>On Fri, Aug 19, 2011 at 11:10 AM, York Zhao &lt;<a href="mailto:gtdplatform@gmail.com">gtdplatform@gmail.com</a>&gt; wrote:</div><div>Thanks Frank, I will report back new bugs if I found them.</div><div><br>
</div><div><br></div><div>York</div><div><br></div><div><br></div><div>On Fri, Aug 19, 2011 at 4:03 AM, Frank Fischer &lt;<a href="mailto:frank.fischer@mathematik.tu-chemnitz.de">frank.fischer@mathematik.tu-chemnitz.de</a>&gt; wrote:</div>
<div>On Thu, Aug 18, 2011 at 05:34:54PM -0400, York Zhao wrote:</div><div>&gt; I can reproduce the problem now:</div><div>&gt;</div><div>&gt; 1. Hit &quot;i&quot; to enter Insert state and type something</div><div>&gt; 2. Esc to exit insert</div>
<div>&gt; 3. Hit &quot;.&quot; and it will work fine</div><div>&gt; 3. Hit &quot;C-x b&quot; to switch to other buffer</div><div>&gt; 4. Hit &quot;.&quot; in the new buffer and &quot;switch-buffer&quot; command will be repeated</div>
<div>&gt;</div><div><br></div><div>Thanks for the report. I realised it on my own but wasn&#39;t able to reproduce it ;)</div><div><br></div><div>Anyway, it should be fixed in d9c1ed78.</div><div><br></div><div>Note that I have cleaned up some parts of the repeat system, so there</div>
<div>may be new bugs ...</div><div><br></div><div>Frank</div><div><br></div><div>&gt;</div><div>&gt; York</div><div>&gt;</div><div>&gt;</div><div>&gt; On Thu, Aug 18, 2011 at 5:14 PM, York Zhao &lt;<a href="mailto:gtdplatform@gmail.com">gtdplatform@gmail.com</a>&gt; wrote:</div>
<div>&gt; Hi,</div><div>&gt;</div><div>&gt; It had happened a few times today that dot command was not repeating the</div><div>&gt; previous insertion, but rather some other command, e.g. it was repeating</div><div>&gt; &quot;switch-buffer&quot; a minute ago, and currently is repeating the &quot;C-h k .&quot;</div>
<div>&gt; command. Right now it is working properly again. I don&#39;t know how to</div><div>&gt; reproduce this yet.</div><div>&gt;</div><div>&gt; York</div><div>&gt;</div><div>&gt;</div><div>&gt; On Tue, Aug 16, 2011 at 11:45 AM, York Zhao &lt;<a href="mailto:gtdplatform@gmail.com">gtdplatform@gmail.com</a>&gt; wrote:</div>
<div>&gt; Hi Frank,</div><div>&gt;</div><div>&gt; Thank you very much for this. I just did a few quick tests which appeared to</div><div>&gt; be working perfectly fine. I&#39;m using auto-complet a lot every day so I will</div>
<div>&gt; report back problems if I will notice any but my feeling is that it is going</div><div>&gt; to work. Thanks again for the wonderful works.</div><div>&gt;</div><div>&gt;</div><div>&gt; York</div><div>&gt;</div><div>
&gt;</div><div>&gt; On Tue, Aug 16, 2011 at 5:59 AM, Frank Fischer &lt;</div><div>&gt; <a href="mailto:frank.fischer@mathematik.tu-chemnitz.de">frank.fischer@mathematik.tu-chemnitz.de</a>&gt; wrote:</div><div>&gt; Am Montag, 15. August 2011 schrieb Frank Fischer:</div>
<div>&gt; &gt; Am Mon, 15 Aug 2011 14:54:44 -0400</div><div>&gt; &gt;</div><div>&gt; &gt; schrieb York Zhao &lt;<a href="mailto:gtdplatform@gmail.com">gtdplatform@gmail.com</a>&gt;:</div><div>&gt; &gt; &gt; Hi,</div><div>
&gt; &gt; &gt;</div><div>&gt; &gt; &gt; I&#39;ve been having this problem for a while and it is now my biggest</div><div>&gt; &gt; &gt; complain to Evil because other than Evil itself, &quot;auto-complete&quot; is</div><div>
&gt; &gt; &gt; the next thing I can&#39;t be living without.</div><div>&gt; &gt;</div><div>&gt; &gt; In fact, the change based repeation system (in contrast to the</div><div>&gt; &gt; key-stroke based one, I described both in another mail and it will</div>
<div>&gt; &gt; hopefully find its way in the docs) is designed exactly for these</div><div>&gt; &gt; cases and I&#39;m quite confident that this is indeed not a big problem.</div><div>&gt; &gt; I just haven&#39;t activated it yet, but I&#39;m going to have a look at it</div>
<div>&gt; &gt; in the next days.</div><div>&gt;</div><div>&gt; In turned out to be a little bit more difficult than a thought.</div><div>&gt; Activating the change-based repeation for auto-complete worked well</div><div>&gt; except in one case: when the completion is done near the end of the</div>
<div>&gt; buffer. The reason is that in this case auto-complete adds a few</div><div>&gt; newlines to the end of the buffer in order to show its popup-menu</div><div>&gt; (those newlines are removed when the popup closes). The problem is that</div>
<div>&gt; these insertions/deletions are, well, buffer-changes and therefore</div><div>&gt; confused the recording. Even worse, the popup menu is triggered by a</div><div>&gt; timer and not by a command, therefore there is no command active when</div>
<div>&gt; the first buffer changes appear and this confuses the system even more.</div><div>&gt;</div><div>&gt; Luckily, Evil had already had the ability to execute arbitrary functions</div><div>&gt; to realize a repeation, there just was no way to specify such a</div>
<div>&gt; function for a command. I added this functionality in d15b75a5. The</div><div>&gt; following code should equip auto-complete with working repeation. I&#39;m</div><div>&gt; going to cleanup the repeation code, especially the definition of</div>
<div>&gt; user-defined repeation functions, a little bit, so don&#39;t assume this as</div><div>&gt; a stable example but feel free to test and tell us about problems.</div><div>&gt;</div><div>&gt;</div><div>&gt; (evil-set-command-properties &#39;ac-complete :repeat &#39;evil-ac-repeat)</div>
<div>&gt; (evil-set-command-properties &#39;ac-expand :repeat &#39;evil-ac-repeat)</div><div>&gt; (evil-set-command-properties &#39;ac-next :repeat &#39;ignore)</div><div>&gt; (evil-set-command-properties &#39;ac-previous :repeat &#39;ignore)</div>
<div>&gt;</div><div>&gt; (defvar evil-ac-prefix-len nil</div><div>&gt; �&quot;The length of the prefix of the current item to be completed.&quot;)</div><div>&gt;</div><div>&gt; (defun evil-ac-repeat (flag)</div><div>&gt; �&quot;Record the changes for auto-completion.&quot;</div>
<div>&gt; �(if (eq flag &#39;pre)</div><div>&gt; � � �(setq evil-ac-prefix-len (length ac-prefix))</div><div>&gt; � �;; Add change to remove the prefix</div><div>&gt; � �(evil-repeat-record-change</div><div>&gt; � � (list (- evil-ac-prefix-len) &quot;&quot; evil-ac-prefix-len))</div>
<div>&gt; � �;; Add change to insert the full completed text</div><div>&gt; � �(evil-repeat-record-change</div><div>&gt; � � (list (- evil-ac-prefix-len)</div><div>&gt; � � � � � (buffer-substring-no-properties (- evil-repeat-pos</div>
<div>&gt; � � � � � � � � � � � � � � � � � � � � � � �evil-ac-prefix-len)</div><div>&gt; � � � � � � � � � � � � � � � � � � � � � (point))</div><div>&gt; � � � � � 0))</div><div>&gt; � �;; Finish repeation</div><div>&gt; � �(evil-repeat-record-change)))</div>
<div>&gt;</div><div>&gt;</div><div>&gt; Hope it works,</div><div>&gt; Frank</div><div>&gt;</div><div>&gt; _______________________________________________</div><div>&gt; implementations-list mailing list</div><div>&gt; <a href="mailto:implementations-list@lists.ourproject.org">implementations-list@lists.ourproject.org</a></div>
<div>&gt; <a href="https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list">https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list</a></div><div><br></div><div>&gt; _______________________________________________</div>
<div>&gt; implementations-list mailing list</div><div>&gt; <a href="mailto:implementations-list@lists.ourproject.org">implementations-list@lists.ourproject.org</a></div><div>&gt; <a href="https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list">https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list</a></div>
<div><br></div><div><br></div><div>--</div><div>Frank Fischer</div><div>Chemnitz University of Technology, Department of Mathematics</div><div>eMail: <a href="mailto:frank.fischer@mathematik.tu-chemnitz.de">frank.fischer@mathematik.tu-chemnitz.de</a></div>
<div>Tel.: +49 (371) 531-36913</div><div><br></div><div>_______________________________________________</div><div>implementations-list mailing list</div><div><a href="mailto:implementations-list@lists.ourproject.org">implementations-list@lists.ourproject.org</a></div>
<div><a href="https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list">https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list</a></div><div><br></div>