Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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


Comment on Re: Perl Best Practices PerlTidy
Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://516539]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (14)
As of 2015-07-28 07:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (252 votes), past polls