• Posted by Peter Haza
  • On September 5, 2008

  • Filed under Programming, TextMate

  • 19 Comments

TextMate 2.x – Room for speculation, with sources.

Here I have compiled a list of changes that might make it into TextMate 2.x. Notice the “x”, because it means it wont necessarily be first, second or even third minor upgrade.

Update: TextMate 2 should be in private alpha in a month’s time, and public beta in maybe six months. Read more here.

I’ve earlier covered what we can expect to come in TextMate 2, and this time I’m listing what’s come from Allan himself.
All quotes are of the author of TextMate, Allan Odgaard.

Search & replace, regex:

  • Named captures will be availble as $variable.

    The named captures will be available as $variables. Source.

  • Better syntax for using captures in replacement string. Is 123$456 $4, or $45, or $456? With the new syntax, there’ll be no doubt: 123${4}56.

    There will however be a significant update to this syntax in… the future :) This will allow using ${1} etc. like in snippets. Source.

  • Introduction of “Find all”, which will also allow you to do further operations on found items.

    Also, I have another feature coming in 2.0 which will allow you to effectively do the further replacements on the results of a ‘find all’ (so even w/o SmartyPants.pl, there will be a simple way to do the same). Source.

Drawer:

Note: I think the drawer will be replaced by a panel in 2.x, but I have no sources for this at the moment.

  • Menu shortcuts in context menu in drawer will work (better).

    The only solution is to have the items in the top menu and let the Carbon Menu Manager do all the magic keyboard handling that Cocoa applications can’t do — I will do this in the 2.0 relayout of things. Source.

  • It will likely be possible to sort files in the drawer.

    Not possible. There will (most likely) be some sorting options in the future. Source.

  • No more virtual TextMate projects. A folder will be the project.

    Because the file system is there to group files into folders. Having TextMate do the exact same thing is IMO conceptually wrong. It also complicates things like for example having commands run on a project and generally just makes your project “groupings” non-portable. Source. I would strongly recommend against getting too dependent on the virtual grouping that tmproj files allow, as I presently have no intention of keeping that in 2.0. Source.

Bundles and bundle development

The bundle editor as we know it will very likely be gone in 2.x. I’ll see if I can dig up a source for this later. I’m not sure what will replace it either, but seing how important bundles are to TextMate, I’m sure we can expect some kind of improvement. My guess would be that you work with the bundle as any other folder and take it from there instead of the bundle editor

  • Dependency checking for bundles.

    That said, I am looking into a more formalized dependency system so e.g. the entire Git bundle (sans Help) can be marked to require git, or we can have a bundle require Leopard etc. Source.

  • Command line interface to the TextMate parser.

    I will provide a CLI interface to the TextMate parser in the future, that way we can fully automate such testing. And yes, it really should be sort of a requisite then, to include tests with the grammars :) Source.

  • CocoaDialog will likely be gone.

    We are deprecating the use of CocoaDialog (and I am not 100% sure TM 2 will ship with it), so it would be good to have a TextMate::UI wrapper for these, so we can switch the implementation to use DIALOG when we add file requester support here. Source.

  • Self-aware projects.

    Yes, there are thoughts toward that ;) Source.

Working with text

  • Better indentation.

    I have these notes from Jacob: http://pastie.textmate.org/189818 Source.

  • Improvements to overwrite mode

    There are a few things in the overwrite mode that doesn’t as they should. I hope to address all of that in 2.x. Source.

  • Possibility to highlight discontinious text.

    I do however feel TM needs a way to highlight discontinuous text segments, and technically this can be made using dynamic scopes, which in practice can be used by a command to “parse out” the selection… Source.

  • Ability to disable soft-wrap for specific parts of a document.

    No, but it’s certainly something I would like to have myself as well. Source.

  • Select Current Scope will be improved.

    Some cases I am aware of and will address in the future, some cases probably cannot be solved at all, and some cases might automatically be solved with new grammar features. Source.

  • Highlight of paragraph. not just current line.

    Not currently possible. It is not entirely unlikely that it might be possible in a future release. Source.

Other

  • Find in project will work in a separate thread, to avoid hanging TextMate.

    In a future update, yes… Source.

  • Logging of tool tips and hence the possibility to show them again by command if necessary.

    I think a log is an excellent idea. So basically all (command) tool tip output goes to ~/Library/Logs/ with a date stamp or similar, preferably with some newline escaping so a “repeat last tool tip” command would just tail -n1 «log», and similarly for a copy. Source.

  • Submenu titles in inline menu (When you press a key equivalent that matches several items). Example: Source.

    I’ve added a TODO to the relevant source :) Source.

  • TextMate will remember your session, open files, modified files etc. between sessions.

    Complete session restore, including state of modified files, is OTOH pretty high on the list. Source.

  • TextMate clipboard will have better heuristics for intermixing third party copy into the clipboard.

    The heuristic used will be better in next major update, that might solve this compatibility issue. Source.

  • TextMate 2.0 is in a state where it can be used.

    What I can say is that a) TM 2 is in a state where I use it myself Source.

Unlikely to be included

  • Selecting different parts of text in a document at the same time and use it for copy and paste. Note: The unlikeliness refers to the copy and paste part

I have no real plans of this. I think my last comments on the topic was something like this not being very useful because of how it would not be easy accessible via keyboard only and it would introduce a lot of complexity in basically every single thing that potentially works with the selection, in many cases having to define how a transformation should work in the case of discontinuous selections (which isn’t always intuitive) — so hardly worth it. Source.

Final words

Of course this is not a complete list, it’s actually just what I cared to read through in a bored moment. For instance I know split-windows are requested a lot, too much for Allan to completely ignore it, but I have no idea when they will/if it will be included. I also think/know he has some other great ideas he just can’t talk about to avoid the competition snatching them. Most of the competition is probably subscribed to the mailing list.

I’d just like to add this final quote from Allan, which I think is very important that everyone respect and understand.

I have taken note of the request, it might be added to a future version, I can’t really say for sure before I have actually implemented it and shipped the version where it has been added.

I put emphasis here on shipped as well because sometimes a feature is pulled again for various reasons (could be that it turns out not to work so well, might be because it complicates the implementation of other features, etc.). This is one of the reasons that I am not commenting on specifics wrt 2.0. Source.

What would you like to be included?

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

19 comments

  1. Posted by CamonZ 6th September, 2008 at 04:52 pm |

    I’d like it to ship before duke nukem forever.

  2. Posted by Pierre Spring 6th September, 2008 at 09:39 pm |

    i’d love a working vim mode ;)

  3. Posted by Peter Haza 6th September, 2008 at 09:57 pm |

    @Camonz: Unfortunately I doubt that is going to happen. My wild guess is that there will be a private beta of TM2 before christmas, and a release sometime during 2009.

    Duke Nuken Forever I guess will ship early next year or just in time to make the christmas shopping.

  4. Posted by Trevor 14th September, 2008 at 09:56 pm |

    “allow you do do”?

  5. Posted by Peter Haza 14th September, 2008 at 09:57 pm |

    @Trevor: Fixed. Thanks!

  6. Posted by Lee Fyock 15th September, 2008 at 03:38 pm |

    Did I miss “make undo work”?

    I use TextMate every day and love it, but when I show it to anyone not doing Rails development, and they notice that undo goes one character at a time, they ask if TextMate was written in the 1980s.

    I hope that making undo smarter is just so important that it was left off this list.

  7. Posted by Peter Haza 15th September, 2008 at 03:45 pm |

    @Lee Fyock:

    Allan has previousy said this:

    “And this is not to indicate I am offended by your posts – many users do indeed share your hate of the non-chunked undo, and it will change sometime in the future.” source

  8. Posted by jong 18th September, 2008 at 01:57 am |

    Not having split windows drives me back to emacs occasionally. I HATE not having split views.

  9. Posted by Shay 5th October, 2008 at 09:17 pm |

    [quote comment="27"]

    Duke Nuken Forever I guess will ship early next year or just in time to make the christmas shopping.

    [/quote]

    Which Christmas though? :)

  10. Posted by MrGando 21st November, 2008 at 07:04 pm |

    I am really waiting for TM2 to come. I read that if I purchased TM 1 I could upgrade for free.??

  11. Posted by onofre 29th November, 2008 at 09:48 pm |

    It’s still missing…

  12. Posted by Peter Haza 29th November, 2008 at 11:47 pm |

    @onofre: sure, but atleast Allan has hired Ciaran to help him work on TM2, so it is definitely still under very active development.

  13. Posted by Andy Gimblett 6th January, 2009 at 10:54 am |

    Lack of splits is the only thing keeping me away from Textmate. It's a dealbreaker.

  14. Posted by Peter Haza 9th January, 2009 at 09:49 am |

    Yes, it's very sad that TextMate lacks this feature. There are many ways to mimick it to a certain degree, but it's not as great as if TextMate actually supported it. However, this is one of the absolutely most requested features, and people ask almost daily on irc if there is or will be support for this. I'm pretty confident Allan & Ciaran will add this to TextMate 2. Textmate 2 isn't that far away either, you can read more about this <a title="Textmate 2.0/Avian – Soon in private alpha" href="http://blog.peterhaza.no/textmate-20-avian-soon-i...

  15. Posted by Peter Haza 9th January, 2009 at 09:50 am |

    Yes, it's very sad that TextMate lacks this feature. There are many ways to mimick it to a certain degree, but it's not as great as if TextMate actually supported it. However, this is one of the absolutely most requested features, and people ask almost daily on irc if there is or will be support for this. I'm pretty confident Allan & Ciaran will add this to TextMate 2. Textmate 2 isn't that far away either, you can read more about this here: http://blog.peterhaza.no/textmate-20-avian-soon-i...

  16. Posted by FlyboyArt 13th April, 2009 at 02:55 pm |

    Patience is a virtue (so I'm told) however after YEARS of waiting for version 2 of TM and being told that it will be available shortly after Leopard ships (which shipped two years ago) and after email multiple email exchanges with the developers over years to no avail, I have to assume these guys have no clue how to:

    (a) manage a relationship with customers (b) set expectations properly about releases
    (c) manage a software development schedule (d) finish something

    This incredibly long development schedule wouldn't be tolerated from Apple or any other Macintosh software developer however we're expected to just be 'assured' Alan and team are working on v2 and 'someday' we'll find out what it's all about. Microsoft pulls this stuff over and over again and gets their butt chewed out by the entire world, yet somehow it's 'different' for the TM team.

    The 'explanation' I got a while back was that TM is still 'state of the art' through the widespread support for plugins and I should be more patient. While TextMate is a nice program for sure, it's ridiculous to depend on 3rd parties to continue to enhance your base product (built in 2004 no less!) themselves through plugins all the while claiming the program is 'state of the art'.

    Let's have a poll out there, how many pieces of software to you use that is FIVE years old and counting? What other software company would you have any faith or respect for that didn't update it's software for FIVE years? What is Apple or Mozilla didn't update their browsers for FIVE years? How would you feel? (Oh yeah, Microsoft didn't update their browser for years and look at the sh*t they had to put up with).

    Sorry for the rant, but I have used TM every day since 2005 and it piss*s me off to depend on software that has been abandoned by the developers. As a software developer myself, I'd be embarrassed to hell to be in the position Alan and the TM team are in. I'll begin the process to switch over to an editor that is better supported by the developer. Sorry TextMate, you've jerked this developer around too many years to continue to enjoy my loyalty and respect.

    BTW I asked for split views years ago as well to no avail…

  17. Posted by RohitK 27th April, 2009 at 08:33 am |

    hi, Also Amazed why the programmers are not developing text mate 2. Developing of software is needed to fullfill the demand of users….but..Tm..

  18. Posted by Brd 12th May, 2009 at 07:44 am |

    I agree with @FlyboyArt, its just stupid for the TM team to not be iteratively delivering features on Textmate. I just want small things, like a faster search; not some big ass Duke Nukem Forever/Trillian Astra piece of software. Its very disappointed and I'm already looking around for alternatives.

  19. Posted by Pierre 28th April, 2010 at 01:38 pm |

    I'm deeply sad that TM2 plans to abandon the tmproject idea. Folders are there to organize stuff. Individual projects may not require all what's in the folder (for example not the older versions of a file kept there for safety, or simply accessory files included/called/… by the edited ones). Individual projects may also require files distributed over many folders (say if you're developing a model for recorded data, you'd like to edit at the same time some files related to the data and some files related to the model, data and model being cleanly separated in your file system). I definitely don't get the idea that a project should be a single folder. This is rigid and limitative (à la Microsoft) and as anything rigid and limitative, likely to turn off a good number of people… me first.
    Come on, please keep what sets TM apart. Project=folder is a concept of the eighties.

What do you think? Join the discussion...