Have you considered Xcode?
I know you said you don't like TextMate, but it's one that meet pretty much all your needs.
which is fast
TextMate
Really fast
Xcode
Not that fast but not Eclipse/Netbeans-slow
which does syntax highlighting
TextMate
Very complete and extensible
Xcode
Does syntax highlighting, it depends on your needs
were I can define own syntaxes (or there are many plugins e.g. for YAML),
TextMate
Very, very extensible
Xcode
Syntax extensions are possible
where the developers are active,
TextMate
Some say it's vaporware, yet very few other text editor can compete with its current features
Xcode
Apple development of this program is very active
which does not have the look & feeling of TextWrangler
TextMate
If you don't like the sliding bar, there's a plugin to replace it by a drawer
Xcode
Doesn't have a sliding bar
which can define projects (like Coda can)
TextMate / Xcode
Do projects
which includes a basic support for Git and/or SVN
TextMate
Support for Git/SVN/Mercurial (and probaby more) via built-in and added plugins
Xcode
SVN support for 3.x, added Git in Xcode 4
which supports a fast autocompletion
TextMate
Basic variable/function completion
very complete code completion via bundles
Xcode
Basic variable/function completion
MacOS X 10.6 compatible
TextMate
Some compatibility issue
Xcode
Fully compatible
There are some things worth paying for in life and a solid text editor is, in my opinion, one of them. If it's the tool you use every day, what's a few dollars to ensure that tool is high quality? For me, that editor worth paying for is Sublime Text. I'm still on 2, but 3 is a pretty stable beta and can be had for free for the time being. Both 2 and, when it leaves beta, 3 can be "evaluated" indefinitely if the price and paying for quality software really turns you off.
The upside to Sublime is it has a long and illustrious with a great community behind it. It has an awesome package management system in Package Control that lets you add a ton of features very quickly and easily.
To address your specific feature requests...
vertical gridlines, that help you see how far indented you are
Yes. Add:
"draw_indent_guides": true
to your preferences file.
bracket matching and tag matching when you're inside a tag
The BracketHighligher extension does this and more. There's a snazzy screen shot on its Package Control page that shows off all the ways it can highlight things out of the box.
You can find my Sublime preferences file here which has most of things you desire enabled in it already.
when highlighting a word (which is quick by double clicking on it) all other instances of that same word will be highlighted
Sublime calls this Multiple Selection. Select a word and then press Ctrl+Command+G
or Cmd-D
to select all occurrences of the word in the file. Typing will replace all occurrences simultaneously. You can do a lot more than that with Sublime. See the aforementioned page for other multiple selection ninja moves you can do.
Commenting multiple lines of text by highlighting and hitting [strg]+[k]
Highlight the block and press Command-/
to toggle comments on and off for the block. You can combine this with multiple selection mentioned above to comment out non-contiguous lines.
Un-Commenting multiple lines of text by highlighting and hitting [strg]+[shift]+[k]
It's Command-/
in Sublime to toggle comments which is easier to remember than an 'add comment' and a separate 'remove comment' action if you ask me. If you don't like the short cut you can reassign key bindings freely in Sublime to map the actions to a preferred combination.
Indenting multiple lines of text by highlighting and hitting [strg]+[tab]
That works exactly how you want: select the lines, TAB
to indent, Shift-TAB
to un-indent.
Un-Indenting multiple lines of text by highlighting and hitting [strg]+[shift]+[tab]
It's just Shift-TAB
in Sublime.
the ability to chose how to interpret the file (what language)
You can override Sublime's language guess using the View > Syntax...
menu. Pick the language you want it to be instead of the one Sublime guessed. Sublime's guessing is much better than TextMate's though IMO.
function completion, such as parameter hints, closing html tags automatically, and completing brackets, would also be helpful.
Absolutely -- they're called Snippets in Sublime's parlance. It ships with a bunch of defaults for some common languages like CSS, HTML, Ruby and Python that are useful. You can add your own snippets and you can find more language support and snippets in Package Control.
Best Answer
I actually think the idea of a single, unified, development environment like what you're after is somewhat antithetical to OS X design principles. One of the great things I've found, since switching to OS X for development work about a year ago, is that many OS X application developers share my own personal philosophy when it comes to software: do less, but do it really, really well.
As such, my current development environment on OS X is less unified than it was on Windows or Linux, but far, far more stable, robust, and ultimately: productive.
For coding I use TextMate. It seems almost trivially simple at first and then you discover bundles and it's built-in command line filtering and it takes off. It will handle the highlighting tasks you requested. It has projects, and while they seem kind of loose at first, you'll grow to appreciate it. Trust me. And it does handle code completion, tag closing, tag matching -- the sort of stuff you'd expect -- it's just not obvious, but it's there in Bundles and waiting for you to customize it.
Update: I've moved off TextMate and on to Sublime Text 2. The regular updates and the Python-based extensions were a major draw. It's been a year now and no regrets with that switch.
I use Kaleidoscope for diffs. It's just an a beautiful diff tool.
My git tool is Tower and my Subversion tool is Versions. Both awesome.
For permanent, remote drive access via ssh I use MacFUSE to connect to the remote location and mount it as a drive on my Mac. This is a superior option to built-in ssh or ftp support in the IDE because all the programs on my Mac can now work with files on that share.
I also use CyberDuck for it's awesome cost and excellent Amazon S3 support. I could even get away with just CyberDuck, no MacFUSE, if I had to. But I don't. :)
Update: I've switched to ForkLift 2 as my primary means to interact with remote file systems. It's got a nicer UI than CyberDuck and a few less "quirks" to it. I'll still occasionally open up CyberDuck when I need to deliver a signed URL to an S3 object.
Finally: iTerm 2. A terminal app befitting OS X. It really is quite a fantastic terminal. Bookmarks make it easy to get to my AWS machines quickly. The UI is clean. And tabs.
All of those things replace the clunky IDE (Komodo Pro) I use to use on Linux and Windows (and never really liked, just tolerated). And I don't even know that they're not all "unified" in one cluttered, modal window. No sir.
For reference, I write a lot Python, some HTML, JavaScript, Perl, and Java. And the occasional bit of C and C++.
Update: There's more Go in my day to day coding now. My toolset integrated that relatively young language without so much as a hiccup.