From: pjb@informatimago.com (Pascal J. Bourguignon)
To: help-gnu-emacs@gnu.org
Subject: Re: Tabs and Spaces
Date: Wed, 27 May 2009 00:40:35 +0200 [thread overview]
Message-ID: <8763fn5vz0.fsf@galatea.local> (raw)
In-Reply-To: mailman.7877.1243375379.31690.help-gnu-emacs@gnu.org
"Drew Adams" <drew.adams@oracle.com> writes:
>> Since it is unlikely that the built in emacs parsing /
>> indentation will be able to handle my modified syntax,...
>> For the longer term, I definitely want to work out how
>> to customise the indentation for my purposes.
>
> It's not hard, actually. It's just not well documented (IMO).
>
> See the Emacs manual, node `Lisp Indent'.
>
> Personally, I think the explanation given there is inadequate, and this (or
> more) should really be in the Elisp manual (you need some Lisp code to customize
> indentation of various Lisp sexps) - there is nothing in the Lisp manual about
> it. I've just filed a doc bug about this.
>
> After reading that node, `grep' the Lisp source code for places where it puts
> property `lisp-indent-function' on various function and macro symbols. Just copy
> what's done there. See also `C-h f lisp-indent-function', which describes the
> function that uses the symbol property.
Well sexp indenting is the easy special case.
I would advise rather to have a look at the pascal.el source (where
pascal-mode and pascal-indent-line are defined). This is probably
closer to what Chris would need to implement.
However, there is one thing that could be done cf. sexps, is to
implement the forward-sexp-function hook. This is a function that
should move the cursor forward (or backward depending on its argument)
over a number of "sexp" that is, of expressions in the current
language. So given a cursor before a BEGIN, it would have to move
after the matching END, and so on for all the kinds of brackets the
languages allows (for xml, it would have to move from before <tag> to
after </tag>). In the case of C++ however, there are a lot of
different brackets, so parsing and matching them is hard and
puzzling. (And what to do of x<a<b>> (vs. x<a<b> >)).
Anyways, with this hook implemented, a lot of existing functions and
commands will start to work meaningfully in these buffers, and the
generic indenting algorithm may be usable.
--
__Pascal Bourguignon__
next prev parent reply other threads:[~2009-05-26 22:40 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-25 10:48 Tabs and Spaces Chris Gordon-Smith
2009-05-25 11:48 ` Pascal J. Bourguignon
2009-05-25 12:17 ` Chris Gordon-Smith
2009-05-25 13:48 ` Pascal J. Bourguignon
2009-05-25 14:58 ` Chris Gordon-Smith
2009-05-25 15:10 ` Teemu Likonen
2009-05-25 15:58 ` Chris Gordon-Smith
2009-05-25 16:38 ` Pascal J. Bourguignon
2009-05-25 15:14 ` Pascal J. Bourguignon
2009-05-25 15:36 ` Richard Riley
2009-05-25 16:10 ` Pascal J. Bourguignon
2009-05-25 16:19 ` Richard Riley
2009-05-25 16:15 ` B Smith-Mannschott
2009-05-25 17:03 ` Drew Adams
2009-05-25 21:45 ` Chris Gordon-Smith
2009-05-26 1:08 ` Pascal J. Bourguignon
2009-05-26 21:31 ` Chris Gordon-Smith
2009-05-26 22:03 ` Drew Adams
[not found] ` <mailman.7877.1243375379.31690.help-gnu-emacs@gnu.org>
2009-05-26 22:40 ` Pascal J. Bourguignon [this message]
2009-05-27 20:38 ` Chris Gordon-Smith
[not found] ` <mailman.7772.1243271023.31690.help-gnu-emacs@gnu.org>
2009-05-25 21:48 ` Chris Gordon-Smith
[not found] ` <mailman.7771.1243268169.31690.help-gnu-emacs@gnu.org>
2009-05-26 12:29 ` Francis Moreau
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=8763fn5vz0.fsf@galatea.local \
--to=pjb@informatimago.com \
--cc=help-gnu-emacs@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.