|
17 | 17 | TIMESTAMP = lambda stamp : '%s by %s' % (stamp, LOGIN)
|
18 | 18 |
|
19 | 19 | def LOAD_HEADER(fileName) :
|
20 |
| - with open(PACKAGE_FILE(join(HEADER_SUB_DIR, fileName)), 'r') as headerFile : |
21 |
| - return headerFile.read() |
| 20 | + with open(PACKAGE_FILE(join(HEADER_SUB_DIR, fileName)), 'r') as headerFile : |
| 21 | + return headerFile.read() |
22 | 22 |
|
23 | 23 | HEADERS = {
|
24 |
| - '^Makefile$' : 'Makefile.header', |
25 |
| - '^.*\.c|h|js|css|cs|scala|rs|go|swift$' : 'C.header', |
26 |
| - '^.*\.php$' : 'Php.header', |
27 |
| - '^.*\.html$' : 'Html.header', |
28 |
| - '^.*\.lua$' : 'Lua.header', |
29 |
| - '^.*\.ml|mli$' : 'OCaml.header', |
30 |
| - '^.*\.hs$' : 'Haskell.header', |
31 |
| - '^.*\.s|s64|asm|hs|h64$' : 'ASM.header', |
| 24 | + '^Makefile$' : 'Makefile.header', |
| 25 | + '^.*\.c|h|js|css|cs|scala|rs|go|swift$' : 'C.header', |
| 26 | + '^.*\.php$' : 'Php.header', |
| 27 | + '^.*\.html$' : 'Html.header', |
| 28 | + '^.*\.lua$' : 'Lua.header', |
| 29 | + '^.*\.ml|mli$' : 'OCaml.header', |
| 30 | + '^.*\.hs$' : 'Haskell.header', |
| 31 | + '^.*\.s|s64|asm|hs|h64$' : 'ASM.header', |
32 | 32 | }
|
33 | 33 |
|
34 | 34 | def init() :
|
35 |
| - global IS_INIT |
36 |
| - IS_INIT = True |
37 |
| - for k, v in HEADERS.items() : |
38 |
| - HEADERS[k] = LOAD_HEADER(v) |
| 35 | + global IS_INIT |
| 36 | + IS_INIT = True |
| 37 | + for k, v in HEADERS.items() : |
| 38 | + HEADERS[k] = LOAD_HEADER(v) |
39 | 39 |
|
40 | 40 | def getHeader(filePath, view = None, updating = False) :
|
41 |
| - global IS_INIT |
42 |
| - if not IS_INIT : init() |
43 |
| - _, fileName = split(filePath) |
| 41 | + global IS_INIT |
| 42 | + if not IS_INIT : init() |
| 43 | + _, fileName = split(filePath) |
44 | 44 |
|
45 |
| - for pattern, header in HEADERS.items() : |
46 |
| - if re.search(pattern, fileName) : |
47 |
| - if updating: |
48 |
| - creationDate = view.view.find(r'\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2} by [^\s]+', 0) |
49 |
| - if not creationDate: |
50 |
| - created = "Error parsing the header. :( Contact apilate!" |
51 |
| - else: |
52 |
| - created = view.view.substr(creationDate) |
53 |
| - else: |
54 |
| - creationDateTime = datetime.datetime.fromtimestamp(getctime(filePath)) |
55 |
| - created = TIMESTAMP(creationDateTime.strftime(DATE_TIME_FORMAT)) |
56 |
| - updated = TIMESTAMP(time.strftime(DATE_TIME_FORMAT)) |
57 |
| - return header % (fileName, BY, created, updated) |
| 45 | + for pattern, header in HEADERS.items() : |
| 46 | + if re.search(pattern, fileName) : |
| 47 | + if updating: |
| 48 | + creationDate = view.view.find(r'\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2} by [^\s]+', 0) |
| 49 | + if not creationDate: |
| 50 | + created = "Error parsing the header. :( Contact apilate!" |
| 51 | + else: |
| 52 | + created = view.view.substr(creationDate) |
| 53 | + else: |
| 54 | + creationDateTime = datetime.datetime.fromtimestamp(getctime(filePath)) |
| 55 | + created = TIMESTAMP(creationDateTime.strftime(DATE_TIME_FORMAT)) |
| 56 | + updated = TIMESTAMP(time.strftime(DATE_TIME_FORMAT)) |
| 57 | + return header % (fileName, BY, created, updated) |
58 | 58 |
|
59 | 59 | class create_headerCommand(sublime_plugin.TextCommand) :
|
60 |
| - def run(self, edit) : |
61 |
| - if not self.view.settings().get(SETTINGS_HAS_HEADER_KEY) : |
62 |
| - header = getHeader(self.view.file_name()) |
63 |
| - if header : |
64 |
| - self.view.insert(edit, 0, header) |
65 |
| - self.view.settings().set(SETTINGS_HAS_HEADER_KEY, True) |
| 60 | + def run(self, edit) : |
| 61 | + if not self.view.settings().get(SETTINGS_HAS_HEADER_KEY) : |
| 62 | + header = getHeader(self.view.file_name()) |
| 63 | + if header : |
| 64 | + self.view.insert(edit, 0, header) |
| 65 | + self.view.settings().set(SETTINGS_HAS_HEADER_KEY, True) |
66 | 66 |
|
67 | 67 | class update_headerCommand(sublime_plugin.TextCommand) :
|
68 |
| - def run(self, edit) : |
69 |
| - if self.view.settings().get(SETTINGS_HAS_HEADER_KEY) : |
70 |
| - header = getHeader(self.view.file_name(), self, True) |
71 |
| - if header : |
72 |
| - headerRegion = sublime.Region(0, len(header)) |
73 |
| - self.view.replace(edit, headerRegion, header) |
| 68 | + def run(self, edit) : |
| 69 | + if self.view.settings().get(SETTINGS_HAS_HEADER_KEY) : |
| 70 | + header = getHeader(self.view.file_name(), self, True) |
| 71 | + if header : |
| 72 | + headerRegion = sublime.Region(0, len(header)) |
| 73 | + self.view.replace(edit, headerRegion, header) |
74 | 74 |
|
75 | 75 | class disable_headerCommand(sublime_plugin.TextCommand) :
|
76 |
| - def run(self, edit) : |
77 |
| - header = getHeader(self.view.file_name()) |
78 |
| - if header : |
79 |
| - headerRegion = sublime.Region(0, len(header)) |
80 |
| - self.view.erase(edit, headerRegion) |
81 |
| - self.view.settings().set(SETTINGS_HAS_HEADER_KEY, False) |
| 76 | + def run(self, edit) : |
| 77 | + header = getHeader(self.view.file_name()) |
| 78 | + if header : |
| 79 | + headerRegion = sublime.Region(0, len(header)) |
| 80 | + self.view.erase(edit, headerRegion) |
| 81 | + self.view.settings().set(SETTINGS_HAS_HEADER_KEY, False) |
82 | 82 |
|
83 | 83 | class eventListener(sublime_plugin.EventListener) :
|
84 | 84 |
|
85 |
| - def on_pre_save(self, view) : |
86 |
| - view.window().run_command('update_header') |
| 85 | + def on_pre_save(self, view) : |
| 86 | + view.window().run_command('update_header') |
87 | 87 |
|
88 |
| - def on_load(self, view) : |
89 |
| - header = getHeader(view.file_name()) |
90 |
| - hasHeader = False |
91 |
| - if header : |
92 |
| - staticHeaderLength = header.find('\n', header.find('\n') + 1) |
93 |
| - staticRegion = sublime.Region(0, staticHeaderLength) |
94 |
| - hasHeader = header[:staticHeaderLength] == view.substr(staticRegion) |
95 |
| - view.settings().set(SETTINGS_HAS_HEADER_KEY, hasHeader) |
| 88 | + def on_load(self, view) : |
| 89 | + header = getHeader(view.file_name()) |
| 90 | + hasHeader = False |
| 91 | + if header : |
| 92 | + staticHeaderLength = header.find('\n', header.find('\n') + 1) |
| 93 | + staticRegion = sublime.Region(0, staticHeaderLength) |
| 94 | + hasHeader = header[:staticHeaderLength] == view.substr(staticRegion) |
| 95 | + view.settings().set(SETTINGS_HAS_HEADER_KEY, hasHeader) |
0 commit comments