From 99fd5e99eff25e5b7c9e0bb801651f71f7bd9187 Mon Sep 17 00:00:00 2001 From: Aviv Eyal Date: Tue, 7 Jul 2015 06:22:33 -0700 Subject: [PATCH] Update symbols docs Summary: Update manual to reflect T7984 and T8302. Test Plan: Not many new red squigly lines. Reviewers: joshuaspence, epriestley, #blessed_reviewers Reviewed By: joshuaspence, epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D13551 --- .../user/userguide/diffusion_symbols.diviner | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/docs/user/userguide/diffusion_symbols.diviner b/src/docs/user/userguide/diffusion_symbols.diviner index ee0d656226..b609841812 100644 --- a/src/docs/user/userguide/diffusion_symbols.diviner +++ b/src/docs/user/userguide/diffusion_symbols.diviner @@ -9,13 +9,14 @@ Phabricator can maintain a symbol index, which keeps track of where classes and functions are defined in the codebase. Once you set up indexing, you can use the index to do things like: - - link symbol uses in Differential code reviews and Diffusion code browsing - to their definitions - - allow you to search for symbols + - jump to symbol definitions from Differential code reviews and Diffusion + code browsing by ctrl-clicking (cmd-click on Mac) symbols + - search for symbols from the quick-search - let the IRC bot answer questions like "Where is SomeClass?" -NOTE: Symbol indexing is somewhat new, and has broader support for PHP than for -other languages. +NOTE: Because this feature depends on the syntax highlighter, it will work +better for some languages than others. It currently works fairly well for PHP, +but your mileage may vary for other languages. = Populating the Index = @@ -85,6 +86,12 @@ You can configure some more options by going to {nav Diffusion > (Select Phabricator lists "Arcanist" and "libphutil" because it uses classes and functions from these repositories. -NOTE: Because this feature depends on the syntax highlighter, it will work -better for some languages than others. It currently works fairly well for PHP, -but your mileage may vary for other languages. +== External Symbols == + +By @{article:Adding New Classes}, you can teach Phabricator +about symbols from the outside world. +Extend @{class:DiffusionExternalSymbolsSource}; Once loaded, your new +implementation will be used any time a symbol is queried. + +See @{class:DiffusionPhpExternalSymbolsSource} and +@{class:DiffusionPythonExternalSymbolsSource} for example implementations.