unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Qiantan Hong <qhong@mit.edu>
To: dalanicolai <dalanicolai@gmail.com>
Cc: "larsi@gnus.org" <larsi@gnus.org>, Emacs Devel <emacs-devel@gnu.org>
Subject: Re: new package: sketch-mode
Date: Mon, 30 Aug 2021 06:00:01 +0000	[thread overview]
Message-ID: <2F22AA60-BE0C-4FC2-BC97-B368C618E685@mit.edu> (raw)
In-Reply-To: <CACJP=3kY+8XP79sjU4+1US=fcNd-=pQ3qXQp6nSiBG2inBHCTA@mail.gmail.com>

> I am writing primarily to notify you about a package, sketch-mode, I am working on. It provides a handy interface to quickly draw svg's using, well Emacs, but in particular svg.el and transient.el.
> It is handy in particular for creating svg sketches really fast, while of course, it has the advantage over other svg drawing applications that it is very hackable in your favorite langauge :)

This looks very exciting! Is the code available somewhere?

One important question I have is, do you implement it by putting an SVG overlay/property over a single dummy character,
or do you put it on a range of text that *semantically* correspond the SVG being displayed?
I strongly recommend the latter model because it makes it possible to blend in Emacs,
e.g. you can get cursor movement, selection, copy/yank etc relatively easily.
Just for a started, suppose underlying text is structured as one word correspond to and SVG element,
then one can use forward-word backward-word to move between elements.
And there’s much more to explore using other existing structural editing command.
On the other hand, overlaying over a single dummy character just sounds like inventing
a different, isolated editor emulated in Emacs.

I posted some more in-depth discussion over such issue here http://lambda-the-ultimate.org/node/5630#comment-96710

If you find the above proposals compelling, I’m happy to collaborate on it if that’s helpful!
I once experimented building a music notation software using the above discipline
(character -> note head, word -> chord, sentence -> beamed note, paragraph -> bar)
but eventually I abandoned it and get away with MuseScore.

Best,
Qiantan


  parent reply	other threads:[~2021-08-30  6:00 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-23 10:17 new package: sketch-mode dalanicolai
2021-08-23 13:31 ` Lars Ingebrigtsen
2021-08-24 21:57 ` Stefan Monnier
2021-08-27 10:06   ` dalanicolai
2021-08-30 22:45     ` Stefan Monnier
2021-09-15 15:42       ` dalanicolai
2021-09-15 15:42         ` dalanicolai
2021-09-15 20:03         ` Stefan Monnier
2021-09-18 11:25           ` dalanicolai
2021-08-30  6:00 ` Qiantan Hong [this message]
2021-08-30 14:20   ` dalanicolai

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2F22AA60-BE0C-4FC2-BC97-B368C618E685@mit.edu \
    --to=qhong@mit.edu \
    --cc=dalanicolai@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).