def extract_file_to(fname=None): ''' Extracts methods to given file or ./cocoa_indexes/methods.txt by default. ''' if fname is None: fname = './cocoa_indexes/methods.txt.gz' if not os.path.isdir(os.path.dirname(fname)): os.mkdir(os.path.dirname(fname)) # This file is quite large, so I've compressed it. f = gzip.open(fname, 'w') f.write("\n".join(get_methods(default_headers()))) f.close()
def generate_syntax_file(): '''Returns a list of lines for a Vim syntax file of Cocoa keywords.''' dir = './cocoa_indexes/' cocoa_definitions.extract_files_to(dir) # Normal classes & protocols need to be differentiated in syntax, so # we need to generate them again. headers = ' '.join(cocoa_definitions.default_headers()) output = \ ['" Description: Syntax highlighting for the cocoa.vim plugin.', '" Adds highlighting for Cocoa keywords (classes, types, etc.).', '" Last Generated: ' + datetime.date.today().strftime('%B %d, %Y'), ''] output += ['" Cocoa Functions', 'syn keyword cocoaFunction containedin=objcMessage ' + join_lines(read_file(dir + 'functions.txt')), '', '" Cocoa Classes', 'syn keyword cocoaClass containedin=objcMessage ' + join_lines(get_classes(headers)), '', '" Cocoa Protocol Classes', 'syn keyword cocoaProtocol containedin=objcProtocol ' + join_lines(get_protocol_classes(headers)), '', '" Cocoa Types', 'syn keyword cocoaType containedin=objcMessage CGFloat ' + join_lines(read_file(dir + 'types.txt')), '', '" Cocoa Constants', 'syn keyword cocoaConstant containedin=objcMessage ' + join_lines(read_file(dir + 'constants.txt')), '', '" Cocoa Notifications', 'syn keyword cocoaNotification containedin=objcMessage ' + join_lines(read_file(dir + 'notifications.txt')), ''] output += ['hi link cocoaFunction Keyword', 'hi link cocoaClass Special', 'hi link cocoaProtocol cocoaClass', 'hi link cocoaType Type', 'hi link cocoaConstant Constant', 'hi link cocoaNotification Constant'] return output
def generate_syntax_file(): """Returns a list of lines for a Vim syntax file of Cocoa keywords.""" dir = "./cocoa_indexes/" cocoa_definitions.extract_files_to(dir) # Normal classes & protocols need to be differentiated in syntax, so # we need to generate them again. headers = " ".join(cocoa_definitions.default_headers()) output = [ '" Description: Syntax highlighting for the cocoa.vim plugin.', '" Adds highlighting for Cocoa keywords (classes, types, etc.).', '" Last Generated: ' + datetime.date.today().strftime("%B %d, %Y"), "", ] output += [ '" Cocoa Functions', "syn keyword cocoaFunction containedin=objcMessage " + join_lines(read_file(dir + "functions.txt")), "", '" Cocoa Classes', "syn keyword cocoaClass containedin=objcMessage " + join_lines(get_classes(headers)), "", '" Cocoa Protocol Classes', "syn keyword cocoaProtocol containedin=objcProtocol " + join_lines(get_protocol_classes(headers)), "", '" Cocoa Types', "syn keyword cocoaType containedin=objcMessage CGFloat " + join_lines(read_file(dir + "types.txt")), "", '" Cocoa Constants', "syn keyword cocoaConstant containedin=objcMessage " + join_lines(read_file(dir + "constants.txt")), "", '" Cocoa Notifications', "syn keyword cocoaNotification containedin=objcMessage " + join_lines(read_file(dir + "notifications.txt")), "", ] output += [ "hi link cocoaFunction Keyword", "hi link cocoaClass Special", "hi link cocoaProtocol cocoaClass", "hi link cocoaType Special", "hi link cocoaConstant Constant", "hi link cocoaNotification Constant", ] return output
def generate_syntax_file(): '''Returns a list of lines for a Vim syntax file of Cocoa keywords.''' dir = './cocoa_indexes/' cocoa_definitions.extract_files_to(dir) # Normal classes & protocols need to be differentiated in syntax, so # we need to generate them again. headers = ' '.join(cocoa_definitions.default_headers()) output = \ ['" Description: Syntax highlighting for the cocoa.vim plugin.', '" Adds highlighting for Cocoa keywords (classes, types, etc.).', '" Last Generated: ' + datetime.date.today().strftime('%B %d, %Y'), ''] output += [ '" Cocoa Functions', 'syn keyword cocoaFunction containedin=objcMessage ' + join_lines(read_file(dir + 'functions.txt')), '', '" Cocoa Classes', 'syn keyword cocoaClass containedin=objcMessage ' + join_lines(get_classes(headers)), '', '" Cocoa Protocol Classes', 'syn keyword cocoaProtocol containedin=objcProtocol ' + join_lines(get_protocol_classes(headers)), '', '" Cocoa Types', 'syn keyword cocoaType containedin=objcMessage CGFloat ' + join_lines(read_file(dir + 'types.txt')), '', '" Cocoa Constants', 'syn keyword cocoaConstant containedin=objcMessage ' + join_lines(read_file(dir + 'constants.txt')), '', '" Cocoa Notifications', 'syn keyword cocoaNotification containedin=objcMessage ' + join_lines(read_file(dir + 'notifications.txt')), '' ] output += [ 'hi link cocoaFunction Keyword', 'hi link cocoaClass Special', 'hi link cocoaProtocol cocoaClass', 'hi link cocoaType Type', 'hi link cocoaConstant Constant', 'hi link cocoaNotification Constant' ] return output