Thread: emacs configuration for new perltidy settings
This might be useful for some people. Here is an emacs configuration for perl-mode that is compatible with the new perltidy settings. Note that the default perl-mode settings produce indentation that will be completely shredded by the new perltidy settings. (defun pgsql-perl-style () "Perl style adjusted for PostgreSQL project" (interactive) (setq tab-width 4) (setq perl-indent-level4) (setq perl-continued-statement-offset 4) (setq perl-continued-brace-offset 4) (setq perl-brace-offset0) (setq perl-brace-imaginary-offset 0) (setq perl-label-offset -2)) (add-hook 'perl-mode-hook (lambda () (if (string-match "postgresql" buffer-file-name) (pgsql-perl-style))))
Peter Eisentraut <peter_e@gmx.net> writes: > This might be useful for some people. Here is an emacs configuration > for perl-mode that is compatible with the new perltidy settings. Note > that the default perl-mode settings produce indentation that will be > completely shredded by the new perltidy settings. Thanks! -- Dimitri Fontaine http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
On Thu, Jul 12, 2012 at 6:35 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
--
Michael Paquier
http://michael.otacoo.com
This might be useful for some people. Here is an emacs configuration
for perl-mode that is compatible with the new perltidy settings. Note
that the default perl-mode settings produce indentation that will be
completely shredded by the new perltidy settings.
(defun pgsql-perl-style ()
"Perl style adjusted for PostgreSQL project"
(interactive)
(setq tab-width 4)
(setq perl-indent-level 4)
(setq perl-continued-statement-offset 4)
(setq perl-continued-brace-offset 4)
(setq perl-brace-offset 0)
(setq perl-brace-imaginary-offset 0)
(setq perl-label-offset -2))
(add-hook 'perl-mode-hook
(lambda ()
(if (string-match "postgresql" buffer-file-name)
(pgsql-perl-style))))
Cool thanks!
Very helpful.
Very helpful.
Michael Paquier
http://michael.otacoo.com
On Thu, Jul 12, 2012 at 12:35:26AM +0300, Peter Eisentraut wrote: > This might be useful for some people. Here is an emacs configuration > for perl-mode that is compatible with the new perltidy settings. Note > that the default perl-mode settings produce indentation that will be > completely shredded by the new perltidy settings. > > (defun pgsql-perl-style () > "Perl style adjusted for PostgreSQL project" > (interactive) > (setq tab-width 4) > (setq perl-indent-level 4) > (setq perl-continued-statement-offset 4) > (setq perl-continued-brace-offset 4) > (setq perl-brace-offset 0) > (setq perl-brace-imaginary-offset 0) > (setq perl-label-offset -2)) > > (add-hook 'perl-mode-hook > (lambda () > (if (string-match "postgresql" buffer-file-name) > (pgsql-perl-style)))) Added to src/tools/editors/emacs.samples; applied patch attached. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
Attachment
On Thu, Jul 12, 2012 at 12:35:26AM +0300, Peter Eisentraut wrote: > This might be useful for some people. Here is an emacs configuration > for perl-mode that is compatible with the new perltidy settings. Note > that the default perl-mode settings produce indentation that will be > completely shredded by the new perltidy settings. > > (defun pgsql-perl-style () > "Perl style adjusted for PostgreSQL project" > (interactive) > (setq tab-width 4) > (setq perl-indent-level 4) > (setq perl-continued-statement-offset 4) > (setq perl-continued-brace-offset 4) (Later, commit 56fb890 changed perl-continued-statement-offset to 2.) This indents braces (perltidy aligns the brace with "if", but perl-mode adds perl-continued-statement-offset + perl-continued-brace-offset = 6 columns): if (-s "src/backend/snowball/stopwords/$lang.stop") { $stop = ", StopWords=$lang"; } If I run perltidy on 60d9979, then run perl-mode indent, the diff between the perltidy run and perl-mode indent run is: 129 files changed, 8468 insertions(+), 8468 deletions(-) If I add (perl-continued-brace-offset . -2): 119 files changed, 3515 insertions(+), 3515 deletions(-) If I add (perl-indent-continued-arguments . 4) as well: 86 files changed, 2626 insertions(+), 2626 deletions(-) If I add (perl-indent-parens-as-block . t) as well: 65 files changed, 2373 insertions(+), 2373 deletions(-) That's with GNU Emacs 24.5.1. Versions 24.3.1 and 21.4.1 show similar trends, though 21.4.1 predates perl-indent-continued-arguments and perl-indent-parens-as-block. I'm attaching the patch to make it so, along with a patch that illustrates my testing method. "sh reindent-perl.sh" will test emacs.samples using your Emacs installation. (I don't plan to push the testing patch.)
Attachment
On 1/3/19 12:53 AM, Noah Misch wrote: > On Thu, Jul 12, 2012 at 12:35:26AM +0300, Peter Eisentraut wrote: >> This might be useful for some people. Here is an emacs configuration >> for perl-mode that is compatible with the new perltidy settings. Note >> that the default perl-mode settings produce indentation that will be >> completely shredded by the new perltidy settings. >> >> (defun pgsql-perl-style () >> "Perl style adjusted for PostgreSQL project" >> (interactive) >> (setq tab-width 4) >> (setq perl-indent-level 4) >> (setq perl-continued-statement-offset 4) >> (setq perl-continued-brace-offset 4) > (Later, commit 56fb890 changed perl-continued-statement-offset to 2.) This > indents braces (perltidy aligns the brace with "if", but perl-mode adds > perl-continued-statement-offset + perl-continued-brace-offset = 6 columns): > > if (-s "src/backend/snowball/stopwords/$lang.stop") > { > $stop = ", StopWords=$lang"; > } > > If I run perltidy on 60d9979, then run perl-mode indent, the diff between the > perltidy run and perl-mode indent run is: > 129 files changed, 8468 insertions(+), 8468 deletions(-) > If I add (perl-continued-brace-offset . -2): > 119 files changed, 3515 insertions(+), 3515 deletions(-) > If I add (perl-indent-continued-arguments . 4) as well: > 86 files changed, 2626 insertions(+), 2626 deletions(-) > If I add (perl-indent-parens-as-block . t) as well: > 65 files changed, 2373 insertions(+), 2373 deletions(-) > > That's with GNU Emacs 24.5.1. Versions 24.3.1 and 21.4.1 show similar trends, > though 21.4.1 predates perl-indent-continued-arguments and > perl-indent-parens-as-block. > > I'm attaching the patch to make it so, along with a patch that illustrates my > testing method. "sh reindent-perl.sh" will test emacs.samples using your > Emacs installation. (I don't plan to push the testing patch.) Sounds good. What do the remaining diffs look like? cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On Tue, Jan 08, 2019 at 08:17:43AM -0500, Andrew Dunstan wrote: > On 1/3/19 12:53 AM, Noah Misch wrote: > > If I run perltidy on 60d9979, then run perl-mode indent, the diff between the > > perltidy run and perl-mode indent run is: > > 129 files changed, 8468 insertions(+), 8468 deletions(-) > > If I add (perl-continued-brace-offset . -2): > > 119 files changed, 3515 insertions(+), 3515 deletions(-) > > If I add (perl-indent-continued-arguments . 4) as well: > > 86 files changed, 2626 insertions(+), 2626 deletions(-) > > If I add (perl-indent-parens-as-block . t) as well: > > 65 files changed, 2373 insertions(+), 2373 deletions(-) > Sounds good. What do the remaining diffs look like? I've attached them. Most involve statement continuation in some form. For example, src/backend/utils/mb/Unicode has numerous instances where perl-mode indents hashref-constructor curly braces as though they were code blocks. Other diff lines involve labels. Others are in string literals.
Attachment
On 1/8/19 8:44 PM, Noah Misch wrote: > On Tue, Jan 08, 2019 at 08:17:43AM -0500, Andrew Dunstan wrote: >> On 1/3/19 12:53 AM, Noah Misch wrote: >>> If I run perltidy on 60d9979, then run perl-mode indent, the diff between the >>> perltidy run and perl-mode indent run is: >>> 129 files changed, 8468 insertions(+), 8468 deletions(-) >>> If I add (perl-continued-brace-offset . -2): >>> 119 files changed, 3515 insertions(+), 3515 deletions(-) >>> If I add (perl-indent-continued-arguments . 4) as well: >>> 86 files changed, 2626 insertions(+), 2626 deletions(-) >>> If I add (perl-indent-parens-as-block . t) as well: >>> 65 files changed, 2373 insertions(+), 2373 deletions(-) >> Sounds good. What do the remaining diffs look like? > I've attached them. Most involve statement continuation in some form. For > example, src/backend/utils/mb/Unicode has numerous instances where perl-mode > indents hashref-constructor curly braces as though they were code blocks. > Other diff lines involve labels. Others are in string literals. On a very quick glance I notice some things that looked just wrong, and some that were at best dubious. It's a pity that we can't get closer to what perltidy does, but +1 for applying your changes. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services