Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Perl Best Practices PerlTidy

by diotalevi (Canon)
on Dec 14, 2005 at 06:58 UTC ( #516539=note: print w/replies, xml ) Need Help??

in reply to Perl Best Practices PerlTidy

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)))))

Replies are listed 'Best First'.
Re^2: Perl Best Practices PerlTidy
by cosimo (Hermit) on Dec 14, 2005 at 21:25 UTC

    ... 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>

Re^2: Perl Best Practices PerlTidy
by bluto (Curate) on Dec 14, 2005 at 16:35 UTC
    ++. 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.
        I like the automated indentation happen as soon as reasonable (e.g. after a return) on a small scope, so I can visually verify it's exactly what I want. I can get perltidy to do 98% of what I want, but there are rare times when I want a specific hand coded indentation, and I don't want it to change silently afterward. I'm probably just too picky or don't know enough about perltidy to rely on it 100% yet.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://516539]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2017-04-25 19:50 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (463 votes). Check out past polls.