Emacs as Perl IDE

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. 

[ Abstract - Talk ]