Can anyone recommend a programmers' editor?

I'm looking for a programmers' editor. I know Xcode and I use it for application programming but I'm looking for something that will:

  • Syntax highlight PHP, SQL, Javascript (including jQuery) and CSS not required but would be nice; also Lua, Python, and Perl
  • IntelliSense type stuff, start typing and get all the functions/objects/variables it could be and any parameters. Xcode does this well for C/C++/Objective-C but looking for languages that are listed above.
  • Would be nice if it worked with projects and not just files
  • Integrated with SVN, CVS, or GIT
  • Had upload-to-server functionality built in

I am aware of Coda but am looking for other options before I drop 100 bucks.


Solution 1:

Espresso is nice. Similar to Coda.

Solution 2:

TextMate

Doesn't address all of your needs but I think it's pretty snaz.

Solution 3:

BBEdit by Bare Bones fulfills all of your requirements. Pricey but 100% worth it.

Solution 4:

An editor that gets overlooked a lot is MacVim. It's based on the venerable vim editor, from *nix, and can do everything you asked via plugins.

I show it supports 176-ish different languages, including all the ones you mentioned.

I regularly do lookups of existing methods, variables, random text phrases via a CNTRL_N or CNTRL_P mapping which searches all the open files and pops up a list of the hits.

Vim calls its projects "sessions", which stores all the files, window settings, macros, etc., for later reloading. From vim's "direct" mode, :mksession path/to/sessionfile will create it. Sourcing it later from the command-line is simple: vim -S path/to/sessionfile.

There's a great plugin called VCS, that handles my SVN stuff:

...CVS, SVN, SVK, git, bzr, and hg within VIM, including committing changes and performing diffs...

Upload to server functionality is handled by the netrw plugin.

vim does have a steep learning curve, the vimtutor, which comes with the app, can help jump-start you. Also, there are active users here and on SO's sister sites, plus on the vim IRC node on freenode.net.

Probably the most awesome thing about vim, is its available in an interfaced version on Mac OS as MacVim, on Linux using gvim, on Windows, and from the command-line of any of those OSes. vim on any of them will use the same commands, same plugins, same themes, etc., within the limitations of those environments. I bounce back and forth from Mac to Linux all day long and have at least one vim window open somewhere.

And, lest anyone think I'm not familiar with the Mac-only alternatives, I own all my copies of Coda, BBEdit and TextMate, and use them. I go way back with BBEdit, and actually used to occasionally demo it at MacWorld. It's great, but I use vim with the same settings everywhere, and none of the other editors can do that. So, if you need that cross-platform compatibility, look into it.