@ -113,6 +113,19 @@ resolved to provide completion candidates.
If STATIC is non-nil, candidates are provided for constants,
static variables and static methods. "
;; Strip away the existing (incomplete) attribute token. Otherwise, resolving
;; a type from this context while the user has already typed part of an
;; attribute name could return the type of an existing attribute that matches
;; the incomplete name. (this could for example result in methods of the type
;; of $this->entity to be suggested when we really want more suggestions for
;; attributes of the type $this like $this->entityRepository). Essentially, we
;; convert the subject $this->entity into $this so that only the type of $this
;; (or whatever comes before the attribute accessor token (-> or ::)) is
;; actually resolved.
( when ( phpinspect-attrib-p ( car ( last ( phpinspect--resolvecontext-subject resolvecontext ) ) ) )
( setf ( phpinspect--resolvecontext-subject resolvecontext )
( butlast ( phpinspect--resolvecontext-subject resolvecontext ) ) ) )
( let* ( ( type-resolver ( phpinspect--make-type-resolver-for-resolvecontext
resolvecontext ) )
( method-lister ( phpinspect--make-method-lister