How to custom list drawer without rewrite whole inspector gui?

I’m trying to insert some messages between List label and List elements. I’ve tried custom PropertyDrawer and DecoratorDrawer, but DecoratorDrawer will act on the top of the List label, and PropertyDrawer will act on each element of the List. Is there any way to implement a Drawer that act on List property it self?

7528715--929276--upload_2021-9-28_11-31-6.png

It’s quite old but…

I use my own class that implements and use it instead. Then property drawer can draw that type.
Obviously it’s not the best possible solution, but it works with only little code.

 [System.Serializable]
    public class ListDrawer<T> {
        [SerializeField]
        List<T> collection;

        public ListDrawer() {
            collection = new List<T>();
        }

        public ListDrawer(List<T> a) {
            collection = a;
        }

        public T this[int i] {
            get { return collection[i]; }
            set { collection[i] = value; }
        }

        public static implicit operator List<T>(ListDrawer<T> list) {
            return list.collection;
        }

        public static implicit operator ListDrawer<T>(List<T> list) {
            return new ListDrawer<T>(list);
        }



        //------------------- ListControl
        public int Count { get { return collection.Count; } }
        public void RemoveAt(int i) {
            collection.RemoveAt(i);
        }
        public void AddRange(List<T> arr) {
            collection.AddRange(arr);
        }
}