Quick Overview

Eddie tries to balance a combination of ease of use and feature completeness of a mainstream editors, great performance and speed, with a host of super-powerful features under the hood. Here is a quick overview of some of these. If you hate reading manuals, at least glance over this part to get an idea of what to expect and make sure you are not overlooking some of the more subtle features that may be perfect for your power-user workflow.

Language support: Syntax Coloring, Function popup, Symbol completion&lookup and Magic Prototyper

Configurable syntax coloring is available for a C, C++11/14, Obj-C, Swift, HTML, Java, JavaScript, LaTeX, Visual Basic, makefiles, PHP, Python, Perl, Ruby, shell scripts, Ragel, Antlr and others. The syntax coloring parser understands language syntax with near-compiler accuracy yet is super fast, even with huge source files.

Eddie also supports a function popup for C/C++/Obj-C, Swift, Perl, Lua, Python, HTML, LaTeX, Ruby, Ragel, Antlr and JavaScript.

Symbol lookup offers symbol auto-completion and lookup. Eddie comes bundled with an advanced code indexer for C, C++, Objective C and Python. The indexer can be configured to automatically re-index both the system header files and your project files.

Make sure to check out Magic prototyper another coding tool that greatly speeds up C/C++ and Obj-C development by helping auto-generate class/function boilerplate with a single click.

The Worksheet Window - a better Terminal Shell

Worksheet is an enhanced version of a Terminal window. Its integration with the rest of the application makes it a perfect environment for compiling, running commands and other tasks you would use a Terminal for. Worksheet is a modern version of a much loved feature of MPW, a traditional Mac development environment.

To execute a command from the worksheet, you either type the command or move the cursor to a line with an existing command and hit return. You may for instance type ls -la. As with Terminal, the contents of the current directory will be printed. Unlike Terminal, the commands in a Worksheet can be easily edited, reused and stored for later use. Worksheet is the default Shell window but you may open as many other additional Shell windows as you like. Each has an actual bash shell running. You can use make, cd, ls, grep, xcodebuild, etc. You may set shell variables, aliases and other shell state from within a Worksheet. Pathname and shell variable completion you would normally rely on in a Terminal is indeed fully supported in the worksheet. You may hit the Tab key to complete a pathname of a file, hit it again to get a list of possible suggestions if there is more than one possible completion.

By default the contents of a Worksheet is automatically saved when Eddie quits (this can be configured in Eddie Preferences). The Worksheet window is instantly accessible—you may reopen the Worksheet or bring it to the front by pressing Command-0.

If you are not a big command line user or otherwise don't care for the Worksheet, you can configure Eddie to not show by default it in the "Shell" pane of the Preferences, you may instead choose to open it occasionally by pressing Command-0 or not use it at all.

Smart Open Selection

Smart Open Selection (Command-D) is a subtle yet very handy and powerful feature. It knows how to parse a file path around your current selection and open the file path. If the specified path is not absolute, it will find the file using an elaborate lookup heuristic. It knows how to parse out line numbers next to the file names in grep/complier output and select these lines when the corresponding document is opened. Together with Tab-completion Smart Open Selection makes for a super-quick alternate way to open files.

Open Quickly

Open Quickly is an equally powerful and quick way to open all source and header files of interest. It supports approximate matching allowing for typos.

Rich Customizable Keyboard Shortcuts

Eddie has an extensive array of built-in keyboard shortcuts, both standard and more exotic. You may for instance find Smart Swap (Command-Option-LeftArrow, Command-Option-RightArrow), or Drag Line Up/Down useful. Each keyboard shortcut is fully customizable using the SetKey command. Eddie defines many more editing commands than are actually assigned to shortcuts. Some of the heavily used commands (like scrolling for instance) are available in a several different variants to suit some very individualistic preferences of how some commands behave.

Eddie Buttons

Eddie comes pre-configured with several toolbar buttons. The three clipboard buttons support copy & paste in three independent clipboards. You may press any of the clipboard buttons to examine the contents of the clipboard.

Pressing on the Function popup button will bring up a popup menu of all the C, C++, Obj-C, JavaScript, Lua and Perl functions defined in a text document.

The Magic prototyper button allows you to generate prototypes from a C++ or Obj-C class and paste them into text with just two clicks. It knows about details like pure virtuals, functions inlined inside the class definition (in both cases a prototype is not generated unless you hold down the Option key), templates, it will remove default function parameters, etc. In short, it will save you from ton of the usual boilerplate editing when for instance implementing class member functions.

The extended Clipboards are useful for heavy-duty copy-paste jobs. Each of the three independent clipboards can do the usual Cut/Copy/Paste. In addition each supports a clipboard history stack, allowing repeat pasting of older clippings. Specialized clipboard commands such as Swap-Paste (the text replaced by the paste is placed back onto the clipboard), as well as Paste from history offer flexibility for the most complex copy-paste jobs. The clipboard history stack can be accessed from a detachable popover as well as from a quick menu.

Note that in the example the first clipboard is being used in stack mode — it contains two entries that may be pasted one after the other.

The Commenter button lets you comment or uncomment a selection with a single keystroke (Command-/), using the commenting style appropriate for the document type. It also supports commenting of the current selection. For document types that may host several different languages, such as .html which may contain snippets of css, php and JavaScript Commenter is context-sensitive, picking the correct comment style based on the current selection.

Tabs and panes

Eddie offers a first-class tabbed window browsing experience. Tabs can be rearranged, torn out and added to other windows. Default tabbing behavior can be toggled in preferences. Each of the many commands that open windows by default follows the preference or can be overridden with a modifier.

More on tabs here.

Each document window can be split into two or more editing panes.

More on split panes here.

Open From Server

Eddie offers a well integrated SSH Open/Save panel that makes editing your source code on a remote server feel like you are working on local files.

The SSH Open panel remembers the recent servers you have accessed, uses Bonjour to find nearby servers and optionally stores your passwords in the Keychain.

Customizing

Aside from the application Preferences, you can configure keyboard shortcuts and a number of other settings by editing the UserStartup file. The default UserStartup comes with keyboard shortcuts pre-configured to match a keyboard map similar to other editors such as BBEdit. An Emacs-like keymap is also supplied and can be enabled in the UserStartup.

Eddie can be further customized through its rich plugin interface. Many of its features (Magic Prototyper, Syntax Coloring, Function Popup, etc.) are implemented as plugins.

The tellEddie tool

tellEddie is a command line tool that allows quick opening of files in Eddie from a Terminal or a Worksheet window, provides hooks for integration with source control environments such as Subversion, CVS, git or Perforce, offers piping of shell tool output into an Eddie window, adds a super-convenient way to generate a .c/.h file pair and a host of other tricks.

Dynamic Menus

Eddie takes advantage of dynamic menus to hide some of the more exotic menu commands. Take time to explore these — to view alternate menu commands, pull down each menu and press Option, Shift and/or Control in various combinations — you will see the different alternate menu commands.

Find window

Eddie implements a very rich Find/Replace interface that includes a powerful Regex engine (supporting the Perl regex syntax). The Find and Replace fields are syntax-colored making entering of complex regex search/replace terms easy.

More on the powerful search features including the including multi-find/replace mode check here.



MPW is a registered trademark of Apple Computer, Inc. BBEdit is a registered trademark of Bare Bones Software, Inc.