The customization turned out to be not so difficult. Thanks for the nudge and the (off-list) hints.
Patch attached. On Fri, 2014-08-01 at 10:48 +0800, Elias Mårtenson wrote: > Thank you. It's been applied. > > > I would like to see the indentation amounts be a bit more > configurable. I think designating multiple variables using defcustom > for this is a better option. > > > That said, isn't there another way in which a set of numbers can be > edited from "customize"? What is your opinion? > > > Regards, > Elias > > > On 1 August 2014 10:17, David B. Lamkins <da...@lamkins.net> wrote: > Elias, > > I took the liberty of rewriting `gnu-apl--indent-this'. > > The function now takes indentation amounts from > `gnu-apl--indent-amounts'; this variable specifies the > indentation for > header (between del and the first nonblank character; del is > still > flush-left), comment, label and other within a function. > > Everything outside a function is still flush-left. > > Patch attached. > > >
diff --git a/gnu-apl-mode.el b/gnu-apl-mode.el index 1a7a44b..765cd83 100644 --- a/gnu-apl-mode.el +++ b/gnu-apl-mode.el @@ -103,6 +103,17 @@ Enabling this option requires the use of at least GNU APL version 1.4 or the latest version from the subversion repository.") ;;;###autoload +(defcustom gnu-apl-indent-amounts '(0 1 1 2) + "The amounts by which to indent lines within APL functions. +The ∇s are always flush-left, as are all lines outside of functions." + :type '(list (integer :tag "Number of spaces after ∇ on header line") + (integer :tag "Number of spaces before comment line ") + (integer :tag "Number of spaces before label ") + (integer :tag "Number of space before other lines ") + ) + :group 'gnu-apl) + +;;;###autoload (defface gnu-apl-default () "Face used for APL buffers" @@ -455,9 +466,6 @@ function or nil if the function could not be parsed." (user-error "Incorrectly formatted function header")) parsed))) -(defvar gnu-apl--indent-amounts '(0 1 1 2) - "Ident amount for header, comment, label and other.") - (defun gnu-apl--indent-this () "Indent a function, controlled by `gnu-apl--indent-amounts'. Anything outside a function definition is not indented." @@ -466,7 +474,7 @@ Anything outside a function definition is not indented." (when (re-search-forward "\\=[ \t]*" nil t) (replace-match "" nil nil))) (destructuring-bind (i-header i-comment i-label i-other) - gnu-apl--indent-amounts + gnu-apl-indent-amounts (cond ((looking-at "∇") (indent-to-column 0) (re-search-forward "∇[ \t]*" nil t)