How do I modify tooltip for EditorProperty from EditorPlugin

Godot Version

Godot 3.5.1

Question

Okay so I’m trying to make an addon that port the Godot 4 “hover-docs” into Godot 3.5. I’ve gotten about 1/3 of the way there however, it im stuck… well kinda.

I gotten as far as editing the tooltip, however the formatting is all wrong

So now my idea is to replace the Tooltip’s UI Node Entirely so i can add my own RichTextLabel Node… however this issue with this, it seems that EditorProperty dosent allow for changing this. Is there any way to fix this?

Current Code
tool
extends EditorPlugin

func _no_filter(_node, _depth) -> bool:
	return true

func find_all_children(
	current_node: Node, 
	check_callable: FuncRef = funcref(self, "_no_filter"),
	max_depth: int = -1, 
	prune_branches: bool = false
) -> Array:
	if max_depth == 0:
		return []
	elif max_depth > 0:
		max_depth -= 1
		
	var results: Array = []
	
	for child in current_node.get_children():
		var result: bool = check_callable.call_func(child, max_depth)
		
		if result:
			results.append(child)
		
		if not (result and prune_branches):
			results.append_array(find_all_children(
				child, check_callable, max_depth, prune_branches))
		
	return results

func _is_editor_prop(node: Node, _depth = null) -> bool:
	return node is EditorProperty
	
func _enter_tree():
	call_deferred("add_tooltips")

func add_tooltips():
	var inspector: EditorInspector = get_editor_interface().get_inspector()
	
	var editor_props: Array = find_all_children(
		inspector, funcref(self, "_is_editor_prop"), 5, true)
	
	for prop in editor_props:
		prop.hint_tooltip = "%s\n%s" % [prop.label, "TEST TOOLTIP"]

You can hijack the tooltip node when it’s added to the tree by listening to the SceneTree.node_added signal and do whatever you need to do like:

tool
extends EditorPlugin


func _enter_tree():
	get_tree().connect("node_added", self, "_on_node_added", [], CONNECT_DEFERRED)


func _exit_tree():
	get_tree().disconnect("node_added", self, "_on_node_added")
	
	
func _on_node_added(node: Node):
	var cls = node.get_class()
	if cls == "TooltipPanel":
		print("Basic tooltip")
	elif cls == "EditorHelpBit":
		print("Help tooltip")

Connect it in a deferred way with CONNECT_DEFERRED to make it easier to modify like removing its children and adding your own ones.