[Geany] idea for Lisp/Scheme/Clojure indentation support (plug-in?)

John Gabriele jmg3000 at xxxxx
Tue Jun 5 19:18:44 UTC 2012


Hi,

I'd like to be able to use Geany for writing Clojure code, but
indentation for Lisps (Clojure, Scheme, and Common Lisp, for example)
calls for function args to line up vertically. For example, if my
cursor is at the "^" (see below), I'd want to easily get it to "@":

~~~
(+ (some-func 1
              2
              3)^
   @
~~~

Here's another example:

~~~
(defn foo
  [x]
  (foobarbaz x
             (fn [y] ...
               (let [a ...
                     b ... ]^
                 @
~~~

It seems to me that a fairly simple way to get the cursor to where
it's wanted is, in quite a large number of cases, would be:

 1. if a close-paren immediately preceeds the cursor, find out how far
indented the matching paren is, and indent the next line that far, or

 2. if there isn't a close-paren before the cursor, just look back to
find the closest open-paren, note how far it's indented, and just
indent the next line same.

That is, when your cursor is at the end of a line: instead of hitting
Return, you'd hit a key bound to such a command as described above.

Could something like this be implemented as a plug-in?

Thanks,
---John



More information about the Users mailing list