Thread: emacs configuration for new perltidy settings

emacs configuration for new perltidy settings

From
Peter Eisentraut
Date:
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))))
 




Re: emacs configuration for new perltidy settings

From
Dimitri Fontaine
Date:
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



Re: emacs configuration for new perltidy settings

From
Michael Paquier
Date:
On Thu, Jul 12, 2012 at 6:35 AM, Peter Eisentraut <peter_e@gmx.net> 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))))
Cool thanks!
Very helpful.
--
Michael Paquier
http://michael.otacoo.com

Re: emacs configuration for new perltidy settings

From
Bruce Momjian
Date:
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

Re: emacs configuration for new perltidy settings

From
Noah Misch
Date:
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

Re: emacs configuration for new perltidy settings

From
Andrew Dunstan
Date:
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



Re: emacs configuration for new perltidy settings

From
Noah Misch
Date:
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

Re: emacs configuration for new perltidy settings

From
Andrew Dunstan
Date:
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