all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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__


  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.