Evergreen 6.172.3201

A cross-platform development environment that tries to be lightweight and language-agnostic yet functional
Evergreen started as a project to reimplement Rob Pike's Acme editor in Java, for use on Unix and Windows instead of Plan 9. In the decade since then, the application has evolved and deals with large codebases, and multiple projects/branches at once.

Remaining similarities include the tiled windows and the Unix-like reliance on external programs rather than reinventing every wheel. The major philosophical differences include strong support for keyboard-based editing, language-specific functionality, and native platform UI conventions.

There are also two new guiding principles: accept regular expressions, output diffs.

Main features:

  • Ubiquitous Regular Expressions :
  • Programmers know regular expressions, and yet their graphical tools don't use make much use of them. Evergreen does. Anywhere it's asking you to type something, it's probably expecting a regular expression: full Perl/Java regular expressions in find, in find/replace, in find in files (as you'd expect), but also in the open dialog.
  • Open Files Quicker:
  • Evergreen indexes your project, so you don't have to remember where files are. Or what case your co-worker used ("Hyperlink" or "HyperLink"?). Just type a substring or regular expression that matches what you want [full details]. Evergreen updates a list of the matching files as you type (like iTunes)
  • Find in Files:
  • You can also search for files to open based on their content [full details]. Evergreen shows a tree of matches, representing the directory hierarchy. Files containing definitions are marked as such. Searching is done in parallel to take advantage of modern multi-core machines. Search results are automatically updated if anything changes.
  • Find:
  • You have a fast computer, yet the 'find' function in other editors doesn't take full advantage of that fact. Evergreen, like less(1), highlights all the matches, whether you search with C-F or clicked on a match in the "Find in Files" dialog. Better still, Evergreen highlights all the matches as you type, so you know when you've typed enough (or too much, if you suddenly see there are no matches). Evergreen also lets you move backwards as easily as forwards through the matches: just use C-D to move backwards and C-G to move forwards, both conveniently placed around C-F, which defaults to searching for the currently-selected word. All of this comes together for fluid one-handed searching. Finally, Evergreen uses marks next to the scroll bar to give you contextual information about how many matches there are, and how they're clustered.
  • Spelling Checking for Source Code:
  • Not only does Evergreen check your spelling as you type, it understands CamelCase words aren't single-word spelling mistakes but compounds of correctly spelled words
  • Exuberant Ctags Support:
  • Evergreen uses Exuberant Ctags (if installed) to understand the structure of your file [full details]. The symbols in the current file are shown as a tree preserving their hierarchy. You can click on an item in the tree to go to the corresponding part of the file. Conversely, as you edit, the item in the tree corresponding to the current caret position is always highlighted.
  • Bug Database Links
  • Find/Replace:
  • Find/replace functionality in other editors has a habit of being awkward in use. How much better to be able to see all the changes at once, with the results of the substitutions? Hovering over a match shows the captured groups in a tool tip, so you can check your capturing is as you intended.
  • Workspaces - You can work on multiple projects at once, with each "workspace" getting its own tab in the overall UI
  • Auto-Indent:
  • Evergreen will automatically help you format your code in K&R, Linux kernel, or Sun's Java style. If you want to manually break long lines or use an indenting style too far removed from these, you're likely to face difficulties as it continues to try to "correct" your style. Ken Arnold's thoughts on coding style explain why this is usually a counter-productive degree of freedom. What you gain from accepting Evergreen's style (which shouldn't be a problem for most programmers) is that Evergreen will do most of the formatting for you. Even correcting stuff you paste in.
  • Watermarks:
  • Each document has a watermark, used to show you if you're looking at a read-only file, or a file that has been updated on disk since it was last read in.
  • Building:
  • Evergreen defers to make(1) or ant(1) to actually build your project, and will search upward from the directory containing the focused file looking for a makefile
  • Patches:
  • If you choose a potentially destructive action such as "Revert to Saved", you're shown a colored patch and given a chance to change your mind. (Not only that, it's a useful way to see how a machine-generated file is changing as you work on the generator. Just keep running the script and reverting to the latest version of the generated file.)
  • "Compare Selection and Clipboard...":
  • Shows you a patch comparing the currently-selected text and the text on the clipboard. This is useful when you're looking at two seemingly duplicate chunks of code and want to know what, if any, differences there are between the two.
  • Language awareness:
  • Coloring and intelligent indentation of C++, Java, Perl, Ruby, and others.
  • Custom text component:
  • We gave up on JTextPane because of its poor performance, and we gave up on JTextArea because of its poor functionality. Unlike many other editors with their own text components, ours was explicitly designed to be useful elsewhere. It's interface is broadly similar to JTextArea so it's easy to use in your own programs if you get used to any of the great functionality.

last updated on:
February 12th, 2010, 18:16 GMT
file size:
2.7 MB
license type:
developed by:
Elliott Hughes
operating system(s):
Windows All
C: \ Programming \ Other Programming Files
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!

Add your review!