Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Perl Best Practices PerlTidy

by water (Deacon)
on Dec 14, 2005 at 02:26 UTC ( #516501=perlquestion: print w/replies, xml ) Need Help??
water has asked for the wisdom of the Perl Monks concerning the following question:

Anyone know where online one can find the perltidyrc from p.35 of Damian's Perl Best Practices book? It does not seem to be in the ORielly code sample tar.gz file. Thanks!

Replies are listed 'Best First'.
Re: Perl Best Practices PerlTidy
by monkfan (Curate) on Dec 14, 2005 at 03:09 UTC
Re: Perl Best Practices PerlTidy
by diotalevi (Canon) on Dec 14, 2005 at 06:58 UTC

    The following code will also cause emacs to auto-perltidy anything you use cperl-mode with.

    (add-to-list 'cperl-mode-hook (lambda () (substitute-key-definition 'save-buffer 'cperl-save-buffer cperl-mode-map global-map))) (defvar cperl-auto-tidy t) (defun cperl-save-buffer (&optional args) "Perltidy and save current buffer in visited file if modified." (interactive) (if (and (buffer-modified-p) cperl-auto-tidy) (perltidy-buffer)) (save-buffer)) (defun perl-buffer () (interactive (shell-command-on-region (point-mi +n) (point-max) "perl" nil nil nil))) (defun cperl-auto-tidy (&optional arg) "Automatically perltidy (or not)" (setq cperl-auto-tidy (if arg t nil))) (defun cperl-toggle-auto-tidy () (interactive) (setq cperl-auto-tidy (not cperl-auto-tidy))) (defun perltidy-buffer () "Runs an entire buffer through perltidy." (interactive) (let ((orig-point (point))) (shell-command-on-region (point-min) (point-max) "perltidy -st -se -q -syn" nil t shell-command-default-error-buff +er) (goto-char (if (<= orig-point (point-max)) orig-point (point-max)))))

      ... and the following will cause vim to autoformat the current buffer with perltidy when you hit F4.
      To be put in your .vimrc

      map <F4> !perltidy -q<CR>

      ++. If perltidy could replace cperl's indentation that would be great. I would assume it could work on small sections of code whenever a block/construct was closed (e.g. insertion of a close brace/paren or semicolon). At my elisp skill level I'm afraid I'd have to resort to something blunt like processing the whole buffer on each character insertion. Now where did I leave my supercomputer? :-)
        I don't generally like things that re-indent when I'm not doing something like saving the buffer (obviously) or hitting tab to request a reindent.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://516501]
Approved by GrandFather
help
Chatterbox?
[Eily]: It can also be used to force a copy, and remove magic from a variable
[Eily]: there was a post some time ago about variable coming from regex taking more space than the same string defined directly IIRC
[Eily]: and if there's XS, make sure the scalar holds a string representation, that sounds like bad practice though (forcing that on the call side)
[choroba]: You should never pass $1 without double quotes to a sub
[choroba]: or "I should never", at least
[choroba]: that's not the sub's business

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (8)
As of 2018-02-22 17:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When it is dark outside I am happiest to see ...














    Results (296 votes). Check out past polls.

    Notices?