//
// A s s o c i a t i o n s . s w i f t
// R S w i t c h
//
// C r e a t e d b y h r b r m s t r o n 2 / 1 1 / 2 0 .
// C o p y r i g h t © 2 0 2 0 B o b R u d i s . A l l r i g h t s r e s e r v e d .
//
import Foundation
import AppKit
import ApplicationServices
class FileAssociationUtils {
// p u b l i c s t a t i c f u n c g e t H a n d l e r s ( ) {
//
// l e t w o r k s p a c e = N S W o r k s p a c e . s h a r e d ;
//
// l e t s e t R e s R : S t r i n g = U T T y p e C r e a t e P r e f e r r e d I d e n t i f i e r F o r T a g ( k U T T a g C l a s s F i l e n a m e E x t e n s i o n , " R " a s C F S t r i n g , n i l ) ? . t a k e R e t a i n e d V a l u e ( ) a s S t r i n g ? ? ? " " ;
// l e t h a n d l e r R : S t r i n g = L S C o p y D e f a u l t R o l e H a n d l e r F o r C o n t e n t T y p e ( s e t R e s R a s C F S t r i n g , L S R o l e s M a s k . a l l ) ? . t a k e R e t a i n e d V a l u e ( ) a s S t r i n g ? ? ? " " ;
// l e t r A p p U r l : U R L = ( w o r k s p a c e . u r l F o r A p p l i c a t i o n ( w i t h B u n d l e I d e n t i f i e r : h a n d l e r R ) ) ! . a p p e n d i n g P a t h C o m p o n e n t ( " C o n t e n t s / I n f o . p l i s t " ) ;
// l e t r A p p D i c t : N S D i c t i o n a r y = N S D i c t i o n a r y ( c o n t e n t s O f : r A p p U r l ) ! ;
// l e t s e t R e s R m d : S t r i n g = U T T y p e C r e a t e P r e f e r r e d I d e n t i f i e r F o r T a g ( k U T T a g C l a s s F i l e n a m e E x t e n s i o n , " R m d " a s C F S t r i n g , n i l ) ? . t a k e R e t a i n e d V a l u e ( ) a s S t r i n g ? ? ? " " ;
// l e t h a n d l e r R m d : S t r i n g = L S C o p y D e f a u l t R o l e H a n d l e r F o r C o n t e n t T y p e ( s e t R e s R m d a s C F S t r i n g , L S R o l e s M a s k . a l l ) ? . t a k e R e t a i n e d V a l u e ( ) a s S t r i n g ? ? ? " " ;
// l e t r m d A p p U r l : U R L = ( w o r k s p a c e . u r l F o r A p p l i c a t i o n ( w i t h B u n d l e I d e n t i f i e r : h a n d l e r R m d ) ) ! . a p p e n d i n g P a t h C o m p o n e n t ( " C o n t e n t s / I n f o . p l i s t " ) ;
// l e t r m d A p p D i c t : N S D i c t i o n a r y = N S D i c t i o n a r y ( c o n t e n t s O f : r m d A p p U r l ) ! ;
// }
public static func setHandlers ( ) {
let setResR : String = UTTypeCreatePreferredIdentifierForTag ( kUTTagClassFilenameExtension , " R " as CFString , nil ) ? . takeRetainedValue ( ) as String ? ? ? " " ;
LSSetDefaultRoleHandlerForContentType ( setResR as CFString , LSRolesMask . all , " org.rstudio.RStudio " as CFString ) ;
let setResRmd : String = UTTypeCreatePreferredIdentifierForTag ( kUTTagClassFilenameExtension , " Rmd " as CFString , nil ) ? . takeRetainedValue ( ) as String ? ? ? " " ;
LSSetDefaultRoleHandlerForContentType ( setResRmd as CFString , LSRolesMask . all , " org.rstudio.RStudio " as CFString ) ;
}
}