Is it possible to prevent Doxygen from outputting protected members? - doxygen

As the title suggests, is it possible to automatically remove protected members from DOxygen output?
I can see options to include private members but no mention of protected members?

Along with EXTRACT_PRIVATE = NO, use the following additional settings:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = protected=private
Source: http://osdir.com/ml/text.doxygen.general/2004-12/msg00047.html

Related

typo3 read configuration options in typoscript

I've tried several approaches to read the configuration options of my plugin in typoscript, but none of them seem to work
ajax.30 = TEXT
ajax.30.value = {plugin.tx_parser.settings.numVar}
ajax.40 < {tx_parser.settings.numVar}
ajax.50 < {tx_parser.settings.numVar}
ajax.80 = TEXT
ajax.80.value = {options.numVar}
ajax.90 = TEXT
ajax.90.value = {settings.numVar}
Can anyone please explain me the syntax or post a link where it is explained; I can use ext_conf_template.txt explained here https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ConfigurationOptions/Index.html but I didn't get these options in typoscript.
All I want is to access (in typoscript) the configuration options of the following picture
If I browse Constants I don't see any of these options
If I add my plugin to the site I see some plugin options but none of them I wanted
You can use constants with this syntax in TypoScript setup or constants
var = {$plugin.tx_parser.settings.numVar}
So in your case:
ajax.30 = TEXT
ajax.30.value = {$plugin.tx_parser.settings.numVar}
See https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/UsingSetting/Constants.html
To assign an earlier declared setup value you would use the < (object copy) operator
ajax.30 = TEXT
ajax.30.value < plugin.tx_parser.settings.numVar
Here is an on overview of its syntax: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/TypoScriptSyntax/Syntax/TypoScriptSyntax.html
The difference between constants and setup is essential. You can check in the backend in the module Template -> Template browser - see https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/UsingSetting/Debugging.html

doxygen not resolving macro correctly

i am using doxygen 1.8.11 together with the eclipse plugin eclox. i tried to generate the call graph for my source files. when i checked in one of the files i noticed that the call graph contained a function call which is actually disabled by a #define my expectation was not to see this function call in the call-graph.
on top of the source file :
#define MACRO_NAME FALSE
....
void Func_1(int *p)
{
....
#if (MACRO_NAME == TRUE)
Func_Call_2()
#else
Func_Call_3()
#endif
}
FALSE and TRUE are defined in one of the headers i included in the settings in "Include Paths" and i also get a hyperlink in the html report for FALSE and TRUE so doxygen is able to find the definition.
both Func_Call_2 and Func_Call_3() are drawn in the call graph, when actually i only want to see Func_Call_3().
my settings in the doxyfile are:
Enable Preprocessing YES
Macro Expansion NO
Expand Only Predefined NO
Search Includes YES
Extract All YES
Extract Static YES
i also tried with Macro Expansion YES but then i got no call-graph for this function Func_1 at all only after setting it back to NO the call graph is drawn again in the html file
the header file in which FALSE/TRUE are defined starts like this:
#ifndef HEADER_H
#define HEADER_H
.....
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
is there any other setting i can try ? so that doxygen will draw the call-graph without the disabled code ?
You can try one of the following suggestions:
Don't use TRUE and FALSE but 1 and 0 directly in the definition of MACRO_NAME and in the condition.
Don't set a value for MACRO_NAME but check whether it is defined or not.
Set Macro Expandion to YES and Expand Only Predefined to YES. Then set Predefined and/or Expand As Defined to include the relevant macro's.

SSDT: How to configure SchemaCompare Object settings in code

How to edit the SchemaCompare Settings in the SchemaComparison object?
$SchemaComparison = [SchemaComparison]::new( $SourceEndPoint, $TargetEndPoint )
$SchemaComparison.Options = $DeployOptions
I am particularly looking to Remove Database options, but the SchemaCompare settings do not appear to be accessible by code:
$SchemaComparison.Options.ExcludeDatabaseOptions #(not known property of the Options object)
$SchemaComparison.SettingsService #(not a known property)
How can I do in code what I can EASILY do from the SSDT compare UI?
I found the answer. There is an excludedObjects property hiding in the options object. It's an array of ObjectType enums:
$SchemaComparison.Options.ExcludeObjectTypes += [ObjectType]::Aggregates
$SchemaComparison.Options.ExcludeObjectTypes += [ObjectType]::ApplicationRoles
$SchemaComparison.Options.ExcludeObjectTypes += [ObjectType]::Assemblies
You can exclude any you want. The MSDN includes the list here:
https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dac.objecttype.aspx

How to stop docstrings in a group applying to all other undocumented functions?

I've noticed strange behavior with doxygen, where function documentation will be applied to multiple functions. eg:
The example below works as expected (only function_a is documented).
However using groups causes changed behavior.
void function_a(void) {}
/** Document function B */
void function_b(void) {}
void function_c(void) {}
With a group however the doc-string Document function B is applied to all 3 functions.
/** \name My ABC Functions
* \{ */
void function_a(void) {}
/** Document function B */
void function_b(void) {}
void function_c(void) {}
/** \} */
Is there a way to avoid this?Besides having doc-strings for all functions in the group.
Edit, using Doxygen version 1.8.11
This was caused by DISTRIBUTE_GROUP_DOC being enabled in the configuration on the project I was contributing to.
This is disabled by default, and disabling resolved the issue.
See:
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
# The default value is: NO.
DISTRIBUTE_GROUP_DOC = YES

TYPO3 - Get the current language in an external php file

I am a beginner in TYPO3 :) and I want to get the current language in an external php file.
How can I do that?
Thanks a lot.
If you've got an instance of the TSFE, you can access the sys_language_uid via $GLOBALS['TSFE']->sys_language_uid
For the V9, $GLOBALS['TSFE']->sys_language_uid is deprecated, it recommanded to use the Language Aspect.
Example :
$languageAspect = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class)->getAspect('language');
$sys_language_uid = $languageAspect->getId();
TYPO3 9+
$context = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class);
// The requested language of the current page as integer (uid)
$currentLanguageUid = $context->getPropertyFromAspect('language', 'id');
It is always best way to get Current language:
$GLOBALS['TSFE']->sys_language_uid
or
$GLOBALS['TSFE']->sys_language_content
based on that you get current language id and you can give condition for that.
Get Current Language in Typo3 10.x version.
$context = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class);
$langId = $context->getPropertyFromAspect('language', 'id');
Normally L is always be used as a language parameter in typo3. $_GET['L']
In case you need detailed language attributes
$request = $GLOBALS['TYPO3_REQUEST'];
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
$request->getAttribute('language')
);
Further get attributes like i.e. Path of language
$path = $request->getAttribute('language')->getBase()->getPath();
Reference : https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/AccessingSiteConfiguration.html