Darmstadt.pm
30 minutes
Intermediate
English
( for the recording on youtube please click on the [ Talk ] link further down, for feedback on Perlmonks please click [ Abstract ], there you'll also find all links and discussions / Please! Don't send me emails use Perlmonks to share the discussion! : )
Emacs offers even more ways to do it than Perl's TIMTOWTDI .
This demonstration will show how to combine some .el packages to
create a neatly integrated and productive Perl development
environment. (well from the authors perspective)
Intended audience are Emacs users trying to navigate thru all these
possibilities.
After a short introduction into emacs (v24) for non-users we'll
concentrate on builtin Perl support and how to add some other language
agnostic projects to approach the author's IDE of what an IDE should
look like.
* === For starters: Overwiew of Emacs goodies and myth-busting
- open source
- available on all development platforms
- runs in windows and TTY
- start-up time and memory consumption comparable to VIM ( != VI) just
try "emacs -nw -Q"
- package management for a huge universe of extensions
- CUA shortcut emulations for "modern" applications C-x C-v C-z C-a
...
- VIM shortcut emulation evil-mode (includes text objects)
- regional undo Undo only in selected text.
* === Out-of-The-Box support
What comes already builtin for Perl?
** cperl-mode
The Standard mode for Perl features, including
- imenu easy navigation for subs
- auto indentation
- code transformation prettifying regex convert postfix <-> prefix
"if" , "unless", etc
- compile options
- formatting options akin to perltidy
- documentation display
** perldb
Perl debugger integration, stepping through original file
** flymake-mode
Interactive syntax check while typing by running "perl -c" in
background
** dabbrev-mode
avoid typos of identifiers by expanding from dynamic abbreviation
dictionary
* === Recommended Extension Packages
** Yasnippet
Yasnippet (Yet Another Snippet Package) emulates the Textmate snippet
features, which seem to become a standard now across all IDEs
** Auto Complete
auto-complete.el shows completion alternatives in drop-down while
typing from different sources (functions, variables, snippets,...)
** (Omni Complete)
probably covered, this is a very promising project but yet not
personally tested
** ECB = Emacs Code Browser
The IDE "look an feel" with many specialized information panes to
explore
link: http://ecb.sourceforge.net/
** Regex-tool
A tiny project to interactively test Perl-regexes against text an
see the resulting matches.
Demonstrates the extensibility of emacs.
* === Visions
** PIDE I - "Perl Integrated Development for Emacs"
combining a stable set-up of Perl related el-modules and configs for
a quick start with Emacs.
** PIDE II - "Perl Integrated Development for Every editor"
Is an editor agnostic framework possible?
Snippets and Completion-rules could be provided in POD "=for IDE" to
support different projects like Moose or Mojolicious or whatever. A
simple script could parse them on editor start-up and translate them
to editor specific syntax.