> On 17 maj 2016, at 10:54, Allan Odgaard <mailingl...@textmate.org> wrote:
> 
> On 16 May 2016, at 23:25, Per Persson wrote:
> 
>> IIRC there was a discussion a couple of years ago about letting TM declare 
>> imported UTIs. Does anyone know the current status?
> 
> The problem is that this information must be in the application’s Info.plist, 
> so if TextMate were to import this from bundles, it would have to rewrite its 
> own Info.plist which was problematic at the time (file permissions) and today 
> is somewhat out of the question (code signing).

TextMate doesn't necessarily have to modify its own Info.plist, right? By 
constructing a helper app, e.g. in Application Support, with a tailored 
Info.plist based on info collected from the active bundles, and then using 
lsregister to register/unregister UTI types there wouldn't be any need to even 
run it (example below, based on http://apple.stackexchange.com/a/175395). 

/Per


with:

 ~$ alias 
lsregister=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister

register:

 ~$ lsregister /Applications/UTImportCalvin.app
 ~$ lsregister -dump | grep -A 4 CalvinScript
                description:   CalvinScript
                flags:         imported  active  apple-internal  untrusted  
                icon:          
                conforms to:   public.script, public.source-code
                tags:          .calvin

unregister:

 ~$ lsregister -u /Applications/UTImportCalvin.app
 ~$ lsregister -dump | grep -A 4 CalvinScript
 (empty output)

where UTImportCalvin.app's Info.plist contains:

...
        <key>UTImportedTypeDeclarations</key>
        <array>
                <dict>
                        <key>UTTypeConformsTo</key>
                        <array>
                                <string>public.script</string>
                                <string>public.source-code</string>
                        </array>
                        <key>UTTypeDescription</key>
                        <string>CalvinScript</string>
                        <key>UTTypeIdentifier</key>
                        <string>com.github.ericssonresearch.calvin-base</string>
                        <key>UTTypeTagSpecification</key>
                        <dict>
                                <key>public.filename-extension</key>
                                <array>
                                        <string>calvin</string>
                                </array>
                        </dict>
                </dict>
        </array>
...








_______________________________________________
textmate-dev mailing list
textmate-dev@lists.macromates.com
http://lists.macromates.com/listinfo/textmate-dev

Reply via email to