[TxMt] Re: showing preview of css colors

Allan Odgaard mailinglist at textmate.org
Mon May 30 21:36:23 UTC 2016


On 30 May 2016, at 23:04, Carpii UK wrote:

>> a) create a script to find everywhere a color is specified in a CSS 
>> file
>
> How would this look? Would it require a bundle-style reg-exp which 
> pulls
> them all out?
>
> My preference would be to write it as a proper script […]

Yes, write a regular script that reads a CSS file (preferably from 
stdin) and then parses this and for each color it finds, it needs to 
execute this:

     "$TM_MATE" --line «line»[:«column»] --set-mark 
«/path/to/color-image.eps»

So it should track the line number and could also track the column 
number, but for now, the result will be the same (since we add to the 
gutter rather than inlined).

>> b) generate an image from a CSS color specification.
>
> I'll look into this too, maybe I can do something with EPS.
> Would each image need to be written to disk, or simply be another 
> script
> which streams it to stdout, and somehow TM calls it and reads the 
> image
> from there?

It needs to be written to disk, I suggest using a location like 
`~/Library/Caches/com.macromates.textmate.colors/` and then you can also 
skip generating an image if the file already exist.

I realize a minor nuisance: currently when you set a mark you must 
manually clear that mark yourself by specifying the same image, e.g. to 
clear the mark from the above example we need to run:

     "$TM_MATE" --line «line»[:«column»] --clear-mark 
«/path/to/color-image.eps»

We can remove the `--line` argument to remove all the marks using this 
image, but we still need to specify the image, so for a script that 
generates arbitrary images, this requires some bookkeeping.

I think one solution could be that if the path supplied to 
`--clear-mark` ends with a slash, it will clear all marks which are 
descendents of that path, so that the script only need to make one call 
to `--clear-mark` rather than one per image it has previously 
set/generated.


More information about the textmate mailing list