tags instead of categories (was Re: [SVN] New info.plist keys for description etc.)

Allan Odgaard throw-away-1 at macromates.com
Fri Feb 16 17:47:39 UTC 2007


On 16. Feb 2007, at 16:24, Chris Thomas wrote:

>> But we definitely should have a single category to describe what  
>> the main thing the bundle does is.
>
> Put it in a tag. Require one of the six categories to be present as  
> a tag.
>
> The simple category approach is much simpler, for sure, and has  
> fewer upfront maintenance costs. There are problems that tags would  
> address that a simple category cannot:
>
> 1. Streamlined first-time experience. Present subsets of bundles by  
> tag. "Rails development." "Mac applications."
>
> 2. Overwhelming bundle complexity -- too many bundle commands  
> visible at once. Switch between visible bundle sets at runtime by tag.

Okay, let’s construct categories from tags and run with them. Here’s  
my thoughts of which tags we probably will need (with some examples)  
-- I know we can make tags up as we go along, but let’s see if we  
can’t keep the set small:

  build       -- some sort of build system (Makefile, SCons, …)
  framework   -- a framework (OpenGL, Rails, Django, Qt, …)
  gtd         -- some sort of GTD (GTD, GTDAlt, TODO, …)
  mac         -- mac-specific (AppleScript, Xcode, …)
  mail        -- related to emails (Mail, …)
  markup      -- markup language (XML, Textile, reST, …)
  programming -- programming language (Ruby, C, …)
  prose       -- structured text (LaTeX, Markdown, …)
  scm         -- revision control system (Subversion, CVS, …)
  utility     -- stuff which is useful tools (Math, Remind, …)
  web         -- web related (HTML, Symfoni, PHP, …)

Do we want to tag for compiled, script / interpreted? Probably not…

Do we want to tag for procedural, OO, functional, …? Might be useful.  
E.g. how many functional languages do we have support for? etc.

Also, each language should be tagged with its own name, so that  
supporting bundles can be tagged with it as well. So for example  
seeing all bundles tagged ‘python’ will show all bundles which are  
somehow related to Python.

Question: what about bundles containing multiple things? Do we just  
add multiple tags, do we split the bundle (nah…), or do we maybe tag  
individual commands (confusing)? For example the Ruby bundle has a  
command for running rake, does that mean it should be tagged  
‘build’ (to indicate that the bundle is for a build system)?

> It's possible this is better implemented through an external  
> mechanism rather than directly in bundles.

I don’t follow that. What do you mean?





More information about the textmate-dev mailing list