ManualAutoCompleteList

ManualAutoCompleteList

#Overview

name: ManualAutoCompleteList

The value of this variable can be defined or overridden in .ini config files. 187 .ini config files referencing this setting variable.

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ManualAutoCompleteList is to provide a custom list of auto-complete commands and information for the Unreal Engine console. This setting variable is primarily used for enhancing the user interface and developer experience when interacting with the console.

The ManualAutoCompleteList is primarily utilized by the Engine module, specifically within the console subsystem. It is referenced in the UConsole class, which is responsible for handling console input and output.

The value of this variable is set in the ConsoleSettings class, which is part of the EngineSettings module. It is defined as a UPROPERTY with the ‘config’ and ‘EditAnywhere’ specifiers, indicating that it can be edited in the project settings and saved to configuration files.

This variable interacts with other console-related variables and functions, such as:

  1. AutoCompleteList: The ManualAutoCompleteList is used to populate this list.
  2. AutoCompleteCommandColor: Used to set the color of the auto-complete commands.
  3. RegisterConsoleAutoCompleteEntries: A broadcast function that allows other systems to add entries to the auto-complete list.

Developers should be aware of the following when using this variable:

  1. It is designed to be configured in the project settings or through configuration files (like BaseInput.ini).
  2. The list contains FAutoCompleteCommand structs, which likely include both the command string and additional information.
  3. This list is used as a base for the console’s auto-complete functionality, which can be extended by other systems.

Best practices for using this variable include:

  1. Populate it with commonly used or important console commands to improve developer productivity.
  2. Keep the list concise and relevant to avoid cluttering the auto-complete functionality.
  3. Use it in conjunction with other auto-complete systems (like RegisterConsoleAutoCompleteEntries) for a comprehensive auto-complete experience.
  4. Regularly review and update the list to ensure it remains useful as the project evolves.
  5. Consider using it to document custom console commands specific to your project.

#Setting Variables

#References In INI files

<Workspace>/Engine/Config/BaseInput.ini:62, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:63, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:64, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:65, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:66, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:67, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:68, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:69, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:70, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:71, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:72, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:73, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:74, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:75, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:76, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:77, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:78, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:79, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:80, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:81, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:82, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:83, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:84, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:85, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:86, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:87, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:88, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:89, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:90, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:91, section: [/Script/EngineSettings.ConsoleSettings]
<Workspace>/Engine/Config/BaseInput.ini:92, section: [/Script/EngineSettings.ConsoleSettings]


... omitting 157 locations ...

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/UserInterface/Console.cpp:209

Scope (from outer to inner):

file
function     void UConsole::BuildRuntimeAutoCompleteList

Source code excerpt:

	// copy the manual list first
	AutoCompleteList.Reset();
	AutoCompleteList.AddDefaulted(ConsoleSettings->ManualAutoCompleteList.Num());
	for (int32 Idx = 0; Idx < ConsoleSettings->ManualAutoCompleteList.Num(); Idx++)
	{
		AutoCompleteList[Idx] = ConsoleSettings->ManualAutoCompleteList[Idx];
		AutoCompleteList[Idx].Color = ConsoleSettings->AutoCompleteCommandColor;
	}

	// systems that have registered to want to introduce entries
	RegisterConsoleAutoCompleteEntries.Broadcast(AutoCompleteList);

#Loc: <Workspace>/Engine/Source/Runtime/EngineSettings/Classes/ConsoleSettings.h:68

Scope (from outer to inner):

file
class        class UConsoleSettings : public UObject

Source code excerpt:

	/** Manual list of auto-complete commands and info specified in BaseInput.ini */
	UPROPERTY(config, EditAnywhere, Category=AutoComplete)
	TArray<struct FAutoCompleteCommand> ManualAutoCompleteList;

	/** List of relative paths (e.g. Content/Maps) to search for map names for auto-complete usage. Specified in BaseInput.ini. */
	UPROPERTY(config, EditAnywhere, Category=AutoComplete)
	TArray<FString> AutoCompleteMapPaths;

	/** Amount of transparency of the console background. */

#Loc: <Workspace>/Engine/Source/Runtime/EngineSettings/Private/ConsoleSettings.cpp:6

Scope (from outer to inner):

file
function     TArray<FString> UConsoleSettings::GetFilteredManualAutoCompleteCommands

Source code excerpt:

	// We reserve some arbitrary size here, we could use more complex heuristics later on
	TArray<FString> Commands;
	Commands.Reserve(Substring.IsEmpty() ? ManualAutoCompleteList.Num() : 20);

	// We convert to FString because there's no ParseIntoArrayWS just yet that's compatible with String Views
	TArray<FString> Tokens;
	FString(Substring).ParseIntoArrayWS(Tokens);

	for (const FAutoCompleteCommand& Command : ManualAutoCompleteList)
	{
		bool bAllMatch = true;

		for (const FString& Token : Tokens)
		{
			if (!Command.Command.Contains(Token))