software.jessies.org Evergreen salma-hayek SCM Terminator

Evergreen

Evergreen (formerly "Edit") is a cross-platform GPL 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, so I could use it on Unix and Windows. (I'd got used to it at university, using Plan 9.) Eventually, my editor diverged and today probably represents my personality quite closely; in particular, if the computer can do the right thing, it must. I certainly shouldn't have to.

[ ChangeLog | Download | FAQ | Report a Problem ]

Features

Configuration

Restricting Evergreen's Indexing Activity

If Evergreen finds an executable called echo-local-directories-evergreen-should-not-index on your path, it will be run at start-up. The output is interpreted as a regular expression pattern per line describing the names of directories that Evergreen shouldn't scan when indexing your workspace. Evergreen already knows about most version control systems and about the autotools directories, so you shouldn't have to worry about those. Evergreen also assumes that there's nothing interesting in "dot directories" (directories whose names begin with a "."). The ability to add custom directory patterns is useful in a variety of cases. The most common example is when your object files (or your test data, or whatever it is you don't want Evergreen to index/search) live under your workspace root but are segregated into directories with distinctive names. You should make sure Evergreen knows the name of the directories containing such files, for performance.

If you can't help Evergreen out – perhaps because keep your object files in the same directory as your source – Evergreen will ignore each file one by one. This has a similar end result, but it's much less efficient, and it's your time you're wasting.

Evergreen already knows about most common build artifacts (object files and their friends) and recognizes them by their filename extension. If you have an unusual one (and it isn't already hidden in a directory that Evergreen won't scan) you can add the extension to Evergreen's list in the GUI preferences dialog.

Evergreen will also look for echo-local-extensions-evergreen-should-not-index on your path. The output is interpreted as a list of filename endings. Filenames whose endings are in the list are not indexed.

If you think the extension is a common one that Evergreen should automatically ignore, please let us know so that we can add it to the built-in list so everyone benefits.

Both echo-local-directories-evergreen-should-not-index and echo-local-extensions-evergreen-should-not-index are run once for each workspace, when the workspace is scanned or rescanned, with a current directory of the workspace root.

Adding Custom Lint Checkers

If you dislike Evergreen's default choice of lint checker for a given language, or have a lint checker for a language Evergreen doesn't have a default for, you can override or supplement Evergreen's choices. Say you have a C++ static analysis tool you want Evergreen to use. Edit the ~/.e.edit.Edit/edit.properties file and add a line C++.lintChecker=cpplint (including any arguments). The bit before the "." is the name shown in the File Properties dialog. If lint checking for HTML weren't built in, for example, the current behavior could be specified with XML.lintChecker=tidy -qe. Note that we use the file type mode's name ("XML") rather than, say, the specific file extension or specific dialect.

We hope to replace this with a GUI for filetype-specific configuration in the future.

Downloads

Pre-Built Packages

Linux
Linux x86 .deb for Debian/Ubuntu
Linux x64 .deb
Linux x86 .rpm for Fedora/SUSE
Linux x64 .rpm
Mac OS
Mac OS 10.4 universal .dmg
Solaris
Solaris SPARC .pkg
Solaris x86 .pkg
Windows
Windows XP/Vista/2000/2003 x86 .msi *
* Requires Cygwin and Cygwin Ruby. Setting up Cygwin. Common Cygwin problems.

Building from Source

If no pre-built package is available for your platform, or you just like building from source, anonymous read-only Subversion access is available. Copy and paste these commands to get everything you need:

mkdir ~/jessies && cd ~/jessies
svn checkout http://software.jessies.org/svn/evergreen/trunk/ evergreen
svn checkout http://software.jessies.org/svn/salma-hayek/trunk/ salma-hayek
make -C salma-hayek && make -C evergreen

You may want to add something like this to your crontab to keep up to date automatically (assuming your computer's on at 23:00):

00 23 * * * echo ~/jessies/salma-hayek/bin/nightly-build.rb | bash -l

There's also evergreen.tar.gz but Subversion makes it easier for you to keep up to date, and makes it easier to submit patches. (Note that you need the salma-hayek .tar.gz to build any of our other .tar.gz distributions.)

The hints for building are the same for all our projects.