From: Carsten Dominik <dominik@science.uva.nl>
To: "Steven E. Harris" <seh@panix.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Re: Release 6.17
Date: Mon, 5 Jan 2009 13:32:41 +0100 [thread overview]
Message-ID: <6D49AF80-79F0-4C96-A0BF-A5BF2A9A9AB2@uva.nl> (raw)
In-Reply-To: <uhc4elszv.fsf@torus.sehlabs.com>
Hi Steven,
thank you for your thoughtful post and everyone else for chiming in with
useful suggestions.
I have just uploaded 6.17a which revamps the codeline references stuff,
in the following way:
1. The default label now looks like (ref:name)
2. The default format is defined in org-coderef-label-format,
with the default value "(ref:%s)".
3. You can change the format for each individual snippet with the -l
switch:
#+BEGIN_SRC pascal -n -r -l "((%s))"
4. Links to the labels have also changed, they are now
[[(name)]] or [[(name)][in line (name)]]
instead of
[[((name))]] or [[((name))][in line ((name))]]
i.e. only single parenthesis around the label name.
5. For technical reasons, there are currently some restrictions
to what you can use as label format:
- Do not use the character special in HTML: `<', `>', and `&'.
- Use something that will not be split up into sections
with different fonts by font-lock/htmlize. For example,
in pascal-mode, "{{%s}}" will not work (I know nothing of
Pascal, was just something I tried).
The reason for both restrictions is that the current
implementation looks for the labels only *after* htmlize has
done its work on the example. Clearly it would be good to
change this, but it is non-trivial and I won't do it until
I see that it is really necessary.
Let's see how ar we get with this.
- Carsten
On Jan 4, 2009, at 9:24 PM, Steven E. Harris wrote:
> Carsten Dominik <dominik@science.uva.nl> writes:
>
>> This idea is to make this work in a heuristic way, by using something
>> that is unlikely enough to occur in real code.
>
> And that is a tough problem, as code is usually defined as stuff that
> contains all kinds of weird (and often paired) delimiters.
>
> [...]
>
>> What would be safer?
>>
>> <<name>> like the other Org-mode targets? That would make sense.
>> Does anyone know a language where this would be used
>> in real life? It would make it harder to write about
>> Org-mode, though.
>>
>> Or do we need another option, so that, if needed, we could switch
>> do a
>> different syntax?
>
> This reminds me of the "leaning toothpick" problem with regular
> expression syntax; Perl and some other languages adopted the
> flexibility
> to accept any "matching" delimiters (either the same character used
> twice or a balancing pair) in lieu of the default '/' delimiter
> character. There was the need to have the delimiters be able to "get
> out
> of the way" of the dominant syntax within that particular regular
> expression. Here, too, I expect that we'd either need to define
> language-specific escape hatches, or stop guessing and force the
> user to
> define the active delimiters.
>
> What if the user could specify before each code block some "dispatch
> character" that then had to be followed by a more telling string, such
> as "#line:def". In that example, the octothorpe is the dispatch
> character, the "line:" is the belt-and-suspenders clarifying tag, and
> the "def" is the named label for that line. Force it to be at the
> end of
> the line (perhaps modulo trailing space), as there should only be one
> definition per line.
>
> A regular expression match would look for
>
> #line:([^)]+)\s*$
> ^
> |
> + (not fixed)
>
> except that the dispatch character would need to be composed in and
> regex-quoted appropriately. Also, that one would tolerate anything
> but a
> closing parenthesis in a label; it could be more restrictive to
> tolerate
> something more commonly expected of an identifier such as
> alphanumerics,
> dashes, and underscores.
>
> You could punt even further and just demand that the user provide a
> suitable regex for finding the line labels unambiguously. I'm just
> leery
> of trying to pick a default that's expected to work not just within
> natural language, but within program source code.
>
> --
> Steven E. Harris
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
next prev parent reply other threads:[~2009-01-05 12:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-04 8:13 Release 6.17 Carsten Dominik
2009-01-04 8:22 ` Carsten Dominik
2009-01-04 14:33 ` Steven E. Harris
2009-01-04 16:01 ` Carsten Dominik
2009-01-04 20:24 ` Steven E. Harris
2009-01-05 12:32 ` Carsten Dominik [this message]
2009-01-05 13:38 ` Steven E. Harris
2009-01-04 20:58 ` Eddward DeVilla
2009-01-05 11:45 ` David Lord
2009-01-05 12:26 ` Rick Moynihan
[not found] <20090104170210.5BBE434805@mail2.panix.com>
2009-01-05 2:45 ` Tom Breton (Tehom)
2009-01-05 3:04 ` Samuel Wales
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.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6D49AF80-79F0-4C96-A0BF-A5BF2A9A9AB2@uva.nl \
--to=dominik@science.uva.nl \
--cc=emacs-orgmode@gnu.org \
--cc=seh@panix.com \
/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/org-mode.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).