@@ -321,7 +321,9 @@ def _resolve_reference_in_domain_by_target(
321321 return None
322322
323323
324- def _resolve_reference_in_domain (inv_name : Optional [str ], inventory : Inventory ,
324+ def _resolve_reference_in_domain (env : BuildEnvironment ,
325+ inv_name : Optional [str ], inventory : Inventory ,
326+ honor_disabled_refs : bool ,
325327 domain : Domain , objtypes : List [str ],
326328 node : pending_xref , contnode : TextElement
327329 ) -> Optional [Element ]:
@@ -336,6 +338,11 @@ def _resolve_reference_in_domain(inv_name: Optional[str], inventory: Inventory,
336338 # the inventory contains domain:type as objtype
337339 objtypes = ["{}:{}" .format (domain .name , t ) for t in objtypes ]
338340
341+ # now that the objtypes list is complete we can remove the disabled ones
342+ if honor_disabled_refs :
343+ disabled = env .config .intersphinx_disabled_refs
344+ objtypes = [o for o in objtypes if o not in disabled ]
345+
339346 # without qualification
340347 res = _resolve_reference_in_domain_by_target (inv_name , inventory , domain , objtypes ,
341348 node ['reftarget' ], node , contnode )
@@ -351,22 +358,23 @@ def _resolve_reference_in_domain(inv_name: Optional[str], inventory: Inventory,
351358
352359
353360def _resolve_reference (env : BuildEnvironment , inv_name : Optional [str ], inventory : Inventory ,
354- honor_disabled_domains : bool ,
361+ honor_disabled_refs : bool ,
355362 node : pending_xref , contnode : TextElement ) -> Optional [Element ]:
356363 # disabling should only be done if no inventory is given
357- honor_disabled_domains = honor_disabled_domains and inv_name is None
364+ honor_disabled_refs = honor_disabled_refs and inv_name is None
358365
359- if honor_disabled_domains and 'all' in env .config .intersphinx_disabled_domains :
366+ if honor_disabled_refs and 'all' in env .config .intersphinx_disabled_refs :
360367 return None
361368
362369 typ = node ['reftype' ]
363370 if typ == 'any' :
364371 for domain_name , domain in env .domains .items ():
365- if honor_disabled_domains \
366- and domain_name in env .config .intersphinx_disabled_domains :
372+ if honor_disabled_refs \
373+ and domain_name in env .config .intersphinx_disabled_refs :
367374 continue
368375 objtypes = list (domain .object_types )
369- res = _resolve_reference_in_domain (inv_name , inventory ,
376+ res = _resolve_reference_in_domain (env , inv_name , inventory ,
377+ honor_disabled_refs ,
370378 domain , objtypes ,
371379 node , contnode )
372380 if res is not None :
@@ -377,14 +385,15 @@ def _resolve_reference(env: BuildEnvironment, inv_name: Optional[str], inventory
377385 if not domain_name :
378386 # only objects in domains are in the inventory
379387 return None
380- if honor_disabled_domains \
381- and domain_name in env .config .intersphinx_disabled_domains :
388+ if honor_disabled_refs \
389+ and domain_name in env .config .intersphinx_disabled_refs :
382390 return None
383391 domain = env .get_domain (domain_name )
384392 objtypes = domain .objtypes_for_role (typ )
385393 if not objtypes :
386394 return None
387- return _resolve_reference_in_domain (inv_name , inventory ,
395+ return _resolve_reference_in_domain (env , inv_name , inventory ,
396+ honor_disabled_refs ,
388397 domain , objtypes ,
389398 node , contnode )
390399
@@ -409,20 +418,20 @@ def resolve_reference_in_inventory(env: BuildEnvironment,
409418
410419
411420def resolve_reference_any_inventory (env : BuildEnvironment ,
412- honor_disabled_domains : bool ,
421+ honor_disabled_refs : bool ,
413422 node : pending_xref , contnode : TextElement
414423 ) -> Optional [Element ]:
415424 """Attempt to resolve a missing reference via intersphinx references.
416425
417426 Resolution is tried with the target as is in any inventory.
418427 """
419428 return _resolve_reference (env , None , InventoryAdapter (env ).main_inventory ,
420- honor_disabled_domains ,
429+ honor_disabled_refs ,
421430 node , contnode )
422431
423432
424433def resolve_reference_detect_inventory (env : BuildEnvironment ,
425- honor_disabled_domains : bool ,
434+ honor_disabled_refs : bool ,
426435 node : pending_xref , contnode : TextElement
427436 ) -> Optional [Element ]:
428437 """Attempt to resolve a missing reference via intersphinx references.
@@ -434,7 +443,7 @@ def resolve_reference_detect_inventory(env: BuildEnvironment,
434443 """
435444
436445 # ordinary direct lookup, use data as is
437- res = resolve_reference_any_inventory (env , honor_disabled_domains , node , contnode )
446+ res = resolve_reference_any_inventory (env , honor_disabled_refs , node , contnode )
438447 if res is not None :
439448 return res
440449
@@ -486,7 +495,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
486495 app .add_config_value ('intersphinx_mapping' , {}, True )
487496 app .add_config_value ('intersphinx_cache_limit' , 5 , False )
488497 app .add_config_value ('intersphinx_timeout' , None , False )
489- app .add_config_value ('intersphinx_disabled_domains ' , [], True )
498+ app .add_config_value ('intersphinx_disabled_refs ' , [], True )
490499 app .connect ('config-inited' , normalize_intersphinx_mapping , priority = 800 )
491500 app .connect ('builder-inited' , load_mappings )
492501 app .connect ('missing-reference' , missing_reference )
0 commit comments