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

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://516501]
Approved by GrandFather
[Corion]: I'd really like to create a dynamic frontend for my Google Keep clone, but so far, all the templating solutions seem to bring their own template language or require me to hand-code everything in (their own flavour of) Javascript. I'd like something ...
[Corion]: ... that can use templates from the HTML (via <script language="text/ template">... my template ...</script> and otherwise gets out of my way. But it seems that is not how the Javascript world is, currently :-/
[Corion]: I guess my question is, has anybody worked with React, Ember, Angular (v2, v4, v.whatever) or any other JS client-side dynamic rendering/virtual DOM thingie and found a simple, single-file solution like jQuery?

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (10)
As of 2017-03-27 19:05 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (321 votes). Check out past polls.