From: SourceForge.net <no...@so...> - 2012-05-30 15:19:25
|
Feature Requests item #3523811, was opened at 2012-05-05 13:27 Message generated for change (Comment added) made by k_satoda You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350588&aid=3523811&group_id=588 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Fixed Priority: 6 Private: No Submitted By: Jarek Czekalski (jarekczek) Assigned to: Jarek Czekalski (jarekczek) Summary: disable electric keys if current line indented manually Initial Comment: I would like to fix these electric keys problems definitely. Vampire wrote once an extremely long post in which the gold idea is hidden: http://jedit.9.n6.nabble.com/Indentation-problems-in-Python-tp1817874p1817919.html Shortly speaking: electric keys should be disabled after user manually indented the current line. Does it have any disadvantages? I plan to introduce it as another smart mode. My idea for implementation is to store the lastManuallyIndented line as a private buffer field. If it matches the current line, the electric keys won't work. ---------------------------------------------------------------------- >Comment By: Kazutoshi Satoda (k_satoda) Date: 2012-05-30 08:19 Message: For the record, r21673 was reverted in r21723, and was superseded by r21725. http://jedit.svn.sourceforge.net/jedit/?view=rev&rev=21725 ---------------------------------------------------------------------- Comment By: Jarek Czekalski (jarekczek) Date: 2012-05-15 09:47 Message: Implemented with r21673. Will be in jedit 5.0pre1. To turn on in Editing options as electric keys mode: smart DMI. Related discussions: http://jedit.9.n6.nabble.com/jEdit-devel-Why-electric-keys-need-separate-modes-in-their-effect-tp4976021.html http://jedit.9.n6.nabble.com/jEdit-devel-Comments-on-smart-DMI-electric-key-mode-tp4980181.html ---------------------------------------------------------------------- Comment By: Jarek Czekalski (jarekczek) Date: 2012-05-13 00:15 Message: The idea get materialized. I attach a patch that is in alpha stage of testing. However I would like to get your feedback about the design. 1. JEditBuffer gets new public method: public void manualIndentationDone(int line) * Called by user interface layer to notify the buffer that manual * indentation of the given line took place. * Buffer needs that information for proper handling of * the electric keys in smart DMI mode. * A call to this method must be done inside the {@link #writeLock}. 2. manualIndentationDone is called by TextArea methods that perform tasks like shiftIndentRight. Those methods should have used writeLock anyway, but they didn't. I added buffer.writeLock() to them. lastManIndLine member of JEditBuffer is not int, as I initially thought, but Position. int would fail if line insertions/removals were done before the given line, while Position is resistant to such actions. Position interface is also used for built-in markers. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350588&aid=3523811&group_id=588 |