Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: tools/grit/grit/format/rc.py

Issue 2429213007: grit: Reorganize and compact resource_ids. (Closed)
Patch Set: rebase to r427103 Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/gritsettings/resource_ids » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''Support for formatting an RC file for compilation. 6 '''Support for formatting an RC file for compilation.
7 ''' 7 '''
8 8
9 import os 9 import os
10 import types 10 import types
11 import re 11 import re
12 from functools import partial 12 from functools import partial
13 13
14 from grit import util 14 from grit import util
15 from grit.format import rc_header
15 from grit.node import misc 16 from grit.node import misc
16 17
17 18
18 def Format(root, lang='en', output_dir='.'): 19 def Format(root, lang='en', output_dir='.'):
19 from grit.node import empty, include, message, structure 20 from grit.node import empty, include, message, structure
20 21
21 yield _FormatHeader(root, lang, output_dir) 22 yield _FormatHeader(root, lang, output_dir)
22 23
23 for item in root.ActiveDescendants(): 24 for item in root.ActiveDescendants():
24 if isinstance(item, empty.MessagesNode): 25 if isinstance(item, empty.MessagesNode):
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 filename = item.Process(output_dir) 442 filename = item.Process(output_dir)
442 elif filename_only: 443 elif filename_only:
443 filename = os.path.basename(filename) 444 filename = os.path.basename(filename)
444 elif relative_path: 445 elif relative_path:
445 filename = util.MakeRelativePath(output_dir, filename) 446 filename = util.MakeRelativePath(output_dir, filename)
446 447
447 filename = filename.replace('\\', '\\\\') # escape for the RC format 448 filename = filename.replace('\\', '\\\\') # escape for the RC format
448 449
449 if isinstance(item, structure.StructureNode) and item.IsExcludedFromRc(): 450 if isinstance(item, structure.StructureNode) and item.IsExcludedFromRc():
450 return '' 451 return ''
451 else: 452
452 return '%-18s %-18s "%s"\n' % (item.attrs['name'], type, filename) 453 name = item.attrs['name']
454 item_id = rc_header.GetIds(item.GetRoot())[name]
455 return '// ID: %d\n%-18s %-18s "%s"\n' % (item_id, name, type, filename)
453 456
454 457
455 def _DoNotFormat(item, lang, output_dir): 458 def _DoNotFormat(item, lang, output_dir):
456 return '' 459 return ''
457 460
458 461
459 # Formatter instance to use for each type attribute 462 # Formatter instance to use for each type attribute
460 # when formatting Structure nodes. 463 # when formatting Structure nodes.
461 _STRUCTURE_FORMATTERS = { 464 _STRUCTURE_FORMATTERS = {
462 'accelerators' : _FormatSection, 465 'accelerators' : _FormatSection,
463 'dialog' : _FormatSection, 466 'dialog' : _FormatSection,
464 'menu' : _FormatSection, 467 'menu' : _FormatSection,
465 'rcdata' : _FormatSection, 468 'rcdata' : _FormatSection,
466 'version' : _FormatSection, 469 'version' : _FormatSection,
467 'admin_template' : partial(FormatInclude, type='ADM'), 470 'admin_template' : partial(FormatInclude, type='ADM'),
468 'chrome_html' : partial(FormatInclude, type='BINDATA', 471 'chrome_html' : partial(FormatInclude, type='BINDATA',
469 process_html=True), 472 process_html=True),
470 'chrome_scaled_image' : partial(FormatInclude, type='BINDATA'), 473 'chrome_scaled_image' : partial(FormatInclude, type='BINDATA'),
471 'igoogle' : partial(FormatInclude, type='XML'), 474 'igoogle' : partial(FormatInclude, type='XML'),
472 'muppet' : partial(FormatInclude, type='XML'), 475 'muppet' : partial(FormatInclude, type='XML'),
473 'tr_html' : partial(FormatInclude, type='HTML'), 476 'tr_html' : partial(FormatInclude, type='HTML'),
474 'txt' : partial(FormatInclude, type='TXT'), 477 'txt' : partial(FormatInclude, type='TXT'),
475 'policy_template_metafile': _DoNotFormat, 478 'policy_template_metafile': _DoNotFormat,
476 } 479 }
477 480
478 481
479 def FormatStructure(item, lang, output_dir): 482 def FormatStructure(item, lang, output_dir):
480 formatter = _STRUCTURE_FORMATTERS[item.attrs['type']] 483 formatter = _STRUCTURE_FORMATTERS[item.attrs['type']]
481 return formatter(item, lang, output_dir) 484 return formatter(item, lang, output_dir)
OLDNEW
« no previous file with comments | « no previous file | tools/gritsettings/resource_ids » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698