1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 00:02:40 +01:00
No description
Find a file
James Ide eb98ab553e Munge XHP class names when generating phutil dependency maps
Summary:
When phutil_analyzer builds the dependency graph I convert all class names w.r.t
XHP's internal naming scheme. It actually wouldn't be a terrible idea to do this
munging when phutil loads the symbols. I guess it doesn't really matter at the
moment since only Arcanist generates phutil maps and only libphutil reads them,
but it'd be nice to do this munging in as few places as possible in the future.

The XHP grammar does not allow elements to be interfaces
(dafff2cc18/xhp/parser.y (L1688))
so I've only applied this to classes.

Test Plan:
Created a sample project:

  ./__phutil_library_init__.php
    hopping/__init__.php
           /hophophop.php

where that last file contains

  <?php
  class :bunny:hop-hop-hop extends element {
    protected function render() {
      return <p>bunny goes hop hop hop</p>;
    }
  }

Ran phutil_mapper.php and generated __phutil_library_map__.php:

  <?php

  /**
   * This file is automatically generated. Use 'phutil_mapper.php' to rebuild i\
t.
   * @generated
   */

  phutil_register_library_map(array(
    'class' =>
    array(
      'xhp_bunny__hop_hop_hop' => 'hopping',
    ),
    'function' =>
    array(
    ),
    'requires_class' =>
    array(
      'xhp_bunny__hop_hop_hop' => 'xhp_x__element',
    ),
    'requires_interface' =>
    array(
    ),
  ));

Reviewed By: epriestley
Reviewers: epriestley
Commenters: aran
CC: aran, ide, epriestley
Differential Revision: 715
2011-07-23 17:38:26 -07:00
bin Initial commit. 2011-01-09 15:22:25 -08:00
externals arc lint: fix/enable PEP8 linter 2011-05-18 16:47:23 -07:00
resources Basic 'shell-complete' workflow. 2011-01-17 20:18:27 -08:00
scripts Flush output buffers before running 'arc' 2011-07-16 08:09:47 -07:00
src Munge XHP class names when generating phutil dependency maps 2011-07-23 17:38:26 -07:00
.arcconfig Automatically use the correct path for Conduit URIs in arc 2011-06-23 17:26:08 -07:00
.divinerconfig Updated .divinerconfig. 2011-03-02 15:25:45 -08:00
.gitignore Add .divinercache to .gitignore. 2011-05-25 18:51:52 -07:00
LICENSE Initial commit. 2011-01-09 15:22:25 -08:00
README Initial commit. 2011-01-09 15:22:25 -08:00

PROJECT STATUS: CAVEAT EMPTOR

This is an unstable preview release. I'm open sourcing some of Facebook's
internal tools, but they'll be unstable for at least a couple months.
-epriestley


WHAT IS ARCANIST?

Arcanist is the CLI for Facebook's code review tool, Differential. Since
Differential isn't released yet, it may not be terribly useful on its own.