virtualx-engine/doc/classes/ScriptLanguageExtension.xml
ajreckof 006e899bb3 sort code completions with rules
Fixups

Add levenshtein distance for comparisons, remove kind sort order, try to improve as many different use cases as possible

Trying again to improve code completion

Sort code autocompletion options by similarity based on input

To make it really brief, uses a combination `String.similiary`, the category system introduced in a previous PR, and some filtering to yield more predictable results, instead of scattering every completion option at seemingly random.

It also gives much higher priority to strings that contain the base in full, closer to the beginning or are perfect matches.

Also moves CodeCompletionOptionCompare to code_edit.cpp

Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
Co-Authored-By: Eric M <41730826+EricEzaM@users.noreply.github.com>
2023-05-23 05:12:34 +02:00

395 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="ScriptLanguageExtension" inherits="ScriptLanguage" version="4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="_add_global_constant" qualifiers="virtual">
<return type="void" />
<param index="0" name="name" type="StringName" />
<param index="1" name="value" type="Variant" />
<description>
</description>
</method>
<method name="_add_named_global_constant" qualifiers="virtual">
<return type="void" />
<param index="0" name="name" type="StringName" />
<param index="1" name="value" type="Variant" />
<description>
</description>
</method>
<method name="_auto_indent_code" qualifiers="virtual const">
<return type="String" />
<param index="0" name="code" type="String" />
<param index="1" name="from_line" type="int" />
<param index="2" name="to_line" type="int" />
<description>
</description>
</method>
<method name="_can_inherit_from_file" qualifiers="virtual const">
<return type="bool" />
<description>
</description>
</method>
<method name="_complete_code" qualifiers="virtual const">
<return type="Dictionary" />
<param index="0" name="code" type="String" />
<param index="1" name="path" type="String" />
<param index="2" name="owner" type="Object" />
<description>
</description>
</method>
<method name="_create_script" qualifiers="virtual const">
<return type="Object" />
<description>
</description>
</method>
<method name="_debug_get_current_stack_info" qualifiers="virtual">
<return type="Dictionary[]" />
<description>
</description>
</method>
<method name="_debug_get_error" qualifiers="virtual const">
<return type="String" />
<description>
</description>
</method>
<method name="_debug_get_globals" qualifiers="virtual">
<return type="Dictionary" />
<param index="0" name="max_subitems" type="int" />
<param index="1" name="max_depth" type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_count" qualifiers="virtual const">
<return type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_function" qualifiers="virtual const">
<return type="String" />
<param index="0" name="level" type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_instance" qualifiers="virtual">
<return type="void*" />
<param index="0" name="level" type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_line" qualifiers="virtual const">
<return type="int" />
<param index="0" name="level" type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_locals" qualifiers="virtual">
<return type="Dictionary" />
<param index="0" name="level" type="int" />
<param index="1" name="max_subitems" type="int" />
<param index="2" name="max_depth" type="int" />
<description>
</description>
</method>
<method name="_debug_get_stack_level_members" qualifiers="virtual">
<return type="Dictionary" />
<param index="0" name="level" type="int" />
<param index="1" name="max_subitems" type="int" />
<param index="2" name="max_depth" type="int" />
<description>
</description>
</method>
<method name="_debug_parse_stack_level_expression" qualifiers="virtual">
<return type="String" />
<param index="0" name="level" type="int" />
<param index="1" name="expression" type="String" />
<param index="2" name="max_subitems" type="int" />
<param index="3" name="max_depth" type="int" />
<description>
</description>
</method>
<method name="_find_function" qualifiers="virtual const">
<return type="int" />
<param index="0" name="class_name" type="String" />
<param index="1" name="function_name" type="String" />
<description>
</description>
</method>
<method name="_finish" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_frame" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_get_built_in_templates" qualifiers="virtual const">
<return type="Dictionary[]" />
<param index="0" name="object" type="StringName" />
<description>
</description>
</method>
<method name="_get_comment_delimiters" qualifiers="virtual const">
<return type="PackedStringArray" />
<description>
</description>
</method>
<method name="_get_extension" qualifiers="virtual const">
<return type="String" />
<description>
</description>
</method>
<method name="_get_global_class_name" qualifiers="virtual const">
<return type="Dictionary" />
<param index="0" name="path" type="String" />
<description>
</description>
</method>
<method name="_get_name" qualifiers="virtual const">
<return type="String" />
<description>
</description>
</method>
<method name="_get_public_annotations" qualifiers="virtual const">
<return type="Dictionary[]" />
<description>
</description>
</method>
<method name="_get_public_constants" qualifiers="virtual const">
<return type="Dictionary" />
<description>
</description>
</method>
<method name="_get_public_functions" qualifiers="virtual const">
<return type="Dictionary[]" />
<description>
</description>
</method>
<method name="_get_recognized_extensions" qualifiers="virtual const">
<return type="PackedStringArray" />
<description>
</description>
</method>
<method name="_get_reserved_words" qualifiers="virtual const">
<return type="PackedStringArray" />
<description>
</description>
</method>
<method name="_get_string_delimiters" qualifiers="virtual const">
<return type="PackedStringArray" />
<description>
</description>
</method>
<method name="_get_type" qualifiers="virtual const">
<return type="String" />
<description>
</description>
</method>
<method name="_handles_global_class_type" qualifiers="virtual const">
<return type="bool" />
<param index="0" name="type" type="String" />
<description>
</description>
</method>
<method name="_has_named_classes" qualifiers="virtual const">
<return type="bool" />
<description>
</description>
</method>
<method name="_init" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_is_control_flow_keyword" qualifiers="virtual const">
<return type="bool" />
<param index="0" name="keyword" type="String" />
<description>
</description>
</method>
<method name="_is_using_templates" qualifiers="virtual">
<return type="bool" />
<description>
</description>
</method>
<method name="_lookup_code" qualifiers="virtual const">
<return type="Dictionary" />
<param index="0" name="code" type="String" />
<param index="1" name="symbol" type="String" />
<param index="2" name="path" type="String" />
<param index="3" name="owner" type="Object" />
<description>
</description>
</method>
<method name="_make_function" qualifiers="virtual const">
<return type="String" />
<param index="0" name="class_name" type="String" />
<param index="1" name="function_name" type="String" />
<param index="2" name="function_args" type="PackedStringArray" />
<description>
</description>
</method>
<method name="_make_template" qualifiers="virtual const">
<return type="Script" />
<param index="0" name="template" type="String" />
<param index="1" name="class_name" type="String" />
<param index="2" name="base_class_name" type="String" />
<description>
</description>
</method>
<method name="_open_in_external_editor" qualifiers="virtual">
<return type="int" enum="Error" />
<param index="0" name="script" type="Script" />
<param index="1" name="line" type="int" />
<param index="2" name="column" type="int" />
<description>
</description>
</method>
<method name="_overrides_external_editor" qualifiers="virtual">
<return type="bool" />
<description>
</description>
</method>
<method name="_profiling_get_accumulated_data" qualifiers="virtual">
<return type="int" />
<param index="0" name="info_array" type="ScriptLanguageExtensionProfilingInfo*" />
<param index="1" name="info_max" type="int" />
<description>
</description>
</method>
<method name="_profiling_get_frame_data" qualifiers="virtual">
<return type="int" />
<param index="0" name="info_array" type="ScriptLanguageExtensionProfilingInfo*" />
<param index="1" name="info_max" type="int" />
<description>
</description>
</method>
<method name="_profiling_start" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_profiling_stop" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_reload_all_scripts" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_reload_tool_script" qualifiers="virtual">
<return type="void" />
<param index="0" name="script" type="Script" />
<param index="1" name="soft_reload" type="bool" />
<description>
</description>
</method>
<method name="_remove_named_global_constant" qualifiers="virtual">
<return type="void" />
<param index="0" name="name" type="StringName" />
<description>
</description>
</method>
<method name="_supports_builtin_mode" qualifiers="virtual const">
<return type="bool" />
<description>
</description>
</method>
<method name="_supports_documentation" qualifiers="virtual const">
<return type="bool" />
<description>
</description>
</method>
<method name="_thread_enter" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_thread_exit" qualifiers="virtual">
<return type="void" />
<description>
</description>
</method>
<method name="_validate" qualifiers="virtual const">
<return type="Dictionary" />
<param index="0" name="script" type="String" />
<param index="1" name="path" type="String" />
<param index="2" name="validate_functions" type="bool" />
<param index="3" name="validate_errors" type="bool" />
<param index="4" name="validate_warnings" type="bool" />
<param index="5" name="validate_safe_lines" type="bool" />
<description>
</description>
</method>
<method name="_validate_path" qualifiers="virtual const">
<return type="String" />
<param index="0" name="path" type="String" />
<description>
</description>
</method>
</methods>
<constants>
<constant name="LOOKUP_RESULT_SCRIPT_LOCATION" value="0" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS" value="1" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_CONSTANT" value="2" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_PROPERTY" value="3" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_METHOD" value="4" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_SIGNAL" value="5" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_ENUM" value="6" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE" value="7" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_CLASS_ANNOTATION" value="8" enum="LookupResultType">
</constant>
<constant name="LOOKUP_RESULT_MAX" value="9" enum="LookupResultType">
</constant>
<constant name="LOCATION_LOCAL" value="0" enum="CodeCompletionLocation">
The option is local to the location of the code completion query - e.g. a local variable. Subsequent value of location represent options from the outer class, the exact value represent how far they are (in terms of inner classes).
</constant>
<constant name="LOCATION_PARENT_MASK" value="256" enum="CodeCompletionLocation">
The option is from the containing class or a parent class, relative to the location of the code completion query. Perform a bitwise OR with the class depth (e.g. 0 for the local class, 1 for the parent, 2 for the grandparent, etc) to store the depth of an option in the class or a parent class.
</constant>
<constant name="LOCATION_OTHER_USER_CODE" value="512" enum="CodeCompletionLocation">
The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons).
</constant>
<constant name="LOCATION_OTHER" value="1024" enum="CodeCompletionLocation">
The option is from other engine code, not covered by the other enum constants - e.g. built-in classes.
</constant>
<constant name="CODE_COMPLETION_KIND_CLASS" value="0" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_FUNCTION" value="1" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_SIGNAL" value="2" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_VARIABLE" value="3" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_MEMBER" value="4" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_ENUM" value="5" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_CONSTANT" value="6" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_NODE_PATH" value="7" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_FILE_PATH" value="8" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_PLAIN_TEXT" value="9" enum="CodeCompletionKind">
</constant>
<constant name="CODE_COMPLETION_KIND_MAX" value="10" enum="CodeCompletionKind">
</constant>
</constants>
</class>