a0820deb7b014289efe4fa031f73f0fdb468d3b5
[stack/conf/vim.git] / addons / TagHighlight / plugin / TagHighlight / module / worker.py
1 #!/usr/bin/env python
2 # Tag Highlighter:
3 #   Author:  A. S. Budden <abudden _at_ gmail _dot_ com>
4 # Copyright: Copyright (C) 2009-2011 A. S. Budden
5 #            Permission is hereby granted to use and distribute this code,
6 #            with or without modifications, provided that this copyright
7 #            notice is copied with it. Like anything else that's free,
8 #            the TagHighlight plugin is provided *as is* and comes with no
9 #            warranty of any kind, either expressed or implied. By using
10 #            this plugin, you agree that in no event will the copyright
11 #            holder be liable for any damages resulting from the use
12 #            of this software.
13
14 # ---------------------------------------------------------------------
15 from __future__ import print_function
16 import sys
17 import os
18
19 def RunWithOptions(options):
20     start_directory = os.getcwd()
21     from .config import config, SetInitialOptions, LoadLanguages
22     from .debug import Debug
23
24     SetInitialOptions(options)
25
26     Debug("Running types highlighter generator", "Information")
27     Debug("Release:" + config['release'], "Information")
28     Debug("Version:" + repr(config['version']), "Information")
29     Debug("Options:" + repr(options), "Information")
30
31     tag_file_absolute = os.path.join(config['ctags_file_dir'], config['ctags_file'])
32     if config['use_existing_tagfile'] and not os.path.exists(tag_file_absolute):
33         Debug("Cannot use existing tagfile as it doesn't exist (checking for " + tag_file_absolute + ")", "Error")
34         return
35
36     LoadLanguages()
37
38     if config['print_config']:
39         import pprint
40         pprint.pprint(config)
41         return
42
43     if config['print_py_version']:
44         print(sys.version)
45         return
46
47     from .ctags_interface import GenerateTags, ParseTags
48     from .generation import CreateTypesFile
49
50     if not config['use_existing_tagfile']:
51         Debug("Generating tag file", "Information")
52         GenerateTags(config)
53     tag_db = ParseTags(config)
54
55     for language in config['language_list']:
56         if language in tag_db:
57             CreateTypesFile(config, language, tag_db[language])
58
59     os.chdir(start_directory)