# TextEditing

## Suggestions.TextEditing History

May 22, 2012, at 01:40 UTC by Chris Hiestand - Added Filter Through Command in TM2 Section

## Filter Through Command in TM2

Please add "Filter Through Command..." back to TM2. It was a very useful feature.

--Chris Hiestand

July 15, 2011, at 14:39 UTC by Sean Vikoren - Added single line edit feature request

## Arbitrary line length editing

Edit/Cut/Paste for a long single line JSON response (50,000+ characters) is very sluggish currently. Changing the way that lines are handled to make this faster would rock. I suspect that this would be a non-trivial change.

-- Sean Vikoren 15 July 2011

May 04, 2011, at 19:56 UTC by Matt -
Changed lines 95-96 from:
to:

Changed lines 101-102 from:
to:

May 04, 2011, at 19:55 UTC by Matt -
Changed line 3 from:

This is a rather obscure feature from a very old editor: nedit. http://www.nedit.org/help/mouse.php : read the middle mouse button section. What I'd like is the middle mouse button click and drag copy and pastes what you've highlighted to where the insertion point is. It does this as soon as you release the mouse button, so it's extremely fast.

to:

This is a rather obscure feature from a very old editor: nedit. http://www.nedit.org/help/mouse.php : read the middle mouse button section. What I'd like is the middle mouse button click and drag feature: it copy and pastes what you've highlighted to where the insertion point is. It does this as soon as you release the mouse button, so it's extremely fast.

May 04, 2011, at 19:54 UTC by Matt -

## Middle mouse button drag to copy/paste

This is a rather obscure feature from a very old editor: nedit. http://www.nedit.org/help/mouse.php : read the middle mouse button section. What I'd like is the middle mouse button click and drag copy and pastes what you've highlighted to where the insertion point is. It does this as soon as you release the mouse button, so it's extremely fast.

-- Matt 4 May 2011

Changed line 87 from:

Uncomment debug output

to:

## Uncomment debug output

Changed lines 96-97 from:

Show invisible characters through selection

to:

## Show invisible characters through selection

Changed lines 101-102 from:

Intellisense/AutoCompletion

to:

## Intellisense/AutoCompletion

Changed lines 113-114 from:

Multiple words selection

to:

## Multiple words selection

Changed lines 132-133 from:

Smart Soft/Hard tab guessing'

to:

## Smart Soft/Hard tab guessing

Changed lines 140-146 from:

Full Screen Editing

I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group st

to:

## Highlight a line via the shell

Changed lines 147-148 from:

Better handling of large text files'

to:

## Better handling of large text files

Changed lines 155-156 from:

to:

## Comment toggling

Changed lines 165-166 from:

to:

## Multiselect and better column selection as in E

Changed lines 179-181 from:

--zeno

to:

--zeno

December 22, 2010, at 17:09 UTC by Glenn -
Deleted line 17:
Changed line 24 from:

Shaun: the shortcut is a single press of the 'Alt' key.

to:

Shaun: the shortcut is to make a conventional selection, and then perform a single press-and-release of the 'Alt' key.

December 22, 2010, at 17:07 UTC by Glenn -
Changed lines 1-6 from:

## Column mode keyboard shortcut

I'd really like a way to use column mode interchangeably without having to use the mouse. Maybe I'm missing something but I can't see how to do it.

-- Shaun 22 Dec 2010

to:

## Column mode - don't lose focus after deletion

If I select a column of text and delete it, the selection is lost.

Ideally, a zero-width selection should remain - so I can instantly begin typing in the column I just deleted.

-- Glenn 22 Dec 2010

## Column mode - backspace

Enable the backspace key in column mode.

-- Glenn 22 Dec 2010

## Column mode keyboard shortcut

I'd really like a way to use column mode interchangeably without having to use the mouse. Maybe I'm missing something but I can't see how to do it.

-- Shaun 22 Dec 2010

Shaun: the shortcut is a single press of the 'Alt' key.

-- Glenn 22 Dec 2010

December 22, 2010, at 10:17 UTC by Shaun - Corrected my date error
Changed line 5 from:

-- Shaun 22 Nov 2010

to:

-- Shaun 22 Dec 2010

December 22, 2010, at 10:16 UTC by Shaun - Added a sugestion

## Column mode keyboard shortcut

I'd really like a way to use column mode interchangeably without having to use the mouse. Maybe I'm missing something but I can't see how to do it.

-- Shaun 22 Nov 2010

November 21, 2010, at 00:59 UTC by jibberia - added "Restore cursor position when folding and immediately unfolding"

## Restore cursor position when folding and immediately unfolding

If I don't move the cursor after folding a block, it would be nice if my previous cursor position was restored after unfolding the block. I'd use this all the time, especially when perusing a bunch of new code; "F1 F1" would quickly give me an idea of where I am (am I still in that giant "if" block?) without losing my spot.

-- jibberia 20 Nov 2010

September 27, 2010, at 22:48 UTC by zenojevski -
Changed lines 119-136 from:

to:

### Multiselect and better column selection as in E

Column selection is a feature already present in textmate, but would be much less cumbersome if column editing was directly possible without switching from stream selection, like in E text editor, where you just press alt and drag with the keys.

What E has that is missing in textmate (and it's a big one, in my opinion) is the multiple non-contiguos editing, where you could just select various pieces of text, even randomly, with ctrl, and start typing and behaving like column mode. I think espresso has this feature (very flaky, however)

Or, how it is explained in the E wiki: "If you have made multiple selections (or column selections) and start editing, the editor will go into multi-editing mode. In this mode all changes you make are reflected in all selections. You can both insert and delete text and move around in the selected area. When you move the caret outside the selected areas, the editor reverts to normal mode."

All in all, E has a wonderful, fine-tuned editing implementation, which extends the ideas that textmate put long ago, and I think it should be taken as an example.

By the way, shifting text with tab/shift+tab instead of option+tab/option+shift+tab would be better (who wants to replace a selection with a tab character, anyway?), and there are a lot of minor tunings regarding selection/typing behavior.

And what about a horizontal scroll bar in the project pane?

--zeno

September 01, 2010, at 21:11 UTC by Ethan -
Changed lines 1-2 from:

to:

## Support for indenting with tabs, aligning with spaces

Here's a related idea titled "Elastic Tab Stops", I'd love to see this available in TextMate: http://nickgravgaard.com/elastictabstops/
--Ethan

August 21, 2010, at 09:57 UTC by Nadav - Added the comment toggling suggestion
Changed lines 106-115 from:

-- Greg Combs

to:

-- Greg Combs

### Comment toggling

Sometimes you want to divide certain file into chunks of code, especially on JavaScript when you can't have too many javascript files because it will make the browser use too many requests.

It would be nice to have a way to insert these toggles manually using something like comments.

July 19, 2010, at 15:43 UTC by Greg Combs - Better handling of large text files
Changed lines 99-106 from:

-- Another Martin

to:

-- Another Martin

Better handling of large text files'

Sadly TextMate seems to really bog down on text files that are only a few megs in size. I frequently need to search/replace/regex files of 5-10MB, and whenever I attempt it, TextMate heads to the beach with sunscreen and a nice big ball of waiting. (This is with 4GB of ram, multicore processor, yadda yadda)

-- Greg Combs

July 05, 2010, at 19:26 UTC by pdx05858pdxedu - Can Textmate alphabetize word lists?
May 15, 2010, at 21:15 UTC by Cory - Seconded the "show invisibles in selected text" suggestion

Seconded! They're distracting when shown all the time, but it's so handy to see them quickly in just a small area!

-- Cory

March 09, 2010, at 20:14 UTC by Martin Pallmann - Highlight a line via the shell
Changed lines 88-95 from:

I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group st

to:

I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group st

### Highlight a line via the shell

It would be nice to be able to highlight a line in a file via a shell command. It would be possible to connect the output (warnings and errors) of a compiler wih a file edited in TM.

-- Another Martin

December 07, 2009, at 18:30 UTC by ronny -
Changed lines 49-50 from:

I would absolutely LOVE to see true intellisense/autocompletion (without having to use Esc or Alt+Esc) in TextMate. This would be a feature you would need an on/off switch for because not everyone would want it. Could you let us know if this is something that is coming in TM2?

to:

I would absolutely LOVE to see true intellisense/autocompletion (without having to use Esc or Alt+Esc) in TextMate. This would be a feature you would need an on/off switch for because not everyone would want it. Could you let us know if this is something that is coming in online hold em or TM2?

Changed lines 88-1437 from:

I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group stuff.

--Marcus

I second it. The "Edit in Writeroom" input manager actually implements this functionality and can be used from the Bundle Editor, but this menu option is greyed out when in textedit window. This provides a useful getaway for those times when you just want to focus on putting your thoughts in text.

--Girish

Go to symbol (all files)...

It would be great to have the "Go to Symbol..."-command over all files in a project, too.

-- nils

Code Focus

I would like to be able to have all text not in the current method I am editing to appear in a dimmer colour scheme. I feel that would allow a user for focus more on the task at hand rather than unrelated code. This may be very useful for Rails developers who have many short methods in their source code.

--Marc Argent

Unlooseable Undo

You know how if you type some text, undo a whole bunch and then type some more, you loose the bunch of text that you just undid. It would be nice if there was a mechanism where you could do recover it. Somewhat like emacs.

Actually the e-texteditor (win) behaves very nice regarding to undos as it builds kind of a 'undo-tree' - writing something after one or more undos opens a new branch, so you can jump 'back to the future' although you did some changes. I'd totally love to see something similar in textmate...

Repeat Macros

I'd like to see the ability to replay a macro multiple times, either by bringing up an optional dialog when replaying macros, or having a key binding to specify the number of repetions (like Emacs' C-U). I just wrote a macro to clean up a data file and had to Cmd-Shift-R 470 times!

-- Penny

Seconded. You can just hold down the key command, but that often wreaks havoc when you get to the end of the file. I often find that recording a macro is faster than thinking about a regular expression, but they're hard to use on big documents.

-- jibberia

Option to disable em-space

The worst typo I make is press option-space occasionally, which creeps up as hard to find “Illegal character” compile errors. This is probably a job for a macro, but my macro-fu wasn't up to it.

-- Mikko Lehtonen

Free Ctrl-H for editing

Ctrl-H is used for "Help" (or similar) in a dozen or so bundles. This makes it very hard to use it for what it is traditionally used for: Backspace. By default Ctrl-H works as Backspace in Cocoa and even in Carbon applications. Especially on notebooks with no dedicated Backspace key this is very useful.

I've finally managed to replace ^H with F1 in all bundles but this was quite a bit of work. Would be nice if TextMate would leave it alone by default.

-- joh

Comment hiding/folding

I'd like to see a way to hide or fold comments in source code.

-- Alistair Holt

"use vim within textmate"

as many suggestion suggested, it would be great if we could use vim in textmate, maybe just add one control button that we can switch to a vim mode in textmate; - actually just use a terminal within textmate? ... vim is great to edit pages of several screen long to me, but seems that I really like many other feasures of textmate provide in addition.

-- isaac pei

Reverse Transpose It would be nice to have a command in Text→Convert that does the opposite of what "Transpose" does. It can be done for two single characters with a macro, but I think it would be somewhat more difficult with selections across lines and so on...

-- Jonas Due Vesterheden

This request is confusing - what are you trying to achieve? Something like emacs M-t, which transposes words instead of letters?

Improve "Go to Line..." Make it possible to type something like 20,15 in the "Go to Line..." dialog in order to go to line 20, column 15. That would be very useful when debugging lexers/parsers on sample files.

-- Jonas Due Vesterheden

Highlight Matching Variables/tokens/etc One feature I didn't notice I rely on so much in Eclipse is its context-sensitive highlighting. If the cursor is in a variable or function/class/etc name, it will highlight all instances of that thing in the current document.

Also, in this vein, a command to "go to the first mention of this string" would be nice too - but that could be done fairly easily in the bundle editor, methinks.

While I would LOVE this feature, it's *really* hard for a general-purpose text editor to get right, given complex scoping rules and whatnot.

-- jibberia

Proportional Tabs I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key.

TextMate already has great support for hard and soft tabs, and I think that supporting this kind of tab in TextMate would be a killer feature, and simplify many lives greatly. (The link above even includes simple Java code to implement the tab algorithm.)

Anyone else interested in this? -Devin Chalmers

I am! The demo Java app is very cool. -Daniel Lyons

(:title Column Manipulation:)

I was a devoted user of Vantage/MacSink right up to the moment OSX stopped supporting OS9 backward-compatibility on my MacBook. One of the many features which made it indispensible to me was its ability to manipulate columns in textual data. That is, if one had text in the format

  characters <tab> characters <tab> characters <cr>
characters <tab> characters <tab> characters <cr>


one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel (which can only handle 65536 lines, anyway)!

Thanks,

-Bill Woodcock

(:title Text Editing:)

I take sometime some parts of code of a project to put in a new one, as I don't have a very big screen I have to passe many times from one project to an other and the risk is high to make unintended modifications in the wrong file. It would be a great improvement if I could open a whole project or singles files as read-only, with a different background color.

Denis

"Edit each Line" should function properly. Ticketsystem won´t take my bug so i post it here:

Here´s the file i wanted to edit (Just copypaste it in new textmate document and you´ll see). I wanted to remove all the "<?=$fb_prefix?>" parts. For that i think the Edit each Line- Feature would be suitable. What did i do? Selected all the lines containing the snippet i wanted to remove, activated "Edit each Line", then put mousecoursor to the right point in the first line and then i started pressing the "backwards-delete" key. What was expected? Removal of all the occurences of "<?=$fb_prefix?>" in all selected Lines.

What happened instead? In every line something was deleted - b u t - not the snippet (even though it had the same position in each line) (i put a result of it in the end of this message).

Original File:

	<ul id="navlist">
<li><a href="<?=$fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li> <li><a href="<?=$fb_prefix?>partnerprogramme.php" id="partnernav">Partnerprogramme</a></li>
<li><a href="<?=$fb_prefix?>produktportfolio.php" id="prodportnav">Produkt Portfolio</a></li> <li><a href="<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li>
<li><a href="<?=$fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li> <li><a href="<?=$fb_prefix?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li>
<li><a href="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li> <li><a href="login.html" onclick="popUp(this.href); return false;" id="loginnav"><b>Login</b></a></li> </ul>  Result of described action above (pressing forw del several times):  <ul id="navlist"> <li><a href="fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li> <li><a href="<?=$fb_prefiartnerprogramme.php" id="partnernav">Partnerprogramme</a></li>
<li><a href="<?=$fb_prefix?duktportfolio.php" id="prodportnav">Produkt Portfolio</a></li> <li><a h"<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li>
<li><a href="fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li>
<li><a href="<?=$fb_pr?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li> <li><ef="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li>
</ul>


Extra Space at the Bottom Textmate REALLY needs to add some extra space to the bottom of a document or at least add a preference for it. I'm sick of my neck hurting as I reach the bottom of the available screen space. And fix the damn line numbers.

Comment folding especially for DOCComments. I have classes with lenghty documentation for doxygen.

Filenames for Autocompletion

It would be very nice to have all the filenames which are currently associated with the project (all the files in the project-drawer) available for autocompletion via ESC.

=#ExtremeCandy#= would be if being inside an include("") would trigger not only the insertion of the filename but also the path to that file relative to the current one.

(The latter would be incredibly useful since - having multiple folders from possibly totally different "levels" added to the project - the project drawer does not give any insight to questions like "how many times to i need to walk upwards to get to this file?hrmm..". Right now i have to switch to finder to complete tasks like that) (^-^)

Arnski

I figured out how to solve my problem (through the bundle editor), so you can now ignore my suggestion. ~David Dennis

• For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. ~Phillip
• Regex Syntax Highlighting in Find/Replace (while searching with regex) --David

• Nested Tab Triggers When hitting tab to go between tabstops in a snippet, you aren't able to use another tab triggered-snippet at the current stop. This would be useful for example, in LaTeX if you want to add an equation containing the ratio of integrals, and you have a \frac snippet and a \int snippet, both using tab triggers. Not sure of an obvious mechanism for enabling this, maybe something like ctrl-tab? Has someone mentioned this already? -- Jim Bagrow
• I really need this, too. Maybe giving tab triggered new snippets higher preference over the nth jump in another snippet that is already inserted? -- Daniel
• Overloaded snippets / multi-snippets. I often find myself generating a dozen or more snippets, all with the same tab trigger, so I can get a popup menu to select from. Allan suggested doing just this to get a menu of greek letters in LaTeX. It's really cumbersome to create a lot of these snippets all at once. Would it be useful to come up with some syntax for defining all the separate snippets in one dialog? I imagine some kind of switch statement or other way to list menu_name => snippet_text, all having the same activation and scope. Something to generate that menu all at once would be handy! What do you guys think? -- Jim Bagrow
• Please bring back the replace in selection option in find and replace, this is something I used often. -- David
• When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow
• Thats exactly what I was looking for. Although IMHO the checkbox option was a better solution, because it let you perform all of the actions to selected text. --David

• Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg

• Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F

• Gutter shouldn't move when scrolling right/left (bug?)
• Bindinds for commenting selection.
• On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr

This exists now in the "Source" bundle: ⌘/ will toggle comments for the selected text. -- Brad Choate
• The ability to use scopes for filtering the target of a find/replace. The use case here is for search/replace in an HTML document where you don't want to affect any tags or attribute elements within those tags. -- Brad Choate
• Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. -- UltraBob
• This is really needed. Especially for large projects where you have thousands of files to manage. Even if you can't specify the file extension, if you could target the search at a particular sub-directory of the project it would make it more manageable. -- Mike C.
• The ability to undo while the find/replace dialogue is foregrounded would be a great help for when you aren't sure of your regex.
• Two jEdit functions that make life easier :)
• Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g:

if (true) {
do something
}

Pressing Home would put the cursor on "d".
• When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block.
http://x12.putfile.com/11/32911563076.png
-- yoav
• Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors.
--kL

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤
-- Allan Odgaard

I would second this aswell. Is there no way to even configure this? -- scoopr

I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald

Another one. Coming from SlickEdit, which has this bindig too. On the german keyboard the Apple style is arkward.
--Udo Willers
Me too. Hoping on the bandwagon. Is it possible to write a snippet to commit this action?
--Jon Wherhol
The default keybinding doesnt even work on a german keyboard. Please make this (or all) keybindings configurable. Or try to map the keybindings to something sensible for non-us keyboards.

-- urandom

• Foreign Language Support

What is a "foreign language"? Foreign coming from a monolingual American? When I log in to Mac OS X for the first time, I get to choose from a number of languages as my default, and can input and output in several dozen (hundred?) languages. I'm requesting including "libiconv" so that Textmate can seamlessly read and write regardless of encoding, but I am not going to write requesting that CJK text be supported - This is a BUG. Don't let someone tell you different.
--Ryan

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.
--Sam

Another vote for CJK support.
--Shun

A third vote for CJK support. Yee haw!
--Martin

A fourth vote for CJK support. TextMate becomes lately really useless to me because of the missing CJK support.
--Niels

And another vote for CJK support, double-width characters and kotoeri input method. I know it's not trivial, and I'm fine with waiting, but I have been hesitating for a long while before buying textmate, because of that issue, and I seriously hope that the fix will come, because switching to other apps to edit japanese text is not something I want to do forever...
--olivier

Absolutely necessary to have CJK support. Right now it's impossible to code japanese characters in my HTML pages. (I'm forced to switch between bbedit and textmate to have proper editing, which is kind of painful).
--karl

I also have to resort to BBEdit for Japanese text editing. Lack of CJK support is my only problem with TextMate, but it's a serious shortcoming. Hence another vote, in the hope turning "eventually" into "soon"...
--Carsten

I want textmate to support Chinese text! I would buy a license if he can do it, I guess it's not hard to do and I am ready to test that feature!
--Maxime

CJK support is a prerequisite for me to use this lovely piece of software. Another vote for this feature for me. Please don't leave this for the extended long term!!!

--Lars

Simply having TM not lock up when trying to input Japanese characters would be a huge plus. I don't know how often I switched to another application, typed something in Japanese, returned to TM, forgot that I was still in Kotoeri mode and had TM freeze up on me, forcing me to close the app and reopen all my windows. Just a simple fix for that would be great, true CJK support can wait...
--David

This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering.
-- Allan Odgaard

* Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)

This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle.
-- Allan Odgaard

Not sure how to do the whole submit thing but here's the code I've come up with:

File Types: png, jpeg, jpg, gif
Command(s):
img="$TM_DROPPED_FILE"echo "background-image: url('$img');"sips -g pixelWidth -g pixelHeight "$img" \| awk '/pixelWidth/ { printf("width: %d;\n",$2) } /pixelHeight/ { printf("height: %d;", $2) }' Output: Insert as Snippet Scope Selector: source.css -- Ben Perry * Also character and word counts would be nice in the status bar. -- Shmuel ⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version. -- Allan Odgaard • Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit. The tab size (and soft tabs) is now in the status bar, I've updated the FAQ. -- Allan Odgaard • I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected. -- Allan Odgaard • I have some small suggestions, they may be silly (or already exist?): 1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie. 2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1, $array2,$array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful.
3. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash.
Thanks again for an awesome app! - Jim Bagrow
• In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow).

Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature.

Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same.
-- Allan Odgaard

Try select all, then up or down arrow

• A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing.

It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this.
-- Allan Odgaard
• I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.

TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.
-- Allan Odgaard
• Click on line number in gutter should select entire line (style of many Windows editors)
• Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.

I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?
-- Allan Odgaard
• Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost
• I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.

The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces.
-- Allan Odgaard

Actually, that is perfect. I hadn't noticed that command before. Thanks!
\\- I don't like selection, I prefer simple "Jump to matching brace" function.
• Make the incremental search bar more like FireFox's:

http://scribes.sourceforge.net/search.png

• Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks.
--Jo Campos

Improving the indenting mechanism

I would very much like to see an updated indenting mechanism, for example in TextMate 2.0. Is this a planned feature? The current mechanism is probably insufficient for advanced indenting tasks like aligning parameters in a multi-line function call. I think it is an important feature in a programming editor, because it greatly improves readability in messy situations like nested function calls. This is probably not a quick change, but I'd like to know if it is a priority before deciding to buy TextMate.

-- Tuomas Launiainen

It would seem others agree with me:

• Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php):

a = array('one', 'two', 'three'); The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.) -- Zack Charter • I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit. • I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line. • I'd like to 'fourth' it. There are a few features that make emacs the best, and TextMate has most of them. Sophisticated, intelligent indenting, unfortunately, it lacks. This probably needs to be customizable by bundles as well, not sure if it is now or not. • fifth - I really miss my indents not lining up 'properly' on multi-line function definitions. -- Graham MacDonald • Add another voice to this. Flexable, on-the-fly, indentation is what keeps me in emacs. If TextMate could do it, I'd never look back. • seventh'd - Seriously. I will not pay for TextMate until this feature is implemented. • How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now? TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria. -- Allan Odgaard • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. All in good time… -- Allan Odgaard • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments. You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks! -- Allan Odgaard Beautiful, thanks -- Douglas • this page makes no sens... how come you are not using Trac or Bugzilla ? I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own). -- Allan Odgaard • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it. I went with FogBugz (and later wrote my own to minimize the amount of work related to dealing with tickets) -- Allan Odgaard • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment. Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc. Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule: { name = "comment.block.preprocessor.c";  begin = "^\\s*#\\s*if\\s*0\\s*";
 end = "^\\s*#\\s*(else|endif)\\s*$"; }, Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well). -- Allan Odgaard • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0
when you change first, and jumps to the next field (Tab) ,
second is supposed to be selected, but instead the whole text is selected.
- Sune Simonsen

That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.
-- Allan Odgaard

See BugReporting for more detail on reporting bugs.
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.

Version 1.1b6 and onward has scopes for this.
-- Allan Odgaard
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature.
• XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS.
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.

wouldn't just select all > copy > new document > paste do the same thing?

-> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.
• Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.)

See e.g. this letter for how to change the default completion command (to search more buffers).
-- Allan Odgaard
• The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions).
• I second this request -- Ben Linton
• Thirded. This is a de facto standard.
• It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right.
-- Allan Odgaard
• Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document.

TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings)

Update: also see this blog entry for instructions.
-- Allan Odgaard
• Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line)
• How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help.
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723

Since TextMate is a general purpose text editor, chances for this feature are slim.
-- Allan Odgaard

But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider.
--jrk

Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).
-- Allan Odgaard
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek

Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.
-- Allan Odgaard

True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps?
-- riaiN (new here)
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?
-- Allan Odgaard

''In PHP the BOM cause trouble as it's the first characters in the file. It will then be sent before any call to session_start() or header() can be sent and thus a session cannot be initialized. -- Martin
• Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :)
--Zila
Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy.
--Komor
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.

If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.
-- Allan Odgaard

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.

Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.
-- Allan Odgaard

By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.

Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton
• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.

If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.

Update: actually, a snippet with { as key equivalent is probably more appropriate.
-- Allan Odgaard
• shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton

This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent.

Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide:
"$\U007F" = "deleteForward:"; -- Allan Odgaard I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-) (Wes)

The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically $means shift, and \U007F is the key code for delete. -- Allan Odgaard • transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function. Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future. -- Allan Odgaard Update: See e.g. this ML post for an example macro that closes current tag when typing '</'. • Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc. For the latter, there is Find in Project. -- Allan Odgaard • Selecting the newline character • An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on). Can you clarify? I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. Okay, this could probably be done by a macro that does a conditional regexp replace on the space, and then the return. See e.g. the “Overtype ')'” in the Lisp bundle, which conditionally overtypes the ')' character. -- Allan Odgaard • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin It's possible to press ⇧⌘B to select the current block. -- Allan Odgaard • Please bring back the behaviour-menu. i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me. -- Torsten Becker • When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines. -- Mike Powell I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me... -- St. Chris I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber And I'll fourth that one. I have Xcode.app set to work this way. That is, the soft-wrapped part indented one level beyond the non-wrapped part of the line. -- Daniel Ericsson This is planned for 1.3 (yes, distant future) -- Allan Odgaard And I guess I'll fifth that one, since we are at 1.5.x and the feature is still unimplemented (I think?). If it's available could somebody let poor ol' me know where it is? And if not, check out Kate (KDE linux text editor), they do soft wrapping perfectly. -- James Andres, www.projectopus.com Another vote for the soft wrap indenting feature, and in particular for making the amount of indentation configurable. It would truly do wonders for document legibility where soft wrapping is used. -- Michael Lee And another vote for the soft wrap indenting feature. As most source code editing tools have this feature, a lot of developers do not have their source code hard wrapped. If you have tons of source code that way already, not having a soft wrapping feature that produces reasonably readable output is definitely a show stopper and a (or probably the only) big reason _not_ to switch to TextMate! -- J. Deepwell I would also like to have indented soft wrap, mainly for Latex editing. A very simple, configurable scheme like "no indent", "indent as last line", or "indent as last line plus one tab" would give me 95% of what I want. -- Daniel Sadilek • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok Reply: http://lists.macromates.com/pipermail/textmate/2004-December/002080.html Wow, it has been *30 months* since Allen's last comment on this subject, and still no traction on this subject. Allen, can you give us any idea when you plan to fix this problem? As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote. -- Anonymous This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list? No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work. -- Allan Odgaard Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves I'm going to have to agree on the Undo behavior. It's a complete deal breaker. TextMate is lamed with the current method. Wow, I'm throwing in my vote on this too. I looked at TextMate over a year ago and saw the developer's comment above. Looks like it's still doing the single character undo. I would say this is the single most glaring non mac-like feature of textmate and is certainly a deal-breaker for me too. Please please bump the importance of this up on the list. I guess it's back to BBedit again for now :( Yet another vote on the undo behavior. Doing the undo in chunks is the de-facto standard in the Mac world. Deal breaker for me too. Just switched from BBEdit after 11 years of use. This is the only thing that is still bothering me after the switch too. Have to throw in my vote as well. I switched to TextMate and then switched back, entirely because I just couldn't get used to the undo behavior. I'm a 20 year mac user and chunk undo is hardwired into my typing. I am afraid I must second that too: the undo character by character is really annoying and the reason of my love/hate relationship with TextMate. I rank undo by chunk as my number one requested feature by far. Hear Hear! This single letter undo thing is driving me nuts. Don't get me wrong, I love TextMate, but just wish I could toggle to chunk undos. That, and select text and drag it to a new location (without the pause). -- Tolmark I have to Nth this. Single character undo severely cripples this otherwise fantastic editor. Is there any hint as to when this will be implemented, if ever? -- Pieter van den Berg nth + 1 here. This behaviour has finally pushed me to emacs. -- Aaron Olson Undo letter by letter is the only thing keeping me from adopting Textmate. Allan's disinterest in changing this is odd since it seems to be a deal-breaker for alot of people. -- Karl Another vote for undo-by-chunk. I'm willing to concede that I could probably re-learn my whole text-editing workflow to avoid the need for this usage (for instance: thinking a whole sentence in my head before typing it). And really, who am I to say what Allan should put in his software? But what bugs me so much about this non-feature is that it seems like the purpose of TextMate is to make coding speedier--not more cumbersome. I can't think of one single reason why anyone would prefer the current behavior, unless you know how to code without making any mistakes. ever. -- Steve • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. Drag & Drop too. mmm... • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode. -- Peter Traskalik Already there - Ctrl-s This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F. You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense. -- Allan Odgaard • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? -->I'd like to second the highlight "every" instance request - Vim does it this way too. -->I'd like to third that. This one the few features that I love in vim and really miss in TextMate. Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted. -- StuartWheeler • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project. Yes, this will be fixed real soon now :) -- Allan Odgaard • Toggle Foldings at level: More levels? 1.1b6 and onward now has 9 levels, enjoy! -- Allan Odgaard • How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way... --Tony Arnold The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :) -- Allan Odgaard • XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>. -- Allan Odgaard • Tab / Shift-Tab to indent / unindent selected blocks Use option-tab / shift-option-tab -- Allan Odgaard • I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour. As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab. -- Allan Odgaard • Home / End "Wintel" emulation (hard for switchers) Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands: mkdir ~/Library/KeyBindings echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }' After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line. -- Allan Odgaard • Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate? Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added). -- Allan Odgaard • A small bug in the Ruby syntax highlighting. Regular expressions inside of curly braces that end in ',', '%', '&', and possibly other characters act as if as though they're unterminated. Example: a = { /hi,/ => "Hi" } (Oh, and Textmate has almost single-handedly been responsible for convincing me to buy a Mac. If I do shell out for an iBook, Textmate will be the first thing I buy and install.) • Is there any capacity for multiple-keystroke shortcuts? Specifically, when editing LaTeX in jEdit, I found it very convenient to be able to define shortcuts for Greek letters that all took the form ctrl-shift-g <next char>, e.g., 'CS-g a' for \alpha, etc. I would love for simiilar functionality to be present in TextMate (and its presence would virtually guarantee that I purchase a license). Thanks! --Eric Malm What you can do is, create snippets for your miscellaneous Greek letters and give them all the same key equivalent, then TextMate will show a menu when you press that key (and the menu has keyboard support, including typing letters to select the entry starting with that letter) -- Allan Odgaard • (Not sure this is the right place). In the latex bundle, folding footnotes (ala LyX) would greatly increase readability. Instead of having something like: This is only one\footnote{This is a footnote, I've already lost track of the sentence I was reading...} sentence. We'd have: This is only one\footnote{...} sentence. -- Gabriel Ripoche XCode/Script Editor style Auto Completion I think it would be best if code completion worked like the Tiger ScriptEditor application, where the best code completion appears to the right of the caret in grey letters and escape completes it. In the case of multiple possibilities the matching characters are placed to the right of the caret and an ellipses is used to denote the presence of more than one completion. Hitting escape then brings up a menu like Dreamweaver, etc. I think this would be the best compromise, and of course would be exactly the thing to finally woo me away from BBEdit for good. --Errol Sayre Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions). I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) • Remove trailing spaces from end of line. --Mark Patterson I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace: “”
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”
-- Allan Odgaard
• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.

Try View -> Gutter -> Line Numbers (option-cmd-L).
-- Allan Odgaard
• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.
-- David Tolpin

I'll add it to beta 4 (sorry about not getting it done for the beta just released)

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.
• 1.1b4
• Better "smart typing" with quotes
-- Mike Powell
• Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding)

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).
• Ctrl+D as the default for Duplicate Line. Eclipse and other IDE's use command D to duplicate a code line, and is probably the more expected behavior. -- Ben Honda-Rottler
• Sorry Ben, that's wrong. Actually, command D deletes the current line in Eclipse.
• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).
• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

Yes, it can be changed. See Help / Key bindings for info.
-- Allan Odgaard
• Use the Safari key shortcuts to change tabs.

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html
• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.

These requests belong to the bundle page! :)
-- Allan Odgaard
• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

• Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation.
For example:
if($this) { if($that) {
_
}
}

Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have.
BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason)
• What about a VIM compatibility mode? I'm not kidding, this would be very nice.

wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :)

It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in.
-- Allan Odgaard
• How can i make the new document default to a specific language, i.e. HTML?

Why is this under suggestions?
Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running):
defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6'
The long alpha-numeric code is the UUID of the language you want to be default.
-- Allan Odgaard
• Is there a way to default all tags, in HTML, to be UPPERCASE?

Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these.
But consider switching to lowercase, since I think that's mandatory with XHTML.
-- Allan Odgaard

Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines.

Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out.

Horizontal scrolling is extremely slow, much slower than vertical.

All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems.

-- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text.

On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems.

When pasting indented text the original indents arent respected.

Disable re-indent pasted text in preferences if it doesn't work for you.

The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection.

This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present.

I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection.

What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself.

Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it.

Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period!

Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen.

This has been tried, but the tooltip was always in the way, so it got removed again.

Likewise, full path tooltip for the tabs.

I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";

	begin = "<!---";
end = "--->";
patterns =({ include = "comment.block.cfml"; });


} But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe?

Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules.

btw: generally send these type of questions to the mailing list. -- Allan Odgaard

there's room for improvement in python support... (do it and I'll shell out my filthy euros!)

• folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'(
• when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'(

Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands.
-- Allan Odgaard

Yes but then YOU'll have to pay me $39 ;) Just joking, I'll have a look at it -- could be fun ;) pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! -- Domenico Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository. -- Allan Odgaard now you can check PyMate and DocMate development on http://pymate.blogspot.com, my first DevBlog. There's a BerliOS project (linked from the blog) where you can download the latest-and-greatest-and-most-unstable releases before they go in the SVN repository. Have a nice ride! -- Domenico I normall use Emacs with the PHP-mode.el installed. This has a great auto-indent feature, which is activated by pressing Tab. It will shift the line of text to increase.decrease indent, in relation to line above. If I come across a messy PHP file I just open it in Emacs and press Tab for every line, starting from top. You then end up with a beautifully formatted page, very quickly. Is there any way this can be acieved with Text Mate ? --Will Macdonald No, not without an external code beautifier to run your buffer through. -- Allan Odgaard • Found a bug with the syntax coloring for Perl, regarding "hereto" syntax. It works for the general case:  my$var = <<END;
Some text to set the var to
END

But, it doesn't work when the end delimiter is surrounded by parenthesis:

object->print (<<END); Some text to send to the "print" method of object END  The syntax parser doesn't recognize the end delimiter. The syntax coloring corrects itself if you make the delimiter "END)", but that won't compile in Perl properly. -- Darrell N. • When invoking the find action, it would be nice if the find selection would be what my cursor selection is. That would (sort of) make ⌘F destroy the shared find clipboard. Using the selection for find also seems counterproductive in combination with “Replace in Selection”. Learn to use the shared find clipboard, and I'm sure you will rarely see a reason to even open the find dialog (for other than stuff like e.g. the “Replace in Selection”). -- Allan Odgaard • I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. --Bob Hicks • I'd like the wrap boundary to be invisible, or let me se its color. Currently, it's gray in that region even when I have wrapping off. EmEditor does a nice job with the various wrapping modes and it's not as intrusive as a big gray region (which may or may not actually provide me with any information that I need). --G. Carpenter • It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode. --Nick Brosnahan • On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite.. -- Jon On Mac there's a shared find clipboard, press command E with a selection, and it's copied to that, and will be in the dialog when you open it, but you actually don't need to, just press command G to find next occurrence. Placing the selection in the find dialog would sort of go against this shared find clipboard and would be counter productive for “replace in selection” operations. -- Allan Odgaard • It'd be nice if language definitions could set up scopes in which folding markers could be ignored. In my Lua files, I'm noticing folding-start markers in the margin whenever a comment or string literal contains "if" or "for" (which is kinda often). Aside from the visual pollution, this seems to keep clicking the folding-end markers from collapsing the fold correctly. (I'm seeing this less often in C-based languages, but only because I'm less likely to use unbalanced {} in comments and strings there). -- Rick Roe Currently not a simple change, but the folding system will (most likely) see some updating in 1.3 -- Allan Odgaard • Add folding for if statements in javascript. It would be nice to be able to fold up your if/else statements at the braces. I know this can be done in the bundle editor, but I don't know how and I think it should be a default. --Braxton Beyer • Earlier someone asked for VI keybindings, and I understand what you're saying about modeless operation. If it can't be done, then it can't be done. However, if it could it would be very valuable to a lot of people. For VI addicts, switching to a non-vi editor can be very painful, with lots of stray characters showing up in the text. I am sure you are right that you can do most things with the keyboard, however, moving around with arrow keys is a lot slower for a fast typist than using home-row keys is. I can work very quickly within regions of text with vim. --Mark Bainter • I would like to see bracket/parenthesis code selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted. Kind of like what the command+shift+D command does, but I would rather doube click using the mouse. --Reese The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese. Difference Editing similar to BBEdit's "Find Differences" command. The key thing I'm looking for is to be able to pull up two files side by side, and be able to easily merge changes from one to the other right there, without having to save a new file like Apple's FileMerge. The BBEdit implementation of this feature is really well polished now, and I'd love to see something like it show up in a future version of TM. In the meantime, I attempted to write an Applescript that I could have called from a TM command that would take the two frontmost windows and send them to the bbdiff command line tool or to FileMerge. The problem seemed to be that although the Applescript dictionary for TM shows that documents of windows are accessible via Applescript, it didn't seem to work in practice. When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. Is this in reference to the delay occurring when you click on a selected block of text to drag it? Is there any way to get rid of the delay?? I'm used to other editors which have no delay, and the delay is driving me bonkers :-) --Mark How about Dreamweaver or JBuilder style drop down autocompletion? For example, in a Javascript situation, after I hit "." it could show the list of available methods or in HTML, it could show the various style options when in a style or CSS attribute list. The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a work-around for this? A plug-in perhaps? --Tyson Some form of intuitive, mouseless, arrowless navigation would be very nice. Moving my hands to and from the arrow keys for simple movements really breaks up my flow -- the mouse even more so . Snippets are an amazing leap in productivity, but without efficient basic navigation, I can't afford to migrate from vim. --Dan Amen. You must understand I've been using vi/vim for 25 years now. Leaving the vi keybindings would be like using a dvorak keyboard. I *want* TextMate and I'd be delighted to pay for it, but if the basics don't work I'm stuck. --PeterMerel. It would be nice if the Go to Symbol keystroke (Cmd-Shift-T) would also work to close the Go to Symbol palette if it's already open. --Ken It would be nice if Cmd-g following Ctrl-s would take you directly to the next match. This has been mentioned elsewhere, but highlighting all search term matches, like Vim's hlsearch option would be great. Ideally, I'd want Ctrl-s like behavior that incorporated regex-based search and the hlsearch capabilities of VIM. --Mike Coyle Is it possible to pass the current document to the completionCommand as stdin, rather than having to load the last saved version? It's counter-intuitive that only the last saved version of your document can be used for programmatically generating autocompletions. -- Fletcher Penney (:title Proportional Tabs:) I want to be able to select columns using the keyboard and arrows, instead of having to grab the mouse. Again, this is a Vim ability that is really useful, especially when I'm trying to insert a column instead of change a selected column. I'd also like to have the ability to tell TM to align using an arbitrary character, not just the equates ('='). Also, how do we tell it the perltidy module to use a custom .perltidyrc? It seems to be ignoring my settings and I'd like the tidy function to be consistent with what I get when calling perltidy directly. This is tied to my previous paragraph, because I wanted to align some perl hashes on the '=>' operator and TM made them look like '= >', which made me dash for Vim to get the source looking like I want. -- Greg Ferguson It would be nice if spellchecking could be enabled only in certain scopes so that one could spellcheck (on typing in) in comments... -- Arne Ehrlich It would be useful if within a Snippet the shell output from somecommand.sh (backticks) could be evaluated as a Snippet. As some of the Snippets, e.g. JUnit Test Class, have to jump through some hoops to create the correct default variable names. I think it would be useful for shell commands to create here documents that are evaluated as snippets, thus leveraging the language constructs of your favourite scripting language. -- Wayne Allison On the auto-compleation theme, but simply, doing closing tags, so there is <p>... then i type </ and the rest, p> is automaticaly put in --Fred Nicollson I'd love a way to locate the end tag of an element in an (X)HTML document if I know where the start tag is (and vice versa). And not just the next closing tag, but the *corresponding* closing tag, so that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>. --lawrence Another vote for window-splitting, preferably side-by-side (have two tabs visible at the same time). -- Julian Dreißig One feature I used to use in XEDIT style editors that I found very useful was selective line editing, where you could filter which lines are visible and operated upon with regular expressions. A description is here: http://www.kedit.com/techart.all.html For example, one could enter the following to only the show the <input/> tags in an html file:  all /input/  Then further filter by removing submit buttons:  less /submit/  All the hidden lines are still in the file and can easily be made visible, will be saved properly whenever you save the file, etc. But in the meantime, only the matching lines are visible. Other operations such as search and replace default to working only on the visible lines. This becomes very useful when doing mass search & replace operations, as you can easily see & filter all the relevant lines in the file beforehand, then just hit "Replace All". -- Dan Walters I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. (See for example Xcode's Find dialog. Even TextEdit has this functionality in its find dialog.) Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. -- Frank van den Hoef Auto autocompletion I would really like to have autocompletions appear automatically, with the possibility to continue typing, accept with tab or return, or cancel: the best implementations I've used are those of KDE's Kate and XCode; but even OpenOffice's simplistic completion would be ok. It's the single feature I miss the most when working in TextMate. The problem with the way it's implemented now is that hitting escape requires moving out of the home row, and, by the way, completions take too much time to appear. But most important of all, as it is now I have to make a conscious decison to autocomplete, and pause what I'm doing; if, on the other side, the menu appears automatically, hitting return (or tab) becomes automatic when you've typed "just enough". It really saves a great deal of keystrokes. --Chase Taggart Add me to the list for split Windows. I have to use Smultron when I have a dire need to have split windows. Is there any chance for this happening in TM? --Bruce Garlock Replace-All Progress/Cancel It would be nice if it was possible to cancel a search/replace-all operation using Command-Period. When working with large text files such operations can easily take a minute and more. Extra awesomeness points would be awarded for a document-model dialog showing the progress of a long search/replace-all operation together with a cancel button and non-UI-locking behaviour. --Fred Seiffert Cancel of Long-Running Operations It would be very nice if TextMate would respond to Mac-standard Command-Period keystroke to cancel long-running operations, such as Replace-All (on long files, as described above) and especially Find in Project, which can easily make TextMate unusable for several minutes on a large project with many large files. -- Shawn Van Ittersum Find-in-Project File/Directory Filter As some web site projects are a mix of application code (in 'controller' and 'model' directories) and non-text assets (in 'public' and other directories), it would be nice if TextMate would provide an interface in the Find-In-Project dialog (or subdialog) to select or omit certain directories to search. At a minimum, it would be much better for TextMate to skip searching files that it cannot open, such as images and PDFs, as this would drastically reduce the search times. -- Shawn Van Ittersum • Any plans for code hinting? (Especially AS3?) -- Ben Honda-Rottler Absurd waiting for long lines I tend to push TextMate's performance limits quite a bit, since I do a lot of database work and sometimes, I will have megabytes of character data. My particular pet-peeve is that TextMate handles very poorly long horizontal lines. I noticed that this was discussed already above. As a programmer I can understand the technical difficulties to get this to work properly. However, as a user of TextMate I find this to be unacceptable behavior. I should not have to wait minutes for TextMate to insert characters at the beginning of a long line, regardless of the size of the document, and also have by CPU utilization to skyrocket. If the problem for this is horizontal scrolling and the current text architecture for this in Cocoa is shitty, then the scrolling behavior needs to be altered. Maybe horizontal scrolling should work in a non-conventional way. Maybe these computations should be done in a separate thread. However, the whole app should never freeze just because I typed a couple of characters in one of the windows. -- Nick Hristov (nick.hritov at gmail dot com) Adjustable line height in editor It'd be absolutely fantastic to be able to adjust the line height used in textmate, especially when switching to smaller font sizes! -- Martin Kuplens-Ewart (mkuplens at gmail dot com) • I agree with Nick Hristov on large files. When dealing with large text files from databases, for example, Textmate slows to a crawl and becomes unusable when performing actions on the text. I have to use BBedit to mess with large files (sad face here). • Also I would like to see MACRO > Play to End of File function, like Ultra Edit on Windows, so that I don't have to keep replying the macro, it will just play till it reaches the end. • Thanks for a "great text editor". -- Kevin Ridgway (kridgway at gmail dot com) Nedit-style live dragging of text I love TextMate, but coming from nedit one thing which I miss is live dragging of text. In nedit I can highlight a subroutine, and as I drag it flows through the rest of the text, which wraps around it, much like an icon in the Dock does. I can also drag it beyond the end of the window, scrolling through the document. Live dragging also helps with rectangular selections of text. I find it easy to rearrange columns of text in nedit, but can't get this to work in TextMate. ## Indentation on Wrapped Lines!! Could there please be an option such that wrapped text gets left-aligned to the indentation of the first line? It's somewhat jarring to see a line of code in a block three indentations deep start at column 0... -Neil. command + d = delete line, this is very useful in eclipse and i find myself automatically trying to do it when im using textmate. ## Have the cursor stay with the moved text on "Line Up" and "Line Down" commands!! This would make it easier to move a line up or down several rows. -Drew ## Add "Fold everything at level x" More often than not, I have some stuff unfolded, and some stuff folded, and I want to go back to a nice clean state with everything of level n folded up. Toggle foldings just inverts, but I can't find a way to simply fold everything up. -Marten ## Auto-complete image height/width attributes When I type out an image tag and get to the height and width attributes, I want Textmate to automatically plug them in, assuming I've already defined the src attribute of the image. Dreamweaver does this and it's really freaking handy! I realize the height/width attributes aren't technically required, but it's good practice to have them. I'm tired of switching to the finder to determine what numbers to plug in. -Bryan ## Go To Symbol in XHTML - include Classes I would like to be able to use the Go To Symbol feature to access not just ID's in XHTML, but CLASSES as well. -Ben D. One feature I find very useful and would love to see in TextMate is Eclipse's ability to move selected line(s) up/down using a keystroke. TextMate already has Text->Move Selection but it moves the selection up/down to the start of the previous/next line BUT places it at the start of the line before the existing contents. Eclipse by contrast switches the positions of the selected lines and the previous/next line which I find much more useful when coding. So TextMate: A B select B and choose menuitem Text->Move Selection->Line Up gives: BA Eclipse: A B select B and type Option+Up arrow gives: B A So request that this feature be added to the Text->Move Selection submenu with keystroke ## Scope Highlighting It qould be quite useful to have a different background color for the current scope in the same way as the "Line Indicator". Especially useful in Lispy languages for example. Thanks, Mel ## Go to Symbol line counts I love the "Go to Symbol" feature, and use it constantly to navigate long files of code. It would help if each entry included a count of the number of lines between that symbol and the next. In other words, I often want some indication of the size of the function / class / etc. that the symbol represents. -Mark ## Filename change should trigger filetype detection When a user renames a file, the mode/language type for the file should change immediately. Currently in order to get this to occur, one has to switch tabs to another file, and then back again to the renamed file. Thanks, Brian Schroeder (my initials with 't' in between at gmail) to: I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group st October 18, 2009, at 15:52 UTC by christopherlord - Changed line 7 from: to: -- Chris Lord October 18, 2009, at 15:51 UTC by christopherlord - Added lines 1-9: ## support for indenting with tabs, aligning with spaces This is a popular way of resolving the tabs/spaces debate. It lets everyone indent with a different number of spaces, but does not mess with vertically aligned source. I've been trying to work like this, but TextMate assumes all-spaces or all-tabs when re-indenting code, rendering that feature useless for me. Please see below for more details. http://vim.wikia.com/wiki/Indent_with_tabs,_align_with_spaces September 10, 2009, at 12:47 UTC by Vaughan Marais - Sectional Background Color labeling for quickly identifying code Added lines 1-9: ## Sectional Background Color labeling Using colors is a good way to quickly identify something. In the same way as Apple's Finder allows you to label a file or folder with a color, it would be nice to be able to mark a selection of code with a chosen background color. This could also be useful for, prioritizing code or marking things as "todo" or incomplete. Vaughan September 03, 2009, at 10:46 UTC by Daniel Sadilek - Changed line 729 from: I would also like to have indented soft wrap, mainly for Latex editing. A very simple, configurable scheme like "no indent", "indent as last line", or "indent as last line plus one tab" would give me 95% of what I want. to: I would also like to have indented soft wrap, mainly for Latex editing. A very simple, configurable scheme like "no indent", "indent as last line", or "indent as last line plus one tab" would give me 95% of what I want.\\ September 03, 2009, at 10:45 UTC by Daniel Sadilek - Added lines 728-730: I would also like to have indented soft wrap, mainly for Latex editing. A very simple, configurable scheme like "no indent", "indent as last line", or "indent as last line plus one tab" would give me 95% of what I want. -- Daniel Sadilek\\ August 10, 2009, at 00:39 UTC by Brian Schroeder - Add suggestion: filename change should trigger filetype detection Changed lines 1409-1416 from: -Mark to: -Mark ## Filename change should trigger filetype detection When a user renames a file, the mode/language type for the file should change immediately. Currently in order to get this to occur, one has to switch tabs to another file, and then back again to the renamed file. Thanks, Brian Schroeder (my initials with 't' in between at gmail) August 02, 2009, at 11:24 UTC by Alessandro Mek - Show non-printable character in selected area (like e-texteditor) Added lines 1-6: ## Show non-printable character in selected area (like e-texteditor) Alessandro Mek July 20, 2009, at 15:48 UTC by Mark Montague - Go to Symbol line counts Changed lines 1396-1403 from: Mel to: Mel ## Go to Symbol line counts I love the "Go to Symbol" feature, and use it constantly to navigate long files of code. It would help if each entry included a count of the number of lines between that symbol and the next. In other words, I often want some indication of the size of the function / class / etc. that the symbol represents. -Mark April 09, 2009, at 13:06 UTC by Mel - Scope Highlighting Changed lines 1385-1396 from: So request that this feature be added to the Text->Move Selection submenu with keystroke to: So request that this feature be added to the Text->Move Selection submenu with keystroke ## Scope Highlighting It qould be quite useful to have a different background color for the current scope in the same way as the "Line Indicator". Especially useful in Lispy languages for example. Thanks, Mel February 19, 2009, at 00:18 UTC by Tim Mowlem - Request new feature, switch selected lines with line above/below Changed lines 1356-1385 from: -Ben D. to: -Ben D. One feature I find very useful and would love to see in TextMate is Eclipse's ability to move selected line(s) up/down using a keystroke. TextMate already has Text->Move Selection but it moves the selection up/down to the start of the previous/next line BUT places it at the start of the line before the existing contents. Eclipse by contrast switches the positions of the selected lines and the previous/next line which I find much more useful when coding. So TextMate: A B select B and choose menuitem Text->Move Selection->Line Up gives: BA Eclipse: A B select B and type Option+Up arrow gives: B A So request that this feature be added to the Text->Move Selection submenu with keystroke February 02, 2009, at 04:59 UTC by Shawn Van Ittersum - Suggestions for Find-In-Project Performance Added lines 1271-1286: Cancel of Long-Running Operations It would be very nice if TextMate would respond to Mac-standard Command-Period keystroke to cancel long-running operations, such as Replace-All (on long files, as described above) and especially Find in Project, which can easily make TextMate unusable for several minutes on a large project with many large files. -- Shawn Van Ittersum Find-in-Project File/Directory Filter As some web site projects are a mix of application code (in 'controller' and 'model' directories) and non-text assets (in 'public' and other directories), it would be nice if TextMate would provide an interface in the Find-In-Project dialog (or subdialog) to select or omit certain directories to search. At a minimum, it would be much better for TextMate to skip searching files that it cannot open, such as images and PDFs, as this would drastically reduce the search times. -- Shawn Van Ittersum January 26, 2009, at 20:12 UTC by Daniel - Changed line 1 from: ## Add "strikethrough" as another Font style-option in the theme editor!! to: ## Add "strikethrough" as another Font style-option in the theme editor January 26, 2009, at 20:11 UTC by Daniel - Added lines 1-8: ## Add "strikethrough" as another Font style-option in the theme editor!! This would be very useful for bloggers and other writers; probably not so important for programmers. I believe, displaying a passage striked out is not possible as of now. thanks for considering, Dan January 06, 2009, at 21:19 UTC by Ben D - Go To Symbol - more flexibility Changed lines 1326-1332 from: -Bryan to: -Bryan ## Go To Symbol in XHTML - include Classes I would like to be able to use the Go To Symbol feature to access not just ID's in XHTML, but CLASSES as well. -Ben D. December 27, 2008, at 21:01 UTC by Bryan - Changed lines 1320-1326 from: -Marten to: -Marten ## Auto-complete image height/width attributes When I type out an image tag and get to the height and width attributes, I want Textmate to automatically plug them in, assuming I've already defined the src attribute of the image. Dreamweaver does this and it's really freaking handy! I realize the height/width attributes aren't technically required, but it's good practice to have them. I'm tired of switching to the finder to determine what numbers to plug in. -Bryan December 17, 2008, at 10:52 UTC by Daniel - Added lines 908-909: • Sorry Ben, that's wrong. Actually, command D deletes the current line in Eclipse. November 20, 2008, at 13:49 UTC by Benni - added some lines to 'unlooseable undo' Added lines 87-88: Actually the e-texteditor (win) behaves very nice regarding to undos as it builds kind of a 'undo-tree' - writing something after one or more undos opens a new branch, so you can jump 'back to the future' although you did some changes. I'd totally love to see something similar in textmate... November 12, 2008, at 11:16 UTC by Marten Veldthuis - Request for a Fold everything command Changed lines 1310-1316 from: -Drew to: -Drew ## Add "Fold everything at level x" More often than not, I have some stuff unfolded, and some stuff folded, and I want to go back to a nice clean state with everything of level n folded up. Toggle foldings just inverts, but I can't find a way to simply fold everything up. -Marten October 01, 2008, at 05:12 UTC by Drew Wagner - Added a suggestion for slight modification of behavior of the "Line Up/Down" commands. Changed lines 1303-1310 from: command + d = delete line, this is very useful in eclipse and i find myself automatically trying to do it when im using textmate. to: command + d = delete line, this is very useful in eclipse and i find myself automatically trying to do it when im using textmate. ## Have the cursor stay with the moved text on "Line Up" and "Line Down" commands!! This would make it easier to move a line up or down several rows. -Drew September 19, 2008, at 01:21 UTC by Steve - undo behavior Added lines 759-761: Another vote for undo-by-chunk. I'm willing to concede that I could probably re-learn my whole text-editing workflow to avoid the need for this usage (for instance: thinking a whole sentence in my head before typing it). And really, who am I to say what Allan should put in his software? But what bugs me so much about this non-feature is that it seems like the purpose of TextMate is to make coding speedier--not more cumbersome. I can't think of one single reason why anyone would prefer the current behavior, unless you know how to code without making any mistakes. ever. -- Steve August 17, 2008, at 03:50 UTC by Karl - Added lines 755-756: August 17, 2008, at 03:49 UTC by Karl - Added lines 754-756: Undo letter by letter is the only thing keeping me from adopting Textmate. Allan's disinterest in changing this is odd since it seems to be a deal-breaker for alot of people. -- Karl August 01, 2008, at 00:05 UTC by Birk - Added lines 1-9: Uncomment debug output When developing for the web many developers tend to use the basic method of echoing out their debug messages and variables. However, setting these debug messages on and off is a tedious task. So when I comment out my debug messages I often use a given syntax (// Debug: my debug message for an example) in PHP so that I later on can search for // Debug: and uncomment these lines. But I was thinking that since Textmate has knowledge of how comments are used in the different languages that it could use such a syntax that becomes invisible for the eye, but available for Textmate to, with a simple click, turn on and off. This would clearly boost productivity when developers have hundreds of debug messages to maintain. June 03, 2008, at 14:48 UTC by Allan Odgaard - Remove (dead) FogBugz link Changed line 503 from: I went with FogBugz\\ to: I went with FogBugz (and later wrote my own to minimize the amount of work related to dealing with tickets)\\ May 28, 2008, at 21:10 UTC by Mike C - Changed line 289 from: • This is really needed. Especially for large projects where you have thousands of files to manage. Even if you can't specify the file extension, if you could target the search at a particular sub-directory of the project it would make it more manageable. -- Mike C. to: • This is really needed. Especially for large projects where you have thousands of files to manage. Even if you can't specify the file extension, if you could target the search at a particular sub-directory of the project it would make it more manageable. -- Mike C. May 28, 2008, at 21:09 UTC by Mike C - Added line 289: • This is really needed. Especially for large projects where you have thousands of files to manage. Even if you can't specify the file extension, if you could target the search at a particular sub-directory of the project it would make it more manageable. -- Mike C. May 22, 2008, at 02:29 UTC by dave - keyboard shortcut for delete line Added line 1285: command + d = delete line, this is very useful in eclipse and i find myself automatically trying to do it when im using textmate. May 20, 2008, at 23:16 UTC by Urandom - keybinding customization request Added lines 321-322: The default keybinding doesnt even work on a german keyboard. Please make this (or all) keybindings configurable. Or try to map the keybindings to something sensible for non-us keyboards. -- urandom April 17, 2008, at 14:49 UTC by jon - Changed lines 319-321 from: to: Me too. Hoping on the bandwagon. Is it possible to write a snippet to commit this action? --Jon Wherhol April 02, 2008, at 11:32 UTC by Daniel - Added lines 1-5: Show invisible characters through selection I find one particular "Pages"-feature very useful: Automatical display of invisible characters in selected text; whenever a passage is selcted (highlighted), the contained invisibles become visible. Not only obviates this the "Show invisibles"-toggle but makes checking for tabs/spaces/returns etc. blindingly fast and intuitive. March 29, 2008, at 22:07 UTC by Neil - Added lines 1269-1275: ## Indentation on Wrapped Lines!! Could there please be an option such that wrapped text gets left-aligned to the indentation of the first line? It's somewhat jarring to see a line of code in a block three indentations deep start at column 0... -Neil. March 25, 2008, at 10:48 UTC by Tuomas Launiainen - Added lines 439-446: Improving the indenting mechanism I would very much like to see an updated indenting mechanism, for example in TextMate 2.0. Is this a planned feature? The current mechanism is probably insufficient for advanced indenting tasks like aligning parameters in a multi-line function call. I think it is an important feature in a programming editor, because it greatly improves readability in messy situations like nested function calls. This is probably not a quick change, but I'd like to know if it is a priority before deciding to buy TextMate. -- Tuomas Launiainen It would seem others agree with me: March 23, 2008, at 00:22 UTC by Tiago - Added lines 9-12: Ditto. This is the ONLY reason why I still use SubEthaEdit for Python programming. -- Tiago March 10, 2008, at 14:50 UTC by Wes - Added lines 455-456: • seventh'd - Seriously. I will not pay for TextMate until this feature is implemented. March 07, 2008, at 07:41 UTC by Girish - Added lines 42-46: I second it. The "Edit in Writeroom" input manager actually implements this functionality and can be used from the Bundle Editor, but this menu option is greyed out when in textedit window. This provides a useful getaway for those times when you just want to focus on putting your thoughts in text. --Girish March 02, 2008, at 02:35 UTC by jibberia - Added lines 73-76: Seconded. You can just hold down the key command, but that often wreaks havoc when you get to the end of the file. I often find that recording a macro is faster than thinking about a regular expression, but they're hard to use on big documents. -- jibberia Added lines 120-121: This request is confusing - what are you trying to achieve? Something like emacs M-t, which transposes words instead of letters? Added lines 135-138: While I would LOVE this feature, it's *really* hard for a general-purpose text editor to get right, given complex scoping rules and whatnot. -- jibberia February 22, 2008, at 06:42 UTC by Scott - Added lines 1-2: Intellisense/AutoCompletion February 22, 2008, at 06:40 UTC by Scott - Added lines 1-6: I would absolutely LOVE to see true intellisense/autocompletion (without having to use Esc or Alt+Esc) in TextMate. This would be a feature you would need an on/off switch for because not everyone would want it. Could you let us know if this is something that is coming in TM2? Keep up the awesome work! -- Scott February 14, 2008, at 14:21 UTC by Hendrik - Added lines 11-16: I created a tciket for this feature: http://macromates.com/ticket/show?ticket_id=4AC5352B --Hendrik February 05, 2008, at 14:40 UTC by James Gilbert - Changed lines 1219-1225 from: to: Nedit-style live dragging of text I love TextMate, but coming from nedit one thing which I miss is live dragging of text. In nedit I can highlight a subroutine, and as I drag it flows through the rest of the text, which wraps around it, much like an icon in the Dock does. I can also drag it beyond the end of the window, scrolling through the document. Live dragging also helps with rectangular selections of text. I find it easy to rearrange columns of text in nedit, but can't get this to work in TextMate. December 28, 2007, at 08:27 UTC by Andronicus Riyono - Added lines 7-10: Seconded. I really like the multiple words edit, and i think TextMate should have it -- Andronicus November 20, 2007, at 04:26 UTC by Aaron Olson - Added lines 685-688: nth + 1 here. This behaviour has finally pushed me to emacs. -- Aaron Olson Changed lines 690-692 from: nth + 1 here. This behaviour has finally pushed me to emacs. -- Aaron Olson to: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ Deleted lines 692-694: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ November 20, 2007, at 04:12 UTC by Aaron Olson - Deleted line 684: Changed lines 686-687 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: nth + 1 here. This behaviour has finally pushed me to emacs. -- Aaron Olson Added lines 690-692: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ November 17, 2007, at 03:16 UTC by Kevin Ridgway - Changed lines 1202-1212 from: -- Martin Kuplens-Ewart (mkuplens at gmail dot com) to: -- Martin Kuplens-Ewart (mkuplens at gmail dot com) • I agree with Nick Hristov on large files. When dealing with large text files from databases, for example, Textmate slows to a crawl and becomes unusable when performing actions on the text. I have to use BBedit to mess with large files (sad face here). • Also I would like to see MACRO > Play to End of File function, like Ultra Edit on Windows, so that I don't have to keep replying the macro, it will just play till it reaches the end. • Thanks for a "great text editor". -- Kevin Ridgway (kridgway at gmail dot com) November 16, 2007, at 16:02 UTC by Martin Kuplens-Ewart - Changed lines 1196-1202 from: -- Nick Hristov (nick.hritov at gmail dot com) to: -- Nick Hristov (nick.hritov at gmail dot com) Adjustable line height in editor It'd be absolutely fantastic to be able to adjust the line height used in textmate, especially when switching to smaller font sizes! -- Martin Kuplens-Ewart (mkuplens at gmail dot com) September 27, 2007, at 23:56 UTC by martin - Changed lines 5-7 from: --- to: -- Martin September 27, 2007, at 23:55 UTC by martin - Added lines 1-7: Multiple words selection the 'e' editor for Windows allows selection of multiple words, regardless of their location in a file, and editing them in place simultaneously. This is really cool feature and is missing in TextMate. --- September 21, 2007, at 15:54 UTC by Proteus - Added lines 1-8: Smart Soft/Hard tab guessing' It would be nice if, when opening a file, TM could adjust itself to whether it uses hard/soft tabs and how big the tabs are by looking at said file. that is, if I open a file using hard tabs, adjust automatically to use hard tabs. If its using soft tabs of 8 spaces, adjust to do that same thing. Of course I realize thats not what everyone would like, but you could always add the ability to toggle it in the prefs, say a checkbox "Adjust tab settings when opening file" that would be unchecked by default. September 15, 2007, at 23:38 UTC by Marcus - Added lines 1-9: Full Screen Editing I'd love to have the ability to shift into a full screen mode for editing (to get rid of distractions—think Writeroom [http://hogbaysoftware.com/projects/writeroom]), especially if it contained all of the file group stuff. --Marcus September 07, 2007, at 12:44 UTC by nils - Added lines 1-8: Go to symbol (all files)... It would be great to have the "Go to Symbol..."-command over all files in a project, too. -- nils August 16, 2007, at 20:25 UTC by Nick Hristov - Deleted line 1148: Changed lines 1151-1162 from: • Any plans for code hinting? (Especially AS3?) -- Ben Honda-Rottler to: • Any plans for code hinting? (Especially AS3?) -- Ben Honda-Rottler Absurd waiting for long lines I tend to push TextMate's performance limits quite a bit, since I do a lot of database work and sometimes, I will have megabytes of character data. My particular pet-peeve is that TextMate handles very poorly long horizontal lines. I noticed that this was discussed already above. As a programmer I can understand the technical difficulties to get this to work properly. However, as a user of TextMate I find this to be unacceptable behavior. I should not have to wait minutes for TextMate to insert characters at the beginning of a long line, regardless of the size of the document, and also have by CPU utilization to skyrocket. If the problem for this is horizontal scrolling and the current text architecture for this in Cocoa is shitty, then the scrolling behavior needs to be altered. Maybe horizontal scrolling should work in a non-conventional way. Maybe these computations should be done in a separate thread. However, the whole app should never freeze just because I typed a couple of characters in one of the windows. -- Nick Hristov (nick.hritov at gmail dot com) August 02, 2007, at 18:46 UTC by Pieter van den Berg - Changed lines 649-651 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: I have to Nth this. Single character undo severely cripples this otherwise fantastic editor. Is there any hint as to when this will be implemented, if ever? -- Pieter van den Berg Added lines 653-655: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ July 31, 2007, at 23:40 UTC by Marc Argent - Added lines 1-8: Code Focus I would like to be able to have all text not in the current method I am editing to appear in a dimmer colour scheme. I feel that would allow a user for focus more on the task at hand rather than unrelated code. This may be very useful for Rails developers who have many short methods in their source code. --Marc Argent July 29, 2007, at 05:59 UTC by SomeGuy - Added lines 1-6: Unlooseable Undo You know how if you type some text, undo a whole bunch and then type some more, you loose the bunch of text that you just undid. It would be nice if there was a mechanism where you could do recover it. Somewhat like emacs. July 19, 2007, at 02:44 UTC by Ben Honda-Rottler - Changed lines 1128-1133 from: --Fred Seiffert to: --Fred Seiffert • Any plans for code hinting? (Especially AS3?) -- Ben Honda-Rottler July 19, 2007, at 02:40 UTC by Ben Honda-Rottler - Changed lines 775-777 from: • Ctrl+D as the default for Duplicate Line. -- Ben Honda-Rottler to: • Ctrl+D as the default for Duplicate Line. Eclipse and other IDE's use command D to duplicate a code line, and is probably the more expected behavior. -- Ben Honda-Rottler July 19, 2007, at 02:38 UTC by Ben Honda-Rottler - Changed lines 776-777 from: to: -- Ben Honda-Rottler July 19, 2007, at 02:37 UTC by Ben Honda-Rottler - Added lines 775-776: • Ctrl+D as the default for Duplicate Line. July 09, 2007, at 12:36 UTC by J Deepwell - Changed lines 596-599 from: to: And another vote for the soft wrap indenting feature. As most source code editing tools have this feature, a lot of developers do not have their source code hard wrapped. If you have tons of source code that way already, not having a soft wrapping feature that produces reasonably readable output is definitely a show stopper and a (or probably the only) big reason _not_ to switch to TextMate! -- J. Deepwell June 27, 2007, at 16:31 UTC by Steve Rawlinson - Deleted lines 373-374: • This makes seven. I think this is the biggest single issue for me in textmate. A comment from Alan on this question would be very much appreciated. -- Steve Rawlinson June 27, 2007, at 12:31 UTC by Steve Rawlinson - Changed lines 374-377 from: • This makes seven. I think this is the biggest single issue for me in textmate. A comment from Alan on this question would be very much appreciated. -- Steve Rawlinson to: • This makes seven. I think this is the biggest single issue for me in textmate. A comment from Alan on this question would be very much appreciated. -- Steve Rawlinson June 27, 2007, at 12:30 UTC by Steve Rawlinson - Added lines 374-377: • This makes seven. I think this is the biggest single issue for me in textmate. A comment from Alan on this question would be very much appreciated. -- Steve Rawlinson June 04, 2007, at 00:05 UTC by Penny - Added lines 7-8: Added lines 16-17: Changed lines 26-27 from: to: Added lines 34-35: Changed lines 43-44 from: to: June 04, 2007, at 00:01 UTC by Penny - Added lines 1-6: Repeat Macros I'd like to see the ability to replay a macro multiple times, either by bringing up an optional dialog when replaying macros, or having a key binding to specify the number of repetions (like Emacs' C-U). I just wrote a macro to clean up a data file and had to Cmd-Shift-R 470 times! -- Penny May 30, 2007, at 19:28 UTC by Fred Seiffert - Changed lines 1101-1109 from: --Bruce Garlock to: --Bruce Garlock Replace-All Progress/Cancel It would be nice if it was possible to cancel a search/replace-all operation using Command-Period. When working with large text files such operations can easily take a minute and more. Extra awesomeness points would be awarded for a document-model dialog showing the progress of a long search/replace-all operation together with a cancel button and non-UI-locking behaviour. --Fred Seiffert May 09, 2007, at 14:00 UTC by S - Added lines 358-359: • Add another voice to this. Flexable, on-the-fly, indentation is what keeps me in emacs. If TextMate could do it, I'd never look back. May 01, 2007, at 20:41 UTC by Joe - Added lines 588-589: Wow, it has been *30 months* since Allen's last comment on this subject, and still no traction on this subject. Allen, can you give us any idea when you plan to fix this problem? April 24, 2007, at 07:46 UTC by scoopr - Deleted line 0: Changed lines 6-7 from:  -- Mikko Lehtonen  to: -- Mikko Lehtonen April 24, 2007, at 07:46 UTC by scoopr - Added lines 1-8: Option to disable em-space The worst typo I make is press option-space occasionally, which creeps up as hard to find “Illegal character” compile errors. This is probably a job for a macro, but my macro-fu wasn't up to it.  -- Mikko Lehtonen  April 08, 2007, at 02:40 UTC by sneeka2gmxde - Added lines 241-242: Simply having TM not lock up when trying to input Japanese characters would be a huge plus. I don't know how often I switched to another application, typed something in Japanese, returned to TM, forgot that I was still in Kotoeri mode and had TM freeze up on me, forcing me to close the app and reopen all my windows. Just a simple fix for that would be great, true CJK support can wait... --David\\ Added line 244: \\ April 04, 2007, at 20:07 UTC by joh - Added lines 1-9: Free Ctrl-H for editing Ctrl-H is used for "Help" (or similar) in a dozen or so bundles. This makes it very hard to use it for what it is traditionally used for: Backspace. By default Ctrl-H works as Backspace in Cocoa and even in Carbon applications. Especially on notebooks with no dedicated Backspace key this is very useful. I've finally managed to replace ^H with F1 in all bundles but this was quite a bit of work. Would be nice if TextMate would leave it alone by default. -- joh March 30, 2007, at 04:36 UTC by Paul S - Added lines 587-588: I switched to TextMate and then switched back, entirely because I just couldn't get used to the undo behavior. I'm a 20 year mac user and chunk undo is hardwired into my typing. \\ March 29, 2007, at 10:44 UTC by Alistair Holt - Added lines 1-6: Comment hiding/folding I'd like to see a way to hide or fold comments in source code. -- Alistair Holt March 27, 2007, at 17:18 UTC by Michael Lee - Changed lines 552-555 from: to: Another vote for the soft wrap indenting feature, and in particular for making the amount of indentation configurable. It would truly do wonders for document legibility where soft wrapping is used. -- Michael Lee March 27, 2007, at 07:09 UTC by Lars - Added lines 223-224: CJK support is a prerequisite for me to use this lovely piece of software. Another vote for this feature for me. Please don't leave this for the extended long term!!! --Lars\\ Added line 226: \\ March 19, 2007, at 15:18 UTC by Bruce Garlock - Changed lines 1058-1064 from: --Chase Taggart to: --Chase Taggart Add me to the list for split Windows. I have to use Smultron when I have a dire need to have split windows. Is there any chance for this happening in TM? --Bruce Garlock March 17, 2007, at 04:06 UTC by Isaac Pei - Added lines 1-8: "use vim within textmate" as many suggestion suggested, it would be great if we could use vim in textmate, maybe just add one control button that we can switch to a vim mode in textmate; - actually just use a terminal within textmate? ... vim is great to edit pages of several screen long to me, but seems that I really like many other feasures of textmate provide in addition. -- isaac pei March 09, 2007, at 14:45 UTC by Chase Taggart - Added lines 1043-1050: Auto autocompletion I would really like to have autocompletions appear automatically, with the possibility to continue typing, accept with tab or return, or cancel: the best implementations I've used are those of KDE's Kate and XCode; but even OpenOffice's simplistic completion would be ok. It's the single feature I miss the most when working in TextMate. The problem with the way it's implemented now is that hitting escape requires moving out of the home row, and, by the way, completions take too much time to appear. But most important of all, as it is now I have to make a conscious decison to autocomplete, and pause what I'm doing; if, on the other side, the menu appears automatically, hitting return (or tab) becomes automatic when you've typed "just enough". It really saves a great deal of keystrokes. --Chase Taggart March 07, 2007, at 21:02 UTC by Udo Willers - Changed lines 181-183 from: I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald • Foreign Language Support\\ to: I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald \\ Added lines 183-187: Another one. Coming from SlickEdit, which has this bindig too. On the german keyboard the Apple style is arkward. --Udo Willers • Foreign Language Support \\ March 07, 2007, at 08:08 UTC by Tolmark - Added line 567: -- Tolmark Added line 569: March 07, 2007, at 08:04 UTC by Tolmark - Changed lines 566-567 from: to: Hear Hear! This single letter undo thing is driving me nuts. Don't get me wrong, I love TextMate, but just wish I could toggle to chunk undos. That, and select text and drag it to a new location (without the pause). \\ March 06, 2007, at 20:43 UTC by Frank van den Hoef - Changed lines 1033-1034 from: I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. (See for example Xcode's Find dialog.) Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. to: I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. (See for example Xcode's Find dialog. Even TextEdit has this functionality in its find dialog.) Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. March 06, 2007, at 20:41 UTC by Frank van den Hoef - Changed lines 1033-1034 from: I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. to: I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. (See for example Xcode's Find dialog.) Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. March 06, 2007, at 20:38 UTC by Frank van den Hoef - Changed lines 1029-1036 from: -- Dan Walters to: -- Dan Walters I would really like to see an extra checkbox in the find/replace window to search on whole words only. This is a standard option in many other IDEs/editors I use and it is something I miss in TextMate. Of course it is possible to accomplish similar functionality with regular expressions, but I don't think that's an option. -- Frank van den Hoef February 18, 2007, at 06:19 UTC by Dan Walters - Changed lines 1013-1014 from: --- to: February 18, 2007, at 06:19 UTC by Dan Walters - Added lines 1012-1029: --- One feature I used to use in XEDIT style editors that I found very useful was selective line editing, where you could filter which lines are visible and operated upon with regular expressions. A description is here: http://www.kedit.com/techart.all.html For example, one could enter the following to only the show the <input/> tags in an html file:  all /input/  Then further filter by removing submit buttons:  less /submit/  All the hidden lines are still in the file and can easily be made visible, will be saved properly whenever you save the file, etc. But in the meantime, only the matching lines are visible. Other operations such as search and replace default to working only on the visible lines. This becomes very useful when doing mass search & replace operations, as you can easily see & filter all the relevant lines in the file beforehand, then just hit "Replace All". -- Dan Walters February 13, 2007, at 07:21 UTC by Tolmark - Changed lines 928-929 from: ''Is this in reference to the delay occurring when you click on a selected block of text to drag it? Is there any way to get rid of the delay?? I'm used to other editors which have no delay, and the delay is driving me bonkers :-) to: Is this in reference to the delay occurring when you click on a selected block of text to drag it? Is there any way to get rid of the delay?? I'm used to other editors which have no delay, and the delay is driving me bonkers :-) February 13, 2007, at 07:20 UTC by Tolmark - Added lines 928-931: ''Is this in reference to the delay occurring when you click on a selected block of text to drag it? Is there any way to get rid of the delay?? I'm used to other editors which have no delay, and the delay is driving me bonkers :-) --Mark February 12, 2007, at 09:02 UTC by Julian Dreißig - Changed line 1007 from: -- Julian Dreißig to: -- Julian Dreißig February 12, 2007, at 08:44 UTC by Julian Dreißig - Changed lines 1001-1007 from: --lawrence to: --lawrence Another vote for window-splitting, preferably side-by-side (have two tabs visible at the same time). -- Julian Dreißig January 25, 2007, at 17:47 UTC by Ryan - Added lines 185-187: What is a "foreign language"? Foreign coming from a monolingual American? When I log in to Mac OS X for the first time, I get to choose from a number of languages as my default, and can input and output in several dozen (hundred?) languages. I'm requesting including "libiconv" so that Textmate can seamlessly read and write regardless of encoding, but I am not going to write requesting that CJK text be supported - This is a BUG. Don't let someone tell you different. --Ryan \\ January 17, 2007, at 03:08 UTC by Maxime - Deleted line 204: January 17, 2007, at 02:36 UTC by Maxime - Added line 205: Added lines 207-210: I want textmate to support Chinese text! I would buy a license if he can do it, I guess it's not hard to do and I am ready to test that feature! --Maxime \\ January 09, 2007, at 22:18 UTC by Jonas Due Vesterheden - Added lines 1-6: Reverse Transpose It would be nice to have a command in Text→Convert that does the opposite of what "Transpose" does. It can be done for two single characters with a macro, but I think it would be somewhat more difficult with selections across lines and so on... -- Jonas Due Vesterheden January 04, 2007, at 00:35 UTC by Jonas Due Vesterheden - Added lines 1-5: Improve "Go to Line..." Make it possible to type something like 20,15 in the "Go to Line..." dialog in order to go to line 20, column 15. That would be very useful when debugging lexers/parsers on sample files. -- Jonas Due Vesterheden January 03, 2007, at 23:56 UTC by Daniel Lyons - Changed lines 17-20 from: to: I am! The demo Java app is very cool. -Daniel Lyons December 08, 2006, at 07:11 UTC by Martin Machacek - Added lines 567-568: I'd like to third that. This one the few features that I love in vim and really miss in TextMate. \\ November 30, 2006, at 06:00 UTC by Carsten - Added line 185: \\ Added line 188: \\ November 30, 2006, at 05:58 UTC by Carsten - Added lines 187-188: I also have to resort to BBEdit for Japanese text editing. Lack of CJK support is my only problem with TextMate, but it's a serious shortcoming. Hence another vote, in the hope turning "eventually" into "soon"... --Carsten\\ November 21, 2006, at 16:54 UTC by lawrence - Changed lines 972-973 from: I'd love a quick way for me to locate the end tag of an element in an HTML document if I know where the start tag is (and vice versa). And not just the next closing tag, but the *corresponding* closing tag, so that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>. to: I'd love a way to locate the end tag of an element in an (X)HTML document if I know where the start tag is (and vice versa). And not just the next closing tag, but the *corresponding* closing tag, so that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>. November 21, 2006, at 16:52 UTC by lawrence - Changed lines 972-973 from: Is there a quick way for me to locate the end tag of an element in an HTML document if I know where the start tag is (and vice versa)? And not just the next closing tag, but the corresponding closing tag? So that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>? to: I'd love a quick way for me to locate the end tag of an element in an HTML document if I know where the start tag is (and vice versa). And not just the next closing tag, but the *corresponding* closing tag, so that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>. November 21, 2006, at 16:51 UTC by lawrence - Changed lines 968-974 from: --Fred Nicollson to: --Fred Nicollson Is there a quick way for me to locate the end tag of an element in an HTML document if I know where the start tag is (and vice versa)? And not just the next closing tag, but the corresponding closing tag? So that, for instance, if you had an <a></a> in an <li></li> in a <div></div>, you could stick your cursor in the <div> and it would show you the </div>? --lawrence November 17, 2006, at 00:13 UTC by Fred - Changed lines 962-968 from: -- Wayne Allison to: -- Wayne Allison On the auto-compleation theme, but simply, doing closing tags, so there is <p>... then i type </ and the rest, p> is automaticaly put in --Fred Nicollson November 13, 2006, at 20:44 UTC by martin - Changed lines 411-413 from: to: ''In PHP the BOM cause trouble as it's the first characters in the file. It will then be sent before any call to session_start() or header() can be sent and thus a session cannot be initialized. -- Martin November 09, 2006, at 12:10 UTC by Luc Bourhis - Changed lines 537-538 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: I am afraid I must second that too: the undo character by character is really annoying and the reason of my love/hate relationship with TextMate. I rank undo by chunk as my number one requested feature by far. Added lines 539-541: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ November 05, 2006, at 14:03 UTC by Daniel - Changed lines 116-117 from: to: • I really need this, too. Maybe giving tab triggered new snippets higher preference over the nth jump in another snippet that is already inserted? -- Daniel November 02, 2006, at 19:16 UTC by Joseph - Changed line 532 from: Yet another vote on the undo behavior. Doing the undo in chunks is the de-facto standard in the Mac world. Deal breaker for me too. to: Yet another vote on the undo behavior. Doing the undo in chunks is the de-facto standard in the Mac world. Deal breaker for me too.\\ Changed lines 534-535 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Just switched from BBEdit after 11 years of use. This is the only thing that is still bothering me after the switch too. Have to throw in my vote as well.\\ Added lines 536-538: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ October 31, 2006, at 23:02 UTC by Wayne Allison - Added lines 948-955: It would be useful if within a Snippet the shell output from somecommand.sh (backticks) could be evaluated as a Snippet. As some of the Snippets, e.g. JUnit Test Class, have to jump through some hoops to create the correct default variable names. I think it would be useful for shell commands to create here documents that are evaluated as snippets, thus leveraging the language constructs of your favourite scripting language. -- Wayne Allison October 31, 2006, at 15:46 UTC by Bill Jameson - Changed lines 532-533 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Yet another vote on the undo behavior. Doing the undo in chunks is the de-facto standard in the Mac world. Deal breaker for me too. Added lines 534-536: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ October 30, 2006, at 20:51 UTC by James Andres - Changed lines 508-509 from: -- James Andres, "www.projectopus.com":http://www.projectopus.com to: -- James Andres, www.projectopus.com October 30, 2006, at 20:50 UTC by James Andres - Changed line 505 from: to: Changed lines 508-509 from: -- James Andres, "www.projectopus.com":http://www.projectopus.com to: -- James Andres, "www.projectopus.com":http://www.projectopus.com October 30, 2006, at 20:47 UTC by James Andres - Deleted lines 505-509: • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok\\ Added lines 507-514: And I guess I'll fifth that one, since we are at 1.5.x and the feature is still unimplemented (I think?). If it's available could somebody let poor ol' me know where it is? And if not, check out Kate (KDE linux text editor), they do soft wrapping perfectly. -- James Andres, "www.projectopus.com":http://www.projectopus.com • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok \\ October 28, 2006, at 15:43 UTC by Steve - Changed lines 526-527 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Wow, I'm throwing in my vote on this too. I looked at TextMate over a year ago and saw the developer's comment above. Looks like it's still doing the single character undo. I would say this is the single most glaring non mac-like feature of textmate and is certainly a deal-breaker for me too. Please please bump the importance of this up on the list. I guess it's back to BBedit again for now :(\\ Added lines 528-530: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ October 13, 2006, at 16:37 UTC by Kevin Cox - Changed lines 2-3 from: (:title Proportional Tabs:) to: Highlight Matching Variables/tokens/etc One feature I didn't notice I rely on so much in Eclipse is its context-sensitive highlighting. If the cursor is in a variable or function/class/etc name, it will highlight all instances of that thing in the current document. Also, in this vein, a command to "go to the first mention of this string" would be nice too - but that could be done fairly easily in the bundle editor, methinks. October 12, 2006, at 06:29 UTC by Arne Ehrlich - Added lines 930-933: It would be nice if spellchecking could be enabled only in certain scopes so that one could spellcheck (on typing in) in comments... -- Arne Ehrlich October 03, 2006, at 22:35 UTC by Greg Ferguson - Changed lines 921-929 from: If I copy a color hex value from Photoshop/ImageReady like to: (:title Proportional Tabs:) I want to be able to select columns using the keyboard and arrows, instead of having to grab the mouse. Again, this is a Vim ability that is really useful, especially when I'm trying to insert a column instead of change a selected column. I'd also like to have the ability to tell TM to align using an arbitrary character, not just the equates ('='). Also, how do we tell it the perltidy module to use a custom .perltidyrc? It seems to be ignoring my settings and I'd like the tidy function to be consistent with what I get when calling perltidy directly. This is tied to my previous paragraph, because I wanted to align some perl hashes on the '=>' operator and TM made them look like '= >', which made me dash for Vim to get the source looking like I want. -- Greg Ferguson September 15, 2006, at 15:52 UTC by Jackie McGhee - Changed lines 79-82 from: to: Extra Space at the Bottom Textmate REALLY needs to add some extra space to the bottom of a document or at least add a preference for it. I'm sick of my neck hurting as I reach the bottom of the available screen space. And fix the damn line numbers. September 05, 2006, at 11:03 UTC by Cédric Simon - Changed lines 914-918 from: -- Fletcher Penney to: -- Fletcher Penney If I copy a color hex value from Photoshop/ImageReady like August 04, 2006, at 23:02 UTC by Fletcher Penney - Changed lines 908-914 from: --Mike Coyle to: --Mike Coyle Is it possible to pass the current document to the completionCommand as stdin, rather than having to load the last saved version? It's counter-intuitive that only the last saved version of your document can be used for programmatically generating autocompletions. -- Fletcher Penney July 11, 2006, at 03:04 UTC by Mike Coyle - Changed lines 901-902 from: --- to: July 11, 2006, at 03:03 UTC by Mike Coyle - Changed lines 4-7 from: Proportional Tabs I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key. TextMate already has great support for hard and soft tabs, and I think that supporting this kind of tab in TextMate would be a killer feature, and simplify many lives greatly. (The link above even includes simple Java code to implement the tab algorithm.) to: Proportional Tabs I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key. TextMate already has great support for hard and soft tabs, and I think that supporting this kind of tab in TextMate would be a killer feature, and simplify many lives greatly. (The link above even includes simple Java code to implement the tab algorithm.) Added lines 900-908: --- It would be nice if Cmd-g following Ctrl-s would take you directly to the next match. This has been mentioned elsewhere, but highlighting all search term matches, like Vim's hlsearch option would be great. Ideally, I'd want Ctrl-s like behavior that incorporated regex-based search and the hlsearch capabilities of VIM. --Mike Coyle July 05, 2006, at 23:41 UTC by Devin Chalmers - Changed lines 1-4 from: (:title Proportional Tabs:) I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key. to: (:title Proportional Tabs:) Proportional Tabs I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key. Added lines 11-12: July 05, 2006, at 23:39 UTC by Devin Chalmers - Added lines 1-9: (:title Proportional Tabs:) I just saw this linked from Joel Spolsky's blog: http://nickgravgaard.com/elastictabstops/ . It's a suggestion to improve the behavior of tabs in text documents, by making tab characters acts as delimeters between cells, rather than a "move-the-cursor-to-a-multiple-of-x-spaces" key. TextMate already has great support for hard and soft tabs, and I think that supporting this kind of tab in TextMate would be a killer feature, and simplify many lives greatly. (The link above even includes simple Java code to implement the tab algorithm.) Anyone else interested in this? -Devin Chalmers July 04, 2006, at 06:13 UTC by karl - Added lines 163-164: Absolutely necessary to have CJK support. Right now it's impossible to code japanese characters in my HTML pages. (I'm forced to switch between bbedit and textmate to have proper editing, which is kind of painful). --karl\\ July 04, 2006, at 06:03 UTC by olivier - Added lines 161-163: And another vote for CJK support, double-width characters and kotoeri input method. I know it's not trivial, and I'm fine with waiting, but I have been hesitating for a long while before buying textmate, because of that issue, and I seriously hope that the fix will come, because switching to other apps to edit japanese text is not something I want to do forever... --olivier \\ June 26, 2006, at 17:30 UTC by Bill Woodcock - Changed lines 4-7 from: characters <tab> characters <tab> characters <cr> characters <tab> characters <tab> characters <cr>  one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel (which can only handle 65536 lines, anyway)!  to:  characters <tab> characters <tab> characters <cr> characters <tab> characters <tab> characters <cr>  one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel (which can only handle 65536 lines, anyway)! June 26, 2006, at 17:24 UTC by Bill Woodcock - Changed lines 3-4 from: I was a devoted user of Vantage/MacSink right up to the moment OSX stopped supporting OS9 backward-compatibility on my MacBook. One of the many features which made it indispensible to me was its ability to manipulate columns in textual data. That is, if one had text in the format "characters <tab> characters <tab> characters <cr> characters <tab> characters <tab> characters <cr>" one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel! to: I was a devoted user of Vantage/MacSink right up to the moment OSX stopped supporting OS9 backward-compatibility on my MacBook. One of the many features which made it indispensible to me was its ability to manipulate columns in textual data. That is, if one had text in the format characters <tab> characters <tab> characters <cr> characters <tab> characters <tab> characters <cr>  one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel (which can only handle 65536 lines, anyway)!  June 26, 2006, at 17:19 UTC by Bill Woodcock - Added lines 1-9: (:title Column Manipulation:) I was a devoted user of Vantage/MacSink right up to the moment OSX stopped supporting OS9 backward-compatibility on my MacBook. One of the many features which made it indispensible to me was its ability to manipulate columns in textual data. That is, if one had text in the format "characters <tab> characters <tab> characters <cr> characters <tab> characters <tab> characters <cr>" one could use menu commands to move the second column to the left of the first column, cut copy and paste by columns, et cetera. There was also conversion between space-delimited and tab-delimited columns. And very good wildcard support in both target and replacement values in search-and-replace. But that's another story. Please liberate me from having to switch back and forth between Textmate and Excel! Thanks, -Bill Woodcock June 03, 2006, at 12:52 UTC by Denis Gesbert - Added line 4: Added lines 7-868: "Edit each Line" should function properly. Ticketsystem won´t take my bug so i post it here: Here´s the file i wanted to edit (Just copypaste it in new textmate document and you´ll see). I wanted to remove all the "<?=fb_prefix?>" parts. For that i think the Edit each Line- Feature would be suitable.

What did i do? Selected all the lines containing the snippet i wanted to remove, activated "Edit each Line", then put mousecoursor to the right point in the first line and then i started pressing the "backwards-delete" key.

What was expected? Removal of all the occurences of "<?=$fb_prefix?>" in all selected Lines. What happened instead? In every line something was deleted - b u t - not the snippet (even though it had the same position in each line) (i put a result of it in the end of this message). Original File:  <ul id="navlist"> <li><a href="<?=$fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li>
<li><a href="<?=$fb_prefix?>partnerprogramme.php" id="partnernav">Partnerprogramme</a></li> <li><a href="<?=$fb_prefix?>produktportfolio.php" id="prodportnav">Produkt Portfolio</a></li>
<li><a href="<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li> <li><a href="<?=$fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li>
<li><a href="<?=$fb_prefix?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li> <li><a href="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li>
</ul>


Result of described action above (pressing forw del several times):

	<ul id="navlist">
<li><a href="fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li>
<li><a href="<?=$fb_prefiartnerprogramme.php" id="partnernav">Partnerprogramme</a></li> <li><a href="<?=$fb_prefix?duktportfolio.php" id="prodportnav">Produkt Portfolio</a></li>
<li><a h"<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li> <li><a href="fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li> <li><a href="<?=$fb_pr?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li>
<li><ef="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li> <li><a href="login.html" onclick="popUp(this.href); return false;" id="loginnav"><b>Login</b></a></li> </ul>  Comment folding especially for DOCComments. I have classes with lenghty documentation for doxygen. Filenames for Autocompletion It would be very nice to have all the filenames which are currently associated with the project (all the files in the project-drawer) available for autocompletion via ESC. =#ExtremeCandy#= would be if being inside an include("") would trigger not only the insertion of the filename but also the path to that file relative to the current one. (The latter would be incredibly useful since - having multiple folders from possibly totally different "levels" added to the project - the project drawer does not give any insight to questions like "how many times to i need to walk upwards to get to this file?hrmm..". Right now i have to switch to finder to complete tasks like that) (^-^) Arnski I figured out how to solve my problem (through the bundle editor), so you can now ignore my suggestion. ~David Dennis • For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. ~Phillip • Regex Syntax Highlighting in Find/Replace (while searching with regex) --David • Nested Tab Triggers When hitting tab to go between tabstops in a snippet, you aren't able to use another tab triggered-snippet at the current stop. This would be useful for example, in LaTeX if you want to add an equation containing the ratio of integrals, and you have a \frac snippet and a \int snippet, both using tab triggers. Not sure of an obvious mechanism for enabling this, maybe something like ctrl-tab? Has someone mentioned this already? -- Jim Bagrow • Overloaded snippets / multi-snippets. I often find myself generating a dozen or more snippets, all with the same tab trigger, so I can get a popup menu to select from. Allan suggested doing just this to get a menu of greek letters in LaTeX. It's really cumbersome to create a lot of these snippets all at once. Would it be useful to come up with some syntax for defining all the separate snippets in one dialog? I imagine some kind of switch statement or other way to list menu_name => snippet_text, all having the same activation and scope. Something to generate that menu all at once would be handy! What do you guys think? -- Jim Bagrow • Please bring back the replace in selection option in find and replace, this is something I used often. -- David • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow • Thats exactly what I was looking for. Although IMHO the checkbox option was a better solution, because it let you perform all of the actions to selected text. --David • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F • Gutter shouldn't move when scrolling right/left (bug?) • Window Splitting support, please! please! • Bindinds for commenting selection. • On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr This exists now in the "Source" bundle: ⌘/ will toggle comments for the selected text. -- Brad Choate • The ability to use scopes for filtering the target of a find/replace. The use case here is for search/replace in an HTML document where you don't want to affect any tags or attribute elements within those tags. -- Brad Choate • Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. -- UltraBob • The ability to undo while the find/replace dialogue is foregrounded would be a great help for when you aren't sure of your regex. • Two jEdit functions that make life easier :) • Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g: if (true) { do something } Pressing Home would put the cursor on "d". • When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block. http://x12.putfile.com/11/32911563076.png -- yoav • Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors. --kL ⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤ -- Allan Odgaard I would second this aswell. Is there no way to even configure this? -- scoopr I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald • Foreign Language Support I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool. --Sam Another vote for CJK support. --Shun A third vote for CJK support. Yee haw! --Martin A fourth vote for CJK support. TextMate becomes lately really useless to me because of the missing CJK support. --Niels This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering. -- Allan Odgaard * Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!) This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle. -- Allan Odgaard Not sure how to do the whole submit thing but here's the code I've come up with: File Types: png, jpeg, jpg, gif Command(s): img="$TM_DROPPED_FILE"echo "background-image: url('$img');"sips -g pixelWidth -g pixelHeight "$img" \| awk '/pixelWidth/ { printf("width: %d;\n", $2) } /pixelHeight/ { printf("height: %d;",$2) }'

Output: Insert as Snippet
Scope Selector: source.css

-- Ben Perry

* Also character and word counts would be nice in the status bar.
-- Shmuel

⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version.
-- Allan Odgaard

• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.

The tab size (and soft tabs) is now in the status bar, I've updated the FAQ.
-- Allan Odgaard
• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith

The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.
-- Allan Odgaard
• I have some small suggestions, they may be silly (or already exist?):
1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie.
2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1,$array2, array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful. 3. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash. Thanks again for an awesome app! - Jim Bagrow • In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow). Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature. Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same. -- Allan Odgaard Try select all, then up or down arrow • A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing. It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this. -- Allan Odgaard • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow. TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard. -- Allan Odgaard • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work. I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you? -- Allan Odgaard • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces. -- Allan Odgaard Actually, that is perfect. I hadn't noticed that command before. Thanks! \\- I don't like selection, I prefer simple "Jump to matching brace" function. • Make the incremental search bar more like FireFox's: http://scribes.sourceforge.net/search.png • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. --Jo Campos • Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php):a = array('one',
'two',
'three');
The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.)
-- Zack Charter
• I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit.
• I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line.
• I'd like to 'fourth' it. There are a few features that make emacs the best, and TextMate has most of them. Sophisticated, intelligent indenting, unfortunately, it lacks. This probably needs to be customizable by bundles as well, not sure if it is now or not.
• fifth - I really miss my indents not lining up 'properly' on multi-line function definitions. -- Graham MacDonald
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?

TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.
-- Allan Odgaard
• Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it.

All in good time…
-- Allan Odgaard
• Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard

Beautiful, thanks -- Douglas
• this page makes no sens... how come you are not using Trac or Bugzilla ?

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).
-- Allan Odgaard
• Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.

I went with FogBugz
-- Allan Odgaard

• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.

Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.

Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:
{ name = "comment.block.preprocessor.c";
 begin = "^\\s*#\\s*if\\s*0\\s*$";  end = "^\\s*#\\s*(else|endif)\\s*$";
},
Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).
-- Allan Odgaard
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though. -- Allan Odgaard See BugReporting for more detail on reporting bugs. • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. Version 1.1b6 and onward has scopes for this. -- Allan Odgaard • Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature. • XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS. • Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot. wouldn't just select all > copy > new document > paste do the same thing? -> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature. • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) See e.g. this letter for how to change the default completion command (to search more buffers). -- Allan Odgaard • The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions). • I second this request -- Ben Linton • Thirded. This is a de facto standard. • It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right. -- Allan Odgaard • Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document. TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings) Update: also see this blog entry for instructions. -- Allan Odgaard • Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line) • How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help. • Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723 Since TextMate is a general purpose text editor, chances for this feature are slim. -- Allan Odgaard But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider. --jrk Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6). -- Allan Odgaard • Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command. -- Allan Odgaard True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps? -- riaiN (new here) • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)? -- Allan Odgaard • Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :) --Zila Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy. --Komor • Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something? I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug. If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function. -- Allan Odgaard I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created. Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up. -- Allan Odgaard By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this? This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton • SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature. If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key. Update: actually, a snippet with { as key equivalent is probably more appropriate. -- Allan Odgaard • shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent. Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide: "$\U007F" = "deleteForward:";
-- Allan Odgaard

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes) The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically$ means shift, and \U007F is the key code for delete.
-- Allan Odgaard
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.
-- Allan Odgaard
Update: See e.g. this ML post for an example macro that closes current tag when typing '</'.
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.

For the latter, there is Find in Project.
-- Allan Odgaard
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).

Can you clarify?

I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more.

Okay, this could probably be done by a macro that does a conditional regexp replace on the space, and then the return. See e.g. the “Overtype ')'” in the Lisp bundle, which conditionally overtypes the ')' character.
-- Allan Odgaard
• Modifying the Indented Paste behavior
• I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one?
-- David Tolpin

It's possible to press ⇧⌘B to select the current block.
-- Allan Odgaard
i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me.
-- Torsten Becker
• When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines.
-- Mike Powell

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...
-- St. Chris

I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent.
-- Dan Barber

And I'll fourth that one. I have Xcode.app set to work this way. That is, the soft-wrapped part indented one level beyond the non-wrapped part of the line.
-- Daniel Ericsson

This is planned for 1.3 (yes, distant future)
-- Allan Odgaard
• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok

As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote.
-- Anonymous

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?

No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work.
-- Allan Odgaard

Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves

I'm going to have to agree on the Undo behavior. It's a complete deal breaker. TextMate is lamed with the current method.

• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.

Drag & Drop too. mmm...
• Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document.
--Reid Orsten
• Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode.

This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F.

You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense.
-- Allan Odgaard
• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?

-->I'd like to second the highlight "every" instance request - Vim does it this way too.

Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted.
-- StuartWheeler
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.

Yes, this will be fixed real soon now :)
-- Allan Odgaard
• Toggle Foldings at level: More levels?

1.1b6 and onward now has 9 levels, enjoy!
-- Allan Odgaard
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)
-- Allan Odgaard
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.
-- Allan Odgaard
• Tab / Shift-Tab to indent / unindent selected blocks

Use option-tab / shift-option-tab
-- Allan Odgaard
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.

As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab.
-- Allan Odgaard
• Home / End "Wintel" emulation (hard for switchers)

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'

After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.
-- Allan Odgaard
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?

Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added).
-- Allan Odgaard
• A small bug in the Ruby syntax highlighting. Regular expressions inside of curly braces that end in ',', '%', '&', and possibly other characters act as if as though they're unterminated. Example: a = { /hi,/ => "Hi" }

(Oh, and Textmate has almost single-handedly been responsible for convincing me to buy a Mac. If I do shell out for an iBook, Textmate will be the first thing I buy and install.)

• Is there any capacity for multiple-keystroke shortcuts? Specifically, when editing LaTeX in jEdit, I found it very convenient to be able to define shortcuts for Greek letters that all took the form ctrl-shift-g <next char>, e.g., 'CS-g a' for \alpha, etc. I would love for simiilar functionality to be present in TextMate (and its presence would virtually guarantee that I purchase a license). Thanks!
--Eric Malm

What you can do is, create snippets for your miscellaneous Greek letters and give them all the same key equivalent, then TextMate will show a menu when you press that key (and the menu has keyboard support, including typing letters to select the entry starting with that letter)
-- Allan Odgaard
• (Not sure this is the right place). In the latex bundle, folding footnotes (ala LyX) would greatly increase readability.
This is only one\footnote{This is a footnote, I've already lost track of the sentence I was reading...} sentence.
We'd have:
This is only one\footnote{...} sentence.
-- Gabriel Ripoche

XCode/Script Editor style Auto Completion I think it would be best if code completion worked like the Tiger ScriptEditor application, where the best code completion appears to the right of the caret in grey letters and escape completes it. In the case of multiple possibilities the matching characters are placed to the right of the caret and an ellipses is used to denote the presence of more than one completion. Hitting escape then brings up a menu like Dreamweaver, etc.

I think this would be the best compromise, and of course would be exactly the thing to finally woo me away from BBEdit for good.

--Errol Sayre

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.
• Added in 1.1b3 (Run Commands > Text Utilities)
• Remove trailing spaces from end of line.
--Mark Patterson

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: “” Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression” -- Allan Odgaard • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice. Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin I'll add it to beta 4 (sorry about not getting it done for the beta just released) Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 • Better "smart typing" with quotes -- Mike Powell • Added in 1.1b5 • Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding) Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha! You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape). I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is. Yes, it can be changed. See Help / Key bindings for info. -- Allan Odgaard • Use the Safari key shortcuts to change tabs. The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding. These requests belong to the bundle page! :) -- Allan Odgaard • I use the alternate syntax in PHP, that is: if ($something == that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets. If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end. Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened. You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list). • Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation. For example: if(this) {
if($that) { _ } } Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have. BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason) • What about a VIM compatibility mode? I'm not kidding, this would be very nice. wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :) It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in. -- Allan Odgaard • How can i make the new document default to a specific language, i.e. HTML? Why is this under suggestions? Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running): defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is the UUID of the language you want to be default. -- Allan Odgaard • Is there a way to default all tags, in HTML, to be UPPERCASE? Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these. But consider switching to lowercase, since I think that's mandatory with XHTML. -- Allan Odgaard Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines. Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out. Horizontal scrolling is extremely slow, much slower than vertical. All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems. -- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text. On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems. When pasting indented text the original indents arent respected. Disable re-indent pasted text in preferences if it doesn't work for you. The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection. This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present. I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection. What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself. Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it. Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period! Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen. This has been tried, but the tooltip was always in the way, so it got removed again. Likewise, full path tooltip for the tabs. They already have that. I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";  begin = "<!---"; end = "--->"; patterns =({ include = "comment.block.cfml"; });  } But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules. btw: generally send these type of questions to the mailing list. -- Allan Odgaard there's room for improvement in python support... (do it and I'll shell out my filthy euros!) • folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'( • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands. -- Allan Odgaard Yes but then YOU'll have to pay me$39 ;) Just joking, I'll have a look at it -- could be fun ;)

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! -- Domenico

Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository.

-- Allan Odgaard

now you can check PyMate and DocMate development on http://pymate.blogspot.com, my first DevBlog. There's a BerliOS project (linked from the blog) where you can download the latest-and-greatest-and-most-unstable releases before they go in the SVN repository. Have a nice ride!

-- Domenico

I normall use Emacs with the PHP-mode.el installed. This has a great auto-indent feature, which is activated by pressing Tab. It will shift the line of text to increase.decrease indent, in relation to line above. If I come across a messy PHP file I just open it in Emacs and press Tab for every line, starting from top. You then end up with a beautifully formatted page, very quickly. Is there any way this can be acieved with Text Mate ?

--Will Macdonald

No, not without an external code beautifier to run your buffer through.
-- Allan Odgaard

• Found a bug with the syntax coloring for Perl, regarding "hereto" syntax. It works for the general case:

my $var = <<END; Some text to set the var to END  But, it doesn't work when the end delimiter is surrounded by parenthesis: $object->print (<<END);
Some text to send to the "print" method of object
END

The syntax parser doesn't recognize the end delimiter. The syntax coloring corrects itself if you make the delimiter "END)", but that won't compile in Perl properly.
-- Darrell N.
• When invoking the find action, it would be nice if the find selection would be what my cursor selection is.

That would (sort of) make ⌘F destroy the shared find clipboard. Using the selection for find also seems counterproductive in combination with “Replace in Selection”. Learn to use the shared find clipboard, and I'm sure you will rarely see a reason to even open the find dialog (for other than stuff like e.g. the “Replace in Selection”).
-- Allan Odgaard
• I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window.

--Bob Hicks

• I'd like the wrap boundary to be invisible, or let me se its color. Currently, it's gray in that region even when I have wrapping off. EmEditor does a nice job with the various wrapping modes and it's not as intrusive as a big gray region (which may or may not actually provide me with any information that I need).

--G. Carpenter

• It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode.

--Nick Brosnahan

• On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite..

-- Jon

On Mac there's a shared find clipboard, press command E with a selection, and it's copied to that, and will be in the dialog when you open it, but you actually don't need to, just press command G to find next occurrence. Placing the selection in the find dialog would sort of go against this shared find clipboard and would be counter productive for “replace in selection” operations.
-- Allan Odgaard

• It'd be nice if language definitions could set up scopes in which folding markers could be ignored. In my Lua files, I'm noticing folding-start markers in the margin whenever a comment or string literal contains "if" or "for" (which is kinda often). Aside from the visual pollution, this seems to keep clicking the folding-end markers from collapsing the fold correctly. (I'm seeing this less often in C-based languages, but only because I'm less likely to use unbalanced {} in comments and strings there).

-- Rick Roe

Currently not a simple change, but the folding system will (most likely) see some updating in 1.3
-- Allan Odgaard

• Add folding for if statements in javascript. It would be nice to be able to fold up your if/else statements at the braces. I know this can be done in the bundle editor, but I don't know how and I think it should be a default.

--Braxton Beyer

• Earlier someone asked for VI keybindings, and I understand what you're saying about modeless operation. If it can't be done, then it can't be done. However, if it could it would be very valuable to a lot of people. For VI addicts, switching to a non-vi editor can be very painful, with lots of stray characters showing up in the text. I am sure you are right that you can do most things with the keyboard, however, moving around with arrow keys is a lot slower for a fast typist than using home-row keys is. I can work very quickly within regions of text with vim.

--Mark Bainter

• I would like to see bracket/parenthesis code selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted. Kind of like what the command+shift+D command does, but I would rather doube click using the mouse.

--Reese

The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese.

Difference Editing similar to BBEdit's "Find Differences" command. The key thing I'm looking for is to be able to pull up two files side by side, and be able to easily merge changes from one to the other right there, without having to save a new file like Apple's FileMerge. The BBEdit implementation of this feature is really well polished now, and I'd love to see something like it show up in a future version of TM.

In the meantime, I attempted to write an Applescript that I could have called from a TM command that would take the two frontmost windows and send them to the bbdiff command line tool or to FileMerge. The problem seemed to be that although the Applescript dictionary for TM shows that documents of windows are accessible via Applescript, it didn't seem to work in practice.

When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging.

How about Dreamweaver or JBuilder style drop down autocompletion? For example, in a Javascript situation, after I hit "." it could show the list of available methods or in HTML, it could show the various style options when in a style or CSS attribute list.

The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a work-around for this? A plug-in perhaps? --Tyson

Some form of intuitive, mouseless, arrowless navigation would be very nice. Moving my hands to and from the arrow keys for simple movements really breaks up my flow -- the mouse even more so . Snippets are an amazing leap in productivity, but without efficient basic navigation, I can't afford to migrate from vim.

--Dan

Amen. You must understand I've been using vi/vim for 25 years now. Leaving the vi keybindings would be like using a dvorak keyboard. I *want* TextMate and I'd be delighted to pay for it, but if the basics don't work I'm stuck. --PeterMerel.

It would be nice if the Go to Symbol keystroke (Cmd-Shift-T) would also work to close the Go to Symbol palette if it's already open. --Ken

June 03, 2006, at 12:51 UTC by Denis Gesbert -
Changed lines 3-864 from:

"Edit each Line" should function properly. Ticketsystem won´t take my bug so i post it here:

Here´s the file i wanted to edit (Just copypaste it in new textmate document and you´ll see). I wanted to remove all the "<?=$fb_prefix?>" parts. For that i think the Edit each Line- Feature would be suitable. What did i do? Selected all the lines containing the snippet i wanted to remove, activated "Edit each Line", then put mousecoursor to the right point in the first line and then i started pressing the "backwards-delete" key. What was expected? Removal of all the occurences of "<?=$fb_prefix?>" in all selected Lines.

What happened instead? In every line something was deleted - b u t - not the snippet (even though it had the same position in each line) (i put a result of it in the end of this message).

Original File:

	<ul id="navlist">
<li><a href="<?=$fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li> <li><a href="<?=$fb_prefix?>partnerprogramme.php" id="partnernav">Partnerprogramme</a></li>
<li><a href="<?=$fb_prefix?>produktportfolio.php" id="prodportnav">Produkt Portfolio</a></li> <li><a href="<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li>
<li><a href="<?=$fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li> <li><a href="<?=$fb_prefix?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li>
<li><a href="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li> <li><a href="login.html" onclick="popUp(this.href); return false;" id="loginnav"><b>Login</b></a></li> </ul>  Result of described action above (pressing forw del several times):  <ul id="navlist"> <li><a href="fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li> <li><a href="<?=$fb_prefiartnerprogramme.php" id="partnernav">Partnerprogramme</a></li>
<li><a href="<?=$fb_prefix?duktportfolio.php" id="prodportnav">Produkt Portfolio</a></li> <li><a h"<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li>
<li><a href="fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li>
<li><a href="<?=$fb_pr?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li> <li><ef="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li>
</ul>


Comment folding especially for DOCComments. I have classes with lenghty documentation for doxygen.

Filenames for Autocompletion

It would be very nice to have all the filenames which are currently associated with the project (all the files in the project-drawer) available for autocompletion via ESC.

=#ExtremeCandy#= would be if being inside an include("") would trigger not only the insertion of the filename but also the path to that file relative to the current one.

(The latter would be incredibly useful since - having multiple folders from possibly totally different "levels" added to the project - the project drawer does not give any insight to questions like "how many times to i need to walk upwards to get to this file?hrmm..". Right now i have to switch to finder to complete tasks like that) (^-^)

Arnski

I figured out how to solve my problem (through the bundle editor), so you can now ignore my suggestion. ~David Dennis

• For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. ~Phillip
• Regex Syntax Highlighting in Find/Replace (while searching with regex) --David

• Nested Tab Triggers When hitting tab to go between tabstops in a snippet, you aren't able to use another tab triggered-snippet at the current stop. This would be useful for example, in LaTeX if you want to add an equation containing the ratio of integrals, and you have a \frac snippet and a \int snippet, both using tab triggers. Not sure of an obvious mechanism for enabling this, maybe something like ctrl-tab? Has someone mentioned this already? -- Jim Bagrow
• Overloaded snippets / multi-snippets. I often find myself generating a dozen or more snippets, all with the same tab trigger, so I can get a popup menu to select from. Allan suggested doing just this to get a menu of greek letters in LaTeX. It's really cumbersome to create a lot of these snippets all at once. Would it be useful to come up with some syntax for defining all the separate snippets in one dialog? I imagine some kind of switch statement or other way to list menu_name => snippet_text, all having the same activation and scope. Something to generate that menu all at once would be handy! What do you guys think? -- Jim Bagrow
• Please bring back the replace in selection option in find and replace, this is something I used often. -- David
• When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow
• Thats exactly what I was looking for. Although IMHO the checkbox option was a better solution, because it let you perform all of the actions to selected text. --David

• Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg

• Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F

• Gutter shouldn't move when scrolling right/left (bug?)
• Bindinds for commenting selection.
• On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr

This exists now in the "Source" bundle: ⌘/ will toggle comments for the selected text. -- Brad Choate
• The ability to use scopes for filtering the target of a find/replace. The use case here is for search/replace in an HTML document where you don't want to affect any tags or attribute elements within those tags. -- Brad Choate
• Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. -- UltraBob
• The ability to undo while the find/replace dialogue is foregrounded would be a great help for when you aren't sure of your regex.
• Two jEdit functions that make life easier :)
• Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g:

if (true) {
do something
}

Pressing Home would put the cursor on "d".
• When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block.
http://x12.putfile.com/11/32911563076.png
-- yoav
• Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors.
--kL

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤
-- Allan Odgaard

I would second this aswell. Is there no way to even configure this? -- scoopr

I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald
• Foreign Language Support

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.
--Sam

Another vote for CJK support.
--Shun

A third vote for CJK support. Yee haw!
--Martin

A fourth vote for CJK support. TextMate becomes lately really useless to me because of the missing CJK support.
--Niels

This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering.
-- Allan Odgaard

* Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)

This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle.
-- Allan Odgaard

Not sure how to do the whole submit thing but here's the code I've come up with:

File Types: png, jpeg, jpg, gif
Command(s):
img="$TM_DROPPED_FILE"echo "background-image: url('$img');"sips -g pixelWidth -g pixelHeight "$img" \| awk '/pixelWidth/ { printf("width: %d;\n",$2) } /pixelHeight/ { printf("height: %d;", $2) }' Output: Insert as Snippet Scope Selector: source.css -- Ben Perry * Also character and word counts would be nice in the status bar. -- Shmuel ⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version. -- Allan Odgaard • Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit. The tab size (and soft tabs) is now in the status bar, I've updated the FAQ. -- Allan Odgaard • I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected. -- Allan Odgaard • I have some small suggestions, they may be silly (or already exist?): 1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie. 2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1, $array2,$array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful.
3. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash.
Thanks again for an awesome app! - Jim Bagrow
• In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow).

Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature.

Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same.
-- Allan Odgaard

Try select all, then up or down arrow

• A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing.

It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this.
-- Allan Odgaard
• I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.

TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.
-- Allan Odgaard
• Click on line number in gutter should select entire line (style of many Windows editors)
• Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.

I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?
-- Allan Odgaard
• Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost
• I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.

The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces.
-- Allan Odgaard

Actually, that is perfect. I hadn't noticed that command before. Thanks!
\\- I don't like selection, I prefer simple "Jump to matching brace" function.
• Make the incremental search bar more like FireFox's:

http://scribes.sourceforge.net/search.png

• Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks.
--Jo Campos
• Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php):

a = array('one', 'two', 'three'); The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.) -- Zack Charter • I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit. • I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line. • I'd like to 'fourth' it. There are a few features that make emacs the best, and TextMate has most of them. Sophisticated, intelligent indenting, unfortunately, it lacks. This probably needs to be customizable by bundles as well, not sure if it is now or not. • fifth - I really miss my indents not lining up 'properly' on multi-line function definitions. -- Graham MacDonald • How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now? TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria. -- Allan Odgaard • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. All in good time… -- Allan Odgaard • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments. You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks! -- Allan Odgaard Beautiful, thanks -- Douglas • this page makes no sens... how come you are not using Trac or Bugzilla ? I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own). -- Allan Odgaard • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it. I went with FogBugz -- Allan Odgaard • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment. Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc. Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule: { name = "comment.block.preprocessor.c";  begin = "^\\s*#\\s*if\\s*0\\s*";
 end = "^\\s*#\\s*(else|endif)\\s*$"; }, Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well). -- Allan Odgaard • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0
when you change first, and jumps to the next field (Tab) ,
second is supposed to be selected, but instead the whole text is selected.
- Sune Simonsen

That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.
-- Allan Odgaard

See BugReporting for more detail on reporting bugs.
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.

Version 1.1b6 and onward has scopes for this.
-- Allan Odgaard
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature.
• XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS.
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.

wouldn't just select all > copy > new document > paste do the same thing?

-> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.
• Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.)

See e.g. this letter for how to change the default completion command (to search more buffers).
-- Allan Odgaard
• The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions).
• I second this request -- Ben Linton
• Thirded. This is a de facto standard.
• It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right.
-- Allan Odgaard
• Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document.

TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings)

Update: also see this blog entry for instructions.
-- Allan Odgaard
• Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line)
• How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help.
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723

Since TextMate is a general purpose text editor, chances for this feature are slim.
-- Allan Odgaard

But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider.
--jrk

Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).
-- Allan Odgaard
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek

Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.
-- Allan Odgaard

True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps?
-- riaiN (new here)
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?
-- Allan Odgaard
• Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :)
--Zila
Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy.
--Komor
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.

If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.
-- Allan Odgaard

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.

Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.
-- Allan Odgaard

By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.

Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton
• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.

If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.

Update: actually, a snippet with { as key equivalent is probably more appropriate.
-- Allan Odgaard
• shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton

This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent.

Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide:
"$\U007F" = "deleteForward:"; -- Allan Odgaard I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-) (Wes)

The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically $means shift, and \U007F is the key code for delete. -- Allan Odgaard • transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function. Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future. -- Allan Odgaard Update: See e.g. this ML post for an example macro that closes current tag when typing '</'. • Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc. For the latter, there is Find in Project. -- Allan Odgaard • Selecting the newline character • An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on). Can you clarify? I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. Okay, this could probably be done by a macro that does a conditional regexp replace on the space, and then the return. See e.g. the “Overtype ')'” in the Lisp bundle, which conditionally overtypes the ')' character. -- Allan Odgaard • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin It's possible to press ⇧⌘B to select the current block. -- Allan Odgaard • Please bring back the behaviour-menu. i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me. -- Torsten Becker • When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines. -- Mike Powell I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me... -- St. Chris I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber And I'll fourth that one. I have Xcode.app set to work this way. That is, the soft-wrapped part indented one level beyond the non-wrapped part of the line. -- Daniel Ericsson This is planned for 1.3 (yes, distant future) -- Allan Odgaard • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok Reply: http://lists.macromates.com/pipermail/textmate/2004-December/002080.html As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote. -- Anonymous This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list? No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work. -- Allan Odgaard Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves I'm going to have to agree on the Undo behavior. It's a complete deal breaker. TextMate is lamed with the current method. • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. Drag & Drop too. mmm... • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode. -- Peter Traskalik Already there - Ctrl-s This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F. You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense. -- Allan Odgaard • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? -->I'd like to second the highlight "every" instance request - Vim does it this way too. Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted. -- StuartWheeler • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project. Yes, this will be fixed real soon now :) -- Allan Odgaard • Toggle Foldings at level: More levels? 1.1b6 and onward now has 9 levels, enjoy! -- Allan Odgaard • How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way... --Tony Arnold The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :) -- Allan Odgaard • XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>. -- Allan Odgaard • Tab / Shift-Tab to indent / unindent selected blocks Use option-tab / shift-option-tab -- Allan Odgaard • I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour. As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab. -- Allan Odgaard • Home / End "Wintel" emulation (hard for switchers) Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands: mkdir ~/Library/KeyBindings echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }' After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line. -- Allan Odgaard • Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate? Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added). -- Allan Odgaard • A small bug in the Ruby syntax highlighting. Regular expressions inside of curly braces that end in ',', '%', '&', and possibly other characters act as if as though they're unterminated. Example: a = { /hi,/ => "Hi" } (Oh, and Textmate has almost single-handedly been responsible for convincing me to buy a Mac. If I do shell out for an iBook, Textmate will be the first thing I buy and install.) • Is there any capacity for multiple-keystroke shortcuts? Specifically, when editing LaTeX in jEdit, I found it very convenient to be able to define shortcuts for Greek letters that all took the form ctrl-shift-g <next char>, e.g., 'CS-g a' for \alpha, etc. I would love for simiilar functionality to be present in TextMate (and its presence would virtually guarantee that I purchase a license). Thanks! --Eric Malm What you can do is, create snippets for your miscellaneous Greek letters and give them all the same key equivalent, then TextMate will show a menu when you press that key (and the menu has keyboard support, including typing letters to select the entry starting with that letter) -- Allan Odgaard • (Not sure this is the right place). In the latex bundle, folding footnotes (ala LyX) would greatly increase readability. Instead of having something like: This is only one\footnote{This is a footnote, I've already lost track of the sentence I was reading...} sentence. We'd have: This is only one\footnote{...} sentence. -- Gabriel Ripoche XCode/Script Editor style Auto Completion I think it would be best if code completion worked like the Tiger ScriptEditor application, where the best code completion appears to the right of the caret in grey letters and escape completes it. In the case of multiple possibilities the matching characters are placed to the right of the caret and an ellipses is used to denote the presence of more than one completion. Hitting escape then brings up a menu like Dreamweaver, etc. I think this would be the best compromise, and of course would be exactly the thing to finally woo me away from BBEdit for good. --Errol Sayre Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions). I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) • Remove trailing spaces from end of line. --Mark Patterson I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace: “”
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”
-- Allan Odgaard
• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.

Try View -> Gutter -> Line Numbers (option-cmd-L).
-- Allan Odgaard
• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.
-- David Tolpin

I'll add it to beta 4 (sorry about not getting it done for the beta just released)

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.
• 1.1b4
• Better "smart typing" with quotes
-- Mike Powell
• Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding)

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).
• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).
• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

Yes, it can be changed. See Help / Key bindings for info.
-- Allan Odgaard
• Use the Safari key shortcuts to change tabs.

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html
• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.

These requests belong to the bundle page! :)
-- Allan Odgaard
• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

• Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation.
For example:
if($this) { if($that) {
_
}
}

Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have.
BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason)
• What about a VIM compatibility mode? I'm not kidding, this would be very nice.

wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :)

It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in.
-- Allan Odgaard
• How can i make the new document default to a specific language, i.e. HTML?

Why is this under suggestions?
Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running):
defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6'
The long alpha-numeric code is the UUID of the language you want to be default.
-- Allan Odgaard
• Is there a way to default all tags, in HTML, to be UPPERCASE?

Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these.
But consider switching to lowercase, since I think that's mandatory with XHTML.
-- Allan Odgaard

Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines.

Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out.

Horizontal scrolling is extremely slow, much slower than vertical.

All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems.

-- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text.

On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems.

When pasting indented text the original indents arent respected.

Disable re-indent pasted text in preferences if it doesn't work for you.

The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection.

This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present.

I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection.

What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself.

Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it.

Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period!

Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen.

This has been tried, but the tooltip was always in the way, so it got removed again.

Likewise, full path tooltip for the tabs.

I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";

	begin = "<!---";
end = "--->";
patterns =({ include = "comment.block.cfml"; });


} But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe?

Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules.

btw: generally send these type of questions to the mailing list. -- Allan Odgaard

there's room for improvement in python support... (do it and I'll shell out my filthy euros!)

• folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'(
• when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'(

Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands.
-- Allan Odgaard

Yes but then YOU'll have to pay me $39 ;) Just joking, I'll have a look at it -- could be fun ;) pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! -- Domenico Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository. -- Allan Odgaard now you can check PyMate and DocMate development on http://pymate.blogspot.com, my first DevBlog. There's a BerliOS project (linked from the blog) where you can download the latest-and-greatest-and-most-unstable releases before they go in the SVN repository. Have a nice ride! -- Domenico I normall use Emacs with the PHP-mode.el installed. This has a great auto-indent feature, which is activated by pressing Tab. It will shift the line of text to increase.decrease indent, in relation to line above. If I come across a messy PHP file I just open it in Emacs and press Tab for every line, starting from top. You then end up with a beautifully formatted page, very quickly. Is there any way this can be acieved with Text Mate ? --Will Macdonald No, not without an external code beautifier to run your buffer through. -- Allan Odgaard • Found a bug with the syntax coloring for Perl, regarding "hereto" syntax. It works for the general case:  my$var = <<END;
Some text to set the var to
END

But, it doesn't work when the end delimiter is surrounded by parenthesis:

$object->print (<<END); Some text to send to the "print" method of object END  The syntax parser doesn't recognize the end delimiter. The syntax coloring corrects itself if you make the delimiter "END)", but that won't compile in Perl properly. -- Darrell N. • When invoking the find action, it would be nice if the find selection would be what my cursor selection is. That would (sort of) make ⌘F destroy the shared find clipboard. Using the selection for find also seems counterproductive in combination with “Replace in Selection”. Learn to use the shared find clipboard, and I'm sure you will rarely see a reason to even open the find dialog (for other than stuff like e.g. the “Replace in Selection”). -- Allan Odgaard • I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. --Bob Hicks • I'd like the wrap boundary to be invisible, or let me se its color. Currently, it's gray in that region even when I have wrapping off. EmEditor does a nice job with the various wrapping modes and it's not as intrusive as a big gray region (which may or may not actually provide me with any information that I need). --G. Carpenter • It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode. --Nick Brosnahan • On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite.. -- Jon On Mac there's a shared find clipboard, press command E with a selection, and it's copied to that, and will be in the dialog when you open it, but you actually don't need to, just press command G to find next occurrence. Placing the selection in the find dialog would sort of go against this shared find clipboard and would be counter productive for “replace in selection” operations. -- Allan Odgaard • It'd be nice if language definitions could set up scopes in which folding markers could be ignored. In my Lua files, I'm noticing folding-start markers in the margin whenever a comment or string literal contains "if" or "for" (which is kinda often). Aside from the visual pollution, this seems to keep clicking the folding-end markers from collapsing the fold correctly. (I'm seeing this less often in C-based languages, but only because I'm less likely to use unbalanced {} in comments and strings there). -- Rick Roe Currently not a simple change, but the folding system will (most likely) see some updating in 1.3 -- Allan Odgaard • Add folding for if statements in javascript. It would be nice to be able to fold up your if/else statements at the braces. I know this can be done in the bundle editor, but I don't know how and I think it should be a default. --Braxton Beyer • Earlier someone asked for VI keybindings, and I understand what you're saying about modeless operation. If it can't be done, then it can't be done. However, if it could it would be very valuable to a lot of people. For VI addicts, switching to a non-vi editor can be very painful, with lots of stray characters showing up in the text. I am sure you are right that you can do most things with the keyboard, however, moving around with arrow keys is a lot slower for a fast typist than using home-row keys is. I can work very quickly within regions of text with vim. --Mark Bainter • I would like to see bracket/parenthesis code selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted. Kind of like what the command+shift+D command does, but I would rather doube click using the mouse. --Reese The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese. Difference Editing similar to BBEdit's "Find Differences" command. The key thing I'm looking for is to be able to pull up two files side by side, and be able to easily merge changes from one to the other right there, without having to save a new file like Apple's FileMerge. The BBEdit implementation of this feature is really well polished now, and I'd love to see something like it show up in a future version of TM. In the meantime, I attempted to write an Applescript that I could have called from a TM command that would take the two frontmost windows and send them to the bbdiff command line tool or to FileMerge. The problem seemed to be that although the Applescript dictionary for TM shows that documents of windows are accessible via Applescript, it didn't seem to work in practice. When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. How about Dreamweaver or JBuilder style drop down autocompletion? For example, in a Javascript situation, after I hit "." it could show the list of available methods or in HTML, it could show the various style options when in a style or CSS attribute list. The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a work-around for this? A plug-in perhaps? --Tyson Some form of intuitive, mouseless, arrowless navigation would be very nice. Moving my hands to and from the arrow keys for simple movements really breaks up my flow -- the mouse even more so . Snippets are an amazing leap in productivity, but without efficient basic navigation, I can't afford to migrate from vim. --Dan Amen. You must understand I've been using vi/vim for 25 years now. Leaving the vi keybindings would be like using a dvorak keyboard. I *want* TextMate and I'd be delighted to pay for it, but if the basics don't work I'm stuck. --PeterMerel. It would be nice if the Go to Symbol keystroke (Cmd-Shift-T) would also work to close the Go to Symbol palette if it's already open. --Ken to: I take sometime some parts of code of a project to put in a new one, as I don't have a very big screen I have to passe many times from one project to an other and the risk is high to make unintended modifications in the wrong file. It would be a great improvement if I could open a whole project or singles files as read-only, with a different background color. Denis May 31, 2006, at 20:52 UTC by Graham MacDonald - Added lines 247-248: • fifth - I really miss my indents not lining up 'properly' on multi-line function definitions. -- Graham MacDonald May 31, 2006, at 20:48 UTC by Graham MacDonald - Changed line 125 from: I would second this aswell. Is there no way to even configure this? -- scoopr to: I would second this aswell. Is there no way to even configure this? -- scoopr \\ May 31, 2006, at 20:47 UTC by Graham MacDonald - Deleted lines 125-126: • Foreign Language Support\\ Added lines 127-130: I would third this - this would be a great config option - tab to indent a selection makes more sense - apple standard or not. -- Graham MacDonald • Foreign Language Support \\ May 19, 2006, at 14:20 UTC by ullum - Deleted line 2: Changed lines 4-49 from: to: "Edit each Line" should function properly. Ticketsystem won´t take my bug so i post it here: Here´s the file i wanted to edit (Just copypaste it in new textmate document and you´ll see). I wanted to remove all the "<?=$fb_prefix?>" parts. For that i think the Edit each Line- Feature would be suitable.

What did i do? Selected all the lines containing the snippet i wanted to remove, activated "Edit each Line", then put mousecoursor to the right point in the first line and then i started pressing the "backwards-delete" key.

What was expected? Removal of all the occurences of "<?=$fb_prefix?>" in all selected Lines. What happened instead? In every line something was deleted - b u t - not the snippet (even though it had the same position in each line) (i put a result of it in the end of this message). Original File:  <ul id="navlist"> <li><a href="<?=$fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li>
<li><a href="<?=$fb_prefix?>partnerprogramme.php" id="partnernav">Partnerprogramme</a></li> <li><a href="<?=$fb_prefix?>produktportfolio.php" id="prodportnav">Produkt Portfolio</a></li>
<li><a href="<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li> <li><a href="<?=$fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li>
<li><a href="<?=$fb_prefix?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li> <li><a href="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li>
</ul>


Result of described action above (pressing forw del several times):

	<ul id="navlist">
<li><a href="fb_prefix?>index.php" id="indexnav">Wir über Uns</a></li>
<li><a href="<?=$fb_prefiartnerprogramme.php" id="partnernav">Partnerprogramme</a></li> <li><a href="<?=$fb_prefix?duktportfolio.php" id="prodportnav">Produkt Portfolio</a></li>
<li><a h"<?=$fb_prefix?>marketing.php" id="marknav">Marketing</a></li> <li><a href="fb_prefix?>impressum.php" id="impressumnav">Impressum</a></li> <li><a href="<?=$fb_pr?>anmeldeformular.php" id="anmeldnav">Anmeldeformular</a></li>
<li><ef="<?=$fb_prefix?>../standard/feedback.php">Feedback</a></li> <li><a href="login.html" onclick="popUp(this.href); return false;" id="loginnav"><b>Login</b></a></li> </ul>  May 18, 2006, at 17:54 UTC by kL - Added lines 6-10: Comment folding especially for DOCComments. I have classes with lenghty documentation for doxygen. May 18, 2006, at 15:34 UTC by Arnski - Added lines 2-16: Filenames for Autocompletion It would be very nice to have all the filenames which are currently associated with the project (all the files in the project-drawer) available for autocompletion via ESC. =#ExtremeCandy#= would be if being inside an include("") would trigger not only the insertion of the filename but also the path to that file relative to the current one. (The latter would be incredibly useful since - having multiple folders from possibly totally different "levels" added to the project - the project drawer does not give any insight to questions like "how many times to i need to walk upwards to get to this file?hrmm..". Right now i have to switch to finder to complete tasks like that) (^-^) Arnski Changed line 811 from: --Ken to: --Ken April 13, 2006, at 20:06 UTC by Errol Sayre - Changed lines 500-501 from: to: XCode/Script Editor style Auto Completion I think it would be best if code completion worked like the Tiger ScriptEditor application, where the best code completion appears to the right of the caret in grey letters and escape completes it. In the case of multiple possibilities the matching characters are placed to the right of the caret and an ellipses is used to denote the presence of more than one completion. Hitting escape then brings up a menu like Dreamweaver, etc. I think this would be the best compromise, and of course would be exactly the thing to finally woo me away from BBEdit for good. --Errol Sayre Changed line 796 from: --Ken to: --Ken April 13, 2006, at 17:05 UTC by Ken Ray - Added lines 785-789: It would be nice if the Go to Symbol keystroke (Cmd-Shift-T) would also work to close the Go to Symbol palette if it's already open. --Ken April 08, 2006, at 19:20 UTC by David Dennis - Changed lines 2-10 from: Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well. • For some reason, Control-P sometimes expands to param[] and other times goes up a line like it does in emacs. Is there any way to redefine it so that it only goes up a line? I have those key commands wired into my fingers and it's the most annoying thing in the world for control-P to behave that way :-(. I'm using Ruby on Rails, so I understand the motivation behind the expansion ut it just doesn't work for me and I don't know why it's erratic, sometimes happening and sometimes not happening. I like the program and I'll probably buy it, but this problem really drives me nuts :-(. to: I figured out how to solve my problem (through the bundle editor), so you can now ignore my suggestion. April 06, 2006, at 22:43 UTC by Peter Merel - Changed lines 788-792 from: --Dan to: --Dan Amen. You must understand I've been using vi/vim for 25 years now. Leaving the vi keybindings would be like using a dvorak keyboard. I *want* TextMate and I'd be delighted to pay for it, but if the basics don't work I'm stuck. --PeterMerel. April 06, 2006, at 19:50 UTC by Dan - Changed lines 782-788 from: --Tyson to: --Tyson Some form of intuitive, mouseless, arrowless navigation would be very nice. Moving my hands to and from the arrow keys for simple movements really breaks up my flow -- the mouse even more so . Snippets are an amazing leap in productivity, but without efficient basic navigation, I can't afford to migrate from vim. --Dan April 05, 2006, at 23:15 UTC by David H Dennis - Added lines 5-12: • For some reason, Control-P sometimes expands to param[] and other times goes up a line like it does in emacs. Is there any way to redefine it so that it only goes up a line? I have those key commands wired into my fingers and it's the most annoying thing in the world for control-P to behave that way :-(. I'm using Ruby on Rails, so I understand the motivation behind the expansion ut it just doesn't work for me and I don't know why it's erratic, sometimes happening and sometimes not happening. I like the program and I'll probably buy it, but this problem really drives me nuts :-(. ~David Dennis April 04, 2006, at 00:08 UTC by Tyson - Changed line 773 from: The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a word-around for this? A plug-in perhaps? to: The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a work-around for this? A plug-in perhaps? April 04, 2006, at 00:06 UTC by Tyson - Added lines 770-774: The indentation behavior is the only thing keeping me from purchasing TextMate. I do a lot of code reformatting (manual, not automatic) and the indentation behavior drives me up a wall. In every single other code editor and text editor I've ever used, any line that is selected when you do an indent operation gets one indentation (usually a tab) placed at the beginning of the line. However, TextMate is more inconsistent. If you only have one line selected, it behaves as expected. If you have multiple lines selected, it inserts a tab at the beginning of the of the selection (regardless of if it's at the beginning of a line or not) and then indents the other lines as expected. I do so much quick selecting and indenting that I don't have the time to carefully select each line fully to make TextMate work. Is there a word-around for this? A plug-in perhaps? --Tyson April 03, 2006, at 19:20 UTC by NikoMatsakis - Added lines 179-180: • I'd like to 'fourth' it. There are a few features that make emacs the best, and TextMate has most of them. Sophisticated, intelligent indenting, unfortunately, it lacks. This probably needs to be customizable by bundles as well, not sure if it is now or not. April 03, 2006, at 19:19 UTC by Phillip - Added line 7: April 03, 2006, at 19:19 UTC by Phillip - Changed lines 5-7 from: • For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. to: • For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. ~Phillip April 03, 2006, at 19:18 UTC by Phillip - Added lines 5-7: • For those of us who write both code and prose, it would be very nice if there was a full-screen mode for getting very intimate with your text, sans interface. Visually blocking out the other apps is a great technique for maintaining focus. Ideally it would still allow all the same commands, like the infinitely important word count via show statistics. April 02, 2006, at 21:11 UTC by G Carpenter - Added lines 721-723: • I'd like the wrap boundary to be invisible, or let me se its color. Currently, it's gray in that region even when I have wrapping off. EmEditor does a nice job with the various wrapping modes and it's not as intrusive as a big gray region (which may or may not actually provide me with any information that I need). --G. Carpenter March 09, 2006, at 07:40 UTC by Niels Kobschaetzki - Added lines 71-73: A fourth vote for CJK support. TextMate becomes lately really useless to me because of the missing CJK support. --Niels \\ Deleted lines 75-76: • Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\ Deleted lines 76-77: This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle. -- Allan Odgaard\\ Changed line 78 from: Not sure how to do the whole submit thing but here's the code I've come up with:\\ to: • Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\ Added lines 80-84: This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle. -- Allan Odgaard Not sure how to do the whole submit thing but here's the code I've come up with: \\ March 08, 2006, at 20:43 UTC by Carl - Changed lines 753-757 from: When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. to: When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. How about Dreamweaver or JBuilder style drop down autocompletion? For example, in a Javascript situation, after I hit "." it could show the list of available methods or in HTML, it could show the various style options when in a style or CSS attribute list. March 07, 2006, at 03:51 UTC by rf - Changed lines 401-403 from: Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves\\ Added lines 403-407: I'm going to have to agree on the Undo behavior. It's a complete deal breaker. TextMate is lamed with the current method. • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ February 18, 2006, at 01:08 UTC by David - Added lines 5-8: • Regex Syntax Highlighting in Find/Replace (while searching with regex) --David February 17, 2006, at 14:31 UTC by Jacob Rus - Added lines 119-120: Try select all, then up or down arrow February 15, 2006, at 23:13 UTC by timuruski - Changed line 744 from: When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. to: When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. February 15, 2006, at 23:13 UTC by timuruski - Changed line 744 from: When dragging and dropping text, honor ""NSDragAndDropTextDelay"" to allow more responsive dragging. to: When dragging and dropping text, honor NSDragAndDropTextDelay to allow more responsive dragging. February 15, 2006, at 23:12 UTC by timuruski - Added lines 742-744: When dragging and dropping text, honor ""NSDragAndDropTextDelay"" to allow more responsive dragging. February 10, 2006, at 09:00 UTC by Michael Lehmkuhl - Changed lines 734-741 from: The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese. to: The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese. Difference Editing similar to BBEdit's "Find Differences" command. The key thing I'm looking for is to be able to pull up two files side by side, and be able to easily merge changes from one to the other right there, without having to save a new file like Apple's FileMerge. The BBEdit implementation of this feature is really well polished now, and I'd love to see something like it show up in a future version of TM. In the meantime, I attempted to write an Applescript that I could have called from a TM command that would take the two frontmost windows and send them to the bbdiff command line tool or to FileMerge. The problem seemed to be that although the Applescript dictionary for TM shows that documents of windows are accessible via Applescript, it didn't seem to work in practice. February 09, 2006, at 05:30 UTC by Seth Delackner first at last com - Changed lines 730-734 from: --Reese to: --Reese The encoding options for read/save should include a checkbox to list ALL the available Cocoa String encodings, or at least the 3 main Japanese ones: Shift_JIS, EUC, IS0-2022-JP. As long as TextMate can load -> save roundtrip such a file without destroying the multibyte text, I don't mind that I can't edit the text in TextMate, so long as I can edit the single-byte text that is 90% of my files, and then open the files in another app for the 10% that is Japanese. February 05, 2006, at 15:00 UTC by cane - Changed lines 393-395 from: • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Added lines 395-398: Another vote for a changed undo-behaviour. The "one undo = one keystroke" behaviour is unnatural and not at all mac-like. An undo should take back all keystrokes until the last delete/paste action, or the last time the insertion mark was moved. This logic is fairly simple, and just the way every other text editor out there behaves • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file. \\ January 29, 2006, at 20:13 UTC by David - Changed lines 10-11 from: • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow\\ to: • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow • Thats exactly what I was looking for. Although IMHO the checkbox option was a better solution, because it let you perform all of the actions to selected text. --David\\ January 29, 2006, at 15:10 UTC by Jim Bagrow - Added lines 5-6: • Nested Tab Triggers When hitting tab to go between tabstops in a snippet, you aren't able to use another tab triggered-snippet at the current stop. This would be useful for example, in LaTeX if you want to add an equation containing the ratio of integrals, and you have a \frac snippet and a \int snippet, both using tab triggers. Not sure of an obvious mechanism for enabling this, maybe something like ctrl-tab? Has someone mentioned this already? -- Jim Bagrow January 29, 2006, at 14:36 UTC by Jim Bagrow - Added lines 5-6: • Overloaded snippets / multi-snippets. I often find myself generating a dozen or more snippets, all with the same tab trigger, so I can get a popup menu to select from. Allan suggested doing just this to get a menu of greek letters in LaTeX. It's really cumbersome to create a lot of these snippets all at once. Would it be useful to come up with some syntax for defining all the separate snippets in one dialog? I imagine some kind of switch statement or other way to list menu_name => snippet_text, all having the same activation and scope. Something to generate that menu all at once would be handy! What do you guys think? -- Jim Bagrow Changed line 8 from: • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow\\ to: • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow\\ January 29, 2006, at 09:36 UTC by Jim Bagrow - Changed lines 5-6 from: • Please bring back the replace in selection option in find and replace, this is something I used often. -- David\\ to: • Please bring back the replace in selection option in find and replace, this is something I used often. -- David • When you hold down shift in the find dialog, it turns the 'replace all' button into a 'replace in selection' button. Is this what you mean? -- Jim Bagrow\\ January 27, 2006, at 18:06 UTC by David - Changed line 5 from: • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg\\ to: • Please bring back the replace in selection option in find and replace, this is something I used often. -- David\\ Changed line 8 from: • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F\\ to: • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg\\ Added lines 11-13: • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F January 24, 2006, at 20:32 UTC by Nigeldg - Changed lines 5-6 from: • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg\\ to: • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg\\ January 24, 2006, at 20:28 UTC by Nigeldg - Changed lines 5-6 from: • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F\\ to: • Vim key bindings have been mentioned before, but the thing I miss most is the option to autoclose/open folds. I love the way you can set vim to close a fold as the cursor leaves it - very tidy and makes managing text files in an outliner style an absolute snap. Any chance of this coming to Textmate? --nigeldg\\ Added lines 9-11: • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F January 24, 2006, at 15:37 UTC by Schlaefer - Added lines 1-2: (:title Text Editing:) January 23, 2006, at 02:47 UTC by UltraBob - Changed lines 15-16 from: • Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. --UltraBob to: • Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. -- UltraBob January 23, 2006, at 02:41 UTC by UltraBob - Changed lines 15-16 from: to: • Extending Brad's suggestion above it would be great to be able to scope a project search. For example to be able to search for a regular expression across only html files in your project. A specific use case: I am searching a current project for {(?!(include|literal|/literal)) to find smarty tags so I can evaluate how tags have been used up to this point in order to figure out how to simplify the most common ones. This search also matches css declarations which is a bit irritating. --UltraBob January 14, 2006, at 20:20 UTC by Martin S - Added line 48: \\ Changed line 50 from: --Martin to: --Martin\\ January 14, 2006, at 20:19 UTC by Martin S - Added lines 48-49: A third vote for CJK support. Yee haw! --Martin January 13, 2006, at 20:26 UTC by Jim F - Added lines 3-5: • Here is a good idea, but you better patent it before someone else does. :) Many times I want to jump to a location in a document that I can easily recognize by the document structure. But the document is too large to fit in a single window. An apple like expose feature in the text window would be a cool idea to let me see the complete file in the visible window and when I click on a location in the expose view it jumps to that location. -- Jim F January 12, 2006, at 10:36 UTC by Ben Perry - Changed line 59 from: echo -n "background-image: url('$img');"\\

to:

echo "background-image: url('$img');"\\ Changed lines 62-63 from: | awk '/pixelWidth/ { printf("\nwidth: %d;",$2) }
/pixelHeight/ { printf("\nheight: %d;", $2) }'@@\\ to: | awk '/pixelWidth/ { printf("width: %d;\n",$2) }
/pixelHeight/ { printf("height: %d;", $2) }'@@\\ January 11, 2006, at 12:18 UTC by Ben Perry - Changed lines 52-55 from: • Also character and word counts would be nice in the status bar. -- Shmuel\\ to: Changed lines 54-57 from: ⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version. -- Allan Odgaard • Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.\\ to: Not sure how to do the whole submit thing but here's the code I've come up with:\\ Changed lines 56-59 from: The tab size (and soft tabs) is now in the status bar, I've updated the FAQ. -- Allan Odgaard • I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith \\ to: File Types: png, jpeg, jpg, gif Command(s): @@img="$TM_DROPPED_FILE"
echo -n "background-image: url('$img');"\\ Changed lines 61-73 from: The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.\\ to: sips -g pixelWidth -g pixelHeight "$img" \
| awk '/pixelWidth/ { printf("\nwidth: %d;", $2) } /pixelHeight/ { printf("\nheight: %d;",$2) }'Output: Insert as SnippetScope Selector: source.css@@

-- Ben Perry

* Also character and word counts would be nice in the status bar.
-- Shmuel

⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version.\\

• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.

The tab size (and soft tabs) is now in the status bar, I've updated the FAQ.
-- Allan Odgaard
• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith

The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.
-- Allan Odgaard
January 10, 2006, at 22:40 UTC by kJwA -
• The ability to undo while the find/replace dialogue is foregrounded would be a great help for when you aren't sure of your regex.
January 06, 2006, at 23:12 UTC by Reese S -
Changed line 685 from:
• I would like to see bracket/parenthesis selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted.
to:
• I would like to see bracket/parenthesis code selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted. Kind of like what the command+shift+D command does, but I would rather doube click using the mouse.
January 06, 2006, at 23:11 UTC by Reese S -
Changed lines 683-686 from:

--Mark Bainter

to:

--Mark Bainter

• I would like to see bracket/parenthesis selection a la xcode/bbedit. If you double click a [, {, or ( the text/code until the last corresponding ] }, or ) will be highlighted.

--Reese

January 04, 2006, at 17:31 UTC by Manuel P -
• Gutter shouldn't move when scrolling right/left (bug?)
December 19, 2005, at 17:43 UTC by Brad Choate -
Changed lines 4-5 from:
• On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr
to:
• On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr

This exists now in the "Source" bundle: ⌘/ will toggle comments for the selected text. -- Brad Choate
December 19, 2005, at 17:19 UTC by scoopr -
• Bindinds for commenting selection.
• On windows I've binded ultraedit to comment every line of a selection with ctrl-. and uncomment with ctrl-, not sure if those are good choices on mac, but similiar bindings would be helpful. -- scoopr
Changed lines 24-26 from:
• Foreign Language Support\\
to:

I would second this aswell. Is there no way to even configure this? -- scoopr

• Foreign Language Support
\\
December 17, 2005, at 15:57 UTC by Shun -

Another vote for CJK support.
--Shun
\\

December 16, 2005, at 23:13 UTC by Brad Choate -
Changed lines 1-3 from:

Two jEdit functions that make life easier :)

• Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g:\\
to:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• The ability to use scopes for filtering the target of a find/replace. The use case here is for search/replace in an HTML document where you don't want to affect any tags or attribute elements within those tags. -- Brad Choate
• Two jEdit functions that make life easier :)
• Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g:\\
Changed lines 13-17 from:
• When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block.

http://x12.putfile.com/11/32911563076.png

to:
• When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block.
http://x12.putfile.com/11/32911563076.png \\
Deleted lines 16-17:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

December 05, 2005, at 02:15 UTC by Mark Bainter -
Changed lines 669-672 from:

--Braxton Beyer

to:

--Braxton Beyer

• Earlier someone asked for VI keybindings, and I understand what you're saying about modeless operation. If it can't be done, then it can't be done. However, if it could it would be very valuable to a lot of people. For VI addicts, switching to a non-vi editor can be very painful, with lots of stray characters showing up in the text. I am sure you are right that you can do most things with the keyboard, however, moving around with arrow keys is a lot slower for a fast typist than using home-row keys is. I can work very quickly within regions of text with vim.

--Mark Bainter

November 29, 2005, at 15:02 UTC by Braxton Beyer -
Changed lines 666-669 from:
to:
• Add folding for if statements in javascript. It would be nice to be able to fold up your if/else statements at the braces. I know this can be done in the bundle editor, but I don't know how and I think it should be a default.

--Braxton Beyer

November 26, 2005, at 18:13 UTC by yoav -
Changed lines 1-2 from:

Two jEdit functions the make life easier :)

to:

Two jEdit functions that make life easier :)

November 26, 2005, at 18:02 UTC by yoav -
Changed lines 1-4 from:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors.
--kL\\
to:

Two jEdit functions the make life easier :)

• Pressing the Home button (or ⌘+left-arrow) takes you to the first non-space character, and pressing twice to the "real" beginning of the line. This is useful when you have identation, and you actually need to get to the beginning of the text and not the line (most of the times I believe this is true). e.g:\\
Changed lines 5-8 from:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤
-- Allan Odgaard

• Foreign Language Support\\
to:

if (true) {
do something
}\\

Changed lines 9-10 from:

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.
--Sam\\

to:

Pressing Home would put the cursor on "d".

• When putting the cursor behind any kind of a block character (round, curly & square brackets) jEdit "selects" the closing partner, so you can see where it is. Very useful when you have a few blocks inside each other. It also puts a line in the gutter which starts & ends with the block.

http://x12.putfile.com/11/32911563076.png

-- yoav

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors.
--kL\\
Changed line 22 from:

This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering.\\

to:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤\\

Changed line 25 from:
• Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\
to:
• Foreign Language Support\\
Changed lines 27-30 from:

This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle.\\

to:

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.
--Sam

This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering.\\

Changed lines 33-34 from:
• Also character and word counts would be nice in the status bar.
-- Shmuel\\
to:
• Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\
Changed line 35 from:

⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version.\\

to:

This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle.\\

Changed lines 38-39 from:
• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.\\
to:
• Also character and word counts would be nice in the status bar.
-- Shmuel\\
Changed line 41 from:

The tab size (and soft tabs) is now in the status bar, I've updated the FAQ.\\

to:

⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version.\\

Changed line 44 from:
• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith \\
to:
• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.\\
Changed line 46 from:

The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.\\

to:

The tab size (and soft tabs) is now in the status bar, I've updated the FAQ.\\

• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith

The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.
-- Allan Odgaard
November 19, 2005, at 23:56 UTC by Allan Odgaard -
Changed line 4 from:

--kL \\

to:

--kL\\

Changed line 6 from:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇤ and ⌥⇤\\

to:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇥ and ⌥⇤\\

Changed line 11 from:

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.

to:

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool.\\

Changed line 17 from:
• Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\\\
to:
• Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\
November 19, 2005, at 23:54 UTC by Allan Odgaard -
Changed line 6 from:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥tab and ⌥\\

to:

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥⇤ and ⌥⇤\\

November 19, 2005, at 23:52 UTC by Allan Odgaard -
Changed lines 1-2 from:

Foreign Language Support

to:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

Changed lines 4-5 from:

--kL

to:

--kL

⌘[ and ⌘] are the standard Apple keys. But as mentioned elsewhere, you can also use ⌥tab and ⌥
-- Allan Odgaard

• Foreign Language Support
\\
Changed lines 12-15 from:

--Sam

Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)
Also character and word counts would be nice in the status bar.\\

to:

--Sam

This is non-trivial and thus not around the corner, but hopefully TextMate will eventually support different input modes and international text rendering.
-- Allan Odgaard

• Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)

This is what drag commands are for. Look e.g. at the HTML image drag command (bundle editor), and if you make one for CSS, please submit it so that it can be included in the default CSS bundle.
-- Allan Odgaard
• Also character and word counts would be nice in the status bar.\\
Changed lines 24-39 from:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.
• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith
• I have some small suggestions, they may be silly (or already exist?):
1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie.
2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1,$array2, $array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful. 3. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash. Thanks again for an awesome app! - Jim Bagrow • In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow). Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature. Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same.\\ to: ⌃⇧N will give this information. It is not in the status bar because the information is not available without scanning the entire document, it may appear in a later version.\\ Changed line 28 from: • A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing.\\ to: • Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.\\ Changed line 30 from: It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this.\\ to: The tab size (and soft tabs) is now in the status bar, I've updated the FAQ.\\ Changed line 33 from: • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.\\ to: • I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith \\ Changed line 35 from: TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.\\ to: The systems text rendering functions should do this, but a bug unfortunately prevents it with some fonts. This problem only seems to be with ATSUI, which is why not all applications are affected.\\ Changed lines 38-42 from: • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work. I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?\\ to: • I have some small suggestions, they may be silly (or already exist?): 1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie. 2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1, $array2,$array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful.
3. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash.
Thanks again for an awesome app! - Jim Bagrow
• In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow).

Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature.

Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same.\\

Changed lines 50-52 from:
• Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost
• I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.\\
to:
• A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing.\\
Changed lines 52-53 from:

The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces.
-- Allan Odgaard\\

to:

It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this.
-- Allan Odgaard

• I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.\\
Changed lines 57-66 from:

Actually, that is perfect. I hadn't noticed that command before. Thanks!
\\- I don't like selection, I prefer simple "Jump to matching brace" function.

• Make the incremental search bar more like FireFox's:

http://scribes.sourceforge.net/search.png

• Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks.
--Jo Campos
• Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php): \\
to:

TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.
-- Allan Odgaard

• Click on line number in gutter should select entire line (style of many Windows editors)
• Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.\\
Changed lines 64-78 from:

a = array('one', 'two', 'three'); The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.) -- Zack Charter • I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit. • I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line. • How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now? TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.\\ to: I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?\\ Changed lines 67-69 from: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it.\\ to: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.\\ Changed lines 71-74 from: All in good time… -- Allan Odgaard • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.\\ to: The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces. -- Allan Odgaard\\ Changed lines 74-75 from: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks! -- Allan Odgaard\\ to: Actually, that is perfect. I hadn't noticed that command before. Thanks! \\- I don't like selection, I prefer simple "Jump to matching brace" function. • Make the incremental search bar more like FireFox's: http://scribes.sourceforge.net/search.png • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. --Jo Campos • Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php): \\ Changed lines 85-87 from: Beautiful, thanks -- Douglas • this page makes no sens... how come you are not using Trac or Bugzilla ?\\ to:a = array('one',
'two',
'three');

The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.)
-- Zack Charter
• I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit.
• I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line.
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?\\
Changed line 99 from:

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).\\

to:

TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.\\

Changed line 102 from:
• Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.\\
to:
• Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it.\\
Changed line 104 from:

I went with FogBugz\\

to:

All in good time…\\

• Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.\\
Changed lines 109-110 from:
• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\
to:

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard\\

Changed lines 112-114 from:

Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.\\

to:

Beautiful, thanks -- Douglas

• this page makes no sens... how come you are not using Trac or Bugzilla ?\\
Changed lines 116-121 from:

Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:
{ name = "comment.block.preprocessor.c";
 begin = "^\\s*#\\s*if\\s*0\\s*$";  end = "^\\s*#\\s*(else|endif)\\s*$";
},
Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\

to:

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).\\

Changed lines 119-125 from:
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen \\ to: • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.\\ Changed lines 121-122 from: That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though. -- Allan Odgaard \\ to: I went with FogBugz -- Allan Odgaard Changed lines 124-127 from: See BugReporting for more detail on reporting bugs. • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\ to: • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\ Changed lines 127-134 from: Version 1.1b6 and onward has scopes for this.\\ to: Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc. Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule: { name = "comment.block.preprocessor.c";  begin = "^\\s*#\\s*if\\s*0\\s*$";
 end = "^\\s*#\\s*(else|endif)\\s*$"; }, Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\ Changed lines 137-141 from: • Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature. • XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS. • Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.\\ to: • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0
when you change first, and jumps to the next field (Tab) ,
second is supposed to be selected, but instead the whole text is selected.
- Sune Simonsen \\
Changed lines 145-146 from:

wouldn't just select all > copy > new document > paste do the same thing?\\

to:

That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.
-- Allan Odgaard \\

Changed lines 148-150 from:
Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.
• Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.)\\
to:

See BugReporting for more detail on reporting bugs.

• Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\
Changed line 153 from:

See e.g. this letter for how to change the default completion command (to search more buffers).\\

to:

Version 1.1b6 and onward has scopes for this.\\

• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature.
• XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS.
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.

wouldn't just select all > copy > new document > paste do the same thing?

-> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.
• Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.)

See e.g. this letter for how to change the default completion command (to search more buffers).
-- Allan Odgaard
Changed lines 647-650 from:

-- Rick Roe

to:

-- Rick Roe

Currently not a simple change, but the folding system will (most likely) see some updating in 1.3
-- Allan Odgaard

November 19, 2005, at 15:52 UTC by kL -
• Tab and Shift-Tab should indent/unindent selection. Current cmd+] cmd+[ are IMHO not intuitive and non-standard compared to other editors.
--kL
Changed line 9 from:

Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think.\\

to:

Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think. (i second that!)\\

Changed line 12 from:

\\

to:
November 12, 2005, at 00:46 UTC by sam -

Foreign Language Support

I would like to see native support for inputting CJK (Chinese Japanese Korean) languages inline. Changing the input method to CJK causes the input to freeze and the characters displayed are jumbled and scrunched as to be almost unreadable. There are many people in Japan who want this tool. --Sam

November 11, 2005, at 07:44 UTC by shmuel -
Changed lines 4-5 from:

\\Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

to:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

November 11, 2005, at 07:43 UTC by shmuel -

Also character and word counts would be nice in the status bar.\\

Changed lines 4-5 from:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

to:

\\Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

November 11, 2005, at 07:42 UTC by shmuel -

Please add drag and drop support for images in CSS. Inserting "url(directory/image.jpg) width:10px; height:10px;" at the location of drag would do I think.
-- Shmuel
\\

November 09, 2005, at 13:58 UTC by pbx -
Changed lines 116-118 from:

See BugReporting? for more detail on reporting bugs.

to:

See BugReporting for more detail on reporting bugs.

November 09, 2005, at 13:57 UTC by pbx -
Changed line 114 from:
to:
November 09, 2005, at 13:56 UTC by pbx -
Changed lines 116-119 from:

See BugReporting? for more detail on reporting bugs.

to:

See BugReporting? for more detail on reporting bugs.

• Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\
Deleted lines 120-122:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.
\\
November 09, 2005, at 13:55 UTC by pbx -
Changed lines 92-93 from:

Do you have any kind of introduction posted about how you are using FogBugz, what users can expect from it, what guidelines should be followed in filing and tracking bugs, etc.? I filed a couple minor bugs and they were closed with no comment that I could see. Fixed? Duplicate? Wontfix? It would be helpful to know. I noticed my bug numbers were low (42 and 43) -- did I just start using it too soon? Anyway, good to see real bug-tracking coming online. (And good to see it's not Bugzilla, which I don't like either!) -- pbx

to:
Deleted lines 114-115:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\

See BugReporting? for more detail on reporting bugs.

• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.
\\
November 08, 2005, at 17:01 UTC by Tom -
Changed lines 2-3 from:
to:
• Great Text-Editor. Got the DemoVersion since an Hour and I'm already fallin in love with it. What I'm still missing is the possibility of softTabs and defining the amount of spaces per Tab (you're talking about View->Tab Size in the FAQs - I can't find that) and FTP from within. The Bracket issue is another thing. I really enjoy it the way it works in JEdit.
November 06, 2005, at 09:04 UTC by Rick Roe -
Changed lines 609-612 from:
to:
• It'd be nice if language definitions could set up scopes in which folding markers could be ignored. In my Lua files, I'm noticing folding-start markers in the margin whenever a comment or string literal contains "if" or "for" (which is kinda often). Aside from the visual pollution, this seems to keep clicking the folding-end markers from collapsing the fold correctly. (I'm seeing this less often in C-based languages, but only because I'm less likely to use unbalanced {} in comments and strings there).

-- Rick Roe

November 05, 2005, at 04:04 UTC by pbx -
Deleted lines 89-93:

Do you have any kind of introduction posted about how you are using FogBugz, what users can expect from it, what guidelines should be followed in filing and tracking bugs, etc.? I filed a couple minor bugs and they were closed with no comment that I could see. Fixed? Duplicate? Wontfix? It would be helpful to know. I noticed my bug numbers were low (42 and 43) -- did I just start using it too soon? Anyway, good to see real bug-tracking coming online. (And good to see it's not Bugzilla, which I don't like either!)

 --  pbx

• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\

Do you have any kind of introduction posted about how you are using FogBugz, what users can expect from it, what guidelines should be followed in filing and tracking bugs, etc.? I filed a couple minor bugs and they were closed with no comment that I could see. Fixed? Duplicate? Wontfix? It would be helpful to know. I noticed my bug numbers were low (42 and 43) -- did I just start using it too soon? Anyway, good to see real bug-tracking coming online. (And good to see it's not Bugzilla, which I don't like either!) -- pbx

• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.
\\
November 05, 2005, at 04:02 UTC by pbx -

Do you have any kind of introduction posted about how you are using FogBugz, what users can expect from it, what guidelines should be followed in filing and tracking bugs, etc.? I filed a couple minor bugs and they were closed with no comment that I could see. Fixed? Duplicate? Wontfix? It would be helpful to know. I noticed my bug numbers were low (42 and 43) -- did I just start using it too soon? Anyway, good to see real bug-tracking coming online. (And good to see it's not Bugzilla, which I don't like either!)

 --  pbx

November 03, 2005, at 20:06 UTC by Z D Smith -
November 03, 2005, at 20:05 UTC by Z D Smith -
• I have a request which I figure would be a minor but nice touch: when syntax hilighting calls for italicizing (like asterisks in Markdown mode), the text in the editor is simply obliqued. It would be nice if before that, Markdown checked to see if there is already an italic face attached to the current font. – Z. D. Smith
November 03, 2005, at 15:02 UTC by Gabriel Ripoche -
• (Not sure this is the right place). In the latex bundle, folding footnotes (ala LyX) would greatly increase readability.
This is only one\footnote{This is a footnote, I've already lost track of the sentence I was reading...} sentence.
We'd have:
This is only one\footnote{...} sentence.
-- Gabriel Ripoche
November 03, 2005, at 05:42 UTC by Jim Bagrow -
Changed line 3 from:
• I have two small suggestions, they may be silly (or already exist?):
to:
• I have some small suggestions, they may be silly (or already exist?):
1. In a lot of text editors, if you double-click near a brace, it will flash over ALL the text inside that brace. I use this all the time to see if I've missed a closing brace. Would be a nice feature to have. I know when you arrow past a brace now, the matching brace flashes too, which is very helpful, but I would like (at least the option) of having all enclosed text flash.
November 03, 2005, at 05:39 UTC by Jim Bagrow -
Changed lines 3-7 from:

I have two small suggestions, they may be silly (or already exist?):

1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie.
2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1,$array2, $array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful Thanks again for an awesome app! - Jim Bagrow to: • I have two small suggestions, they may be silly (or already exist?): 1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie. 2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1, $array2,$array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful.
Thanks again for an awesome app! - Jim Bagrow
November 03, 2005, at 05:37 UTC by Jim Bagrow -

I have two small suggestions, they may be silly (or already exist?):

1. I would like the escape-completion of words to stop in the event of a tie, like typical tab-completion. I believe that, currently, the nearest word that matches is inserted. Maybe have the whole word flash for a second, reminding you to add the letter(s) needed to break the tie.
2. In regards to the awesome column typing. I often find myself with a column of words that are identical except for a number which is incremented by one on each row ($array1,$array2, array3, etc). It would be neat if you were able to type an integer with a modifier key, option-5 for example, and that would insert 5 in the first row, 6 in the second row, 7 in the third row, etc... instead of just putting 5 in all the rows. Of course, the modifier should only work when in column typing mode. This seems like a cool idea to me at least. I would definitely find it useful Thanks again for an awesome app! - Jim Bagrow November 02, 2005, at 08:19 UTC by Allan Odgaard - Changed lines 6-10 from: • A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing. • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow. TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.\\ to: Yes, that's a feature, sort of like “undo” for doing selections. As for moving to the begin/end of the document, I've bound home/end to that, but with the default key bindings, command arrow up/down does the same.\\ Changed lines 9-11 from: • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.\\ to: • A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing.\\ Changed line 11 from: I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?\\ to: It's however non-trivial to add, but 1.3 or later will introduce dynamic scopes where I also plan to allow them to markup things like this.\\ Changed lines 14-16 from: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.\\ to: • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.\\ Changed lines 16-17 from: The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces. -- Allan Odgaard\\ to: TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard. -- Allan Odgaard • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.\\ Added lines 23-32: I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you? -- Allan Odgaard • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces. -- Allan Odgaard \\ Changed line 581 from: I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. to: • I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. Changed line 584 from: It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode. to: • It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode. Changed lines 587-588 from: On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite.. -- Jon to: • On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite.. -- Jon On Mac there's a shared find clipboard, press command E with a selection, and it's copied to that, and will be in the dialog when you open it, but you actually don't need to, just press command G to find next occurrence. Placing the selection in the find dialog would sort of go against this shared find clipboard and would be counter productive for “replace in selection” operations. -- Allan Odgaard November 01, 2005, at 08:56 UTC by kL - Changed lines 27-28 from: Actually, that is perfect. I hadn't noticed that command before. Thanks! to: Actually, that is perfect. I hadn't noticed that command before. Thanks! \\- I don't like selection, I prefer simple "Jump to matching brace" function. October 30, 2005, at 00:09 UTC by Frog Monkeybutt - Changed lines 4-5 from: to: Good on you, son. That's exactly the way TextMate works. Do you have a question or something? Oh, I see. It works that way except in the case of select-all. I wonder if that's a bug or a feature. October 29, 2005, at 16:06 UTC by ZenKalar - Added lines 3-4: • In most every editor/IDE I've used, selecting text and then hitting the back arrow will place the cursor at the beginning of your selection. Likewise, hitting the forward arrow, places the cursor at the end of the selection. This is a very handy way to quickly place the cursor at the beginning or end of a document, as well (select-all, then right/left arrow). Deleted lines 6-8: • It would be -extremely- helpful to Ruby developers if a preference allowed toggling two spaces instead of three spaces, when working with spaces-as-tabs; as it is, I probably log several hundred extra keystrokes every day, trying to conform to the Ruby two-space-as-tab standard. October 28, 2005, at 20:52 UTC by Jon Rocatis - Changed lines 578-581 from: --Nick Brosnahan to: --Nick Brosnahan On most editors on Windows it is common that the word the cursor is currently 'inside' is the default word in the find-dialog. I would like this feature. (the word shouldn't be put on the copy buffer). It is kind of similar to the suggestion above but not quite.. -- Jon October 27, 2005, at 17:20 UTC by JD - Changed lines 3-4 from: • Two useful feattures I'd love to see (taken from SubEthaEdit) would be the ability to do block editing and if there was some way to toggle show/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing. to: • A useful feature I'd love to see (taken from SubEthaEdit) would be the ability to toggle show(highlight)/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing. October 27, 2005, at 14:25 UTC by JD - Added lines 3-4: • Two useful feattures I'd love to see (taken from SubEthaEdit) would be the ability to do block editing and if there was some way to toggle show/hide changes. I love to be able to look at a section of code and see where I've made changes during a session of editing. October 26, 2005, at 15:32 UTC by Nick Brosnahan - Changed lines 573-576 from: --Bob Hicks to: --Bob Hicks It'd be great if double clicking on a paren, brace, or bracket would automatically select to the opposite paren, brace, or bracket. For an example of this, you can look at the behavior of an ObjC file in XCode. --Nick Brosnahan October 25, 2005, at 20:41 UTC by Richard F Meraz - Added lines 45-46: • I'd like to 'third' this. I love textmate but multi-line arguments really should line up at the parenthesis, either when return is hit on the previous line or when tab is hit on the current line. October 21, 2005, at 19:52 UTC by ZenKalar - Added lines 3-5: • It would be -extremely- helpful to Ruby developers if a preference allowed toggling two spaces instead of three spaces, when working with spaces-as-tabs; as it is, I probably log several hundred extra keystrokes every day, trying to conform to the Ruby two-space-as-tab standard. October 20, 2005, at 22:37 UTC by hauk - Changed lines 568-577 from: --Bob Hicks ## Re-indent selection is needed.!! The idea is that a block of code is selected and when you choose re-indent selection, the selected code is indented according to tab-stops. Use xcode to see what I mean, choose some code, right-click and select re-indent selection. --hauk --- # Functions in status bar It would be very useful to get a quick overview of the functions/methods in the current file in a pop-up list like the one found in xcode. The apple-shift-T command is *not* useful and doesn't work well either. --hauk to: --Bob Hicks October 20, 2005, at 22:17 UTC by hauk - Changed lines 573-577 from: --hauk to: --hauk --- # Functions in status bar It would be very useful to get a quick overview of the functions/methods in the current file in a pop-up list like the one found in xcode. The apple-shift-T command is *not* useful and doesn't work well either. --hauk October 18, 2005, at 20:21 UTC by hauk - Changed lines 571-572 from: # Re-indent selection is needed.! The idea is that a block of code is selected and when you choose re-indent selection, the selected code is indented according to tab-stops. Use xcode to see what I mean, choose some code, right-click and select re-indent selection. I need this "now" or I want my money back :-) to: ## Re-indent selection is needed.!! The idea is that a block of code is selected and when you choose re-indent selection, the selected code is indented according to tab-stops. Use xcode to see what I mean, choose some code, right-click and select re-indent selection. October 18, 2005, at 19:58 UTC by hauk - Changed lines 570-571 from: ""Re-indent selection is needed."" to: # Re-indent selection is needed.! October 18, 2005, at 19:55 UTC by hauk - Changed lines 568-572 from: --Bob Hicks to: --Bob Hicks ""Re-indent selection is needed."" The idea is that a block of code is selected and when you choose re-indent selection, the selected code is indented according to tab-stops. Use xcode to see what I mean, choose some code, right-click and select re-indent selection. I need this "now" or I want my money back :-) --hauk October 16, 2005, at 01:32 UTC by Anthony Cowley - Added lines 39-41: • I'd like to second this. I find multi-line arguments are much more readable when aligned with each other. In general, I would love an emacs-style indentation mode that could line-up arguments and properly indent lines whenever tab is hit. October 16, 2005, at 01:27 UTC by Bob Hicks - Changed line 564 from: • I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. to: I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. October 16, 2005, at 01:26 UTC by Bob Hicks - Changed lines 562-565 from: to: • I would like to be able to set the wrap instead of taking the default or having to drag the wrap line in the window. --Bob Hicks October 15, 2005, at 12:11 UTC by Allan Odgaard - Changed lines 559-560 from: When invoking the find action, it would be nice if the find selection would be what my cursor selection is. to: • When invoking the find action, it would be nice if the find selection would be what my cursor selection is. That would (sort of) make ⌘F destroy the shared find clipboard. Using the selection for find also seems counterproductive in combination with “Replace in Selection”. Learn to use the shared find clipboard, and I'm sure you will rarely see a reason to even open the find dialog (for other than stuff like e.g. the “Replace in Selection”). -- Allan Odgaard October 14, 2005, at 14:13 UTC by Christopher L - Changed lines 557-560 from: -- Darrell N. to: -- Darrell N. When invoking the find action, it would be nice if the find selection would be what my cursor selection is. October 12, 2005, at 04:39 UTC by Allan Odgaard - Changed lines 3-7 from: • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow. • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.\\ to: • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow.\\ Changed line 5 from: I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you?\\ to: TextMate is modeless, VI works because it is not. I don't know why you mention that mice are slow, I can do basically everything in TM from the keyboard.\\ Changed lines 8-10 from: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen.\\ to: • Click on line number in gutter should select entire line (style of many Windows editors) • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work.\\ Added lines 12-18: I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you? -- Allan Odgaard • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. \\ Changed lines 44-46 from: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.\\ to: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it.\\ Added lines 46-50: All in good time… -- Allan Odgaard • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments. \\ Changed lines 61-63 from: • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it. • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\ to: • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.\\ Added lines 63-67: I went with FogBugz -- Allan Odgaard • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment. \\ Changed lines 104-105 from: • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) to: • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) See e.g. this letter for how to change the default completion command (to search more buffers). -- Allan Odgaard Changed lines 152-153 from: to: Changed lines 154-155 from: --Zila Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy. to: --Zila Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy.\\ Changed lines 203-204 from: to: -- Allan Odgaard Update: See e.g. this ML post for an example macro that closes current tag when typing '</'. Changed lines 217-222 from: I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin\\ to: I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more.\\ Changed line 219 from: It's possible to press ⇧⌘B to select the current block.\\ to: Okay, this could probably be done by a macro that does a conditional regexp replace on the space, and then the return. See e.g. the “Overtype ')'” in the Lisp bundle, which conditionally overtypes the ')' character.\\ Added lines 222-229: • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin It's possible to press ⇧⌘B to select the current block. -- Allan Odgaard Changed lines 338-343 from: --Eric Malm Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\ to: --Eric Malm \\ Added lines 340-347: What you can do is, create snippets for your miscellaneous Greek letters and give them all the same key equivalent, then TextMate will show a menu when you press that key (and the menu has keyboard support, including typing letters to select the entry starting with that letter) -- Allan Odgaard Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok \\ Added lines 538-540: No, not without an external code beautifier to run your buffer through. -- Allan Odgaard October 10, 2005, at 19:24 UTC by Lee Jensen - Added lines 3-4: • I think one of the most valuable features you could possibly add would be a VI mode. Doesn't have to implement all the features of VI but some small set would be nice. Mice are slow. October 10, 2005, at 07:27 UTC by Eric Malm - Added lines 320-322: • Is there any capacity for multiple-keystroke shortcuts? Specifically, when editing LaTeX in jEdit, I found it very convenient to be able to define shortcuts for Greek letters that all took the form ctrl-shift-g <next char>, e.g., 'CS-g a' for \alpha, etc. I would love for simiilar functionality to be present in TextMate (and its presence would virtually guarantee that I purchase a license). Thanks! --Eric Malm October 08, 2005, at 17:39 UTC by Komor - Changed lines 142-144 from: to: Yes! I join Zila in this request. Latin-2 is used in several countries, so this is not a one-person's fancy. --Komor October 07, 2005, at 11:13 UTC by Sven - Changed lines 39-40 from: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. to: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. October 07, 2005, at 11:11 UTC by Sven - Added lines 39-40: • Autocompletion is something very usefull and time saving. Typing an HTML page with a good auto-complete feature is 50% faster (you type only 30% of the code). The ergonomy of the function his is a lot of work and create the definitions for each language is a huge task but definitively worth it. October 06, 2005, at 23:57 UTC by Darrell N - Changed lines 509-527 from: --Will Macdonald to: --Will Macdonald • Found a bug with the syntax coloring for Perl, regarding "hereto" syntax. It works for the general case:  myvar = <<END;
Some text to set the var to
END

But, it doesn't work when the end delimiter is surrounded by parenthesis:

$object->print (<<END); Some text to send to the "print" method of object END  The syntax parser doesn't recognize the end delimiter. The syntax coloring corrects itself if you make the delimiter "END)", but that won't compile in Perl properly. -- Darrell N. October 05, 2005, at 22:36 UTC by Ryan Inselmann - Changed lines 15-16 from: to: -- Allan Odgaard Actually, that is perfect. I hadn't noticed that command before. Thanks! Changed line 509 from: --Will Macdonald to: --Will Macdonald September 29, 2005, at 12:14 UTC by kornel - Added lines 3-4: • Click on line number in gutter should select entire line (style of many Windows editors) Changed line 39 from: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!\\ to: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!\\ Changed line 53 from: Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.\\ to: Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.\\ Changed line 55 from: Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:\\ to: Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:\\ Changed line 60 from: Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\ to: Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment — I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\ Changed line 119 from: Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).\\ to: Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).\\ Changed line 150 from: Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.\\ to: Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.\\ Changed lines 328-332 from: I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace:
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”\\

to:

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+” Replace: “” Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression”\\ Changed lines 356-357 from: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). to: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). Changed line 411 from: It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in.\\ to: It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in.\\ September 29, 2005, at 04:28 UTC by Allan Odgaard - Changed lines 3-5 from: • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work. to: • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work. I'm not sure I understand this. If I open the spelling panel, change language to Svenska (in lack of Danish :) ), quit TextMate and start it again, it then uses Svenska (Swedish) to spell check files. I.e. it is sticky. Does that not work for you? -- Allan Odgaard Changed lines 10-12 from: • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. to: • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. The closest is currently the Edit → Select → Block (⇧⌘B) which will select the every inside the braces. -- Allan Odgaard Deleted line 505: September 29, 2005, at 00:23 UTC by Ryan Inselmann - Changed lines 6-8 from: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost to: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost • I second this. The momentary highlighting of the matching brace is useless if the braced section does not fit on the screen. September 27, 2005, at 23:50 UTC by troublekit - Added lines 303-305: • A small bug in the Ruby syntax highlighting. Regular expressions inside of curly braces that end in ',', '%', '&', and possibly other characters act as if as though they're unterminated. Example: a = { /hi,/ => "Hi" } (Oh, and Textmate has almost single-handedly been responsible for convincing me to buy a Mac. If I do shell out for an iBook, Textmate will be the first thing I buy and install.) September 27, 2005, at 19:54 UTC by Kristofer - Added lines 3-5: • Spell check language independence! My Mac OS X login account runs in Spanish. However, I code in English. If I have "check spell as I type" turned on, all correctly spelled English words are highlighted as errors. So I go to Edit:Spelling and select English as my language. Seems to only work for running the current spell-check, not for selecting a different language for "check spell as I type." I assume you're using built-in OS X APIs, but is there no way to make the "check spelling as I type" option applicable to whatever language the user chooses, rather than relying on the login account's base language? Thanks for all your work. September 25, 2005, at 08:23 UTC by Joost - Changed lines 3-5 from: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or -->Bracket. I often copy/paste to jEdit to use this functionality.... to: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... -- Joost September 25, 2005, at 08:22 UTC by Joost - Changed lines 4-5 from: BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... to: BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or -->Bracket. I often copy/paste to jEdit to use this functionality.... September 25, 2005, at 08:22 UTC by Joost - Added lines 3-5: • Is there a way to add a function to match Braces and Brackets? BBEdit had Balance Character, and also in jEdit you can make jRdit look for the corresponding Brace or Bracket. I often copy/paste to jEdit to use this functionality.... September 22, 2005, at 01:17 UTC by Frob McNulty - Added lines 3-5: • Make the incremental search bar more like FireFox's: http://scribes.sourceforge.net/search.png September 08, 2005, at 05:40 UTC by Jo Campos - Changed lines 3-4 from: • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. to: • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks.\\ September 08, 2005, at 05:39 UTC by Jo Campos - Deleted line 3: Deleted line 4: September 08, 2005, at 05:38 UTC by Jo Campos - Added lines 3-8: • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. --Jo Campos Deleted lines 491-495: • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. --Jo Campos September 07, 2005, at 05:29 UTC by Jo Campos - Added lines 489-490: --Jo Campos September 07, 2005, at 05:28 UTC by Jo Campos - Added lines 485-488: • Make "font-size" absolute and relative values in CSS appear enlighted. http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. Thanks. September 02, 2005, at 15:14 UTC by Will Macdonald - Added lines 483-484: --Will Macdonald September 02, 2005, at 15:13 UTC by Will Macdonald - Changed lines 480-482 from: -- Domenico to: -- Domenico I normall use Emacs with the PHP-mode.el installed. This has a great auto-indent feature, which is activated by pressing Tab. It will shift the line of text to increase.decrease indent, in relation to line above. If I come across a messy PHP file I just open it in Emacs and press Tab for every line, starting from top. You then end up with a beautifully formatted page, very quickly. Is there any way this can be acieved with Text Mate ? September 02, 2005, at 13:03 UTC by Daniel Ericsson - Added lines 200-202: And I'll fourth that one. I have Xcode.app set to work this way. That is, the soft-wrapped part indented one level beyond the non-wrapped part of the line. -- Daniel Ericsson \\ August 28, 2005, at 10:15 UTC by Zack Charter - Changed line 3 from: • How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?\\ to: • Is there anyway to get emacstyle indenting? Where, in certain circumstances, the amount indented isn't based on the number of spaces and instead aligns itself according to the line above it? For example (in php): \\ Added lines 5-13:a = array('one',
'two',
'three');

The 'one', 'two' and 'three' would left align to the same horizontal position. I don't think indenting by one tab is as helpful as being able to read vertically, hopefully I'm not the only one missing this. Is this already possible, or could an option be added? (I read through the wiki and searched for every instance of emacs, indenting and tabs, but I didn't find anything about this.)
-- Zack Charter
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?
\\
August 13, 2005, at 00:54 UTC by Douglas -
Changed lines 11-13 from:
• this page makes no sens... how come you are not using Trac or Bugzilla ?\\
to:

Beautiful, thanks -- Douglas

• this page makes no sens... how come you are not using Trac or Bugzilla ?
\\
August 12, 2005, at 13:58 UTC by Domenico -
Changed lines 458-459 from:

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! http://www.geocities.com/koonux/pymate.zip

to:

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it!

Changed lines 462-466 from:
to:

now you can check PyMate and DocMate development on http://pymate.blogspot.com, my first DevBlog. There's a BerliOS project (linked from the blog) where you can download the latest-and-greatest-and-most-unstable releases before they go in the SVN repository. Have a nice ride!

-- Domenico

August 08, 2005, at 19:02 UTC by 66.206.162.186 -
Changed lines 1-463 from:

HACKED

to:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?

TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.
-- Allan Odgaard
• Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard
• this page makes no sens... how come you are not using Trac or Bugzilla ?

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).
-- Allan Odgaard
• Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.
• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.

Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.

Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:
{ name = "comment.block.preprocessor.c";
 begin = "^\\s*#\\s*if\\s*0\\s*$";  end = "^\\s*#\\s*(else|endif)\\s*$";
},
Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).
-- Allan Odgaard
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though. -- Allan Odgaard • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. Version 1.1b6 and onward has scopes for this. -- Allan Odgaard • Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature. • XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS. • Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot. wouldn't just select all > copy > new document > paste do the same thing? -> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature. • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) • The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions). • I second this request -- Ben Linton • Thirded. This is a de facto standard. • It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right. -- Allan Odgaard • Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document. TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings) Update: also see this blog entry for instructions. -- Allan Odgaard • Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line) • How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help. • Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723 Since TextMate is a general purpose text editor, chances for this feature are slim. -- Allan Odgaard But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider. --jrk Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6). -- Allan Odgaard • Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command. -- Allan Odgaard True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps? -- riaiN (new here) • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)? -- Allan Odgaard • Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :) --Zila • Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something? I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug. If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function. -- Allan Odgaard I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created. Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up. -- Allan Odgaard By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this? This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton • SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature. If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key. Update: actually, a snippet with { as key equivalent is probably more appropriate. -- Allan Odgaard • shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent. Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide: "$\U007F" = "deleteForward:";
-- Allan Odgaard

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes) The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically$ means shift, and \U007F is the key code for delete.
-- Allan Odgaard
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.
-- Allan Odgaard
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.

For the latter, there is Find in Project.
-- Allan Odgaard
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).

Can you clarify?

I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more.
• Modifying the Indented Paste behavior
• I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one?
-- David Tolpin

It's possible to press ⇧⌘B to select the current block.
-- Allan Odgaard
i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me.
-- Torsten Becker
• When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines.
-- Mike Powell

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...
-- St. Chris

I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent.
-- Dan Barber

This is planned for 1.3 (yes, distant future)
-- Allan Odgaard
• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok

As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote.
-- Anonymous

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?

No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work.
-- Allan Odgaard
• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.

Drag & Drop too. mmm...
• Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document.
--Reid Orsten
• Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode.

This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F.

You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense.
-- Allan Odgaard
• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?

-->I'd like to second the highlight "every" instance request - Vim does it this way too.

Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted.
-- StuartWheeler
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.

Yes, this will be fixed real soon now :)
-- Allan Odgaard
• Toggle Foldings at level: More levels?

1.1b6 and onward now has 9 levels, enjoy!
-- Allan Odgaard
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)
-- Allan Odgaard
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.
-- Allan Odgaard
• Tab / Shift-Tab to indent / unindent selected blocks

Use option-tab / shift-option-tab
-- Allan Odgaard
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.

As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab.
-- Allan Odgaard
• Home / End "Wintel" emulation (hard for switchers)

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'

After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.
-- Allan Odgaard
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?

Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added).
-- Allan Odgaard

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.
• Added in 1.1b3 (Run Commands > Text Utilities)
• Remove trailing spaces from end of line.
--Mark Patterson

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression” -- Allan Odgaard • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice. Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin I'll add it to beta 4 (sorry about not getting it done for the beta just released) Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 • Better "smart typing" with quotes -- Mike Powell • Added in 1.1b5 • Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding) Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha! You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape). I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is. Yes, it can be changed. See Help / Key bindings for info. -- Allan Odgaard • Use the Safari key shortcuts to change tabs. The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding. These requests belong to the bundle page! :) -- Allan Odgaard • I use the alternate syntax in PHP, that is: if ($something == that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets. If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end. Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened. You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list). • Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation. For example: if(this) {
if($that) { _ } } Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have. BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason) • What about a VIM compatibility mode? I'm not kidding, this would be very nice. wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :) It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in. -- Allan Odgaard • How can i make the new document default to a specific language, i.e. HTML? Why is this under suggestions? Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running): defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is the UUID of the language you want to be default. -- Allan Odgaard • Is there a way to default all tags, in HTML, to be UPPERCASE? Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these. But consider switching to lowercase, since I think that's mandatory with XHTML. -- Allan Odgaard Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines. Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out. Horizontal scrolling is extremely slow, much slower than vertical. All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems. -- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text. On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems. When pasting indented text the original indents arent respected. Disable re-indent pasted text in preferences if it doesn't work for you. The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection. This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present. I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection. What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself. Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it. Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period! Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen. This has been tried, but the tooltip was always in the way, so it got removed again. Likewise, full path tooltip for the tabs. They already have that. I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";  begin = "<!---"; end = "--->"; patterns =({ include = "comment.block.cfml"; });  } But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules. btw: generally send these type of questions to the mailing list. -- Allan Odgaard there's room for improvement in python support... (do it and I'll shell out my filthy euros!) • folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'( • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands. -- Allan Odgaard Yes but then YOU'll have to pay me$39 ;) Just joking, I'll have a look at it -- could be fun ;)

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! http://www.geocities.com/koonux/pymate.zip

-- Domenico

Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository.

-- Allan Odgaard

August 08, 2005, at 18:00 UTC by 24.235.165.78 -
Changed lines 1-463 from:

Suggestions about the actual editing of text. For example a suggestion to change paste in overwrite mode to replace existing text would fit this page well.

• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?

TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.
-- Allan Odgaard
• Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard
• this page makes no sens... how come you are not using Trac or Bugzilla ?

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).
-- Allan Odgaard
• Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it.
• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.

Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.

Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:
{ name = "comment.block.preprocessor.c";
 begin = "^\\s*#\\s*if\\s*0\\s*$";  end = "^\\s*#\\s*(else|endif)\\s*$";
},
Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).
-- Allan Odgaard
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though. -- Allan Odgaard • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. Version 1.1b6 and onward has scopes for this. -- Allan Odgaard • Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature. • XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS. • Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot. wouldn't just select all > copy > new document > paste do the same thing? -> Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature. • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) • The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions). • I second this request -- Ben Linton • Thirded. This is a de facto standard. • It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right. -- Allan Odgaard • Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document. TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings) Update: also see this blog entry for instructions. -- Allan Odgaard • Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line) • How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help. • Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723 Since TextMate is a general purpose text editor, chances for this feature are slim. -- Allan Odgaard But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider. --jrk Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6). -- Allan Odgaard • Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command. -- Allan Odgaard True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps? -- riaiN (new here) • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)? -- Allan Odgaard • Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :) --Zila • Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something? I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug. If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function. -- Allan Odgaard I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created. Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up. -- Allan Odgaard By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this? This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton • SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature. If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key. Update: actually, a snippet with { as key equivalent is probably more appropriate. -- Allan Odgaard • shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent. Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide: "$\U007F" = "deleteForward:";
-- Allan Odgaard

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes) The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically$ means shift, and \U007F is the key code for delete.
-- Allan Odgaard
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.
-- Allan Odgaard
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.

For the latter, there is Find in Project.
-- Allan Odgaard
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).

Can you clarify?

I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more.
• Modifying the Indented Paste behavior
• I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one?
-- David Tolpin

It's possible to press ⇧⌘B to select the current block.
-- Allan Odgaard
i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me.
-- Torsten Becker
• When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines.
-- Mike Powell

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...
-- St. Chris

I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent.
-- Dan Barber

This is planned for 1.3 (yes, distant future)
-- Allan Odgaard
• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok

As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote.
-- Anonymous

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?

No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work.
-- Allan Odgaard
• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.

Drag & Drop too. mmm...
• Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document.
--Reid Orsten
• Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode.

This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F.

You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense.
-- Allan Odgaard
• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?

-->I'd like to second the highlight "every" instance request - Vim does it this way too.

Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted.
-- StuartWheeler
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.

Yes, this will be fixed real soon now :)
-- Allan Odgaard
• Toggle Foldings at level: More levels?

1.1b6 and onward now has 9 levels, enjoy!
-- Allan Odgaard
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)
-- Allan Odgaard
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.
-- Allan Odgaard
• Tab / Shift-Tab to indent / unindent selected blocks

Use option-tab / shift-option-tab
-- Allan Odgaard
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.

As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab.
-- Allan Odgaard
• Home / End "Wintel" emulation (hard for switchers)

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'

After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.
-- Allan Odgaard
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?

Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added).
-- Allan Odgaard

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.
• Added in 1.1b3 (Run Commands > Text Utilities)
• Remove trailing spaces from end of line.
--Mark Patterson

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression” -- Allan Odgaard • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice. Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin I'll add it to beta 4 (sorry about not getting it done for the beta just released) Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 • Better "smart typing" with quotes -- Mike Powell • Added in 1.1b5 • Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding) Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha! You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape). I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is. Yes, it can be changed. See Help / Key bindings for info. -- Allan Odgaard • Use the Safari key shortcuts to change tabs. The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding. These requests belong to the bundle page! :) -- Allan Odgaard • I use the alternate syntax in PHP, that is: if ($something == that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets. If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end. Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened. You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list). • Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation. For example: if(this) {
if($that) { _ } } Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have. BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason) • What about a VIM compatibility mode? I'm not kidding, this would be very nice. wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :) It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in. -- Allan Odgaard • How can i make the new document default to a specific language, i.e. HTML? Why is this under suggestions? Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running): defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is the UUID of the language you want to be default. -- Allan Odgaard • Is there a way to default all tags, in HTML, to be UPPERCASE? Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these. But consider switching to lowercase, since I think that's mandatory with XHTML. -- Allan Odgaard Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines. Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out. Horizontal scrolling is extremely slow, much slower than vertical. All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems. -- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text. On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems. When pasting indented text the original indents arent respected. Disable re-indent pasted text in preferences if it doesn't work for you. The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection. This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present. I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection. What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself. Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it. Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period! Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen. This has been tried, but the tooltip was always in the way, so it got removed again. Likewise, full path tooltip for the tabs. They already have that. I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";  begin = "<!---"; end = "--->"; patterns =({ include = "comment.block.cfml"; });  } But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules. btw: generally send these type of questions to the mailing list. -- Allan Odgaard there's room for improvement in python support... (do it and I'll shell out my filthy euros!) • folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'( • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands. -- Allan Odgaard Yes but then YOU'll have to pay me$39 ;) Just joking, I'll have a look at it -- could be fun ;)

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! http://www.geocities.com/koonux/pymate.zip

-- Domenico

Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository.

-- Allan Odgaard

to:

HACKED

August 08, 2005, at 02:32 UTC by Allan Odgaard -

Except that in two of the three cases where I select text and press tab to replace it, I do have multiple lines selected -- when macros get some extra features users can set this up themselves using a macro, but I'm not going to add it as standard, period!

August 08, 2005, at 01:48 UTC by Allan Odgaard -
Changed lines 97-98 from:

-- riaiN (new here)

to:

-- riaiN (new here)

Changed line 197 from:

to:

August 08, 2005, at 01:47 UTC by Allan Odgaard -
Changed line 73 from:

Update: also see this blog entry for instructions.\\

to:

Update: also see this blog entry for instructions.\\

Changed lines 98-99 from:

//

to:
Changed line 257 from:
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.\\\\
to:
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.\\
Changed line 461 from:
to:
August 08, 2005, at 01:41 UTC by Allan Odgaard -

TextMate already has a similar feature, press escape to get a completion based on context. You can also overload that feature to give completions based on other criteria.
-- Allan Odgaard

Changed lines 54-55 from:

wouldn't just select all > copy > new document > paste do the same thing?

to:

wouldn't just select all > copy > new document > paste do the same thing?
\\

• It may appear in a future version, if you want it now, use Start Macro Recording, then do Edit -> Select -> Line (extends the selection to entire lines) and shift left/right. Stop Macro Recording and save the macro, giving it the key equivalent of shift left/right.
-- Allan Odgaard

Update: also see this blog entry for instructions.\\

Changed lines 156-160 from:
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).\\
to:
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.\\

For the latter, there is Find in Project.
-- Allan Odgaard

• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).
\\
Changed lines 172-173 from:
to:

-- David Tolpin

It's possible to press ⇧⌘B to select the current block.
-- Allan Odgaard

Changed lines 188-193 from:

-- Dan Barber

• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok\\
to:

-- Dan Barber\\

This is planned for 1.3 (yes, distant future)
-- Allan Odgaard

• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok
\\
Changed lines 203-205 from:

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?

• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\
to:

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?\\

No. I get lots of letters from people stating their various deal-breakers, but development of TextMate is best done by having me plan the work.
-- Allan Odgaard

• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.
\\
Changed lines 218-224 from:

This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F.

• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?
I'd like to second the highlight "every" instance request - Vim does it this way too.\\
to:

Changed lines 220-223 from:

Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted.
-- StuartWheeler

• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\
to:

This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F.\\

Changed line 222 from:

Yes, this will be fixed real soon now :)\\

to:

You can press ctrl-S again to find next (or shift-ctrl-S for previous). As for having the incremental search use the find clipboard, I'm not sure, but probably it makes sense.\\

Changed line 225 from:
• Toggle Foldings at level: More levels?\\
to:
• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?\\
Changed lines 227-231 from:

1.1b6 and onward now has 9 levels, enjoy!
-- Allan Odgaard

• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\
to:
I'd like to second the highlight "every" instance request - Vim does it this way too.\\
Changed lines 229-234 from:

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)\\

to:

Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted.
-- StuartWheeler

• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.

Yes, this will be fixed real soon now :)\\
Changed line 237 from:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\
to:
• Toggle Foldings at level: More levels?\\
Changed line 239 from:

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\

to:

1.1b6 and onward now has 9 levels, enjoy!\\

Changed lines 242-243 from:
• Tab / Shift-Tab to indent / unindent selected blocks\\
to:
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\
Changed line 245 from:

Use option-tab / shift-option-tab\\

to:

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)\\

Changed lines 247-249 from:
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.
• Home / End "Wintel" emulation (hard for switchers)\\
to:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\
Changed lines 250-253 from:

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:\\

to:

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.
-- Allan Odgaard

• Tab / Shift-Tab to indent / unindent selected blocks\\
Changed lines 255-258 from:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'

After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.\\

to:

Use option-tab / shift-option-tab\\

Changed lines 258-262 from:
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
to:
• I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour.\\\\
Changed lines 260-263 from:

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\

to:

As stated on this page and a dozen other places, I need tab to overwrite the selection with a tab.
-- Allan Odgaard

• Home / End "Wintel" emulation (hard for switchers)\\
Changed lines 265-270 from:

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.

• Added in 1.1b3 (Run Commands > Text Utilities)
to:

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:\\

Changed lines 267-271 from:

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression”\\ to: mkdir ~/Library/KeyBindings echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }' After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.\\ Changed lines 272-274 from: • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice.\\ to: • Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?\\ Changed line 275 from: Try View -> Gutter -> Line Numbers (option-cmd-L).\\ to: Forward movement can be done by a macro that does a regexp search. Currently though regexp searches are only forwards, so backward movement is problematic (but backwards regexp search will be added).\\ Changed lines 277-280 from: • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin\\ to: Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\ Changed line 283 from: I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\ to: Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\ Changed lines 285-292 from: Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 to: I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) Changed lines 292-295 from: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin\\ to: I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace:
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”
-- Allan Odgaard

• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.\\
Changed lines 302-305 from:

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).

• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\
to:

Try View -> Gutter -> Line Numbers (option-cmd-L).
-- Allan Odgaard

• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.
-- David Tolpin\\
Changed line 309 from:

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\

to:

I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\

Changed lines 311-318 from:

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.\\

to:

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.

• 1.1b4
Changed lines 320-323 from:

Yes, it can be changed. See Help / Key bindings for info.
-- Allan Odgaard

• Use the Safari key shortcuts to change tabs.\\
to:

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).

• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin\\
Changed lines 325-328 from:

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html

• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.\\
to:

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).

• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\
Changed lines 330-334 from:

These requests belong to the bundle page! :)\\

to:

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

Yes, it can be changed. See Help / Key bindings for info.\\

Changed lines 337-341 from:
• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.\\
to:
• Use the Safari key shortcuts to change tabs.\\
Changed lines 339-342 from:

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\

to:

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html

• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.\\
Changed lines 344-351 from:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.\\

to:

These requests belong to the bundle page! :)
-- Allan Odgaard

• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.\\
Changed line 353 from:

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).\\

to:

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\

Changed lines 355-359 from:
to:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

Deleted line 392:
Changed lines 459-462 from:

-- Domenico

to:

-- Domenico

Very nice stuff Domenico! Brad Miller have added it to the Python bundle on the repository.

-- Allan Odgaard

August 07, 2005, at 20:05 UTC by 84.13.40.71 -
Changed lines 180-181 from:

to:

\\

Changed lines 183-185 from:

-- Anonymous

• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\
to:

-- Anonymous\\

This really is a deal breaker for me - I'd love to move away from BBEdit but the one-letter, one-undo mode just feels oddly un-natural. No chance of the feature being bumped up the todo list?

• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.
\\
August 07, 2005, at 18:56 UTC by 64.161.26.108 -
Changed line 2 from:
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make it work now?\\
to:
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make that work now?\\
August 07, 2005, at 18:55 UTC by 64.161.26.108 -
Changed lines 6-7 from:

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks! -- Allan Odgaard\\

to:

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard

• this page makes no sens... how come you are not using Trac or Bugzilla ?\\
Deleted lines 10-11:
• this page makes no sens... how come you are not using Trac or Bugzilla ?
\\
August 07, 2005, at 18:55 UTC by 64.161.26.108 -
Changed lines 6-9 from:

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!
-- Allan Odgaard

• this page makes no sens... how come you are not using Trac or Bugzilla ?\\
to:

You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks! -- Allan Odgaard\\

• this page makes no sens... how come you are not using Trac or Bugzilla ?
\\
August 07, 2005, at 18:53 UTC by 64.161.26.108 -
Changed line 2 from:
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make it work now?
to:
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make it work now?\\
August 07, 2005, at 18:49 UTC by 64.161.26.108 -
Changed lines 2-3 from:
to:
• How about text autocompletion via support for BBAutoComplete ( http://c-command.com/bbautocomplete/ )? Or maybe somebody knows how to make it work now?

\\

August 07, 2005, at 18:21 UTC by Domenico -

pymate is busy being born! I've been working on this script a couple days and it appears to work... let me know what you think of it! http://www.geocities.com/koonux/pymate.zip

August 07, 2005, at 16:37 UTC by Alan -

Then do this as SCiTE does it: when multiple lines are selected, tab/shift-tab acts as in/out-dent. When a selection spans no more than a single line, the selection is replaced by a tab upon hitting the key. I think this is a very good way of doing it.

August 06, 2005, at 17:17 UTC by Domenico -
Changed lines 418-419 from:
to:

Yes but then YOU'll have to pay me $39 ;) Just joking, I'll have a look at it -- could be fun ;) August 06, 2005, at 02:26 UTC by Allan Odgaard - Changed lines 414-415 from: • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( to: • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( Currently nothing exists for Python, but it shouldn't be a problem to make this. You can make a command that runs the Python script with output set to HTML, then pipe stderr into a script that parses errors and shows these as hyperlinks -- this is done for Xcodebuild, LaTeX & View and other commands. -- Allan Odgaard August 05, 2005, at 23:47 UTC by Domenico - Changed lines 406-416 from: to: there's room for improvement in python support... (do it and I'll shell out my filthy euros!) • folding seldom works right. keeping track of indenting widths can take you very far, but I'm not so sure it can be done with regexes. perhaps a "general mode" where folding is just based upon indenting would suffice... *anything* but the current mode :'( • when python pops out an exception, bbedit pops out a list of the stack trace. screenshot here. double-clicking on an item opens the file and highlights the appropriate line. is there anything similar? :'( -- Domenico July 28, 2005, at 23:24 UTC by StuartWheeler - Changed line 200 from: • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\ to: I'd like to second the highlight "every" instance request - Vim does it this way too.\\ Added lines 202-206: Also, when using the Find Panel, if you hit the summation button to give the total number of incidences of a string, it would be great if all incidences could be highlighted. -- StuartWheeler • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project. \\ July 25, 2005, at 17:50 UTC by pbx - Added lines 13-14: • Consider Mantis then -- PHP based, lightweight, but still with handy things like RSS feeds. I think Trac is the best if you can swing it. July 25, 2005, at 17:43 UTC by pbx - Added lines 57-58: • Thirded. This is a de facto standard. July 23, 2005, at 11:09 UTC by 213.112.138.148 - Changed lines 191-192 from: • This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F. to: This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F. July 23, 2005, at 11:06 UTC by 213.112.138.148 - Changed lines 191-192 from: to: • This is a wonderful function, however when I searched for a word, and found a match, I then tried hitting Command+G to go to the next match, and that didn't work. Ctrl-s really should work like a quick version of Command+F. Changed lines 220-221 from: to: • I have LiteSwitch on option-tab, I'd really like just simple Tab / Shift-Tab to indent / unindent, to me that's the logical behaviour. July 23, 2005, at 08:35 UTC by Allan Odgaard - Added lines 359-360: On OS X such workarounds are often just a source for new problems, e.g. sub-pixel anti-alias won't be applied in the same way to the off-screen rendering, there's no guarantee the off-screen bitmap ends up on the graphics card etc. Quartz Extreme 2D may solve the slow text rendering, which AFAIK only exist for AGPx2 systems. Added lines 381-382: Changed lines 389-394 from: But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? to: But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? Individual rules can only be included when these are in the repository dictionary. See this blog entry for more info and examples about local rules. btw: generally send these type of questions to the mailing list. -- Allan Odgaard July 22, 2005, at 17:15 UTC by Jon Hart - Added lines 357-358: -- how about rendering the whole width of the document, within some reasonable heuristic for width - say 20% - so that when you scroll right it only requires a blit, and not rendering of text. Changed lines 377-385 from: They already have that. to: They already have that. I mostly develop in coldfusion, and Ive created a CFML language highlighter, nothing more than the HTML highlighter with a few tweaks. One of coldfusions 'features' is that comments can be nested. Ive got this for my comment highlighter { name = "comment.block.cfml";  begin = "<!---"; end = "--->"; patterns =({ include = "comment.block.cfml"; });  } But it doesnt recurse correctly, and single ---> will close all of the nested comments, which is incorrect behaviour. Ive tried having the include pattern be a copy, comment.block.cfml.nested, but that made no difference. Is this posslbe? July 22, 2005, at 14:23 UTC by 24.99.35.68 - Changed lines 80-82 from: • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\ to: Added lines 82-87: True, however, I would agree with tomek - this is the main thing that I like about xcode over textmate. i haven't played too much with xcode and am still evaluating textmate (under a deadline and just switched back to freelancing so i can now use my mac again for development (amen and hallelujah)). So far I really dig textmate, but in the cases where i copy the code from a super class to another class that extends it (for the purposes of overriding the super class function), i often have to go back through and manually reset all the tabbing. I understand that it would be quite an undertaking, but from my view, this is the main reasoning for making such a request. Would this be something that could be built into the language definition perhaps? -- riaiN (new here) // • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony \\ July 21, 2005, at 19:10 UTC by Allan Odgaard - Changed lines 347-348 from: Known bug, and there's , but 1.1b15 will soon be out. to: Known bug, and there's an update (http://macromates.com/textmate/files/TextMate_1.1b14_2005-07-14.zip) but 1.1b15 will soon be out. Changed line 371 from: They already have that. to: They already have that. July 21, 2005, at 19:03 UTC by Allan Odgaard - Added lines 347-348: Known bug, and there's , but 1.1b15 will soon be out. Added lines 351-352: All lines needs to be drawn on h-scroll, and text drawing on OS X is very slow on some systems. Added lines 355-356: Disable re-indent pasted text in preferences if it doesn't work for you. Added lines 358-360: This is by design, since in/out-indent also works with column selections etc. -- you can record a macro that does Edit -> Select Line and then in/out-indent and store on the key, then it'll extend the selection to a line first. The default behavior may be changed, but it's undecided at present. Added lines 363-364: What I'm concerned with is the ability to replace selection with a tab, something I do a lot myself. Changed lines 367-371 from: Likewise, full path tooltip for the tabs. to: This has been tried, but the tooltip was always in the way, so it got removed again. Likewise, full path tooltip for the tabs. They already have that. July 20, 2005, at 21:21 UTC by Jon Hart - Changed lines 343-356 from: to: Using b14, I have softwrap turned off and I dont get a horizontal scroll bar when the document has long lines. Horizontal scrolling is extremely slow, much slower than vertical. When pasting indented text the original indents arent respected. The in/out-dent functionality seems particularly obscure. The rule seems to be that the tab is added to the start of the selection on a given line, resulting in a partially selected first line being indented in the middle, and the last line being indented at the start. I suggest that the indent functionality operate on the start of the line, rather than the selection. I also request that tab and shift-tab be used, rather than option-tab. Tab is now the common mechanism in most text editors, and I find it very hard to break the habbit ( keep command-] as well ). If you are concerned about consistancy with the 'replace selection' system, there are other keypresses in TM that dont replace the selection, the parenthesis surround the selection. Tooltip when mousing over a file in the project that has been ...ed, so that its full name can be seen. Likewise, full path tooltip for the tabs. July 15, 2005, at 04:51 UTC by 67.177.88.191 - Added lines 55-56: July 09, 2005, at 00:27 UTC by 80.132.186.136 - Changed lines 103-105 from: By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\ to: By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.\\ Added lines 105-108: Look at it this way: losing your insert location when you make a selection is a bug that many other editors have that TextMate doesn't have. --MichaelJohnston • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this? \\ July 03, 2005, at 12:26 UTC by Allan Odgaard - Changed line 5 from: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterik, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterik when pressing the key inside comment blocks!\\ to: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterisk, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterisk when pressing the key inside comment blocks!\\ July 03, 2005, at 12:21 UTC by Allan Odgaard - Deleted lines 0-6: Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments. this page makes no sens... how come you are not using Trac or Bugzilla ? Changed line 3 from: • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\ to: • Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments.\\ Changed lines 5-10 from: Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule: { name = "comment.block.preprocessor.c";  begin = "^\\s*#\\s*if\\s*0\\s*$";
 end = "^\\s*#\\s*(else|endif)\\s*$"; }, Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\ to: You can set it up to do that yourself: Make a snippet that inserts the newline plus asterik, set the key equivalent to enter and the scope to “comment.block”, and volla, enter will now insert the asterik when pressing the key inside comment blocks!\\ Changed lines 8-14 from: • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0
when you change first, and jumps to the next field (Tab) ,
second is supposed to be selected, but instead the whole text is selected.
- Sune Simonsen \\
to:
• this page makes no sens... how come you are not using Trac or Bugzilla ?\\
Changed line 10 from:

That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.\\

to:

I really do not like Bugzilla, and haven't gotten around to requesting that my ISP install Trac for me (doesn't seem to be something I can do on my own).\\

Changed line 13 from:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\
to:
• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\
Changed lines 15-22 from:

Version 1.1b6 and onward has scopes for this.\\

to:

Update: this is native behavior for 1.1b13+ and even works for #if 01 … #else … #end etc.

Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule:
{ name = "comment.block.preprocessor.c";
 begin = "^\\s*#\\s*if\\s*0\\s*$";  end = "^\\s*#\\s*(else|endif)\\s*$";
},
Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\

Changed lines 25-29 from:
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature.
• XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS.
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.\\
to:
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen \\ Changed lines 33-43 from: wouldn't just select all > copy > new document > paste do the same thing? Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature. • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) • The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions). • Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document. TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings)\\ to: That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.\\ Changed lines 36-40 from: • Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line) • How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help. • Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723\\ to: • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\ Changed lines 38-44 from: Since TextMate is a general purpose text editor, chances for this feature are slim. -- Allan Odgaard But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider. --jrk Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).\\ to: Version 1.1b6 and onward has scopes for this.\\ Changed lines 41-45 from: • Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\ to: • Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature. • XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS. • Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.\\ Changed lines 47-57 from: Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.\\ to: wouldn't just select all > copy > new document > paste do the same thing? Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature. • Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.) • The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions). • Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document. TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings)\\ Changed lines 60-64 from: • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\ to: • Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line) • How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help. • Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723\\ Changed line 66 from: Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?\\ to: Since TextMate is a general purpose text editor, chances for this feature are slim.\\ Changed lines 69-73 from: • Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :) --Zila • Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\ to: But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider. --jrk\\ Changed lines 72-75 from: I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas\\ to: Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6). -- Allan Odgaard • Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\ Changed lines 77-80 from: this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.\\ to: Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command. -- Allan Odgaard • Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\ Changed line 82 from: If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.\\ to: Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?\\ Changed lines 85-89 from: I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.\\ to: • Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :) --Zila • Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\ Changed lines 91-92 from: Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up. -- Allan Odgaard\\ to: I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas\\ Changed lines 93-95 from: By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\ to: this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.\\ Changed lines 95-97 from: This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton • SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.\\ to: If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function. -- Allan Odgaard\\ Changed line 98 from: If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.\\ to: I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.\\ Changed lines 100-103 from: Update: actually, a snippet with { as key equivalent is probably more appropriate. -- Allan Odgaard • shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton\\ to: Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up. -- Allan Odgaard\\ Changed lines 103-105 from: This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent.\\ to: By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor. • Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\ Changed lines 107-109 from: Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide: "$\U007F" = "deleteForward:";
-- Allan Odgaard\\

to:

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton

• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.\\
Changed line 111 from:

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes)\\ to: If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.\\ Changed line 113 from: The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically$ means shift, and \U007F is the key code for delete.\\

to:

Update: actually, a snippet with { as key equivalent is probably more appropriate.\\

Changed line 116 from:
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.\\
to:
• shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton\\
Changed lines 118-125 from:

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.
-- Allan Odgaard

• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).\\
to:

This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent.\\

Changed lines 120-122 from:

Can you clarify?\\

to:

Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide:
"$\U007F" = "deleteForward:"; -- Allan Odgaard\\ Changed lines 124-136 from: I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin • Please bring back the behaviour-menu. i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me. -- Torsten Becker • When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines. -- Mike Powell\\ to: I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-) (Wes)\\

Changed lines 126-127 from:

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...
-- St. Chris\\

to:

The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically $means shift, and \U007F is the key code for delete. -- Allan Odgaard • transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.\\ Changed lines 131-137 from: I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok\\ to: Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future. -- Allan Odgaard • Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc. • Selecting the newline character • An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).\\ Changed lines 140-145 from: Reply: http://lists.macromates.com/pipermail/textmate/2004-December/002080.html As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote. -- Anonymous • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ to: Can you clarify?\\ Changed lines 142-148 from: Drag & Drop too. mmm... • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode. -- Peter Traskalik\\ to: I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. • Modifying the Indented Paste behavior • I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one? -- David Tolpin • Please bring back the behaviour-menu. i think the behaviour-menu from the previous versions was a really handy and fast feature. just do 2 clicks and change the current behaviour. i dont want the preference-pane to be removed but for doing fast changes for just one file i find it really handy and better than than always going in the preferences. if not the whole behaviour-menu, so please bring back at least the tab-emulation stuff, this is what mostly annoys me. -- Torsten Becker • When a line automatically wraps at the edge of the window with soft line wrapping, the second half of the line should be indented one tab beyond the current line. Of course no actual characters should be created, but it would lead to a great deal more visual clarity in situations with excessively long lines. -- Mike Powell\\ Changed lines 156-160 from: Already there - Ctrl-s • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\ to: I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me... -- St. Chris\\ Changed lines 159-162 from: Yes, this will be fixed real soon now :) -- Allan Odgaard • Toggle Foldings at level: More levels?\\ to: I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok\\ Changed lines 167-171 from: 1.1b6 and onward now has 9 levels, enjoy! -- Allan Odgaard • How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way... --Tony Arnold\\ to: Reply: http://lists.macromates.com/pipermail/textmate/2004-December/002080.html As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote. -- Anonymous • Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\ Changed lines 174-177 from: The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :) -- Allan Odgaard • XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\ to: Drag & Drop too. mmm... • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode. -- Peter Traskalik\\ Changed lines 182-188 from: You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\ to: Already there - Ctrl-s • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project. Yes, this will be fixed real soon now :)\\ Changed line 191 from: • Tab / Shift-Tab to indent / unindent selected blocks\\ to: • Toggle Foldings at level: More levels?\\ Changed line 193 from: Use option-tab / shift-option-tab\\ to: 1.1b6 and onward now has 9 levels, enjoy!\\ Changed lines 196-197 from: • Home / End "Wintel" emulation (hard for switchers)\\ to: • How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way... --Tony Arnold\\ Changed lines 199-202 from: Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:\\ to: The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :) -- Allan Odgaard • XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\ Changed lines 204-207 from: mkdir ~/Library/KeyBindings echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }' After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.\\ to: You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\ Changed lines 207-211 from: • Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate? Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\ to: • Tab / Shift-Tab to indent / unindent selected blocks\\ Changed lines 209-212 from: Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\ to: Use option-tab / shift-option-tab -- Allan Odgaard • Home / End "Wintel" emulation (hard for switchers)\\ Changed lines 214-219 from: I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) to: Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:\\ Changed lines 216-220 from: I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace:
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”\\

to:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'

After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.\\

Changed lines 221-223 from:
• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.\\
to:
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
Changed lines 228-233 from:

Try View -> Gutter -> Line Numbers (option-cmd-L).
-- Allan Odgaard

• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.
-- David Tolpin\\
to:

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\

Changed lines 230-235 from:

I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\

to:

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.

• Added in 1.1b3 (Run Commands > Text Utilities)
Changed lines 237-244 from:

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.

• 1.1b4
to:

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression” -- Allan Odgaard • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice.\\ Changed lines 247-249 from: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?\\ to: Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.\\ Changed lines 254-257 from: Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\ to: I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\ Changed lines 256-263 from: You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\ to: Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 Changed lines 265-268 from: I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.\\ to: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin\\ Changed lines 270-273 from: Yes, it can be changed. See Help / Key bindings for info. -- Allan Odgaard • Use the Safari key shortcuts to change tabs.\\ to: Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\ Changed lines 275-278 from: The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding.\\ to: You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\ Changed lines 277-279 from: These requests belong to the bundle page! :)\\ to: I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is. Yes, it can be changed. See Help / Key bindings for info.\\ Changed lines 282-286 from: • I use the alternate syntax in PHP, that is: if ($something == $that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets.\\ to: • Use the Safari key shortcuts to change tabs.\\ Changed lines 284-287 from: If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\ to: The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding.\\ Changed lines 289-296 from: Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.\\ to: These requests belong to the bundle page! :) -- Allan Odgaard • I use the alternate syntax in PHP, that is: if ($something == $that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets.\\ Changed line 298 from: You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).\\ to: If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\ Changed lines 300-304 from: to: Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened. You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list). Changed lines 327-328 from: defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is that of the language you want to be default.\\ to: defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is the UUID of the language you want to be default.\\ July 02, 2005, at 07:16 UTC by Niko Nyman - Added lines 1-3: Support for Eclipse style multiline comment editing would be cool, where the editor automatically inserts an asterisk in front of a new line when pressing enter between /* */ comment delimiters. Especially useful for making clean looking JavaDoc comments. June 29, 2005, at 20:49 UTC by 24.85.69.203 - Added lines 1-4: this page makes no sens... how come you are not using Trac or Bugzilla ? June 26, 2005, at 17:25 UTC by Allan Odgaard - Changed lines 306-311 from: wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :) • How can i make the new document default to a specific language, i.e. HTML? • Is there a way to default all tags, in HTML, to be UPPERCASE? to: wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :) It would require that TextMate became a “mode” editor, where typing letters on the keyboard would do different things depending on the mode you were in. -- Allan Odgaard • How can i make the new document default to a specific language, i.e. HTML? Why is this under suggestions? Anyway, to get HTML as the default for new untitled documents you'd (from Terminal) execute (while TextMate is not running): defaults write com.macromates.textmate OakDefaultLanguage '17994EC8-6B1D-11D9-AC3A-000D93589AF6' The long alpha-numeric code is that of the language you want to be default. -- Allan Odgaard • Is there a way to default all tags, in HTML, to be UPPERCASE? Again, this is not a suggestion. And I have no idea what exactly you refer to. The control-space macro works with whatever you type, so if you type it as uppercase, it'll make it uppercase. The snippets OTOH are written to insert it as lowercase, so you'd have to change these. But consider switching to lowercase, since I think that's mandatory with XHTML. -- Allan Odgaard June 24, 2005, at 14:22 UTC by Mitch Kramer - Changed lines 308-311 from: to: • How can i make the new document default to a specific language, i.e. HTML? • Is there a way to default all tags, in HTML, to be UPPERCASE? June 19, 2005, at 14:56 UTC by Allan Odgaard - Changed lines 5-8 from: Me to actually! :) You can sort of achieve it by going to the language editor and make a rule that says: name = "comment.block.preprocessor"; begin = "^#if 0$"; end = "^#endif$" The problem is then when you use #else or nesting. I may take a shoot at creating the rules for that later though…\\ to: Assuming you're using 1.1b12 or later, select View -> Languages -> Edit Languages…, unfold the C bundle and for the C language enter this rule: { name = "comment.block.preprocessor.c";  begin = "^\\s*#\\s*if\\s*0\\s*$";
 end = "^\\s*#\\s*(else|endif)\\s*$"; }, Though it won't work for the case of #if 01 … #else … #endif (i.e. coloring the else-part as a comment), and there might be problems with nesting (and currently the begin/end keywords are also included in the comment I've added the rule to my own C language, so I may update it later (and include it in the “official” language definition if it works out well).\\ June 19, 2005, at 14:47 UTC by Allan Odgaard - Changed lines 3-11 from: • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment. • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0
when you change first, and jumps to the next field (Tab) ,
second is supposed to be selected, but instead the whole text is selected.
- Sune Simonsen \\
to:
• I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment.\\
Changed lines 5-8 from:

That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.\\

to:

Me to actually! :) You can sort of achieve it by going to the language editor and make a rule that says:
name = "comment.block.preprocessor";
begin = "^#if 0$"; end = "^#endif$"
The problem is then when you use #else or nesting. I may take a shoot at creating the rules for that later though…\\

Changed lines 11-17 from:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\
to:
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , second is supposed to be selected, but instead the whole text is selected. - Sune Simonsen \\ Changed line 19 from: Version 1.1b6 and onward has scopes for this.\\ to: That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.\\ Added lines 22-26: • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. Version 1.1b6 and onward has scopes for this. -- Allan Odgaard Changed line 307 from: to: June 19, 2005, at 05:14 UTC by Ernest - Added line 2: June 19, 2005, at 05:14 UTC by Ernest - Changed lines 2-3 from: to: • I would love a feature where a block of code with #if 0 .... #endif around it would be colored like a comment. June 17, 2005, at 08:55 UTC by danbee - Changed lines 137-139 from: • I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber to: I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber June 17, 2005, at 08:54 UTC by danbee - Changed lines 135-143 from: -- St. Chris I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok\\ to: -- St. Chris\\ Added lines 137-144: • I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. -- Dan Barber • Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok \\ June 17, 2005, at 08:51 UTC by danbee - Changed lines 138-139 from: to: -- Dan Barber Changed line 299 from: to: June 17, 2005, at 08:50 UTC by danbee - Added lines 137-138: I'll third that one. But make where it wraps to configurable. I'm used to TextPad on Windows, which wraps an indented line to the same level as the indent. June 06, 2005, at 19:07 UTC by 80.58.8.107 - Deleted lines 2-6: • Is there any way to change cursor movement keys? I like "End" key to go to end of line. scroll down. instructions how to do it are on this very page. June 05, 2005, at 13:57 UTC by 68.193.198.179 - Changed lines 4-5 from: I like "End" key to go to end of line. to: I like "End" key to go to end of line. scroll down. instructions how to do it are on this very page. June 04, 2005, at 22:24 UTC by 80.58.8.107 - Added lines 3-5: • Is there any way to change cursor movement keys? I like "End" key to go to end of line. June 01, 2005, at 00:17 UTC by Allan Odgaard - Changed lines 9-11 from: - Sune Simonsen • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. \\ to: - Sune Simonsen \\ Changed line 11 from: Version 1.1b6 and onward has scopes for this.\\ to: That'd be bugs at this domain. I'm however aware of this current limitaiton with snippets. You need at least one character between placeholders. The problem is emphasized if e.g. you insert the above snippet, press delete, tab, delete. Then you have 3 placeholders at the exact same position in the text. With the proper bookkeeping I hope to be able to solve it though.\\ Added lines 14-18: • Make the code snippets work only in the mode they where created for, like jedit's abbreviations. Version 1.1b6 and onward has scopes for this. -- Allan Odgaard May 31, 2005, at 14:04 UTC by Sune Simonsen - Deleted line 8: \\ May 31, 2005, at 14:02 UTC by Sune Simonsen - Changed line 8 from: that supposed to select second, but the whole text is selected. \\ to: second is supposed to be selected, but instead the whole text is selected. \\ May 31, 2005, at 14:01 UTC by Sune Simonsen - Changed lines 3-7 from: • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) that supposed to select second, but the whole text is selected.

to:
• Where do I report bugs?
I think I found a bug in the snippet code,
if you make a snippet
${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) , that supposed to select second, but the whole text is selected. \\ May 31, 2005, at 13:59 UTC by Sune Simonsen - Added lines 3-9: • Where do I report bugs? I think I found a bug in the snippet code, if you make a snippet${1:first}${2:second}$0 when you change first, and jumps to the next field (Tab) that supposed to select second, but the whole text is selected. - Sune Simonsen

May 30, 2005, at 15:51 UTC by 82.142.185.89 -
Changed lines 8-9 from:
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching tabs. Very useful feature.
to:
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching brackets. Very useful feature.
May 28, 2005, at 18:56 UTC by Allan Odgaard -
Changed line 5 from:

Main.Version1Dot1Beta6 and onward has scopes for this.\\

to:

Version 1.1b6 and onward has scopes for this.\\

May 28, 2005, at 18:55 UTC by Allan Odgaard -
Changed line 5 from:

Version1Dot1Beta6 and onward has scopes for this.\\

to:

Main.Version1Dot1Beta6 and onward has scopes for this.\\

May 28, 2005, at 18:55 UTC by Allan Odgaard -
Changed lines 3-4 from:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.
to:
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.

Version1Dot1Beta6 and onward has scopes for this.
-- Allan Odgaard
May 28, 2005, at 16:58 UTC by Sune Simonsen -
• Make the code snippets work only in the mode they where created for, like jedit's abbreviations.
May 26, 2005, at 02:47 UTC by 68.193.198.179 -
• Subword navigation. In Xcode 2.0 ctrl-left/right arrow will stop at capital letters. Is there a way to get this in TextMate?
May 24, 2005, at 15:33 UTC by 68.193.47.245 -
Changed lines 274-276 from:
• What about a VIM compatibility mode? I'm not kidding, this would be very nice.
to:
• What about a VIM compatibility mode? I'm not kidding, this would be very nice.

wouldn't that require multiple stroke keybindings? if so, it gets my vote for that reason alone :)
May 23, 2005, at 15:54 UTC by 82.142.185.89 -
• Highlight all types of brackets (() [] {}) like XEmacs does. By default it uses kinda greenish background, and draws it between matching tabs. Very useful feature.
May 19, 2005, at 15:08 UTC by Allan Odgaard -
Changed lines 148-151 from:
• Toggle Foldings at level: More levels?
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\
to:
• Toggle Foldings at level: More levels?\\
Changed line 150 from:

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)\\

to:

1.1b6 and onward now has 9 levels, enjoy!\\

Changed lines 153-154 from:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\
to:
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\
Changed line 156 from:

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\

to:

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)\\

Changed line 159 from:
• Tab / Shift-Tab to indent / unindent selected blocks\\
to:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\
Changed line 161 from:

Use option-tab / shift-option-tab\\

to:

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\

Changed line 164 from:
• Home / End "Wintel" emulation (hard for switchers)\\
to:
• Tab / Shift-Tab to indent / unindent selected blocks\\

Use option-tab / shift-option-tab
-- Allan Odgaard

• Home / End "Wintel" emulation (hard for switchers)
\\
May 18, 2005, at 15:08 UTC by Jamie Hoover -
• XML autocompletion from an XML schema (XSD): So far the only app that can do this well for Mac OS is OxygenXML. It is a java application and has a terrible interface but the functionality of autocompleting is done very well. Based on contextually where the cursor is, tags and attributes are suggested that fit within the rules layed out in the schema. If a native app like Textmate took on XML editing, this would set it apart from all others and get high adoption from the growing community of XML/XSLT developers that prefer the Mac OS.
May 16, 2005, at 16:48 UTC by 216.220.108.206 -
Changed lines 7-8 from:

Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.

to:
Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.
May 16, 2005, at 16:47 UTC by 216.220.108.206 -

Yes and no. The above method is how I do it now. It works, but presents a few ugly qualities: the new document does not have the proper syntax highlighting, the title is Untitled and there is no association with the original. The snap shot save would be fewer steps and have the above qualities. This is by no means a killer feature, but it would be useful to myself, and others. Photoshop uses this feature.

May 06, 2005, at 01:55 UTC by 68.193.198.179 -
Changed lines 3-4 from:
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.
to:
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.

wouldn't just select all > copy > new document > paste do the same thing?
May 05, 2005, at 05:35 UTC by 216.254.68.204 -
• Snapshot save: This would be a temporary copy of the file stored in memory. The concept being you make a snapshot, make edits, save the file, and if you don't want the changes you can revert to the snapshot.
April 28, 2005, at 15:31 UTC by 84.0.181.191 -
Changed lines 35-37 from:
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\
to:
• Please allow to select ISO-8859-2 (Latin 2) encoding in file save dialog. We have a lot of old code here, that uses Latin 2 and the change to UTF-8 is not possible. I don't like to use jEdit :)
--Zila
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?
\\
April 26, 2005, at 14:39 UTC by St Chris -
Changed line 104 from:

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...

to:

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me...\\

April 26, 2005, at 14:38 UTC by St Chris -
Changed lines 102-107 from:
• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok\\
to:

I'll second that and suggest it as a preference option. It makes wrapped lines much easier to read, IMO. I first noticed this indent behavior in a printout from Visual InterDev (but not on the screen?!); as soon as I saw the indents, I fired off a request to Maarten Hekkelman (way back when) to add the feature to Pepper. He did, and it's one of the few reasons I still use Pepper by default instead of TextMate. You can convert me... -- St. Chris

• Add 'wrap lines by character' mode, like SEE has. It's quite useful for writing obj-c with reallyLongMethodNames:andArgumentLists:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok
\\
April 20, 2005, at 20:27 UTC by Allan Odgaard -
Changed lines 155-156 from:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'\\

to:

mkdir ~/Library/KeyBindings
echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }'\\

April 20, 2005, at 20:24 UTC by Allan Odgaard -
Changed lines 146-153 from:
• Tab / Shift-Tab to indent / unindent selected blocks
• Home / End "Wintel" emulation (hard for switchers)

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
to:
• Tab / Shift-Tab to indent / unindent selected blocks\\
Changed lines 148-151 from:

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\

to:

Use option-tab / shift-option-tab
-- Allan Odgaard

• Home / End "Wintel" emulation (hard for switchers)\\
Changed lines 153-158 from:

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.

• Added in 1.1b3 (Run Commands > Text Utilities)
to:

Here's how you can get these keys system-wide (assuming you don't already created a custom key bindings file), from Terminal.app run these two commands:\\

Changed lines 155-159 from:

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression”\\ to: mkdir ~/Library/KeyBindings echo >~/Library/KeyBindings/DefaultKeyBinding.dict '{ "\UF729" = "moveToBeginningOfLine:"; "\UF72B" = "moveToEndOfLine:"; }' After this, restart TextMate, Mail.app etc. and you should be able to use home/end for begin/end of line.\\ Changed lines 160-162 from: • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice.\\ to: Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\ Changed lines 166-171 from: Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin\\ to: Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\ Changed lines 168-173 from: I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\ to: I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) Changed lines 175-182 from: Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 to: I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace:
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”
-- Allan Odgaard

• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.\\
Changed lines 185-187 from:

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).

• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?\\
to:

Try View -> Gutter -> Line Numbers (option-cmd-L).
-- Allan Odgaard

• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.\\
Changed lines 192-195 from:

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).

• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\
to:

I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\

Changed lines 194-201 from:

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\

to:

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.

• 1.1b4
Changed lines 203-206 from:

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.\\

to:

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).

• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin\\
Changed lines 208-211 from:

Yes, it can be changed. See Help / Key bindings for info.
-- Allan Odgaard

• Use the Safari key shortcuts to change tabs.\\
to:

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).

• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\
Changed lines 213-216 from:

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html

• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.\\
to:

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\

Changed lines 215-217 from:

These requests belong to the bundle page! :)\\

to:

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

Yes, it can be changed. See Help / Key bindings for info.\\

Changed lines 220-224 from:
• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.\\
to:
• Use the Safari key shortcuts to change tabs.\\
Changed lines 222-225 from:

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\

to:

The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html

• XML, XSL, and XSD syntax highlighting, please!
• YAML syntax highlighting, especially if configuration blocks could use folding.\\
Changed lines 227-234 from:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.\\

to:

These requests belong to the bundle page! :)
-- Allan Odgaard

• I use the alternate syntax in PHP, that is:
if ($something ==$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.\\
Changed line 236 from:

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).\\

to:

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\

Changed lines 238-242 from:
to:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

April 20, 2005, at 05:03 UTC by 66.27.52.246 -
Changed lines 146-147 from:
• Tab / Shift-Tab to indent selected blocks
to:
• Tab / Shift-Tab to indent / unindent selected blocks
April 20, 2005, at 05:02 UTC by 66.27.52.246 -
• Tab / Shift-Tab to indent selected blocks
• Home / End "Wintel" emulation (hard for switchers)
Changed lines 245-248 from:
• Tab / Shift-Tab to indent selected blocks
• Home / End "Wintel" emulation (hard for switchers)
to:
April 20, 2005, at 05:01 UTC by 66.27.52.246 -
• Tab / Shift-Tab to indent selected blocks
• Home / End "Wintel" emulation (hard for switchers)
April 19, 2005, at 21:07 UTC by Anonymous -

As a comment, this is the only thing that is preventing me from using TextMate. I love the whole design, love how it works... but just can't use it with undo this way, it takes too long to change my mind about the three lines I just wrote.
-- Anonymous

April 18, 2005, at 17:02 UTC by 162.136.192.1 -
• The Shift Right / Shift Left commands should apply to the entirety of the lines, even if some lines are only partially selected. Current behaviour is that only the selected text is shifted, which seems very nonstandard (jEdit, BBEdit, IntelliJ, and Eclipse all shift the entirety of every selected line, not just the selected portions).
April 18, 2005, at 14:03 UTC by Bob -
Changed line 138 from:

You can recored a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\

to:

You can record a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.\\

April 14, 2005, at 18:24 UTC by Andrew Witte -
• Word completion should look for completion candidates in all open buffers, not just the current buffer. (Better yet, a ctags tag file.)
April 12, 2005, at 21:43 UTC by Allan Odgaard -
Changed lines 18-20 from:

--jrk

• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\
to:

--jrk\\

Changed line 20 from:

Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.\\

to:

Sort of, yes -- what could be done is that in beta 6 styles are given to language elements based on style sheets, and if only these style sheets could access the captures of the matches, then the feature would sort of be there (would need a way to convert the color (i.e. capture) to the proper format) -- and my goal with TM is definitely to expose as much as possible in a way that makes it easy for the user to change behavior (i.e. innovate :) ) -- but for now it's a lot of work to make a “general” system that's really just tailored to one use-case (though I do actually have a few other things in mind), so I'll give this some more thought before I open up the syntax system furter (than what I've done for beta 6).\\

Changed line 23 from:
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\
to:
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\
Changed line 25 from:

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?\\

to:

Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.\\

Changed line 28 from:
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\
to:
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?
-- Allan Odgaard

• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?
\\
April 12, 2005, at 20:26 UTC by Jonathan Ragan-Kelley -
Changed line 17 from:

But couldn't this and other creative applications concievably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider.\\

to:

But couldn't this and other creative applications conceivably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider.\\

April 12, 2005, at 20:25 UTC by Jonathan Ragan-Kelley -
Changed lines 15-17 from:
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\
to:

But couldn't this and other creative applications concievably be addressed by allowing syntax coloring bundles to be dynamic (i.e. execute code, rather than simply define regular expressions and static colors)? Not necessarily a great idea, but at least interesting to consider.
--jrk

• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek
\\
April 12, 2005, at 00:13 UTC by Allan Odgaard -
Changed lines 3-4 from:
• Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document.
to:
• Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document.

TextMate (for the most part) uses the standard OS key bindings. You can change the behavior for home/end either for TextMate or all Cocoa applications if you desire the non-OS X behavior for home/end (see Help / Key Bindings)
-- Allan Odgaard
Changed lines 12-16 from:
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\
to:
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723\\
Changed line 14 from:

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?\\

to:

Since TextMate is a general purpose text editor, chances for this feature are slim.\\

Changed line 17 from:
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\
to:
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek\\
Changed lines 19-22 from:

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas\\

to:

Yes, this does require special rules for each and every language, and each and every language have dozen of different coding styles, so this is certainly not a simple thing to add. I'd suggest you instead find a code beautifier for your language and setup a command to pipe document/selection through that command.
-- Allan Odgaard

• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\
Changed lines 24-27 from:

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.\\

to:

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?
-- Allan Odgaard

• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\
Changed lines 29-30 from:

If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.
-- Allan Odgaard\\

to:

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas\\

Changed line 31 from:

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.\\

to:

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.\\

Changed line 33 from:

Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.\\

to:

If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.\\

Changed lines 36-38 from:

By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.\\

Changed lines 38-40 from:

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton

• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.\\
to:

Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.
-- Allan Odgaard\\

Changed lines 41-43 from:

If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.\\

to:

By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton

• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.

If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.
\\
April 11, 2005, at 00:19 UTC by Zubin -
• Home/End keys move the cursor to the beginning/end of lines instead of the view to the beginning/end of the document. Holding the Apple Key while pressing Home/End will move the cursor to the beginning/end of the document.
• Clicking on a line number (on the left) will select the whole line (even if it is wrapped to more than one line)
April 09, 2005, at 08:34 UTC by d723 -
Deleted lines 4-5:
• Create a hot-key combo for comments that wraps the selection (or just inserts the comment markup if no selection), automagically choosing the appropriate comment style for the current syntax highlighting mode. -d723
April 08, 2005, at 14:15 UTC by 63.99.102.134 -
Changed lines 3-4 from:
• How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller
to:
• How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller (forget it, I found it under "filter through command"). Maybe just add some keywords to the help file? Search on sort returns nothing in current help.
April 08, 2005, at 14:12 UTC by 63.99.102.134 -
• How about a simple sort command that will sort all lines in a current buffer? Could get fancy with some kind of sort by startColum to endColumn but a general sort would be handy. -gcoller
April 04, 2005, at 08:55 UTC by Jo Vermeulen -
• What about a VIM compatibility mode? I'm not kidding, this would be very nice.
April 03, 2005, at 23:28 UTC by d723 -
Changed lines 5-6 from:
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the color somehow would be helpful. -d723
to:
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the colors for HEX values somehow would be helpful. -d723
April 03, 2005, at 23:28 UTC by d723 -
Changed lines 3-4 from:
• Create a hot-key combo for comments that wraps the selection (or just insert the comment markup if no selection), automagically choosing the appropriate comment style for the current syntax highlighting mode. -d723
to:
• Create a hot-key combo for comments that wraps the selection (or just inserts the comment markup if no selection), automagically choosing the appropriate comment style for the current syntax highlighting mode. -d723
April 03, 2005, at 23:27 UTC by d723 -
• Create a hot-key combo for comments that wraps the selection (or just insert the comment markup if no selection), automagically choosing the appropriate comment style for the current syntax highlighting mode. -d723
April 01, 2005, at 04:51 UTC by d723 -
• Make Hex values in CSS appear with the color they represent as their background color. I prefer to edit CSS in a text editor, the only thing that sucks about it is that the color you want to change is hard to find. Showing the color somehow would be helpful. -d723
March 31, 2005, at 14:15 UTC by 62.251.124.102 -
March 31, 2005, at 14:14 UTC by 62.251.124.102 -
Changed lines 195-196 from:

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

to:

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).

* Something Textmate doesn't have at the moment is indenting to the right alignment. Pressing the tab character moves the cursor one indentation to the right, but I would like to have the cursor moved to the correct indentation.
For example:
if($this) { if($that) {
_
}
}

Pardon my 'french', it's the worst nested 'if' you could have. ;) Pressing the tab character while the cursor is at the position of the _ character should insert two tabs, because of the nested 'if'. I know this requires a certain semantic awareness of Textmate, but it would be nice to have.
BTW: I can't get PMWiki to display tabs. Any ideas? (-> doesn't work for some reason)

March 31, 2005, at 00:52 UTC by 210.55.0.195 -
• Please add ability to automatically indent a selection or the whole buffer. I guess this will require indentation rules to be specified for each supported language. Take a look at what Eclipse offers in this area. -- tomek
March 30, 2005, at 16:39 UTC by john -
Changed lines 20-22 from:
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

By design or not, that Isn't How It's Supposed To Work :p I can definitely see the value in it though... Could there be two bindable selectors? - selectWord: and selectWordAndKeepPoint: or something. Or the special selection actions could be made undoable. It's like the home/end key behavior - I just expect certain things to behave in a certain way, whether or not there's another way that may make more sense for a programmer's editor.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
March 29, 2005, at 08:34 UTC by Allan Odgaard -
Changed lines 17-19 from:

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.\\

Since I designed it that way, it's not a bug! I don't know if you got from my description that I'm not talking about manually selecting a word etc. but using the “select word” action. The reason I did it this way is if e.g. you hit cmd-A by mistake, your caret position is not lost, or if you select line and move the selection two lines up, you most likely would like the caret to be at the same column position as before you moved the current line up.
-- Allan Odgaard

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
March 29, 2005, at 04:50 UTC by john -
Changed lines 15-17 from:
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

I'd consider that a bug. A selection containing a word is no different than any other kind of selection. It shouldn't matter how the selection was created.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
March 29, 2005, at 02:14 UTC by Allan Odgaard -
Changed lines 3-6 from:
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\
to:
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony\\

Does the presence of a BOM in UTF-16 cause problems for Ruby or Java? Could you be specific about this problem (since everyone should expect to find a BOM in an UTF-16 file)?
-- Allan Odgaard

• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?
\\
Changed lines 12-14 from:

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.\\

If you select word/line/paragraph/all and move caret afterwards, it will preserve the position from before you selected the unit. Otherwise it'll go to the begin/end of the selection. I'm not aware of any bugs in this function.
-- Allan Odgaard

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
Changed lines 102-107 from:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
to:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou\\

You can recored a macro that inserts >, executes the Insert Closing Tag action (from the automation menu), and then move the caret back in front of the <. Save this macro and set key equivalent to >. This I think will give you the behavior you seek. Personally what I do is use the default supplied (HTML) macro on ctrl-space, it takes the word to the left of the caret and turns it into: <word></word>.
-- Allan Odgaard

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok
\\
March 29, 2005, at 00:20 UTC by john -
Changed lines 78-82 from:
• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\
to:

• Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable?
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.
\\
March 28, 2005, at 23:39 UTC by Peter Traskalik -
• Eclipse-like Incremental Find/Search Function - I used it a lot in Eclipse. When you press a shortcut (Apple + J in Eclipse) it changes into incremental-find-mode and just can just start typing the first letters of the search string. They appear in the bottom status bar. As yout type, the first matching line/word appears highlighted in the middle of the screen. Another letters narrow down the match. In the incremental-find-mode you can use the up/down arrow to get the next/previous match. Escape exits this mode.
March 28, 2005, at 19:52 UTC by john -
Changed lines 8-10 from:

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas\\

this happens to me too sometimes. other times it works right. not really sure what's going on, but it looks like a bug.

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
March 27, 2005, at 06:25 UTC by Anthony -
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble for Java or Ruby IO routine. -- Anthony
Deleted lines 91-92:
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble because Java or Ruby doesn't recognize BOM.
March 27, 2005, at 06:23 UTC by Anthony -
• Please allow to save a UTF-8/UTF-16 file either with BOM or without BOM. BOM header can cause trouble because Java or Ruby doesn't recognize BOM.
March 26, 2005, at 22:35 UTC by 67.101.129.85 -
Changed lines 87-88 from:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou
to:
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou
March 26, 2005, at 22:34 UTC by 67.101.129.85 -
• XML tag auto-close, just like the auto-closing of paired characters like (), [], and "". -- John Lianoglou
March 22, 2005, at 21:36 UTC by Chris Thomas -
Changed lines 3-5 from:
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\
to:
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?\\

I dunno. The standard Mac behavior is exactly how TM behaves on my Mac. Could be your keybindings are messed up somehow. Might wanna send a note to Allan or, probably better, to the mailing list. -- Chris Thomas

• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
\\
March 22, 2005, at 19:51 UTC by Tom Donovan -
• Arrows should move insertion point to end of selection range: In the other editors I just tested (BBEdit, TextEdit, MS Word, AppleWorks, Mail), when a range of characters is selected and an arrow key is pressed, the insertion point jumps to the start (left/up arrow) or end (right/down arrow) of the selection. In TM, it "appears" that the insertion point moves to the approximate location of the cursor. Am I missing something?
March 18, 2005, at 18:36 UTC by Wes Houghton -
Changed lines 3-5 from:
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.\\
to:
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?\\

This should be doable in the system as is, I believe. Lua does not support braces for scope either, so I am using the function -> end elements to determine folding, as well as if () then -> end to determine those portions as well, and it seems to be working ok so far. --Wes Houghton

• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.
\\
March 17, 2005, at 02:05 UTC by Dan Simola -
• Better folding support for Python: I don't know if this has been addressed elsewhere, but as Python does not use braces for scope, one cannot take advantage of folding. Are there any ways around this?
March 17, 2005, at 00:48 UTC by Allan Odgaard -

Update: actually, a snippet with { as key equivalent is probably more appropriate.\\

Deleted lines 11-12:

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes) \\ Deleted line 14: \\ Added line 16: Added lines 18-20: I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-) (Wes)

The name of the file might be misleading, but this file (DefaultKeyBinding.dict) is augmenting the system default keys. I have a dozen keys setup in there. There's a bit more info about it in the TextMate help book. Basically $means shift, and \U007F is the key code for delete.\\ March 16, 2005, at 20:37 UTC by Wes Houghton - Changed line 10 from: I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-)

to:

I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that $\U007F is equivalent to Shift-Delete? ;-) (Wes)\\ March 16, 2005, at 20:33 UTC by Wes Houghton - Added lines 10-11: I went with the macro route, as I'm not wild about altering system behaviors when not overly necessary. I probably would have done it, if there was an existing KeyBinding file, but creating it from scratch just crossed that line for me. Much less, how on earth does one learn that$\U007F is equivalent to Shift-Delete? ;-) \\

March 16, 2005, at 16:38 UTC by Allan Odgaard -
Changed lines 3-7 from:
• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.
• shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.\\
to:
• SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature.\\
Changed line 5 from:

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.\\

to:

If you type a { and then press return, it will end up as you desire. The reason it doesn't do it until return is, that there are situations where you want both brackets on the same line. But if you want to have it done immidiately, you can record the insertion of this sequence as a macro and bind it to the { key.\\

Changed lines 8-12 from:
• Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc.
• Selecting the newline character
• An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on).\\
to:
• shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton\\
Changed line 10 from:

Can you clarify?\\

to:

This could probably be the default behavior, since shift-delete is currently unused. Though before it becomes default, you can use Automation / Start Macro Recording to record a forward delete and save that macro with shift-delete as key equivalent.\\

Come to think of it, you just need to insert this line in your ~/Library/KeyBindings/DefaultKeyBinding.dict file to get the behavior system-wide:

"$\U007F" = "deleteForward:"; -- Allan Odgaard • transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function. Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future. -- Allan Odgaard • Better search and replace functions, please. The search and replace boxes should be multiline. It would also be great to have the scope changed to include both the file I'm editing as well as a directory, scratch files, open windows, etc. • Selecting the newline character • An option for replacing the space when inserting a return at the end of a long line (Vim does this when 'autoindent' is on). Can you clarify? \\ March 16, 2005, at 00:57 UTC by rdc_uk - Added lines 3-4: • SmartTyping; it would be great to be able to control how this is entered. For instance, in a C-like syntax, when I type ( i want the ) next to the opening parenthesis, with the caret in between, as it is now. However, it would be really slick to be able to type { and have the closing } appear 2 lines lower, at the same indent, with the caret in between; i.e. actually setting the braces as they will end up once I finish with them. I realise this would require some extra config / preference setup to handle, but it would be a great feature. March 15, 2005, at 22:23 UTC by Wes Houghton - Added lines 3-4: • shift delete = forward delete preference. I tend to edit on my laptop, and I like ot be able to set a preference that using shift-delete removes the character AFTER the prompt, not prior to it. --Wes Houghton March 15, 2005, at 14:54 UTC by rdc_uk - Changed lines 14-15 from: Can you clarify? to: Can you clarify? I suspect they mean this; you have a long line of text, and move the caret to your chosen break-point. Hitting enter will insert a carriage return. If the first character of the new line is a space, you probably don't want that space in the text any more. February 23, 2005, at 10:07 UTC by Allan Odgaard - Deleted lines 20-23: • Use the Safari key shortcuts to change tabs. The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html Changed lines 30-31 from: • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding.\\ to: • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok\\ Deleted lines 32-37: These requests belong to the bundle page! :) -- Allan Odgaard • Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time. -- Ben Parzybok \\ Changed lines 39-43 from: • I use the alternate syntax in PHP, that is: if ($something == $that): // Do Stuff endif; The folding parser does not pick this syntax up. It only reads the {} sets.\\ to: • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\ Changed lines 46-52 from: If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.\\ to: Yes, this will be fixed real soon now :) -- Allan Odgaard • Toggle Foldings at level: More levels? • How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way... --Tony Arnold\\ Changed lines 54-60 from: Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.\\ to: The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :) -- Allan Odgaard Already Implemented • Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\ Changed lines 62-69 from: "You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list)." • Multiple selections, by either holding Cmd while selecting or having a selection history a'la The Humane Interface. Following this, simultaneous editing of multiple selections, like columnar editing but possibly at arbitrary points in the document. --Reid Orsten • Search bar at bottom of window should move window to current occurrence of the query, but should highlight "every" instance of that query string in the document, a la emacs - also I have a difficult time finding the highlighted string, so perhaps the color could be made brighter, or user adjustable? • New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\ to: Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\ Changed lines 64-75 from: Yes, this will be fixed real soon now :)\\ to: I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not. • Added in 1.1b3 (Run Commands > Text Utilities) • Remove trailing spaces from end of line. --Mark Patterson I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with: Find: “\s+$”
Replace:
Replace All Scope: “Entire File”
Options: “Wrap Around” and “Regular Expression”\\
Changed lines 77-81 from:
• Toggle Foldings at level: More levels?
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\
to:
• Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces)
• Line numbers in the margin would be nice.\\
Changed line 81 from:

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)\\

to:

Try View -> Gutter -> Line Numbers (option-cmd-L).\\

Changed lines 83-87 from:

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
to:
• Added in 1.0, I believe
• Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too.
-- David Tolpin\\
Changed line 88 from:

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\

to:

I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\

Changed lines 90-95 from:

I suspect Ben wants the set from BBEdit: Educate (Smarten) Quotes, Zap Gremlins (remove control and invisible characters), Convert to 7-Bit. I'm not sure if iconv can do all of that or not.

• Added in 1.1b3 (Run Commands > Text Utilities)
to:

Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters.

• 1.1b4
Changed lines 99-107 from:

I may include some default strip-whatever stuff, but for now you can record a macro that does a “Replace All” with:
Find: “\s+$” Replace: Replace All Scope: “Entire File” Options: “Wrap Around” and “Regular Expression” -- Allan Odgaard • Added in 1.1b3 (Run Commands > Text Utilities > Strip Trailing Spaces) • Line numbers in the margin would be nice.\\ to: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin\\ Changed lines 104-109 from: Try View -> Gutter -> Line Numbers (option-cmd-L). -- Allan Odgaard • Added in 1.0, I believe • Keep BOM! Textmate drops UTF-8 BOM, which is the wrong thing to do. BOM at the beginning of a file is the only way to convince Internet Explorer that a web page is in UTF-8, really. I (and others) use it for just that purpose, and there are other cases when it is important too. -- David Tolpin\\ to: Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\ Changed line 109 from: I'll add it to beta 4 (sorry about not getting it done for the beta just released)\\ to: You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).\\ Changed lines 111-118 from: Okay, I've made it preserve BOM for UTF-8, but I haven't made any GUI for this. Though I'm not sure you are correct about IE. Are you sure that your server is sending the files as UTF-8? I have no problems getting my pages displayed correct in IE using UTF-8 and non-ASCII characters. • 1.1b4 to: I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.\\ Changed lines 113-116 from: Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent). • I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required? -- David Tolpin\\ to: Yes, it can be changed. See Help / Key bindings for info. -- Allan Odgaard • Use the Safari key shortcuts to change tabs.\\ Changed lines 118-121 from: Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored). That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you). • Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\ to: The Safari keys actually conflict with the default key bindings to select to beginning/end of line (but you can change the default TM keys): http://lists.macromates.com/pipermail/textmate/2004-November/001115.html • XML, XSL, and XSD syntax highlighting, please! • YAML syntax highlighting, especially if configuration blocks could use folding.\\ Changed lines 123-127 from: You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape). I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is. Yes, it can be changed. See Help / Key bindings for info.\\ to: These requests belong to the bundle page! :)\\ Added lines 125-137: • I use the alternate syntax in PHP, that is: if ($something == \$that):
// Do Stuff
endif;
The folding parser does not pick this syntax up. It only reads the {} sets.

If you keep if and endif at the same indent level, you can add these to the folding patterns to make them foldable. E.g. check out Ruby which folds on def/end.

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

You need to modify the PHP syntax file to add this feature (or ask the PHP syntax maintainer to do it -- maybe ask on the mailing list).
February 23, 2005, at 10:05 UTC by Allan Odgaard -
Changed lines 3-4 from:
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.
to:
• transparent tag-completion. Tag should be completed by typing '</' (as in TestXSLT) this makes it much more intuitive IMHO and adding this feature shouldn't break the existing tag-completion function.

Well, adding that feature is very hardcoded, and TextMate is a general purpose text editor. But there will be a system for context sensitive completion in the future.
-- Allan Odgaard
Changed lines 18-21 from:
to:
• I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one?
-- David Tolpin
• Use the Safari key shortcuts to change tabs.\\
Deleted lines 22-34:

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).

• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).
• I write Lisp code. Functions apparently become longer than a single page; parenthesis matching does not work in this case. To match parentheses on long blocks, and for other convenient actions, can double click on a parenthesis mark to the matching one?
-- David Tolpin
• Use the Safari key shortcuts to change tabs.
\\
Changed lines 35-37 from:
• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok\\
to:
• YAML syntax highlighting, especially if configuration blocks could use folding.\\

These requests belong to the bundle page! :)
-- Allan Odgaard

• Undo behavior. I would like to see a more standard Undo behavior. Instead of command-z removing the last character typed (which can make it very tedious for extensive undos) having it based on either time or formatting. I'm not sure how the other text editors do it, but they seem to remove chunks at a time.
-- Ben Parzybok
\\
Changed line 45 from:
• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!\\
to:
• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.\\
Deleted lines 46-53:

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

• YAML syntax highlighting, especially if configuration blocks could use folding.
• Be able to fold a block up then highlight and cut/paste it, as a complete chunk, to a new location in the document. Would be handy when wanting to quickly re-arrange functions/subroutines in a file.
\\
Changed line 57 from:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.

to:

Is there something I have to do to make that happen? I tried putting them at the same indent level, but nothing happened.\\

Changed lines 66-71 from:
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok\\
to:
• New File from Template: Right now it appears you can only create a new file from a template if you are in a project. I would like to see the File menu have a new subitem which allows you to create files from templates (html, java, perl, etc), independent of a project.\\
Changed lines 68-74 from:

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).\\

to:

Yes, this will be fixed real soon now :)
-- Allan Odgaard

• Toggle Foldings at level: More levels?
• How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\

The input pattern (as an activation method) will allow you to set a (sort of) regular expression that is matched against the input typed by the user, and thus you could match such a sequence and insert proper snippet or similar -- this isn't currently implemented, but I think this will be the solution to this request. For highlight pairs, let me think about that :)
-- Allan Odgaard

• Non ASCII txt conversion tools: Very useful for me in bbedit is the straighten quotes, convert to ASCII, etc tools. I often receive bundles of Word docs from clients and need to run these tools to get them web-ready . This can probably be done w/ Macros, but might it might be useful to have it as a permanent part of the app if it's oft requested. (?) -- Ben Parzybok

Not sure exactly which tools you want. Much can be done by piping the text through various unix commands, e.g. iconv with transliteration to convert the text to 7-bit ASCII. I'll add a bundle with the commands I can come up with (next version will have a better bundle system that makes it more transparent what's from which bundles and the ability to toggle visibility of bundle functions).
\\
Changed lines 114-120 from:

One suggestion regarding "Toggle Foldings at level"
More levels ?

How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\

to:
• Better "smart typing" with quotes
-- Mike Powell
• Ctrl+D should delete the next character (standard Emacs/Cocoa keybinding)

Go to Automation -> Replay Macro -> Edit Macros… and delete the Duplicate Line macro (or assign it another key equivalent).
• I would expect backspace on tab to remove the tab. It replaces tab with spaces and replaces the last space. Is it doable with the macro facility, or is a change to the core algorithms is required?
-- David Tolpin

Sounds like you have enabled freehanded editing (Edit -> Mode -> Freehanded Editing) in which case tabs are treated just as spaces (and end-of-lines are ignored).
That was it, my sin (actually, that was the default setting somehow, I did not change it). Switched it off, got what I wanted, thank you).
• Autocomplete! As of OS X 10.3 all text views have a context sensitive autocomplete bound by default to the F5 key. I really miss this from 'etha!

You can use 'escape' to auto-complete. Although it's not exactly the same as the systems function (the system brings up a menu, TextMate just inserts the first match and lets you cycle between matches with [shift] escape).

I presume this can be changed? F5 is a lot easier to reach on my keyboard than esc is.

Yes, it can be changed. See Help / Key bindings for info.
-- Allan Odgaard

February 21, 2005, at 00:15 UTC by Tony Arnold -
Changed lines 122-123 from:

How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow << to be used this way...

to:

How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow '<<' to be used this way...
--Tony Arnold\\

February 21, 2005, at 00:14 UTC by TonyArnold -
Changed lines 119-122 from:

More levels ?

to:

More levels ?

How about multiple-character smartTypingPairs and highlightPairs? I'm building a Fink Package bundle, and would like to allow << to be used this way...

February 19, 2005, at 16:28 UTC by Dan Simola -