From: Keith David Bershatsky <esq@lawlist.com>
To: eliz@gnu.org, mbork@mbork.pl, rms@gnu.org, johnw@gnu.org,
akioburns@icloud.com, athird@googlemail.com
Cc: 17684@debbugs.gnu.org, 22873@debbugs.gnu.org
Subject: bug#17684: #22873 (multiple fake cursors); and, #17684 (crosshairs).
Date: Mon, 08 Apr 2019 21:03:20 -0700 [thread overview]
Message-ID: <m21s2bddvb.wl%esq@lawlist.com> (raw)
In-Reply-To: <m261khg270.wl%esq@lawlist.com>
[-- Attachment #1: Type: text/plain, Size: 5045 bytes --]
This is version 018.000 of a proof concept for multiple fake cursors and crosshairs.
Special thanks to Eli Z. and Alan T. for helping me out on numerous issues over the past few months -- greatly appreciated!!!
VERSION:
- 018.000 [04/08/2019]
CHANGELOG:
- Creation of fake cursors now immediately follows calls to `draw_glyphs'.
- Removal of fake cursors occurs prior to Emacs scrolling the text on the glass
directly and at the outset of `update_window'.
- The NS port now automatically redraws fake cursors that got erased because they
were left/right overwritten glyphs, but work still needs to be done on the w32
and X ports. The future plan of attack for the w32 and X ports is probably
similar to the NS port; i.e., left/right overwritten glyphs have their strings
tagged during `mc_draw_glyphs' and are dealt with on a per port basis when
FRAME_RIF (f)->mc_scribe_string is called.
- Semi-duplicate functions have been created so as to reduce the number of entry
points into the core code base of Emacs. [This approach enables semi- worry
free tinkering without the risk of breaking something important.]
- Removal of scroll bars no longer erase fake cursors when windows are resized
or deleted on the NS and w32 ports. [I didn't see any issues on an X11 build.]
- Numerous bug fixes, some minor and some major.
SETUP:
Step 1: git clone -b master git://git.sv.gnu.org/emacs.git
Step 2: In the new emacs folder, go back to an Emacs version from 04/08/2019:
git reset --hard a038df77de7b1aa2d73a6478493b8838b59e4982
Step 3: From within the new emacs folder created in Step 1, apply the patch:
git apply /path/to/the/patch.diff
Step 4: ./autogen.sh
Step 5: ./configure ... [your custom options]
Step 6: make
Step 7: make install
USAGE:
- For a minimal working example of built-in fake cursors, type: M-x mc-test
;;; TURN ON FAKE CURSORS (buffer position, cursor-type, cursor color):
(setq mc-conf '((1 "hbar" "magenta")
(2 "bar" "purple")
(3 "box" "#00FF00")
(4 "hollow" "#0000FF")
(5 ("hbar" 3) [1.0 0.0 1.0])
(6 ("bar" 3) [0.0 1.0 1.0])
(7 "framed" "OrangeRed"))))
;;; TURN OFF FAKE CURSORS:
(setq mc-conf nil)
- To try out the crosshairs feature, type: M-x +-mode
- To try out built-in fake cursors with Magnar Sveen's multiple-cursors package,
install that package first. [If the multiple-cursors package is installed, an
eval-after-load "multiple-cursors-core" statement within `crosshairs.el` will
redefine a couple of functions and set up a few keyboard shortcuts.] If the
multiple-cursors package by Magnar Sveen is not already installed, then here
are two easy ways to install that package:
Type: M-x mc-install
OR, evaluate the following snippet:
(progn
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(package-refresh-contents)
(package-install 'multiple-cursors))
TODO:
- When using the multiple fake cursors feature, a fake cursor does not show up at
zv_p.
- Deal with left/right overwritten glyphs in the w32 and X ports of Emacs.
- Reduce the removal of fake cursors to the bare minimum when scrolling the text
on the glass directly, and whenever `update_window' is called.
- When an idle-timer fires and point is at the end of a horizontally scrolled
line in a narrow window, the temporary horizontal scroll is canceled. Create
an minimal working example and file a bug report.
- There is a bug affecting the recorded `w->mc.lnum_pixel_width` that is
observable when not running under gdb, but disappears when running under gdb.
While viewing a folded org-mode buffer, the non-gdb instance had a visible
line number pixel-width of 44, but Emacs treated it as fluctuating between
44 and 55 as the cursor was moved to the end of line. In the gdb instance,
the visible line number pixel width was 55 with no fluctuation under the same
conditions as the non-gdb instance. This appears to be a different bug than
bug#32177 (current line number shifts one column to the left) because the line
number of the current line does not shift left, and changing the bidi settings
did not correct the issue.
- The current test for `auto_hscroll_mode_p' only looks for `current_line` and
all five related tests are based upon that assumption, which may not be true.
- Multiple Cursors: If point is in the middle of a composite character, then
select a fully composed character so that the fake cursor is visible.
- Implement functionality similar to the Lisp multiple-cursors by Magnar Sveen.
- Follow up with the Emacs team re bug#32177; i.e., (Current line number shifts
one column to the left.)
- Follow up with the Emacs team re bug#32060; i.e., Horizontal Scrolling
(Current Line): Wrong line gets h-scrolled.
- Determine if bug #28936 needs to be fixed and help the Emacs team re same.
[-- Attachment #2: 2019_04_08__18_56_23_226.diff --]
[-- Type: application/diff, Size: 480489 bytes --]
next prev parent reply other threads:[~2019-04-09 4:03 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-03 20:36 bug#17684: 24.4.50; Feature Request -- Vertical Lines to the Left of and Through Characters Keith David Bershatsky
2018-07-09 5:28 ` bug#17684: #22873 (multiple fake cursors); and, #17684 (crosshairs) Keith David Bershatsky
2018-11-11 3:36 ` Keith David Bershatsky
2018-11-11 16:51 ` Keith David Bershatsky
2018-11-21 4:53 ` bug#17684: #22873 (multiple fake cursors); and, #17684 (crosshairs / fill-column) Keith David Bershatsky
2018-12-14 7:11 ` Keith David Bershatsky
2019-04-09 4:03 ` Keith David Bershatsky [this message]
2019-04-21 5:15 ` bug#17684: #22873 (multiple fake cursors); and, #17684 (crosshairs) Keith David Bershatsky
2019-04-29 1:21 ` Keith David Bershatsky
2019-06-08 23:44 ` Keith David Bershatsky
2019-06-16 8:07 ` Keith David Bershatsky
2019-06-24 2:25 ` Keith David Bershatsky
2019-06-30 5:42 ` Keith David Bershatsky
2019-07-31 19:39 ` Keith David Bershatsky
2019-10-18 1:12 ` bug#17684: #22873 (multiple fake cursors); and, #17684 (crosshairs / fill-column) Keith David Bershatsky
2019-11-18 6:58 ` Keith David Bershatsky
2020-01-27 7:39 ` Keith David Bershatsky
2020-05-02 20:50 ` Keith David Bershatsky
2020-10-01 3:00 ` bug#17684: bug#22873: " Lars Ingebrigtsen
2020-10-01 3:54 ` Keith David Bershatsky
2020-10-01 16:21 ` Lars Ingebrigtsen
2020-10-01 17:00 ` Drew Adams
-- strict thread matches above, loose matches on Subject: below --
2016-03-01 18:44 bug#22873: 25.1.50; Feature Request -- Multiple Cursors (built-in support) Keith David Bershatsky
2016-03-03 6:30 ` bug#22873: Can we support multiple Cursors? John Wiegley
2016-03-03 6:30 ` John Wiegley
2016-03-03 6:54 ` Marcin Borkowski
2016-03-03 11:20 ` bug#22873: " Richard Stallman
2016-03-03 15:05 ` Marcin Borkowski
2016-03-03 15:05 ` Marcin Borkowski
2016-03-04 9:19 ` Richard Stallman
2016-03-04 9:19 ` Richard Stallman
2016-03-04 14:59 ` Stefan Monnier
2016-03-04 22:18 ` Magnar Sveen
2016-03-05 2:16 ` Stefan Monnier
2016-03-05 13:00 ` Richard Stallman
2016-03-06 4:47 ` John Wiegley
2016-03-06 20:30 ` Clément Pit--Claudel
2016-03-08 4:53 ` Stefan Monnier
2016-03-06 20:33 ` Clément Pit--Claudel
2016-03-08 4:55 ` Stefan Monnier
2016-03-05 12:58 ` Richard Stallman
2016-03-03 11:20 ` Richard Stallman
2016-03-03 6:54 ` Marcin Borkowski
2016-03-04 23:16 ` Keith David Bershatsky
2016-03-05 6:59 ` Marcin Borkowski
2016-03-09 6:50 ` Keith David Bershatsky
2016-03-09 6:27 ` Keith David Bershatsky
2016-03-09 6:45 ` Keith David Bershatsky
2016-03-09 16:03 ` Eli Zaretskii
2016-03-09 18:30 ` Keith David Bershatsky
2016-03-11 7:18 ` Keith David Bershatsky
2016-03-14 18:35 ` Keith David Bershatsky
2016-03-14 18:49 ` Eli Zaretskii
2016-03-14 22:38 ` Keith David Bershatsky
2016-03-16 8:00 ` Keith David Bershatsky
2016-03-18 4:00 ` Keith David Bershatsky
2016-03-26 23:58 ` John Wiegley
2016-03-29 3:45 ` Keith David Bershatsky
2016-03-29 14:58 ` Eli Zaretskii
2016-03-29 17:26 ` Keith David Bershatsky
2017-06-25 22:09 ` Keith David Bershatsky
2017-07-30 17:39 ` Keith David Bershatsky
2017-08-11 0:00 ` bug#22873: Can we support multiple cursors? Keith David Bershatsky
2017-08-13 18:19 ` Keith David Bershatsky
2017-08-13 18:36 ` Eli Zaretskii
2017-08-14 3:20 ` Keith David Bershatsky
2017-08-14 15:01 ` Eli Zaretskii
2017-08-14 20:35 ` Keith David Bershatsky
2017-12-27 17:13 ` bug#22873: #22873 (multiple fake cursors); and, #17684 (crosshairs) Keith David Bershatsky
2017-12-27 23:55 ` John Wiegley
2017-12-28 1:20 ` bug#22873: #22873 (multiple fake cursors) Keith David Bershatsky
2017-12-28 1:26 ` Keith David Bershatsky
2018-07-17 19:09 ` bug#22873: #22873 (multiple fake cursors); and, #17684 (crosshairs) Keith David Bershatsky
2018-08-29 6:39 ` Keith David Bershatsky
2019-05-03 0:48 ` Keith David Bershatsky
2019-05-06 18:39 ` Keith David Bershatsky
2019-05-28 8:31 ` Keith David Bershatsky
2019-06-02 7:29 ` Keith David Bershatsky
2019-07-16 19:28 ` Keith David Bershatsky
2019-07-23 6:01 ` Keith David Bershatsky
2019-08-23 5:19 ` Keith David Bershatsky
2019-10-17 21:08 ` bug#22873: #22873 (multiple fake cursors); and, #17684 (crosshairs / fill-column) Keith David Bershatsky
2020-03-04 9:03 ` Keith David Bershatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m21s2bddvb.wl%esq@lawlist.com \
--to=esq@lawlist.com \
--cc=17684@debbugs.gnu.org \
--cc=22873@debbugs.gnu.org \
--cc=akioburns@icloud.com \
--cc=athird@googlemail.com \
--cc=eliz@gnu.org \
--cc=johnw@gnu.org \
--cc=mbork@mbork.pl \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.